From 65ba2373e8e16f39e22c18fc599492f57dc483a2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:49 -0400 Subject: [PATCH 001/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 025f3a2867d..e36e4eed442 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0ed9f898b31619623e50d660d04beca50e44987bfd3eb3a6ff98d3bca2a9c569.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-812091a95f3c4c3e317fd0989d201b888b81a2b0a91231f97b24a86520d279a7.yml From faa2c103174c7561e79588d642d658690cfac43b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:49 -0400 Subject: [PATCH 002/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index e36e4eed442..5f7a5c772f8 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-812091a95f3c4c3e317fd0989d201b888b81a2b0a91231f97b24a86520d279a7.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4c5d3eca46acf6884562f78cedffd5eb2e4c41781c5f4667c84739767252bb22.yml From 3740dee443213d0fcb2d9034b05b9faa5d3bbf81 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:49 -0400 Subject: [PATCH 003/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 5f7a5c772f8..ad1bf747f11 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4c5d3eca46acf6884562f78cedffd5eb2e4c41781c5f4667c84739767252bb22.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-aa50f52cc738c3a1415365072266ea403d1721131522296214642e8dd9a1ae41.yml From 0727f282b35993c0268ad4c4d136962cf0fc9d1e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:49 -0400 Subject: [PATCH 004/849] feat(api): api update (#2554) --- .stats.yml | 2 +- src/cloudflare/types/alerting/mechanism_param.py | 6 ++++-- tests/api_resources/alerting/test_policies.py | 16 ++++++++-------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.stats.yml b/.stats.yml index ad1bf747f11..6d12ae32554 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-aa50f52cc738c3a1415365072266ea403d1721131522296214642e8dd9a1ae41.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-780fca40500bd6887f3fc599b2000c3d553f03ce1337c2fd854641d36daf9b5f.yml diff --git a/src/cloudflare/types/alerting/mechanism_param.py b/src/cloudflare/types/alerting/mechanism_param.py index 8790a9fb478..5d6fe34678c 100644 --- a/src/cloudflare/types/alerting/mechanism_param.py +++ b/src/cloudflare/types/alerting/mechanism_param.py @@ -14,11 +14,13 @@ class Email(TypedDict, total=False): class Pagerduty(TypedDict, total=False): - pass + id: str + """UUID""" class Webhook(TypedDict, total=False): - pass + id: str + """UUID""" class MechanismParam(TypedDict, total=False): diff --git a/tests/api_resources/alerting/test_policies.py b/tests/api_resources/alerting/test_policies.py index 8211a770ec4..c051c6fd8ea 100644 --- a/tests/api_resources/alerting/test_policies.py +++ b/tests/api_resources/alerting/test_policies.py @@ -48,8 +48,8 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: enabled=True, mechanisms={ "email": [{"id": "test@example.com"}], - "pagerduty": [{}], - "webhooks": [{}], + "pagerduty": [{"id": "e8133a15-00a4-4d69-aec1-32f70c51f6e5"}], + "webhooks": [{"id": "14cc1190-5d2b-4b98-a696-c424cb2ad05f"}], }, name="SSL Notification Event Policy", alert_interval="30m", @@ -222,8 +222,8 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: }, mechanisms={ "email": [{"id": "test@example.com"}], - "pagerduty": [{}], - "webhooks": [{}], + "pagerduty": [{"id": "e8133a15-00a4-4d69-aec1-32f70c51f6e5"}], + "webhooks": [{"id": "14cc1190-5d2b-4b98-a696-c424cb2ad05f"}], }, name="SSL Notification Event Policy", ) @@ -453,8 +453,8 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare enabled=True, mechanisms={ "email": [{"id": "test@example.com"}], - "pagerduty": [{}], - "webhooks": [{}], + "pagerduty": [{"id": "e8133a15-00a4-4d69-aec1-32f70c51f6e5"}], + "webhooks": [{"id": "14cc1190-5d2b-4b98-a696-c424cb2ad05f"}], }, name="SSL Notification Event Policy", alert_interval="30m", @@ -627,8 +627,8 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare }, mechanisms={ "email": [{"id": "test@example.com"}], - "pagerduty": [{}], - "webhooks": [{}], + "pagerduty": [{"id": "e8133a15-00a4-4d69-aec1-32f70c51f6e5"}], + "webhooks": [{"id": "14cc1190-5d2b-4b98-a696-c424cb2ad05f"}], }, name="SSL Notification Event Policy", ) From e5de4c9695948fb2e3815a9c378b3390c7ce5de7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:49 -0400 Subject: [PATCH 005/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 6d12ae32554..df97168702a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-780fca40500bd6887f3fc599b2000c3d553f03ce1337c2fd854641d36daf9b5f.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-dd6616da4619117d5fa2290251ba9e32508df65112a9948e15481e9bb25d824a.yml From 81bb51bfaabcb41a98b360295ab98438d9858890 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:49 -0400 Subject: [PATCH 006/849] feat(api): api update (#2556) --- .stats.yml | 2 +- .../threat_events/threat_events.py | 42 ++++++++++++++----- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/.stats.yml b/.stats.yml index df97168702a..1265f77a8c6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-dd6616da4619117d5fa2290251ba9e32508df65112a9948e15481e9bb25d824a.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-792e766f8171491c07c3b8b50fb33bdf3c9319ad4d6f51ae90bcc0bebfd34227.yml diff --git a/src/cloudflare/resources/cloudforce_one/threat_events/threat_events.py b/src/cloudflare/resources/cloudforce_one/threat_events/threat_events.py index c6d71c53ee9..8584e46081e 100644 --- a/src/cloudflare/resources/cloudforce_one/threat_events/threat_events.py +++ b/src/cloudflare/resources/cloudforce_one/threat_events/threat_events.py @@ -225,7 +225,10 @@ def create( timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> ThreatEventCreateResponse: """ - Creates a new event + Events must be created in a client-specific dataset, which means the `datasetId` + parameter must be defined. To create a dataset, see the + [`Create Dataset`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/create/) + endpoint. Args: path_account_id: Account ID @@ -277,8 +280,12 @@ def delete( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> ThreatEventDeleteResponse: - """ - Deletes an event + """The `datasetId` parameter must be defined. + + To list existing datasets (and their + IDs) in your account, use the + [`List Datasets`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/list) + endpoint. Args: account_id: Account ID @@ -316,8 +323,12 @@ def bulk_create( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> ThreatEventBulkCreateResponse: - """ - Creates bulk events + """The `datasetId` parameter must be defined. + + To list existing datasets (and their + IDs) in your account, use the + [`List Datasets`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/list) + endpoint. Args: account_id: Account ID @@ -541,7 +552,10 @@ async def create( timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> ThreatEventCreateResponse: """ - Creates a new event + Events must be created in a client-specific dataset, which means the `datasetId` + parameter must be defined. To create a dataset, see the + [`Create Dataset`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/create/) + endpoint. Args: path_account_id: Account ID @@ -593,8 +607,12 @@ async def delete( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> ThreatEventDeleteResponse: - """ - Deletes an event + """The `datasetId` parameter must be defined. + + To list existing datasets (and their + IDs) in your account, use the + [`List Datasets`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/list) + endpoint. Args: account_id: Account ID @@ -632,8 +650,12 @@ async def bulk_create( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> ThreatEventBulkCreateResponse: - """ - Creates bulk events + """The `datasetId` parameter must be defined. + + To list existing datasets (and their + IDs) in your account, use the + [`List Datasets`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/list) + endpoint. Args: account_id: Account ID From d378fb7df9882c3d3b03e12b1eb4838ac4ea9358 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:50 -0400 Subject: [PATCH 007/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 1265f77a8c6..786ced20713 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-792e766f8171491c07c3b8b50fb33bdf3c9319ad4d6f51ae90bcc0bebfd34227.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0ffd22c3572767e127e246c4e464895723f265c9368ae27722ccb0a73db37e06.yml From d2589efc192dee44b959bc7d852c6bcd4c7d34a7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:50 -0400 Subject: [PATCH 008/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 786ced20713..1265f77a8c6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0ffd22c3572767e127e246c4e464895723f265c9368ae27722ccb0a73db37e06.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-792e766f8171491c07c3b8b50fb33bdf3c9319ad4d6f51ae90bcc0bebfd34227.yml From 5903758eef1909b02d940b9c89dd87fb4e419894 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:50 -0400 Subject: [PATCH 009/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 1265f77a8c6..9006d7486c9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-792e766f8171491c07c3b8b50fb33bdf3c9319ad4d6f51ae90bcc0bebfd34227.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1c32c51f5c0961b94352526a5de16682a470124f4b919b6247952cfe0e7fabb0.yml From a6fcd6b0fc837cf28c75fdcad5e68f058f4bcb83 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:50 -0400 Subject: [PATCH 010/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 9006d7486c9..906d42428c9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1c32c51f5c0961b94352526a5de16682a470124f4b919b6247952cfe0e7fabb0.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f0212f9551df24101a687f3bf402f0f4074ba7cd0a22cb51c57b274f501df309.yml From 115692aa4121de4b6aa974ee2d6eed90c65b2132 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:50 -0400 Subject: [PATCH 011/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 906d42428c9..3e12185028d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f0212f9551df24101a687f3bf402f0f4074ba7cd0a22cb51c57b274f501df309.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-6db915d7030aa9f8d4d68b580cc2c2d740ef86c64a1c21410cc88213b6f6ab40.yml From a04704258451b4b0477f6bcbd23332c50e737d47 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:50 -0400 Subject: [PATCH 012/849] feat(api): api update (#2557) --- .stats.yml | 2 +- src/cloudflare/resources/ai/ai.py | 330 +++++++++++++++++- src/cloudflare/types/ai/ai_run_params.py | 130 +++++++- src/cloudflare/types/ai/ai_run_response.py | 8 +- tests/api_resources/test_ai.py | 370 +++++++++++++++++++++ 5 files changed, 827 insertions(+), 13 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e12185028d..c236e7ba51b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-6db915d7030aa9f8d4d68b580cc2c2d740ef86c64a1c21410cc88213b6f6ab40.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-77660d4b73b127e706d861f689edd9c335916dab968ea50cc84dedc5b8b3eb78.yml diff --git a/src/cloudflare/resources/ai/ai.py b/src/cloudflare/resources/ai/ai.py index bbc218bb3ab..a69623d3eba 100644 --- a/src/cloudflare/resources/ai/ai.py +++ b/src/cloudflare/resources/ai/ai.py @@ -234,7 +234,7 @@ def run( [Cloudflare Docs](https://developers.cloudflare.com/workers-ai/models/). Args: - prompt: A text description of the image you want to generate + prompt: A text description of the audio you want to generate lang: The speech language (e.g., 'en' for English, 'fr' for French). Defaults to 'en' if not specified @@ -501,6 +501,7 @@ def run( functions: Iterable[ai_run_params.MessagesFunction] | NotGiven = NOT_GIVEN, max_tokens: int | NotGiven = NOT_GIVEN, presence_penalty: float | NotGiven = NOT_GIVEN, + raw: bool | NotGiven = NOT_GIVEN, repetition_penalty: float | NotGiven = NOT_GIVEN, response_format: ai_run_params.MessagesResponseFormat | NotGiven = NOT_GIVEN, seed: int | NotGiven = NOT_GIVEN, @@ -536,11 +537,15 @@ def run( presence_penalty: Increases the likelihood of the model introducing new topics. + raw: If true, a chat template is not applied and you must adhere to the specific + model's expected formatting. + repetition_penalty: Penalty for repeated tokens; higher values discourage repetition. seed: Random seed for reproducibility of the generation. - stream: If true, the response will be streamed back incrementally. + stream: If true, the response will be streamed back incrementally using SSE, Server Sent + Events. temperature: Controls the randomness of the output; higher values produce more random results. @@ -551,7 +556,7 @@ def run( responses more focused; higher values introduce more variety and potential surprises. - top_p: Controls the creativity of the AI's responses by adjusting how many possible + top_p: 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. @@ -726,6 +731,154 @@ def run( """ ... + @overload + def run( + self, + model_name: str, + *, + account_id: str, + image: str, + prompt: str, + frequency_penalty: float | NotGiven = NOT_GIVEN, + ignore_eos: bool | NotGiven = NOT_GIVEN, + max_tokens: int | NotGiven = NOT_GIVEN, + presence_penalty: float | NotGiven = NOT_GIVEN, + repetition_penalty: float | NotGiven = NOT_GIVEN, + seed: float | NotGiven = NOT_GIVEN, + temperature: float | NotGiven = NOT_GIVEN, + top_k: float | NotGiven = NOT_GIVEN, + top_p: float | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[AIRunResponse]: + """ + This endpoint provides users with the capability to run specific AI models + on-demand. + + By submitting the required input data, users can receive real-time predictions + or results generated by the chosen AI model. The endpoint supports various AI + model types, ensuring flexibility and adaptability for diverse use cases. + + Model specific inputs available in + [Cloudflare Docs](https://developers.cloudflare.com/workers-ai/models/). + + Args: + image: Image in base64 encoded format. + + prompt: The input text prompt for the model to generate a response. + + frequency_penalty: Decreases the likelihood of the model repeating the same lines verbatim. + + ignore_eos: Whether to ignore the EOS token and continue generating tokens after the EOS + token is generated. + + max_tokens: The maximum number of tokens to generate in the response. + + presence_penalty: Increases the likelihood of the model introducing new topics. + + repetition_penalty: Penalty for repeated tokens; higher values discourage repetition. + + seed: Random seed for reproducibility of the generation. + + temperature: Controls the randomness of the output; higher values produce more random + results. + + top_k: 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. + + top_p: 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. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + + @overload + def run( + self, + model_name: str, + *, + account_id: str, + image: str, + messages: Iterable[ai_run_params.Variant13Message], + frequency_penalty: float | NotGiven = NOT_GIVEN, + ignore_eos: bool | NotGiven = NOT_GIVEN, + max_tokens: int | NotGiven = NOT_GIVEN, + presence_penalty: float | NotGiven = NOT_GIVEN, + repetition_penalty: float | NotGiven = NOT_GIVEN, + seed: float | NotGiven = NOT_GIVEN, + temperature: float | NotGiven = NOT_GIVEN, + top_k: float | NotGiven = NOT_GIVEN, + top_p: float | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[AIRunResponse]: + """ + This endpoint provides users with the capability to run specific AI models + on-demand. + + By submitting the required input data, users can receive real-time predictions + or results generated by the chosen AI model. The endpoint supports various AI + model types, ensuring flexibility and adaptability for diverse use cases. + + Model specific inputs available in + [Cloudflare Docs](https://developers.cloudflare.com/workers-ai/models/). + + Args: + image: Image in base64 encoded format. + + messages: An array of message objects representing the conversation history. + + frequency_penalty: Decreases the likelihood of the model repeating the same lines verbatim. + + ignore_eos: Whether to ignore the EOS token and continue generating tokens after the EOS + token is generated. + + max_tokens: The maximum number of tokens to generate in the response. + + presence_penalty: Increases the likelihood of the model introducing new topics. + + repetition_penalty: Penalty for repeated tokens; higher values discourage repetition. + + seed: Random seed for reproducibility of the generation. + + temperature: Controls the randomness of the output; higher values produce more random + results. + + top_k: 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. + + top_p: 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. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + @required_args( ["account_id", "text"], ["account_id", "prompt"], @@ -735,6 +888,8 @@ def run( ["account_id", "messages"], ["account_id", "target_lang", "text"], ["account_id", "input_text"], + ["account_id", "image", "prompt"], + ["account_id", "image", "messages"], ) def run( self, @@ -745,7 +900,7 @@ def run( prompt: str | NotGiven = NOT_GIVEN, guidance: float | NotGiven = NOT_GIVEN, height: int | NotGiven = NOT_GIVEN, - image: Iterable[float] | NotGiven = NOT_GIVEN, + image: Iterable[float] | str | NotGiven = NOT_GIVEN, image_b64: str | NotGiven = NOT_GIVEN, mask: Iterable[float] | NotGiven = NOT_GIVEN, negative_prompt: str | NotGiven = NOT_GIVEN, @@ -773,6 +928,7 @@ def run( tools: Iterable[ai_run_params.MessagesTool] | NotGiven = NOT_GIVEN, input_text: str | NotGiven = NOT_GIVEN, max_length: int | NotGiven = NOT_GIVEN, + ignore_eos: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -822,6 +978,7 @@ def run( "tools": tools, "input_text": input_text, "max_length": max_length, + "ignore_eos": ignore_eos, }, ai_run_params.AIRunParams, ), @@ -1012,7 +1169,7 @@ async def run( [Cloudflare Docs](https://developers.cloudflare.com/workers-ai/models/). Args: - prompt: A text description of the image you want to generate + prompt: A text description of the audio you want to generate lang: The speech language (e.g., 'en' for English, 'fr' for French). Defaults to 'en' if not specified @@ -1279,6 +1436,7 @@ async def run( functions: Iterable[ai_run_params.MessagesFunction] | NotGiven = NOT_GIVEN, max_tokens: int | NotGiven = NOT_GIVEN, presence_penalty: float | NotGiven = NOT_GIVEN, + raw: bool | NotGiven = NOT_GIVEN, repetition_penalty: float | NotGiven = NOT_GIVEN, response_format: ai_run_params.MessagesResponseFormat | NotGiven = NOT_GIVEN, seed: int | NotGiven = NOT_GIVEN, @@ -1314,11 +1472,15 @@ async def run( presence_penalty: Increases the likelihood of the model introducing new topics. + raw: If true, a chat template is not applied and you must adhere to the specific + model's expected formatting. + repetition_penalty: Penalty for repeated tokens; higher values discourage repetition. seed: Random seed for reproducibility of the generation. - stream: If true, the response will be streamed back incrementally. + stream: If true, the response will be streamed back incrementally using SSE, Server Sent + Events. temperature: Controls the randomness of the output; higher values produce more random results. @@ -1329,7 +1491,7 @@ async def run( responses more focused; higher values introduce more variety and potential surprises. - top_p: Controls the creativity of the AI's responses by adjusting how many possible + top_p: 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. @@ -1504,6 +1666,154 @@ async def run( """ ... + @overload + async def run( + self, + model_name: str, + *, + account_id: str, + image: str, + prompt: str, + frequency_penalty: float | NotGiven = NOT_GIVEN, + ignore_eos: bool | NotGiven = NOT_GIVEN, + max_tokens: int | NotGiven = NOT_GIVEN, + presence_penalty: float | NotGiven = NOT_GIVEN, + repetition_penalty: float | NotGiven = NOT_GIVEN, + seed: float | NotGiven = NOT_GIVEN, + temperature: float | NotGiven = NOT_GIVEN, + top_k: float | NotGiven = NOT_GIVEN, + top_p: float | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[AIRunResponse]: + """ + This endpoint provides users with the capability to run specific AI models + on-demand. + + By submitting the required input data, users can receive real-time predictions + or results generated by the chosen AI model. The endpoint supports various AI + model types, ensuring flexibility and adaptability for diverse use cases. + + Model specific inputs available in + [Cloudflare Docs](https://developers.cloudflare.com/workers-ai/models/). + + Args: + image: Image in base64 encoded format. + + prompt: The input text prompt for the model to generate a response. + + frequency_penalty: Decreases the likelihood of the model repeating the same lines verbatim. + + ignore_eos: Whether to ignore the EOS token and continue generating tokens after the EOS + token is generated. + + max_tokens: The maximum number of tokens to generate in the response. + + presence_penalty: Increases the likelihood of the model introducing new topics. + + repetition_penalty: Penalty for repeated tokens; higher values discourage repetition. + + seed: Random seed for reproducibility of the generation. + + temperature: Controls the randomness of the output; higher values produce more random + results. + + top_k: 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. + + top_p: 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. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + + @overload + async def run( + self, + model_name: str, + *, + account_id: str, + image: str, + messages: Iterable[ai_run_params.Variant13Message], + frequency_penalty: float | NotGiven = NOT_GIVEN, + ignore_eos: bool | NotGiven = NOT_GIVEN, + max_tokens: int | NotGiven = NOT_GIVEN, + presence_penalty: float | NotGiven = NOT_GIVEN, + repetition_penalty: float | NotGiven = NOT_GIVEN, + seed: float | NotGiven = NOT_GIVEN, + temperature: float | NotGiven = NOT_GIVEN, + top_k: float | NotGiven = NOT_GIVEN, + top_p: float | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[AIRunResponse]: + """ + This endpoint provides users with the capability to run specific AI models + on-demand. + + By submitting the required input data, users can receive real-time predictions + or results generated by the chosen AI model. The endpoint supports various AI + model types, ensuring flexibility and adaptability for diverse use cases. + + Model specific inputs available in + [Cloudflare Docs](https://developers.cloudflare.com/workers-ai/models/). + + Args: + image: Image in base64 encoded format. + + messages: An array of message objects representing the conversation history. + + frequency_penalty: Decreases the likelihood of the model repeating the same lines verbatim. + + ignore_eos: Whether to ignore the EOS token and continue generating tokens after the EOS + token is generated. + + max_tokens: The maximum number of tokens to generate in the response. + + presence_penalty: Increases the likelihood of the model introducing new topics. + + repetition_penalty: Penalty for repeated tokens; higher values discourage repetition. + + seed: Random seed for reproducibility of the generation. + + temperature: Controls the randomness of the output; higher values produce more random + results. + + top_k: 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. + + top_p: 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. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + @required_args( ["account_id", "text"], ["account_id", "prompt"], @@ -1513,6 +1823,8 @@ async def run( ["account_id", "messages"], ["account_id", "target_lang", "text"], ["account_id", "input_text"], + ["account_id", "image", "prompt"], + ["account_id", "image", "messages"], ) async def run( self, @@ -1523,7 +1835,7 @@ async def run( prompt: str | NotGiven = NOT_GIVEN, guidance: float | NotGiven = NOT_GIVEN, height: int | NotGiven = NOT_GIVEN, - image: Iterable[float] | NotGiven = NOT_GIVEN, + image: Iterable[float] | str | NotGiven = NOT_GIVEN, image_b64: str | NotGiven = NOT_GIVEN, mask: Iterable[float] | NotGiven = NOT_GIVEN, negative_prompt: str | NotGiven = NOT_GIVEN, @@ -1551,6 +1863,7 @@ async def run( tools: Iterable[ai_run_params.MessagesTool] | NotGiven = NOT_GIVEN, input_text: str | NotGiven = NOT_GIVEN, max_length: int | NotGiven = NOT_GIVEN, + ignore_eos: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1600,6 +1913,7 @@ async def run( "tools": tools, "input_text": input_text, "max_length": max_length, + "ignore_eos": ignore_eos, }, ai_run_params.AIRunParams, ), diff --git a/src/cloudflare/types/ai/ai_run_params.py b/src/cloudflare/types/ai/ai_run_params.py index b1d9bacdac0..c2646505ef3 100644 --- a/src/cloudflare/types/ai/ai_run_params.py +++ b/src/cloudflare/types/ai/ai_run_params.py @@ -31,6 +31,9 @@ "Translation", "Summarization", "ImageToText", + "Variant12", + "Variant13", + "Variant13Message", ] @@ -97,7 +100,7 @@ class TextToSpeech(TypedDict, total=False): account_id: Required[str] prompt: Required[str] - """A text description of the image you want to generate""" + """A text description of the audio you want to generate""" lang: str """The speech language (e.g., 'en' for English, 'fr' for French). @@ -234,6 +237,12 @@ class Messages(TypedDict, total=False): presence_penalty: float """Increases the likelihood of the model introducing new topics.""" + raw: bool + """ + If true, a chat template is not applied and you must adhere to the specific + model's expected formatting. + """ + repetition_penalty: float """Penalty for repeated tokens; higher values discourage repetition.""" @@ -243,7 +252,10 @@ class Messages(TypedDict, total=False): """Random seed for reproducibility of the generation.""" stream: bool - """If true, the response will be streamed back incrementally.""" + """ + If true, the response will be streamed back incrementally using SSE, Server Sent + Events. + """ temperature: float """ @@ -263,7 +275,7 @@ class Messages(TypedDict, total=False): top_p: float """ - Controls the creativity of the AI's responses by adjusting how many possible + 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. """ @@ -440,6 +452,116 @@ class ImageToText(TypedDict, total=False): """ +class Variant12(TypedDict, total=False): + account_id: Required[str] + + image: Required[str] + """Image in base64 encoded format.""" + + prompt: Required[str] + """The input text prompt for the model to generate a response.""" + + frequency_penalty: float + """Decreases the likelihood of the model repeating the same lines verbatim.""" + + ignore_eos: bool + """ + Whether to ignore the EOS token and continue generating tokens after the EOS + token is generated. + """ + + max_tokens: int + """The maximum number of tokens to generate in the response.""" + + presence_penalty: float + """Increases the likelihood of the model introducing new topics.""" + + repetition_penalty: float + """Penalty for repeated tokens; higher values discourage repetition.""" + + seed: float + """Random seed for reproducibility of the generation.""" + + temperature: float + """ + Controls the randomness of the output; higher values produce more random + results. + """ + + top_k: float + """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. + """ + + top_p: float + """ + 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. + """ + + +class Variant13(TypedDict, total=False): + account_id: Required[str] + + image: Required[str] + """Image in base64 encoded format.""" + + messages: Required[Iterable[Variant13Message]] + """An array of message objects representing the conversation history.""" + + frequency_penalty: float + """Decreases the likelihood of the model repeating the same lines verbatim.""" + + ignore_eos: bool + """ + Whether to ignore the EOS token and continue generating tokens after the EOS + token is generated. + """ + + max_tokens: int + """The maximum number of tokens to generate in the response.""" + + presence_penalty: float + """Increases the likelihood of the model introducing new topics.""" + + repetition_penalty: float + """Penalty for repeated tokens; higher values discourage repetition.""" + + seed: float + """Random seed for reproducibility of the generation.""" + + temperature: float + """ + Controls the randomness of the output; higher values produce more random + results. + """ + + top_k: float + """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. + """ + + top_p: float + """ + 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. + """ + + +class Variant13Message(TypedDict, total=False): + content: Required[str] + """The content of the message as a string.""" + + role: Required[str] + """The role of the message sender (e.g., 'user', 'assistant', 'system', 'tool').""" + + AIRunParams: TypeAlias = Union[ TextClassification, TextToImage, @@ -453,4 +575,6 @@ class ImageToText(TypedDict, total=False): Translation, Summarization, ImageToText, + Variant12, + Variant13, ] diff --git a/src/cloudflare/types/ai/ai_run_response.py b/src/cloudflare/types/ai/ai_run_response.py index a87bf1ce169..186727c5cdc 100644 --- a/src/cloudflare/types/ai/ai_run_response.py +++ b/src/cloudflare/types/ai/ai_run_response.py @@ -21,6 +21,7 @@ "Translation", "Summarization", "ImageToText", + "ImageTextToText", ] @@ -124,7 +125,7 @@ class UnionMember7Usage(BaseModel): class UnionMember7(BaseModel): - response: Optional[str] = None + response: str """The generated text response from the model""" tool_calls: Optional[List[UnionMember7ToolCall]] = None @@ -148,6 +149,10 @@ class ImageToText(BaseModel): description: Optional[str] = None +class ImageTextToText(BaseModel): + description: Optional[str] = None + + AIRunResponse: TypeAlias = Union[ List[TextClassification], object, @@ -160,4 +165,5 @@ class ImageToText(BaseModel): Translation, Summarization, ImageToText, + ImageTextToText, ] diff --git a/tests/api_resources/test_ai.py b/tests/api_resources/test_ai.py index f65ba01032f..26e73537d95 100644 --- a/tests/api_resources/test_ai.py +++ b/tests/api_resources/test_ai.py @@ -543,6 +543,7 @@ def test_method_run_with_all_params_overload_9(self, client: Cloudflare) -> None ], max_tokens=0, presence_penalty=0, + raw=True, repetition_penalty=0, response_format={ "json_schema": {}, @@ -840,6 +841,190 @@ def test_path_params_run_overload_12(self, client: Cloudflare) -> None: image=[0], ) + @parametrize + def test_method_run_overload_13(self, client: Cloudflare) -> None: + ai = client.ai.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + prompt="x", + ) + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + @parametrize + def test_method_run_with_all_params_overload_13(self, client: Cloudflare) -> None: + ai = client.ai.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + prompt="x", + frequency_penalty=0, + ignore_eos=True, + max_tokens=0, + presence_penalty=0, + repetition_penalty=0, + seed=0, + temperature=0, + top_k=0, + top_p=0, + ) + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + @parametrize + def test_raw_response_run_overload_13(self, client: Cloudflare) -> None: + response = client.ai.with_raw_response.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + prompt="x", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + ai = response.parse() + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + @parametrize + def test_streaming_response_run_overload_13(self, client: Cloudflare) -> None: + with client.ai.with_streaming_response.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + prompt="x", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + ai = response.parse() + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_run_overload_13(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.ai.with_raw_response.run( + model_name="model_name", + account_id="", + image="image", + prompt="x", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `model_name` but received ''"): + client.ai.with_raw_response.run( + model_name="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + prompt="x", + ) + + @parametrize + def test_method_run_overload_14(self, client: Cloudflare) -> None: + ai = client.ai.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + messages=[ + { + "content": "content", + "role": "role", + } + ], + ) + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + @parametrize + def test_method_run_with_all_params_overload_14(self, client: Cloudflare) -> None: + ai = client.ai.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + messages=[ + { + "content": "content", + "role": "role", + } + ], + frequency_penalty=0, + ignore_eos=True, + max_tokens=0, + presence_penalty=0, + repetition_penalty=0, + seed=0, + temperature=0, + top_k=0, + top_p=0, + ) + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + @parametrize + def test_raw_response_run_overload_14(self, client: Cloudflare) -> None: + response = client.ai.with_raw_response.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + messages=[ + { + "content": "content", + "role": "role", + } + ], + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + ai = response.parse() + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + @parametrize + def test_streaming_response_run_overload_14(self, client: Cloudflare) -> None: + with client.ai.with_streaming_response.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + messages=[ + { + "content": "content", + "role": "role", + } + ], + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + ai = response.parse() + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_run_overload_14(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.ai.with_raw_response.run( + model_name="model_name", + account_id="", + image="image", + messages=[ + { + "content": "content", + "role": "role", + } + ], + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `model_name` but received ''"): + client.ai.with_raw_response.run( + model_name="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + messages=[ + { + "content": "content", + "role": "role", + } + ], + ) + class TestAsyncAI: parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"]) @@ -1370,6 +1555,7 @@ async def test_method_run_with_all_params_overload_9(self, async_client: AsyncCl ], max_tokens=0, presence_penalty=0, + raw=True, repetition_penalty=0, response_format={ "json_schema": {}, @@ -1666,3 +1852,187 @@ async def test_path_params_run_overload_12(self, async_client: AsyncCloudflare) account_id="023e105f4ecef8ad9ca31a8372d0c353", image=[0], ) + + @parametrize + async def test_method_run_overload_13(self, async_client: AsyncCloudflare) -> None: + ai = await async_client.ai.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + prompt="x", + ) + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + @parametrize + async def test_method_run_with_all_params_overload_13(self, async_client: AsyncCloudflare) -> None: + ai = await async_client.ai.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + prompt="x", + frequency_penalty=0, + ignore_eos=True, + max_tokens=0, + presence_penalty=0, + repetition_penalty=0, + seed=0, + temperature=0, + top_k=0, + top_p=0, + ) + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + @parametrize + async def test_raw_response_run_overload_13(self, async_client: AsyncCloudflare) -> None: + response = await async_client.ai.with_raw_response.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + prompt="x", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + ai = await response.parse() + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + @parametrize + async def test_streaming_response_run_overload_13(self, async_client: AsyncCloudflare) -> None: + async with async_client.ai.with_streaming_response.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + prompt="x", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + ai = await response.parse() + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_run_overload_13(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.ai.with_raw_response.run( + model_name="model_name", + account_id="", + image="image", + prompt="x", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `model_name` but received ''"): + await async_client.ai.with_raw_response.run( + model_name="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + prompt="x", + ) + + @parametrize + async def test_method_run_overload_14(self, async_client: AsyncCloudflare) -> None: + ai = await async_client.ai.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + messages=[ + { + "content": "content", + "role": "role", + } + ], + ) + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + @parametrize + async def test_method_run_with_all_params_overload_14(self, async_client: AsyncCloudflare) -> None: + ai = await async_client.ai.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + messages=[ + { + "content": "content", + "role": "role", + } + ], + frequency_penalty=0, + ignore_eos=True, + max_tokens=0, + presence_penalty=0, + repetition_penalty=0, + seed=0, + temperature=0, + top_k=0, + top_p=0, + ) + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + @parametrize + async def test_raw_response_run_overload_14(self, async_client: AsyncCloudflare) -> None: + response = await async_client.ai.with_raw_response.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + messages=[ + { + "content": "content", + "role": "role", + } + ], + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + ai = await response.parse() + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + @parametrize + async def test_streaming_response_run_overload_14(self, async_client: AsyncCloudflare) -> None: + async with async_client.ai.with_streaming_response.run( + model_name="model_name", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + messages=[ + { + "content": "content", + "role": "role", + } + ], + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + ai = await response.parse() + assert_matches_type(Optional[AIRunResponse], ai, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_run_overload_14(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.ai.with_raw_response.run( + model_name="model_name", + account_id="", + image="image", + messages=[ + { + "content": "content", + "role": "role", + } + ], + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `model_name` but received ''"): + await async_client.ai.with_raw_response.run( + model_name="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + image="image", + messages=[ + { + "content": "content", + "role": "role", + } + ], + ) From 638463e09f94b797b48961f86f80c102cbc2785d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:50 -0400 Subject: [PATCH 013/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index c236e7ba51b..c000b2d31eb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-77660d4b73b127e706d861f689edd9c335916dab968ea50cc84dedc5b8b3eb78.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2460ab933338dc024841ad48cf3bf32b207070d1e0c0de1b0f3171936927a6c3.yml From 37a6922752bfebafd8f8406e81d447f36561894f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:50 -0400 Subject: [PATCH 014/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index c000b2d31eb..4a67c096e63 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2460ab933338dc024841ad48cf3bf32b207070d1e0c0de1b0f3171936927a6c3.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-c676be694861dd6c102125195b3de9f6331e06f5973b64c05848855609f10944.yml From 739729c033fdccec7a559a1391a2c061a568e618 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:50 -0400 Subject: [PATCH 015/849] feat(api): api update (#2558) --- .stats.yml | 2 +- .../cloudforce_one/threat_events/threat_events.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index 4a67c096e63..7d561bb377b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-c676be694861dd6c102125195b3de9f6331e06f5973b64c05848855609f10944.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-287dfb44a9a14138cf56a29fa488f802f1d53ba4b8b84e3714006b6fb151ff00.yml diff --git a/src/cloudflare/resources/cloudforce_one/threat_events/threat_events.py b/src/cloudflare/resources/cloudforce_one/threat_events/threat_events.py index 8584e46081e..d922857568b 100644 --- a/src/cloudflare/resources/cloudforce_one/threat_events/threat_events.py +++ b/src/cloudflare/resources/cloudforce_one/threat_events/threat_events.py @@ -284,7 +284,7 @@ def delete( To list existing datasets (and their IDs) in your account, use the - [`List Datasets`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/list) + [`List Datasets`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/list/) endpoint. Args: @@ -327,7 +327,7 @@ def bulk_create( To list existing datasets (and their IDs) in your account, use the - [`List Datasets`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/list) + [`List Datasets`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/list/) endpoint. Args: @@ -611,7 +611,7 @@ async def delete( To list existing datasets (and their IDs) in your account, use the - [`List Datasets`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/list) + [`List Datasets`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/list/) endpoint. Args: @@ -654,7 +654,7 @@ async def bulk_create( To list existing datasets (and their IDs) in your account, use the - [`List Datasets`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/list) + [`List Datasets`](https://developers.cloudflare.com/api/resources/cloudforce_one/subresources/threat_events/subresources/datasets/methods/list/) endpoint. Args: From 72b7ad595aa96c0e784d29a4c6244c3a9810cef3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:51 -0400 Subject: [PATCH 016/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 7d561bb377b..4869f1e5fba 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-287dfb44a9a14138cf56a29fa488f802f1d53ba4b8b84e3714006b6fb151ff00.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-31c29c0d64f1b837ced4878b09927436e090f52082c4a37cafe04f1caf73ef39.yml From 10130aa6d014a313203b056e115e3e69e61bef57 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:51 -0400 Subject: [PATCH 017/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 4869f1e5fba..a97296e70b9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-31c29c0d64f1b837ced4878b09927436e090f52082c4a37cafe04f1caf73ef39.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f1c7b80690b0ceb4a9b867b9d19182e552b7ea3fec49c3821c0f6c0cc81c13d6.yml From 7d2e41ce6a0ff75658375fa2057a18b1b81705f6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:51 -0400 Subject: [PATCH 018/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index a97296e70b9..cfa7896b582 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f1c7b80690b0ceb4a9b867b9d19182e552b7ea3fec49c3821c0f6c0cc81c13d6.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-8728ef059dc082155bdd6cd5fc60f0746c4233f3a126fd58aacba75bb64acf9e.yml From dfa3e75c85dd7ecfc9e5e042c13b5cf5d8b5ed4c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:51 -0400 Subject: [PATCH 019/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index cfa7896b582..f6c0e48d830 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-8728ef059dc082155bdd6cd5fc60f0746c4233f3a126fd58aacba75bb64acf9e.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-3a3d72b3397c5187cff3a7398f47862c0899c25866981a0db82e834e0edeae1f.yml From 8fa7fa3146733b655409f0f9d0e61161df5713fe Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:51 -0400 Subject: [PATCH 020/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index f6c0e48d830..44af9fe64dd 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-3a3d72b3397c5187cff3a7398f47862c0899c25866981a0db82e834e0edeae1f.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1f96b47ff1b276349374b4202a1492358b7084a12e3795d5b788ecdbd203c33b.yml From 3eb852c848c433c4ad26332f902e5db508a863a4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:51 -0400 Subject: [PATCH 021/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 44af9fe64dd..ae0b3355b9e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1f96b47ff1b276349374b4202a1492358b7084a12e3795d5b788ecdbd203c33b.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1a52a9a1c06f0313a36156c88770e3a48ce172ac3bbabda8289558df1fbc1c39.yml From 70a36e8bc2a83162aa55b00c860a0014e60db4d5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:51 -0400 Subject: [PATCH 022/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index ae0b3355b9e..5a2bec9b372 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1a52a9a1c06f0313a36156c88770e3a48ce172ac3bbabda8289558df1fbc1c39.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d2ca0b89335f32376bc9c2e489130888fcf2b5d7c4d48cdce67662292fa3c6e0.yml From 77c1f634389f95b160fb21a027f991f67d0b69fc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:51 -0400 Subject: [PATCH 023/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 5a2bec9b372..be662b91882 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d2ca0b89335f32376bc9c2e489130888fcf2b5d7c4d48cdce67662292fa3c6e0.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-72e4b7cfa37c9f31de2bd2192572cc4ca55e44c295e39de5cbcb6b7101085b39.yml From ec87056a22abbc40aac83323bc028c6f82c74898 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:51 -0400 Subject: [PATCH 024/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index be662b91882..b7ced11115b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-72e4b7cfa37c9f31de2bd2192572cc4ca55e44c295e39de5cbcb6b7101085b39.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1b656ec83aee35ae499afd631a597af7261527e6ccd322f67ea42a1c911141f4.yml From 4f672b2779af954b400c84f8ac36802fdf2d95b9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:52 -0400 Subject: [PATCH 025/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index b7ced11115b..3e928267731 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1b656ec83aee35ae499afd631a597af7261527e6ccd322f67ea42a1c911141f4.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-5dd5c8be587b82fb84ed6eb266482c9a9cfd0dba38d8ee7c4cb09645309bf46b.yml From 3d1c382c889a2987d64ceff0cac787140cc3c627 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:52 -0400 Subject: [PATCH 026/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 3e928267731..4ad59c75f41 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-5dd5c8be587b82fb84ed6eb266482c9a9cfd0dba38d8ee7c4cb09645309bf46b.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-29cfd83630fcbad4968e809961d7775925fa66b5681177c42c964b9ef919a9a8.yml From 0aa2a75cb7e594c9de98101f4e60bafb89cf57b7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:52 -0400 Subject: [PATCH 027/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 4ad59c75f41..e64c6a5becf 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-29cfd83630fcbad4968e809961d7775925fa66b5681177c42c964b9ef919a9a8.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-5048453015c0816bc9f90ad8783b96f1079aa336f9a2e6177436082473841023.yml From 2e3260adc4cfc4447f8f433f9e3f4c4971de2381 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:52 -0400 Subject: [PATCH 028/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index e64c6a5becf..40110f8be9f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-5048453015c0816bc9f90ad8783b96f1079aa336f9a2e6177436082473841023.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ffbf1797847fe69705baa6bed5eb288f7ee540711d195c191cf9a3099dbf0b56.yml From 132c1cce1091af67aa37da88487813188af33ea3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:52 -0400 Subject: [PATCH 029/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 40110f8be9f..957e449cc5d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ffbf1797847fe69705baa6bed5eb288f7ee540711d195c191cf9a3099dbf0b56.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a334da99b17a5ebc16008c0f4bbfc5b52a92f0d975c573b7f9142f31b5693da8.yml From 7faa67e868f78d04d8408fee3f2af7d38c7fb8ab Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:52 -0400 Subject: [PATCH 030/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 957e449cc5d..b6b16cfa3c7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a334da99b17a5ebc16008c0f4bbfc5b52a92f0d975c573b7f9142f31b5693da8.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a0b96bb412afb9fe4019d817dcc0504644029f221eb272db1c2b1b9c3a163998.yml From 2f0c13d341c23c121634e9f992f59856d84a5ec4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:52 -0400 Subject: [PATCH 031/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index b6b16cfa3c7..69f03925a92 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a0b96bb412afb9fe4019d817dcc0504644029f221eb272db1c2b1b9c3a163998.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a69045a1fe766ee05b92175251302d1805cc303ce727c20403bf0bcc5512c217.yml From f4cb436a7baea24784af037e335f637a6276de5d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:52 -0400 Subject: [PATCH 032/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 69f03925a92..b6b16cfa3c7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a69045a1fe766ee05b92175251302d1805cc303ce727c20403bf0bcc5512c217.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a0b96bb412afb9fe4019d817dcc0504644029f221eb272db1c2b1b9c3a163998.yml From bffab4392b2eef044100a1b8d091c1413baf9bcf Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:52 -0400 Subject: [PATCH 033/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index b6b16cfa3c7..69f03925a92 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a0b96bb412afb9fe4019d817dcc0504644029f221eb272db1c2b1b9c3a163998.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a69045a1fe766ee05b92175251302d1805cc303ce727c20403bf0bcc5512c217.yml From f9a17c08cc94ad8262e797273f77be8cf0afcc95 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:53 -0400 Subject: [PATCH 034/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 69f03925a92..72c50f319c8 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a69045a1fe766ee05b92175251302d1805cc303ce727c20403bf0bcc5512c217.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-60d90b8842925e5e605a0d3060dc0de2e36558aac7e0798267baacf1e4981a89.yml From cfadb1f3dd444b87cc5f900c5e0b57cc9856d34d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:53 -0400 Subject: [PATCH 035/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 72c50f319c8..d426bd1247b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-60d90b8842925e5e605a0d3060dc0de2e36558aac7e0798267baacf1e4981a89.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-16a84eef758b1aa4b8dbb35b451f670437bac211326808e954bd32c58abaf1f8.yml From 1ad9c65df2ee3e409af6c0f854313ff3b270ea50 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:53 -0400 Subject: [PATCH 036/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index d426bd1247b..17e6a014125 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-16a84eef758b1aa4b8dbb35b451f670437bac211326808e954bd32c58abaf1f8.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-304e22a52a26aa5201f824a75d0e1a23adf6bbcb8917b212e425d0d5e4517134.yml From 60524682aed416c8466194c952e627994756f542 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:53 -0400 Subject: [PATCH 037/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 17e6a014125..694db507388 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-304e22a52a26aa5201f824a75d0e1a23adf6bbcb8917b212e425d0d5e4517134.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-9cf6019589581b59bb65597683be5de8c0ba2c8eac3c09cab46711a5451357df.yml From f0210024caf49787f01e9b99e29fff1b3a133873 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:53 -0400 Subject: [PATCH 038/849] feat(api): api update (#2559) --- .stats.yml | 2 +- .../resources/radar/attacks/layer3/top/top.py | 24 ++++++++++++------- .../resources/radar/attacks/layer7/top/top.py | 24 ++++++++++++------- 3 files changed, 33 insertions(+), 17 deletions(-) diff --git a/.stats.yml b/.stats.yml index 694db507388..4e32463f723 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-9cf6019589581b59bb65597683be5de8c0ba2c8eac3c09cab46711a5451357df.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-5a9e378c6a941a773819dd69f5ec21492d46d9370f66425b4b77e0c6da98ec3e.yml diff --git a/src/cloudflare/resources/radar/attacks/layer3/top/top.py b/src/cloudflare/resources/radar/attacks/layer3/top/top.py index efb040bc725..8638f109c20 100644 --- a/src/cloudflare/resources/radar/attacks/layer3/top/top.py +++ b/src/cloudflare/resources/radar/attacks/layer3/top/top.py @@ -193,8 +193,10 @@ def industry( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> TopIndustryResponse: - """ - Retrieves the top industries targeted by layer 3 attacks. + """This endpoint is deprecated. + + To continue getting this data, switch to the + summary by industry endpoint. Args: continent: Comma-separated list of continents (alpha-2 continent codes). Prefix with `-` to @@ -278,8 +280,10 @@ def vertical( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> TopVerticalResponse: - """ - Retrieves the top verticals targeted by layer 3 attacks. + """This endpoint is deprecated. + + To continue getting this data, switch to the + summary by vertical endpoint. Args: continent: Comma-separated list of continents (alpha-2 continent codes). Prefix with `-` to @@ -498,8 +502,10 @@ async def industry( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> TopIndustryResponse: - """ - Retrieves the top industries targeted by layer 3 attacks. + """This endpoint is deprecated. + + To continue getting this data, switch to the + summary by industry endpoint. Args: continent: Comma-separated list of continents (alpha-2 continent codes). Prefix with `-` to @@ -583,8 +589,10 @@ async def vertical( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> TopVerticalResponse: - """ - Retrieves the top verticals targeted by layer 3 attacks. + """This endpoint is deprecated. + + To continue getting this data, switch to the + summary by vertical endpoint. Args: continent: Comma-separated list of continents (alpha-2 continent codes). Prefix with `-` to diff --git a/src/cloudflare/resources/radar/attacks/layer7/top/top.py b/src/cloudflare/resources/radar/attacks/layer7/top/top.py index a98ee2ddeab..9261000425c 100644 --- a/src/cloudflare/resources/radar/attacks/layer7/top/top.py +++ b/src/cloudflare/resources/radar/attacks/layer7/top/top.py @@ -272,8 +272,10 @@ def industry( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> TopIndustryResponse: - """ - Retrieves the industries targeted by layer 7 attacks. + """This endpoint is deprecated. + + To continue getting this data, switch to the + summary by industry endpoint. Args: asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to @@ -426,8 +428,10 @@ def vertical( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> TopVerticalResponse: - """ - Retrieves the verticals targeted by layer 7 attacks. + """This endpoint is deprecated. + + To continue getting this data, switch to the + summary by vertical endpoint. Args: asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to @@ -728,8 +732,10 @@ async def industry( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> TopIndustryResponse: - """ - Retrieves the industries targeted by layer 7 attacks. + """This endpoint is deprecated. + + To continue getting this data, switch to the + summary by industry endpoint. Args: asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to @@ -882,8 +888,10 @@ async def vertical( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, ) -> TopVerticalResponse: - """ - Retrieves the verticals targeted by layer 7 attacks. + """This endpoint is deprecated. + + To continue getting this data, switch to the + summary by vertical endpoint. Args: asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to From 4f2901796c6199b59a7078c3605f3664a3b29575 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:53 -0400 Subject: [PATCH 039/849] feat(api): api update (#2560) --- .stats.yml | 2 +- src/cloudflare/resources/api_gateway/discovery/operations.py | 4 ++-- .../types/api_gateway/discovery/operation_list_params.py | 2 +- src/cloudflare/types/api_gateway/discovery_operation.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index 4e32463f723..52a4902251e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-5a9e378c6a941a773819dd69f5ec21492d46d9370f66425b4b77e0c6da98ec3e.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4b061435b9d0bfa9f8d240448ac05a8b5279b617e2e9a94f83b12330caaf3b20.yml diff --git a/src/cloudflare/resources/api_gateway/discovery/operations.py b/src/cloudflare/resources/api_gateway/discovery/operations.py index f7a8556479a..c2b1d48523b 100644 --- a/src/cloudflare/resources/api_gateway/discovery/operations.py +++ b/src/cloudflare/resources/api_gateway/discovery/operations.py @@ -62,7 +62,7 @@ def list( method: List[str] | NotGiven = NOT_GIVEN, order: Literal["host", "method", "endpoint", "traffic_stats.requests", "traffic_stats.last_updated"] | NotGiven = NOT_GIVEN, - origin: Literal["ML", "SessionIdentifier"] | NotGiven = NOT_GIVEN, + origin: Literal["ML", "SessionIdentifier", "LabelDiscovery"] | NotGiven = NOT_GIVEN, page: int | NotGiven = NOT_GIVEN, per_page: int | NotGiven = NOT_GIVEN, state: Literal["review", "saved", "ignored"] | NotGiven = NOT_GIVEN, @@ -273,7 +273,7 @@ def list( method: List[str] | NotGiven = NOT_GIVEN, order: Literal["host", "method", "endpoint", "traffic_stats.requests", "traffic_stats.last_updated"] | NotGiven = NOT_GIVEN, - origin: Literal["ML", "SessionIdentifier"] | NotGiven = NOT_GIVEN, + origin: Literal["ML", "SessionIdentifier", "LabelDiscovery"] | NotGiven = NOT_GIVEN, page: int | NotGiven = NOT_GIVEN, per_page: int | NotGiven = NOT_GIVEN, state: Literal["review", "saved", "ignored"] | NotGiven = NOT_GIVEN, diff --git a/src/cloudflare/types/api_gateway/discovery/operation_list_params.py b/src/cloudflare/types/api_gateway/discovery/operation_list_params.py index 0b33645439c..7326f3e09c1 100644 --- a/src/cloudflare/types/api_gateway/discovery/operation_list_params.py +++ b/src/cloudflare/types/api_gateway/discovery/operation_list_params.py @@ -33,7 +33,7 @@ class OperationListParams(TypedDict, total=False): order: Literal["host", "method", "endpoint", "traffic_stats.requests", "traffic_stats.last_updated"] """Field to order by""" - origin: Literal["ML", "SessionIdentifier"] + origin: Literal["ML", "SessionIdentifier", "LabelDiscovery"] """ Filter results to only include discovery results sourced from a particular discovery engine diff --git a/src/cloudflare/types/api_gateway/discovery_operation.py b/src/cloudflare/types/api_gateway/discovery_operation.py index 8c3fe0a8617..06271ce05a4 100644 --- a/src/cloudflare/types/api_gateway/discovery_operation.py +++ b/src/cloudflare/types/api_gateway/discovery_operation.py @@ -43,7 +43,7 @@ class DiscoveryOperation(BaseModel): method: Literal["GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "CONNECT", "PATCH", "TRACE"] """The HTTP method used to access the endpoint.""" - origin: List[Literal["ML", "SessionIdentifier"]] + origin: List[Literal["ML", "SessionIdentifier", "LabelDiscovery"]] """API discovery engine(s) that discovered this operation""" state: Literal["review", "saved", "ignored"] From d4b4d44fa4933e385f940a4dce2e11355607afa1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:53 -0400 Subject: [PATCH 040/849] feat(api): api update (#2561) --- .stats.yml | 2 +- src/cloudflare/resources/api_gateway/discovery/operations.py | 4 ++-- .../types/api_gateway/discovery/operation_list_params.py | 2 +- src/cloudflare/types/api_gateway/discovery_operation.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index 52a4902251e..b13655d390a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4b061435b9d0bfa9f8d240448ac05a8b5279b617e2e9a94f83b12330caaf3b20.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-7c7281b5c4300f73c7afe4290abb624d80bbd16d799d4abfeb057f9ea5e9afd0.yml diff --git a/src/cloudflare/resources/api_gateway/discovery/operations.py b/src/cloudflare/resources/api_gateway/discovery/operations.py index c2b1d48523b..f7a8556479a 100644 --- a/src/cloudflare/resources/api_gateway/discovery/operations.py +++ b/src/cloudflare/resources/api_gateway/discovery/operations.py @@ -62,7 +62,7 @@ def list( method: List[str] | NotGiven = NOT_GIVEN, order: Literal["host", "method", "endpoint", "traffic_stats.requests", "traffic_stats.last_updated"] | NotGiven = NOT_GIVEN, - origin: Literal["ML", "SessionIdentifier", "LabelDiscovery"] | NotGiven = NOT_GIVEN, + origin: Literal["ML", "SessionIdentifier"] | NotGiven = NOT_GIVEN, page: int | NotGiven = NOT_GIVEN, per_page: int | NotGiven = NOT_GIVEN, state: Literal["review", "saved", "ignored"] | NotGiven = NOT_GIVEN, @@ -273,7 +273,7 @@ def list( method: List[str] | NotGiven = NOT_GIVEN, order: Literal["host", "method", "endpoint", "traffic_stats.requests", "traffic_stats.last_updated"] | NotGiven = NOT_GIVEN, - origin: Literal["ML", "SessionIdentifier", "LabelDiscovery"] | NotGiven = NOT_GIVEN, + origin: Literal["ML", "SessionIdentifier"] | NotGiven = NOT_GIVEN, page: int | NotGiven = NOT_GIVEN, per_page: int | NotGiven = NOT_GIVEN, state: Literal["review", "saved", "ignored"] | NotGiven = NOT_GIVEN, diff --git a/src/cloudflare/types/api_gateway/discovery/operation_list_params.py b/src/cloudflare/types/api_gateway/discovery/operation_list_params.py index 7326f3e09c1..0b33645439c 100644 --- a/src/cloudflare/types/api_gateway/discovery/operation_list_params.py +++ b/src/cloudflare/types/api_gateway/discovery/operation_list_params.py @@ -33,7 +33,7 @@ class OperationListParams(TypedDict, total=False): order: Literal["host", "method", "endpoint", "traffic_stats.requests", "traffic_stats.last_updated"] """Field to order by""" - origin: Literal["ML", "SessionIdentifier", "LabelDiscovery"] + origin: Literal["ML", "SessionIdentifier"] """ Filter results to only include discovery results sourced from a particular discovery engine diff --git a/src/cloudflare/types/api_gateway/discovery_operation.py b/src/cloudflare/types/api_gateway/discovery_operation.py index 06271ce05a4..8c3fe0a8617 100644 --- a/src/cloudflare/types/api_gateway/discovery_operation.py +++ b/src/cloudflare/types/api_gateway/discovery_operation.py @@ -43,7 +43,7 @@ class DiscoveryOperation(BaseModel): method: Literal["GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "CONNECT", "PATCH", "TRACE"] """The HTTP method used to access the endpoint.""" - origin: List[Literal["ML", "SessionIdentifier", "LabelDiscovery"]] + origin: List[Literal["ML", "SessionIdentifier"]] """API discovery engine(s) that discovered this operation""" state: Literal["review", "saved", "ignored"] From 2ec6012630e11bcdc1b5b0eba8c627581b2a8ff4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:53 -0400 Subject: [PATCH 041/849] feat(api): api update (#2562) --- .stats.yml | 2 +- src/cloudflare/resources/api_gateway/discovery/operations.py | 4 ++-- .../types/api_gateway/discovery/operation_list_params.py | 2 +- src/cloudflare/types/api_gateway/discovery_operation.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index b13655d390a..52a4902251e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-7c7281b5c4300f73c7afe4290abb624d80bbd16d799d4abfeb057f9ea5e9afd0.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4b061435b9d0bfa9f8d240448ac05a8b5279b617e2e9a94f83b12330caaf3b20.yml diff --git a/src/cloudflare/resources/api_gateway/discovery/operations.py b/src/cloudflare/resources/api_gateway/discovery/operations.py index f7a8556479a..c2b1d48523b 100644 --- a/src/cloudflare/resources/api_gateway/discovery/operations.py +++ b/src/cloudflare/resources/api_gateway/discovery/operations.py @@ -62,7 +62,7 @@ def list( method: List[str] | NotGiven = NOT_GIVEN, order: Literal["host", "method", "endpoint", "traffic_stats.requests", "traffic_stats.last_updated"] | NotGiven = NOT_GIVEN, - origin: Literal["ML", "SessionIdentifier"] | NotGiven = NOT_GIVEN, + origin: Literal["ML", "SessionIdentifier", "LabelDiscovery"] | NotGiven = NOT_GIVEN, page: int | NotGiven = NOT_GIVEN, per_page: int | NotGiven = NOT_GIVEN, state: Literal["review", "saved", "ignored"] | NotGiven = NOT_GIVEN, @@ -273,7 +273,7 @@ def list( method: List[str] | NotGiven = NOT_GIVEN, order: Literal["host", "method", "endpoint", "traffic_stats.requests", "traffic_stats.last_updated"] | NotGiven = NOT_GIVEN, - origin: Literal["ML", "SessionIdentifier"] | NotGiven = NOT_GIVEN, + origin: Literal["ML", "SessionIdentifier", "LabelDiscovery"] | NotGiven = NOT_GIVEN, page: int | NotGiven = NOT_GIVEN, per_page: int | NotGiven = NOT_GIVEN, state: Literal["review", "saved", "ignored"] | NotGiven = NOT_GIVEN, diff --git a/src/cloudflare/types/api_gateway/discovery/operation_list_params.py b/src/cloudflare/types/api_gateway/discovery/operation_list_params.py index 0b33645439c..7326f3e09c1 100644 --- a/src/cloudflare/types/api_gateway/discovery/operation_list_params.py +++ b/src/cloudflare/types/api_gateway/discovery/operation_list_params.py @@ -33,7 +33,7 @@ class OperationListParams(TypedDict, total=False): order: Literal["host", "method", "endpoint", "traffic_stats.requests", "traffic_stats.last_updated"] """Field to order by""" - origin: Literal["ML", "SessionIdentifier"] + origin: Literal["ML", "SessionIdentifier", "LabelDiscovery"] """ Filter results to only include discovery results sourced from a particular discovery engine diff --git a/src/cloudflare/types/api_gateway/discovery_operation.py b/src/cloudflare/types/api_gateway/discovery_operation.py index 8c3fe0a8617..06271ce05a4 100644 --- a/src/cloudflare/types/api_gateway/discovery_operation.py +++ b/src/cloudflare/types/api_gateway/discovery_operation.py @@ -43,7 +43,7 @@ class DiscoveryOperation(BaseModel): method: Literal["GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "CONNECT", "PATCH", "TRACE"] """The HTTP method used to access the endpoint.""" - origin: List[Literal["ML", "SessionIdentifier"]] + origin: List[Literal["ML", "SessionIdentifier", "LabelDiscovery"]] """API discovery engine(s) that discovered this operation""" state: Literal["review", "saved", "ignored"] From 0a0e94ba98f78d08eeaec8b7a9716fab2bfc0986 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:54 -0400 Subject: [PATCH 042/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 52a4902251e..2f9ef0f4fd9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4b061435b9d0bfa9f8d240448ac05a8b5279b617e2e9a94f83b12330caaf3b20.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a01b2b83f6b7af1f70a7917fc93d65a27938ced6f0de30f6fb78150ca86115e6.yml From 44c1559839bf711f65b6abac0b90911472c07d92 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:54 -0400 Subject: [PATCH 043/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 2f9ef0f4fd9..2eab83dd58a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a01b2b83f6b7af1f70a7917fc93d65a27938ced6f0de30f6fb78150ca86115e6.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1a8c2b57e5ebea2de986cbc0dfeaf3789ef3d7d64eda79589121002ab82d34a0.yml From 06805500dec40e7910f49ddfa7abd1b8edf0e267 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:54 -0400 Subject: [PATCH 044/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 2eab83dd58a..c7316beafab 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1a8c2b57e5ebea2de986cbc0dfeaf3789ef3d7d64eda79589121002ab82d34a0.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-55725252e33e51679f43b88d857233c541dcbd32cbbdeadb981c4413710f9e1d.yml From 9014a2504756683944000e548302a00016b5a92d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:54 -0400 Subject: [PATCH 045/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index c7316beafab..8ec4ec86b6d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-55725252e33e51679f43b88d857233c541dcbd32cbbdeadb981c4413710f9e1d.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0018200fffa4419164eb069959902eb1dd99ab5b1ff3342c7fbfbcc1e6494c10.yml From 1b62d3e0b0bb356772d6a1bdcc0a426af64d40e9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:54 -0400 Subject: [PATCH 046/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 8ec4ec86b6d..d02af566c65 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0018200fffa4419164eb069959902eb1dd99ab5b1ff3342c7fbfbcc1e6494c10.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-de81c1bcfec729c7daa975bd5993c6885134e7352887839339ac28c78259543d.yml From f89618e1f509395b899cb9bb59284f6d0b555b46 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:54 -0400 Subject: [PATCH 047/849] feat(api): api update (#2563) --- .stats.yml | 2 +- src/cloudflare/resources/bot_management.py | 28 +++++++++++++++++++ .../bot_fight_mode_configuration.py | 3 ++ .../bot_fight_mode_configuration_param.py | 3 ++ .../bot_management_update_params.py | 12 ++++++++ .../subscription_configuration.py | 3 ++ .../subscription_configuration_param.py | 3 ++ ...bot_fight_mode_definitely_configuration.py | 3 ++ ...ght_mode_definitely_configuration_param.py | 3 ++ ...per_bot_fight_mode_likely_configuration.py | 3 ++ ...t_fight_mode_likely_configuration_param.py | 3 ++ tests/api_resources/test_bot_management.py | 8 ++++++ 12 files changed, 73 insertions(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index d02af566c65..da258f1d430 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-de81c1bcfec729c7daa975bd5993c6885134e7352887839339ac28c78259543d.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-384dacc9e1881c2947aebfa77615cbb350c8e538f01b57e78181188f25170262.yml diff --git a/src/cloudflare/resources/bot_management.py b/src/cloudflare/resources/bot_management.py index f9875019fe6..afb17b3d06b 100644 --- a/src/cloudflare/resources/bot_management.py +++ b/src/cloudflare/resources/bot_management.py @@ -56,6 +56,7 @@ def update( *, zone_id: str, ai_bots_protection: Literal["block", "disabled"] | NotGiven = NOT_GIVEN, + crawler_protection: Literal["enabled", "disabled"] | NotGiven = NOT_GIVEN, enable_js: bool | NotGiven = NOT_GIVEN, fight_mode: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -133,6 +134,8 @@ def update( ai_bots_protection: Enable rule to block AI Scrapers and Crawlers. + crawler_protection: Enable rule to punish AI Scrapers and Crawlers via a link maze. + enable_js: Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/). @@ -154,6 +157,7 @@ def update( *, zone_id: str, ai_bots_protection: Literal["block", "disabled"] | NotGiven = NOT_GIVEN, + crawler_protection: Literal["enabled", "disabled"] | NotGiven = NOT_GIVEN, enable_js: bool | NotGiven = NOT_GIVEN, optimize_wordpress: bool | NotGiven = NOT_GIVEN, sbfm_definitely_automated: Literal["allow", "block", "managed_challenge"] | NotGiven = NOT_GIVEN, @@ -234,6 +238,8 @@ def update( ai_bots_protection: Enable rule to block AI Scrapers and Crawlers. + crawler_protection: Enable rule to punish AI Scrapers and Crawlers via a link maze. + enable_js: Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/). @@ -263,6 +269,7 @@ def update( *, zone_id: str, ai_bots_protection: Literal["block", "disabled"] | NotGiven = NOT_GIVEN, + crawler_protection: Literal["enabled", "disabled"] | NotGiven = NOT_GIVEN, enable_js: bool | NotGiven = NOT_GIVEN, optimize_wordpress: bool | NotGiven = NOT_GIVEN, sbfm_definitely_automated: Literal["allow", "block", "managed_challenge"] | NotGiven = NOT_GIVEN, @@ -344,6 +351,8 @@ def update( ai_bots_protection: Enable rule to block AI Scrapers and Crawlers. + crawler_protection: Enable rule to punish AI Scrapers and Crawlers via a link maze. + enable_js: Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/). @@ -376,6 +385,7 @@ def update( zone_id: str, ai_bots_protection: Literal["block", "disabled"] | NotGiven = NOT_GIVEN, auto_update_model: bool | NotGiven = NOT_GIVEN, + crawler_protection: Literal["enabled", "disabled"] | NotGiven = NOT_GIVEN, enable_js: bool | NotGiven = NOT_GIVEN, suppress_session_score: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -457,6 +467,8 @@ def update( they are released. [Learn more.](https://developers.cloudflare.com/bots/reference/machine-learning-models#model-versions-and-release-notes) + crawler_protection: Enable rule to punish AI Scrapers and Crawlers via a link maze. + enable_js: Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/). @@ -479,6 +491,7 @@ def update( *, zone_id: str, ai_bots_protection: Literal["block", "disabled"] | NotGiven = NOT_GIVEN, + crawler_protection: Literal["enabled", "disabled"] | NotGiven = NOT_GIVEN, enable_js: bool | NotGiven = NOT_GIVEN, fight_mode: bool | NotGiven = NOT_GIVEN, optimize_wordpress: bool | NotGiven = NOT_GIVEN, @@ -504,6 +517,7 @@ def update( body=maybe_transform( { "ai_bots_protection": ai_bots_protection, + "crawler_protection": crawler_protection, "enable_js": enable_js, "fight_mode": fight_mode, "optimize_wordpress": optimize_wordpress, @@ -600,6 +614,7 @@ async def update( *, zone_id: str, ai_bots_protection: Literal["block", "disabled"] | NotGiven = NOT_GIVEN, + crawler_protection: Literal["enabled", "disabled"] | NotGiven = NOT_GIVEN, enable_js: bool | NotGiven = NOT_GIVEN, fight_mode: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -677,6 +692,8 @@ async def update( ai_bots_protection: Enable rule to block AI Scrapers and Crawlers. + crawler_protection: Enable rule to punish AI Scrapers and Crawlers via a link maze. + enable_js: Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/). @@ -698,6 +715,7 @@ async def update( *, zone_id: str, ai_bots_protection: Literal["block", "disabled"] | NotGiven = NOT_GIVEN, + crawler_protection: Literal["enabled", "disabled"] | NotGiven = NOT_GIVEN, enable_js: bool | NotGiven = NOT_GIVEN, optimize_wordpress: bool | NotGiven = NOT_GIVEN, sbfm_definitely_automated: Literal["allow", "block", "managed_challenge"] | NotGiven = NOT_GIVEN, @@ -778,6 +796,8 @@ async def update( ai_bots_protection: Enable rule to block AI Scrapers and Crawlers. + crawler_protection: Enable rule to punish AI Scrapers and Crawlers via a link maze. + enable_js: Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/). @@ -807,6 +827,7 @@ async def update( *, zone_id: str, ai_bots_protection: Literal["block", "disabled"] | NotGiven = NOT_GIVEN, + crawler_protection: Literal["enabled", "disabled"] | NotGiven = NOT_GIVEN, enable_js: bool | NotGiven = NOT_GIVEN, optimize_wordpress: bool | NotGiven = NOT_GIVEN, sbfm_definitely_automated: Literal["allow", "block", "managed_challenge"] | NotGiven = NOT_GIVEN, @@ -888,6 +909,8 @@ async def update( ai_bots_protection: Enable rule to block AI Scrapers and Crawlers. + crawler_protection: Enable rule to punish AI Scrapers and Crawlers via a link maze. + enable_js: Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/). @@ -920,6 +943,7 @@ async def update( zone_id: str, ai_bots_protection: Literal["block", "disabled"] | NotGiven = NOT_GIVEN, auto_update_model: bool | NotGiven = NOT_GIVEN, + crawler_protection: Literal["enabled", "disabled"] | NotGiven = NOT_GIVEN, enable_js: bool | NotGiven = NOT_GIVEN, suppress_session_score: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -1001,6 +1025,8 @@ async def update( they are released. [Learn more.](https://developers.cloudflare.com/bots/reference/machine-learning-models#model-versions-and-release-notes) + crawler_protection: Enable rule to punish AI Scrapers and Crawlers via a link maze. + enable_js: Use lightweight, invisible JavaScript detections to improve Bot Management. [Learn more about JavaScript Detections](https://developers.cloudflare.com/bots/reference/javascript-detections/). @@ -1023,6 +1049,7 @@ async def update( *, zone_id: str, ai_bots_protection: Literal["block", "disabled"] | NotGiven = NOT_GIVEN, + crawler_protection: Literal["enabled", "disabled"] | NotGiven = NOT_GIVEN, enable_js: bool | NotGiven = NOT_GIVEN, fight_mode: bool | NotGiven = NOT_GIVEN, optimize_wordpress: bool | NotGiven = NOT_GIVEN, @@ -1048,6 +1075,7 @@ async def update( body=await async_maybe_transform( { "ai_bots_protection": ai_bots_protection, + "crawler_protection": crawler_protection, "enable_js": enable_js, "fight_mode": fight_mode, "optimize_wordpress": optimize_wordpress, diff --git a/src/cloudflare/types/bot_management/bot_fight_mode_configuration.py b/src/cloudflare/types/bot_management/bot_fight_mode_configuration.py index ba9f80aa252..1321d2b5f99 100644 --- a/src/cloudflare/types/bot_management/bot_fight_mode_configuration.py +++ b/src/cloudflare/types/bot_management/bot_fight_mode_configuration.py @@ -38,6 +38,9 @@ class BotFightModeConfiguration(BaseModel): ai_bots_protection: Optional[Literal["block", "disabled"]] = None """Enable rule to block AI Scrapers and Crawlers.""" + crawler_protection: Optional[Literal["enabled", "disabled"]] = None + """Enable rule to punish AI Scrapers and Crawlers via a link maze.""" + enable_js: Optional[bool] = None """Use lightweight, invisible JavaScript detections to improve Bot Management. diff --git a/src/cloudflare/types/bot_management/bot_fight_mode_configuration_param.py b/src/cloudflare/types/bot_management/bot_fight_mode_configuration_param.py index f7fe6dfb956..4eb28780e1e 100644 --- a/src/cloudflare/types/bot_management/bot_fight_mode_configuration_param.py +++ b/src/cloudflare/types/bot_management/bot_fight_mode_configuration_param.py @@ -11,6 +11,9 @@ class BotFightModeConfigurationParam(TypedDict, total=False): ai_bots_protection: Literal["block", "disabled"] """Enable rule to block AI Scrapers and Crawlers.""" + crawler_protection: Literal["enabled", "disabled"] + """Enable rule to punish AI Scrapers and Crawlers via a link maze.""" + enable_js: bool """Use lightweight, invisible JavaScript detections to improve Bot Management. diff --git a/src/cloudflare/types/bot_management/bot_management_update_params.py b/src/cloudflare/types/bot_management/bot_management_update_params.py index 818cfc08349..a88961cd9a8 100644 --- a/src/cloudflare/types/bot_management/bot_management_update_params.py +++ b/src/cloudflare/types/bot_management/bot_management_update_params.py @@ -21,6 +21,9 @@ class BotFightModeConfiguration(TypedDict, total=False): ai_bots_protection: Literal["block", "disabled"] """Enable rule to block AI Scrapers and Crawlers.""" + crawler_protection: Literal["enabled", "disabled"] + """Enable rule to punish AI Scrapers and Crawlers via a link maze.""" + enable_js: bool """Use lightweight, invisible JavaScript detections to improve Bot Management. @@ -38,6 +41,9 @@ class SuperBotFightModeDefinitelyConfiguration(TypedDict, total=False): ai_bots_protection: Literal["block", "disabled"] """Enable rule to block AI Scrapers and Crawlers.""" + crawler_protection: Literal["enabled", "disabled"] + """Enable rule to punish AI Scrapers and Crawlers via a link maze.""" + enable_js: bool """Use lightweight, invisible JavaScript detections to improve Bot Management. @@ -68,6 +74,9 @@ class SuperBotFightModeLikelyConfiguration(TypedDict, total=False): ai_bots_protection: Literal["block", "disabled"] """Enable rule to block AI Scrapers and Crawlers.""" + crawler_protection: Literal["enabled", "disabled"] + """Enable rule to punish AI Scrapers and Crawlers via a link maze.""" + enable_js: bool """Use lightweight, invisible JavaScript detections to improve Bot Management. @@ -108,6 +117,9 @@ class SubscriptionConfiguration(TypedDict, total=False): [Learn more.](https://developers.cloudflare.com/bots/reference/machine-learning-models#model-versions-and-release-notes) """ + crawler_protection: Literal["enabled", "disabled"] + """Enable rule to punish AI Scrapers and Crawlers via a link maze.""" + enable_js: bool """Use lightweight, invisible JavaScript detections to improve Bot Management. diff --git a/src/cloudflare/types/bot_management/subscription_configuration.py b/src/cloudflare/types/bot_management/subscription_configuration.py index d321c6d23b4..8a874700038 100644 --- a/src/cloudflare/types/bot_management/subscription_configuration.py +++ b/src/cloudflare/types/bot_management/subscription_configuration.py @@ -45,6 +45,9 @@ class SubscriptionConfiguration(BaseModel): [Learn more.](https://developers.cloudflare.com/bots/reference/machine-learning-models#model-versions-and-release-notes) """ + crawler_protection: Optional[Literal["enabled", "disabled"]] = None + """Enable rule to punish AI Scrapers and Crawlers via a link maze.""" + enable_js: Optional[bool] = None """Use lightweight, invisible JavaScript detections to improve Bot Management. diff --git a/src/cloudflare/types/bot_management/subscription_configuration_param.py b/src/cloudflare/types/bot_management/subscription_configuration_param.py index 606e7d4fdc7..a58d9f30ac6 100644 --- a/src/cloudflare/types/bot_management/subscription_configuration_param.py +++ b/src/cloudflare/types/bot_management/subscription_configuration_param.py @@ -18,6 +18,9 @@ class SubscriptionConfigurationParam(TypedDict, total=False): [Learn more.](https://developers.cloudflare.com/bots/reference/machine-learning-models#model-versions-and-release-notes) """ + crawler_protection: Literal["enabled", "disabled"] + """Enable rule to punish AI Scrapers and Crawlers via a link maze.""" + enable_js: bool """Use lightweight, invisible JavaScript detections to improve Bot Management. diff --git a/src/cloudflare/types/bot_management/super_bot_fight_mode_definitely_configuration.py b/src/cloudflare/types/bot_management/super_bot_fight_mode_definitely_configuration.py index 8a67cacc8a4..63e9cbc33cf 100644 --- a/src/cloudflare/types/bot_management/super_bot_fight_mode_definitely_configuration.py +++ b/src/cloudflare/types/bot_management/super_bot_fight_mode_definitely_configuration.py @@ -23,6 +23,9 @@ class SuperBotFightModeDefinitelyConfiguration(BaseModel): ai_bots_protection: Optional[Literal["block", "disabled"]] = None """Enable rule to block AI Scrapers and Crawlers.""" + crawler_protection: Optional[Literal["enabled", "disabled"]] = None + """Enable rule to punish AI Scrapers and Crawlers via a link maze.""" + enable_js: Optional[bool] = None """Use lightweight, invisible JavaScript detections to improve Bot Management. diff --git a/src/cloudflare/types/bot_management/super_bot_fight_mode_definitely_configuration_param.py b/src/cloudflare/types/bot_management/super_bot_fight_mode_definitely_configuration_param.py index 115b89a430d..d8b195afaf4 100644 --- a/src/cloudflare/types/bot_management/super_bot_fight_mode_definitely_configuration_param.py +++ b/src/cloudflare/types/bot_management/super_bot_fight_mode_definitely_configuration_param.py @@ -11,6 +11,9 @@ class SuperBotFightModeDefinitelyConfigurationParam(TypedDict, total=False): ai_bots_protection: Literal["block", "disabled"] """Enable rule to block AI Scrapers and Crawlers.""" + crawler_protection: Literal["enabled", "disabled"] + """Enable rule to punish AI Scrapers and Crawlers via a link maze.""" + enable_js: bool """Use lightweight, invisible JavaScript detections to improve Bot Management. diff --git a/src/cloudflare/types/bot_management/super_bot_fight_mode_likely_configuration.py b/src/cloudflare/types/bot_management/super_bot_fight_mode_likely_configuration.py index a01f523c060..1547b01318c 100644 --- a/src/cloudflare/types/bot_management/super_bot_fight_mode_likely_configuration.py +++ b/src/cloudflare/types/bot_management/super_bot_fight_mode_likely_configuration.py @@ -17,6 +17,9 @@ class SuperBotFightModeLikelyConfiguration(BaseModel): ai_bots_protection: Optional[Literal["block", "disabled"]] = None """Enable rule to block AI Scrapers and Crawlers.""" + crawler_protection: Optional[Literal["enabled", "disabled"]] = None + """Enable rule to punish AI Scrapers and Crawlers via a link maze.""" + enable_js: Optional[bool] = None """Use lightweight, invisible JavaScript detections to improve Bot Management. diff --git a/src/cloudflare/types/bot_management/super_bot_fight_mode_likely_configuration_param.py b/src/cloudflare/types/bot_management/super_bot_fight_mode_likely_configuration_param.py index 346b6570fd1..6cb2e09143d 100644 --- a/src/cloudflare/types/bot_management/super_bot_fight_mode_likely_configuration_param.py +++ b/src/cloudflare/types/bot_management/super_bot_fight_mode_likely_configuration_param.py @@ -11,6 +11,9 @@ class SuperBotFightModeLikelyConfigurationParam(TypedDict, total=False): ai_bots_protection: Literal["block", "disabled"] """Enable rule to block AI Scrapers and Crawlers.""" + crawler_protection: Literal["enabled", "disabled"] + """Enable rule to punish AI Scrapers and Crawlers via a link maze.""" + enable_js: bool """Use lightweight, invisible JavaScript detections to improve Bot Management. diff --git a/tests/api_resources/test_bot_management.py b/tests/api_resources/test_bot_management.py index cc0d1763b67..45478cc0021 100644 --- a/tests/api_resources/test_bot_management.py +++ b/tests/api_resources/test_bot_management.py @@ -32,6 +32,7 @@ def test_method_update_with_all_params_overload_1(self, client: Cloudflare) -> N bot_management = client.bot_management.update( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ai_bots_protection="block", + crawler_protection="enabled", enable_js=True, fight_mode=True, ) @@ -80,6 +81,7 @@ def test_method_update_with_all_params_overload_2(self, client: Cloudflare) -> N bot_management = client.bot_management.update( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ai_bots_protection="block", + crawler_protection="enabled", enable_js=True, optimize_wordpress=True, sbfm_definitely_automated="allow", @@ -131,6 +133,7 @@ def test_method_update_with_all_params_overload_3(self, client: Cloudflare) -> N bot_management = client.bot_management.update( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ai_bots_protection="block", + crawler_protection="enabled", enable_js=True, optimize_wordpress=True, sbfm_definitely_automated="allow", @@ -184,6 +187,7 @@ def test_method_update_with_all_params_overload_4(self, client: Cloudflare) -> N zone_id="023e105f4ecef8ad9ca31a8372d0c353", ai_bots_protection="block", auto_update_model=True, + crawler_protection="enabled", enable_js=True, suppress_session_score=False, ) @@ -274,6 +278,7 @@ async def test_method_update_with_all_params_overload_1(self, async_client: Asyn bot_management = await async_client.bot_management.update( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ai_bots_protection="block", + crawler_protection="enabled", enable_js=True, fight_mode=True, ) @@ -322,6 +327,7 @@ async def test_method_update_with_all_params_overload_2(self, async_client: Asyn bot_management = await async_client.bot_management.update( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ai_bots_protection="block", + crawler_protection="enabled", enable_js=True, optimize_wordpress=True, sbfm_definitely_automated="allow", @@ -373,6 +379,7 @@ async def test_method_update_with_all_params_overload_3(self, async_client: Asyn bot_management = await async_client.bot_management.update( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ai_bots_protection="block", + crawler_protection="enabled", enable_js=True, optimize_wordpress=True, sbfm_definitely_automated="allow", @@ -426,6 +433,7 @@ async def test_method_update_with_all_params_overload_4(self, async_client: Asyn zone_id="023e105f4ecef8ad9ca31a8372d0c353", ai_bots_protection="block", auto_update_model=True, + crawler_protection="enabled", enable_js=True, suppress_session_score=False, ) From 129ad31e34c75caae04aa0aaa6e27eda84e1cd67 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:54 -0400 Subject: [PATCH 048/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index da258f1d430..160ae1150dc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-384dacc9e1881c2947aebfa77615cbb350c8e538f01b57e78181188f25170262.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-97e92537157337cce345550608f81619dd88a23f331b8c694cd9ab909a3cd11e.yml From 12d8b2aa534a37b98b94158982b1179718582d80 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:54 -0400 Subject: [PATCH 049/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 160ae1150dc..6e1a7c4a254 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-97e92537157337cce345550608f81619dd88a23f331b8c694cd9ab909a3cd11e.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-56c8c4681ec0034d34b7523eb5a01f17b921f95cf3f1eb3cabb19b8289651955.yml From 8a6a86ec963ccb5f089c2983e7b5fe12b279de9f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:54 -0400 Subject: [PATCH 050/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 6e1a7c4a254..6e8a04fe2c1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-56c8c4681ec0034d34b7523eb5a01f17b921f95cf3f1eb3cabb19b8289651955.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-34662cd99cbc84ce6810158097c21097510788037fa4ecf52a8e39a0c5874ac2.yml From 434c9bcfdc8e7973fa89290ece32ce040e3603f4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:55 -0400 Subject: [PATCH 051/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 6e8a04fe2c1..b22dd2f9ad4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-34662cd99cbc84ce6810158097c21097510788037fa4ecf52a8e39a0c5874ac2.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e980a333f96df4603c4ae43798cbea3eb74cf20bbde93b23fae86713fa214566.yml From 18e260729b07ca3adec338213c7428909ef236ba Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:55 -0400 Subject: [PATCH 052/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index b22dd2f9ad4..e2df1d578cc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e980a333f96df4603c4ae43798cbea3eb74cf20bbde93b23fae86713fa214566.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e084b4cb6f14cdd6e76111966f2b281ac4e06b0e292ffd626ff7b5de2f404405.yml From 2c18c7b56b159183497096360c85192127a4be6c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:55 -0400 Subject: [PATCH 053/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index e2df1d578cc..6f6ba9d1f55 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e084b4cb6f14cdd6e76111966f2b281ac4e06b0e292ffd626ff7b5de2f404405.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-283308f6d2969594210c2f5d8a15cb612a59c46328b3a8a7aadae3e7f4d80c4a.yml From 7b4b6ba0ac45131aa7a1d2eab9449b3ad7e4ae8f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:55 -0400 Subject: [PATCH 054/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 6f6ba9d1f55..4859fade735 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-283308f6d2969594210c2f5d8a15cb612a59c46328b3a8a7aadae3e7f4d80c4a.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-9b27421db9f8e3e386989b473973040fbd110e4c2e244a7eaf5f607ef924ca28.yml From 9f5db76d67a8f406301a8dcf3470b78b85caaabc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:55 -0400 Subject: [PATCH 055/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 4859fade735..837224e7229 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-9b27421db9f8e3e386989b473973040fbd110e4c2e244a7eaf5f607ef924ca28.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d008ba4a9f1ce7bb329c3f176a31a4a74cab15cb712f1e23ffbeb463ebf5b6a0.yml From 5376e01a038bd0a0a2bc0fdc7f6a048b08167b47 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:55 -0400 Subject: [PATCH 056/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 837224e7229..5728606a76e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d008ba4a9f1ce7bb329c3f176a31a4a74cab15cb712f1e23ffbeb463ebf5b6a0.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4ce13b2b2ed3b41337d0b38899e29c63e3a245e722c3799b5c9cf663b8389644.yml From e082e704724f483e6202c232011d20590fd0e55d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:55 -0400 Subject: [PATCH 057/849] feat(api): api update (#2564) --- .stats.yml | 4 +- api.md | 7 +- .../resources/custom_nameservers.py | 85 ------------------- .../types/custom_nameservers/__init__.py | 3 - .../custom_nameserver_availabilty_response.py | 7 -- .../api_resources/test_custom_nameservers.py | 81 ------------------ 6 files changed, 3 insertions(+), 184 deletions(-) delete mode 100644 src/cloudflare/types/custom_nameservers/custom_nameserver_availabilty_response.py diff --git a/.stats.yml b/.stats.yml index 5728606a76e..401b54646bf 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ -configured_endpoints: 1655 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4ce13b2b2ed3b41337d0b38899e29c63e3a245e722c3799b5c9cf663b8389644.yml +configured_endpoints: 1654 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e5ba94f71066283ec6549262d34cdcdcc78538d73501f175224c3a85cb64ddcb.yml diff --git a/api.md b/api.md index 50bdbfeb44b..c9f812bbae4 100644 --- a/api.md +++ b/api.md @@ -985,18 +985,13 @@ Methods: Types: ```python -from cloudflare.types.custom_nameservers import ( - CustomNameserver, - CustomNameserverDeleteResponse, - CustomNameserverAvailabiltyResponse, -) +from cloudflare.types.custom_nameservers import CustomNameserver, CustomNameserverDeleteResponse ``` Methods: - client.custom_nameservers.create(\*, account_id, \*\*params) -> Optional[CustomNameserver] - client.custom_nameservers.delete(custom_ns_id, \*, account_id) -> SyncSinglePage[CustomNameserverDeleteResponse] -- client.custom_nameservers.availabilty(\*, account_id) -> SyncSinglePage[CustomNameserverAvailabiltyResponse] - client.custom_nameservers.get(\*, account_id) -> SyncSinglePage[CustomNameserver] # DNSFirewall diff --git a/src/cloudflare/resources/custom_nameservers.py b/src/cloudflare/resources/custom_nameservers.py index 8899e5b2e57..6c071268ce7 100644 --- a/src/cloudflare/resources/custom_nameservers.py +++ b/src/cloudflare/resources/custom_nameservers.py @@ -25,7 +25,6 @@ from ..types.custom_nameservers import custom_nameserver_create_params from ..types.custom_nameservers.custom_nameserver import CustomNameserver from ..types.custom_nameservers.custom_nameserver_delete_response import CustomNameserverDeleteResponse -from ..types.custom_nameservers.custom_nameserver_availabilty_response import CustomNameserverAvailabiltyResponse __all__ = ["CustomNameserversResource", "AsyncCustomNameserversResource"] @@ -144,42 +143,6 @@ def delete( method="delete", ) - def availabilty( - self, - *, - account_id: str, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> SyncSinglePage[CustomNameserverAvailabiltyResponse]: - """ - Get Eligible Zones for Account Custom Nameservers - - Args: - account_id: Account identifier tag. - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not account_id: - raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - return self._get_api_list( - f"/accounts/{account_id}/custom_ns/availability", - page=SyncSinglePage[CustomNameserverAvailabiltyResponse], - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - model=str, - ) - def get( self, *, @@ -331,42 +294,6 @@ def delete( method="delete", ) - def availabilty( - self, - *, - account_id: str, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> AsyncPaginator[CustomNameserverAvailabiltyResponse, AsyncSinglePage[CustomNameserverAvailabiltyResponse]]: - """ - Get Eligible Zones for Account Custom Nameservers - - Args: - account_id: Account identifier tag. - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not account_id: - raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - return self._get_api_list( - f"/accounts/{account_id}/custom_ns/availability", - page=AsyncSinglePage[CustomNameserverAvailabiltyResponse], - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - model=str, - ) - def get( self, *, @@ -414,9 +341,6 @@ def __init__(self, custom_nameservers: CustomNameserversResource) -> None: self.delete = to_raw_response_wrapper( custom_nameservers.delete, ) - self.availabilty = to_raw_response_wrapper( - custom_nameservers.availabilty, - ) self.get = to_raw_response_wrapper( custom_nameservers.get, ) @@ -432,9 +356,6 @@ def __init__(self, custom_nameservers: AsyncCustomNameserversResource) -> None: self.delete = async_to_raw_response_wrapper( custom_nameservers.delete, ) - self.availabilty = async_to_raw_response_wrapper( - custom_nameservers.availabilty, - ) self.get = async_to_raw_response_wrapper( custom_nameservers.get, ) @@ -450,9 +371,6 @@ def __init__(self, custom_nameservers: CustomNameserversResource) -> None: self.delete = to_streamed_response_wrapper( custom_nameservers.delete, ) - self.availabilty = to_streamed_response_wrapper( - custom_nameservers.availabilty, - ) self.get = to_streamed_response_wrapper( custom_nameservers.get, ) @@ -468,9 +386,6 @@ def __init__(self, custom_nameservers: AsyncCustomNameserversResource) -> None: self.delete = async_to_streamed_response_wrapper( custom_nameservers.delete, ) - self.availabilty = async_to_streamed_response_wrapper( - custom_nameservers.availabilty, - ) self.get = async_to_streamed_response_wrapper( custom_nameservers.get, ) diff --git a/src/cloudflare/types/custom_nameservers/__init__.py b/src/cloudflare/types/custom_nameservers/__init__.py index bf39d0d8ff1..8f7f4302b4b 100644 --- a/src/cloudflare/types/custom_nameservers/__init__.py +++ b/src/cloudflare/types/custom_nameservers/__init__.py @@ -5,6 +5,3 @@ from .custom_nameserver import CustomNameserver as CustomNameserver from .custom_nameserver_create_params import CustomNameserverCreateParams as CustomNameserverCreateParams from .custom_nameserver_delete_response import CustomNameserverDeleteResponse as CustomNameserverDeleteResponse -from .custom_nameserver_availabilty_response import ( - CustomNameserverAvailabiltyResponse as CustomNameserverAvailabiltyResponse, -) diff --git a/src/cloudflare/types/custom_nameservers/custom_nameserver_availabilty_response.py b/src/cloudflare/types/custom_nameservers/custom_nameserver_availabilty_response.py deleted file mode 100644 index 9077d181a34..00000000000 --- a/src/cloudflare/types/custom_nameservers/custom_nameserver_availabilty_response.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import TypeAlias - -__all__ = ["CustomNameserverAvailabiltyResponse"] - -CustomNameserverAvailabiltyResponse: TypeAlias = str diff --git a/tests/api_resources/test_custom_nameservers.py b/tests/api_resources/test_custom_nameservers.py index 7616efab5f3..942468fa896 100644 --- a/tests/api_resources/test_custom_nameservers.py +++ b/tests/api_resources/test_custom_nameservers.py @@ -13,7 +13,6 @@ from cloudflare.types.custom_nameservers import ( CustomNameserver, CustomNameserverDeleteResponse, - CustomNameserverAvailabiltyResponse, ) base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -121,46 +120,6 @@ def test_path_params_delete(self, client: Cloudflare) -> None: account_id="372e67954025e0ba6aaa6d586b9e0b59", ) - @parametrize - def test_method_availabilty(self, client: Cloudflare) -> None: - custom_nameserver = client.custom_nameservers.availabilty( - account_id="372e67954025e0ba6aaa6d586b9e0b59", - ) - assert_matches_type(SyncSinglePage[CustomNameserverAvailabiltyResponse], custom_nameserver, path=["response"]) - - @parametrize - def test_raw_response_availabilty(self, client: Cloudflare) -> None: - response = client.custom_nameservers.with_raw_response.availabilty( - account_id="372e67954025e0ba6aaa6d586b9e0b59", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - custom_nameserver = response.parse() - assert_matches_type(SyncSinglePage[CustomNameserverAvailabiltyResponse], custom_nameserver, path=["response"]) - - @parametrize - def test_streaming_response_availabilty(self, client: Cloudflare) -> None: - with client.custom_nameservers.with_streaming_response.availabilty( - account_id="372e67954025e0ba6aaa6d586b9e0b59", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - custom_nameserver = response.parse() - assert_matches_type( - SyncSinglePage[CustomNameserverAvailabiltyResponse], custom_nameserver, path=["response"] - ) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_availabilty(self, client: Cloudflare) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): - client.custom_nameservers.with_raw_response.availabilty( - account_id="", - ) - @parametrize def test_method_get(self, client: Cloudflare) -> None: custom_nameserver = client.custom_nameservers.get( @@ -302,46 +261,6 @@ async def test_path_params_delete(self, async_client: AsyncCloudflare) -> None: account_id="372e67954025e0ba6aaa6d586b9e0b59", ) - @parametrize - async def test_method_availabilty(self, async_client: AsyncCloudflare) -> None: - custom_nameserver = await async_client.custom_nameservers.availabilty( - account_id="372e67954025e0ba6aaa6d586b9e0b59", - ) - assert_matches_type(AsyncSinglePage[CustomNameserverAvailabiltyResponse], custom_nameserver, path=["response"]) - - @parametrize - async def test_raw_response_availabilty(self, async_client: AsyncCloudflare) -> None: - response = await async_client.custom_nameservers.with_raw_response.availabilty( - account_id="372e67954025e0ba6aaa6d586b9e0b59", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - custom_nameserver = await response.parse() - assert_matches_type(AsyncSinglePage[CustomNameserverAvailabiltyResponse], custom_nameserver, path=["response"]) - - @parametrize - async def test_streaming_response_availabilty(self, async_client: AsyncCloudflare) -> None: - async with async_client.custom_nameservers.with_streaming_response.availabilty( - account_id="372e67954025e0ba6aaa6d586b9e0b59", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - custom_nameserver = await response.parse() - assert_matches_type( - AsyncSinglePage[CustomNameserverAvailabiltyResponse], custom_nameserver, path=["response"] - ) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_availabilty(self, async_client: AsyncCloudflare) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): - await async_client.custom_nameservers.with_raw_response.availabilty( - account_id="", - ) - @parametrize async def test_method_get(self, async_client: AsyncCloudflare) -> None: custom_nameserver = await async_client.custom_nameservers.get( From 8628ff138e2387e7ddf8c6dba8a4f26000c269a6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:55 -0400 Subject: [PATCH 058/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 401b54646bf..613b88da439 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e5ba94f71066283ec6549262d34cdcdcc78538d73501f175224c3a85cb64ddcb.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-642be735f6bf66c9b0d344b23b19ddd57adb658776c0d4c8d661314091b93981.yml From ee0b98803cb6c5065b27714aa5d3f996221098a2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:55 -0400 Subject: [PATCH 059/849] feat(api): api update (#2565) --- .stats.yml | 2 +- .../resources/zero_trust/gateway/rules.py | 4 ++ .../zero_trust/gateway/block_page_settings.py | 40 ++++++++++++++---- .../gateway/block_page_settings_param.py | 41 +++++++++++++++---- .../types/zero_trust/gateway/gateway_rule.py | 1 + .../zero_trust/gateway/rule_create_params.py | 1 + .../types/zero_trust/gateway/rule_setting.py | 15 +++++++ .../zero_trust/gateway/rule_setting_param.py | 17 +++++++- .../zero_trust/gateway/rule_update_params.py | 1 + .../zero_trust/gateway/test_configurations.py | 12 ++++++ .../zero_trust/gateway/test_rules.py | 16 ++++++++ 11 files changed, 131 insertions(+), 19 deletions(-) diff --git a/.stats.yml b/.stats.yml index 613b88da439..ace2e5a3a98 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-642be735f6bf66c9b0d344b23b19ddd57adb658776c0d4c8d661314091b93981.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4a27924f72bf1a019361f1c5bfb654c5f4ec52709d48af73a149ef057d60586a.yml diff --git a/src/cloudflare/resources/zero_trust/gateway/rules.py b/src/cloudflare/resources/zero_trust/gateway/rules.py index 337b4beb990..35fa57fb723 100644 --- a/src/cloudflare/resources/zero_trust/gateway/rules.py +++ b/src/cloudflare/resources/zero_trust/gateway/rules.py @@ -72,6 +72,7 @@ def create( "egress", "resolve", "quarantine", + "redirect", ], name: str, description: str | NotGiven = NOT_GIVEN, @@ -187,6 +188,7 @@ def update( "egress", "resolve", "quarantine", + "redirect", ], name: str, description: str | NotGiven = NOT_GIVEN, @@ -490,6 +492,7 @@ async def create( "egress", "resolve", "quarantine", + "redirect", ], name: str, description: str | NotGiven = NOT_GIVEN, @@ -605,6 +608,7 @@ async def update( "egress", "resolve", "quarantine", + "redirect", ], name: str, description: str | NotGiven = NOT_GIVEN, diff --git a/src/cloudflare/types/zero_trust/gateway/block_page_settings.py b/src/cloudflare/types/zero_trust/gateway/block_page_settings.py index 403fbcbb70f..2b587764cff 100644 --- a/src/cloudflare/types/zero_trust/gateway/block_page_settings.py +++ b/src/cloudflare/types/zero_trust/gateway/block_page_settings.py @@ -1,6 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Optional +from typing_extensions import Literal from ...._models import BaseModel @@ -9,28 +10,51 @@ class BlockPageSettings(BaseModel): background_color: Optional[str] = None - """Block page background color in #rrggbb format.""" + """ + If mode is customized_block_page: block page background color in #rrggbb format. + """ enabled: Optional[bool] = None """Enable only cipher suites and TLS versions compliant with FIPS 140-2.""" footer_text: Optional[str] = None - """Block page footer text.""" + """If mode is customized_block_page: block page footer text.""" header_text: Optional[str] = None - """Block page header text.""" + """If mode is customized_block_page: block page header text.""" + + include_context: Optional[bool] = None + """ + If mode is redirect_uri: when enabled, context will be appended to target_uri as + query parameters. + """ logo_path: Optional[str] = None - """Full URL to the logo file.""" + """If mode is customized_block_page: full URL to the logo file.""" mailto_address: Optional[str] = None - """Admin email for users to contact.""" + """If mode is customized_block_page: admin email for users to contact.""" mailto_subject: Optional[str] = None - """Subject line for emails created from block page.""" + """ + If mode is customized_block_page: subject line for emails created from block + page. + """ + + mode: Optional[Literal["customized_block_page", "redirect_uri"]] = None + """ + Controls whether the user is redirected to a Cloudflare-hosted block page or to + a customer-provided URI. + """ name: Optional[str] = None - """Block page title.""" + """If mode is customized_block_page: block page title.""" suppress_footer: Optional[bool] = None - """Suppress detailed info at the bottom of the block page.""" + """ + If mode is customized_block_page: suppress detailed info at the bottom of the + block page. + """ + + target_uri: Optional[str] = None + """If mode is redirect_uri: URI to which the user should be redirected.""" diff --git a/src/cloudflare/types/zero_trust/gateway/block_page_settings_param.py b/src/cloudflare/types/zero_trust/gateway/block_page_settings_param.py index 8adca2cfdb0..669f363e311 100644 --- a/src/cloudflare/types/zero_trust/gateway/block_page_settings_param.py +++ b/src/cloudflare/types/zero_trust/gateway/block_page_settings_param.py @@ -2,35 +2,58 @@ from __future__ import annotations -from typing_extensions import TypedDict +from typing_extensions import Literal, TypedDict __all__ = ["BlockPageSettingsParam"] class BlockPageSettingsParam(TypedDict, total=False): background_color: str - """Block page background color in #rrggbb format.""" + """ + If mode is customized_block_page: block page background color in #rrggbb format. + """ enabled: bool """Enable only cipher suites and TLS versions compliant with FIPS 140-2.""" footer_text: str - """Block page footer text.""" + """If mode is customized_block_page: block page footer text.""" header_text: str - """Block page header text.""" + """If mode is customized_block_page: block page header text.""" + + include_context: bool + """ + If mode is redirect_uri: when enabled, context will be appended to target_uri as + query parameters. + """ logo_path: str - """Full URL to the logo file.""" + """If mode is customized_block_page: full URL to the logo file.""" mailto_address: str - """Admin email for users to contact.""" + """If mode is customized_block_page: admin email for users to contact.""" mailto_subject: str - """Subject line for emails created from block page.""" + """ + If mode is customized_block_page: subject line for emails created from block + page. + """ + + mode: Literal["customized_block_page", "redirect_uri"] + """ + Controls whether the user is redirected to a Cloudflare-hosted block page or to + a customer-provided URI. + """ name: str - """Block page title.""" + """If mode is customized_block_page: block page title.""" suppress_footer: bool - """Suppress detailed info at the bottom of the block page.""" + """ + If mode is customized_block_page: suppress detailed info at the bottom of the + block page. + """ + + target_uri: str + """If mode is redirect_uri: URI to which the user should be redirected.""" diff --git a/src/cloudflare/types/zero_trust/gateway/gateway_rule.py b/src/cloudflare/types/zero_trust/gateway/gateway_rule.py index ba61ea684bd..5670f46cd24 100644 --- a/src/cloudflare/types/zero_trust/gateway/gateway_rule.py +++ b/src/cloudflare/types/zero_trust/gateway/gateway_rule.py @@ -56,6 +56,7 @@ class GatewayRule(BaseModel): "egress", "resolve", "quarantine", + "redirect", ] ] = None """ diff --git a/src/cloudflare/types/zero_trust/gateway/rule_create_params.py b/src/cloudflare/types/zero_trust/gateway/rule_create_params.py index 8d898ad2c1a..3ed64930747 100644 --- a/src/cloudflare/types/zero_trust/gateway/rule_create_params.py +++ b/src/cloudflare/types/zero_trust/gateway/rule_create_params.py @@ -34,6 +34,7 @@ class RuleCreateParams(TypedDict, total=False): "egress", "resolve", "quarantine", + "redirect", ] ] """ diff --git a/src/cloudflare/types/zero_trust/gateway/rule_setting.py b/src/cloudflare/types/zero_trust/gateway/rule_setting.py index 82aa8607440..8822481e6be 100644 --- a/src/cloudflare/types/zero_trust/gateway/rule_setting.py +++ b/src/cloudflare/types/zero_trust/gateway/rule_setting.py @@ -20,6 +20,7 @@ "NotificationSettings", "PayloadLog", "Quarantine", + "Redirect", "ResolveDNSInternally", "UntrustedCERT", ] @@ -153,6 +154,17 @@ class Quarantine(BaseModel): """Types of files to sandbox.""" +class Redirect(BaseModel): + target_uri: str + """URI to which the user will be redirected""" + + preserve_path_and_query: Optional[bool] = None + """ + If true, the path and query parameters from the original request will be + appended to target_uri + """ + + class ResolveDNSInternally(BaseModel): fallback: Optional[Literal["none", "public_dns"]] = None """ @@ -262,6 +274,9 @@ class RuleSetting(BaseModel): quarantine: Optional[Quarantine] = None """Settings that apply to quarantine rules""" + redirect: Optional[Redirect] = None + """Settings that apply to redirect rules""" + resolve_dns_internally: Optional[ResolveDNSInternally] = None """ Configure to forward the query to the internal DNS service, passing the diff --git a/src/cloudflare/types/zero_trust/gateway/rule_setting_param.py b/src/cloudflare/types/zero_trust/gateway/rule_setting_param.py index 68257df6bde..cdd581af8ac 100644 --- a/src/cloudflare/types/zero_trust/gateway/rule_setting_param.py +++ b/src/cloudflare/types/zero_trust/gateway/rule_setting_param.py @@ -3,7 +3,7 @@ from __future__ import annotations from typing import Dict, List, Iterable -from typing_extensions import Literal, TypedDict +from typing_extensions import Literal, Required, TypedDict from .dns_resolver_settings_v4_param import DNSResolverSettingsV4Param from .dns_resolver_settings_v6_param import DNSResolverSettingsV6Param @@ -19,6 +19,7 @@ "NotificationSettings", "PayloadLog", "Quarantine", + "Redirect", "ResolveDNSInternally", "UntrustedCERT", ] @@ -152,6 +153,17 @@ class Quarantine(TypedDict, total=False): """Types of files to sandbox.""" +class Redirect(TypedDict, total=False): + target_uri: Required[str] + """URI to which the user will be redirected""" + + preserve_path_and_query: bool + """ + If true, the path and query parameters from the original request will be + appended to target_uri + """ + + class ResolveDNSInternally(TypedDict, total=False): fallback: Literal["none", "public_dns"] """ @@ -261,6 +273,9 @@ class RuleSettingParam(TypedDict, total=False): quarantine: Quarantine """Settings that apply to quarantine rules""" + redirect: Redirect + """Settings that apply to redirect rules""" + resolve_dns_internally: ResolveDNSInternally """ Configure to forward the query to the internal DNS service, passing the diff --git a/src/cloudflare/types/zero_trust/gateway/rule_update_params.py b/src/cloudflare/types/zero_trust/gateway/rule_update_params.py index ffb753ef599..95d3ed94b27 100644 --- a/src/cloudflare/types/zero_trust/gateway/rule_update_params.py +++ b/src/cloudflare/types/zero_trust/gateway/rule_update_params.py @@ -34,6 +34,7 @@ class RuleUpdateParams(TypedDict, total=False): "egress", "resolve", "quarantine", + "redirect", ] ] """ diff --git a/tests/api_resources/zero_trust/gateway/test_configurations.py b/tests/api_resources/zero_trust/gateway/test_configurations.py index ac9f91abf09..20db0e2f65a 100644 --- a/tests/api_resources/zero_trust/gateway/test_configurations.py +++ b/tests/api_resources/zero_trust/gateway/test_configurations.py @@ -49,11 +49,14 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: "enabled": True, "footer_text": "--footer--", "header_text": "--header--", + "include_context": True, "logo_path": "https://logos.com/a.png", "mailto_address": "admin@example.com", "mailto_subject": "Blocked User Inquiry", + "mode": "customized_block_page", "name": "Cloudflare", "suppress_footer": False, + "target_uri": "https://example.com", }, "body_scanning": {"inspection_mode": "deep"}, "browser_isolation": { @@ -136,11 +139,14 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: "enabled": True, "footer_text": "--footer--", "header_text": "--header--", + "include_context": True, "logo_path": "https://logos.com/a.png", "mailto_address": "admin@example.com", "mailto_subject": "Blocked User Inquiry", + "mode": "customized_block_page", "name": "Cloudflare", "suppress_footer": False, + "target_uri": "https://example.com", }, "body_scanning": {"inspection_mode": "deep"}, "browser_isolation": { @@ -265,11 +271,14 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare "enabled": True, "footer_text": "--footer--", "header_text": "--header--", + "include_context": True, "logo_path": "https://logos.com/a.png", "mailto_address": "admin@example.com", "mailto_subject": "Blocked User Inquiry", + "mode": "customized_block_page", "name": "Cloudflare", "suppress_footer": False, + "target_uri": "https://example.com", }, "body_scanning": {"inspection_mode": "deep"}, "browser_isolation": { @@ -352,11 +361,14 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) "enabled": True, "footer_text": "--footer--", "header_text": "--header--", + "include_context": True, "logo_path": "https://logos.com/a.png", "mailto_address": "admin@example.com", "mailto_subject": "Blocked User Inquiry", + "mode": "customized_block_page", "name": "Cloudflare", "suppress_footer": False, + "target_uri": "https://example.com", }, "body_scanning": {"inspection_mode": "deep"}, "browser_isolation": { diff --git a/tests/api_resources/zero_trust/gateway/test_rules.py b/tests/api_resources/zero_trust/gateway/test_rules.py index 21f857c75bd..deb98136087 100644 --- a/tests/api_resources/zero_trust/gateway/test_rules.py +++ b/tests/api_resources/zero_trust/gateway/test_rules.py @@ -112,6 +112,10 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: "override_ips": ["1.1.1.1", "2.2.2.2"], "payload_log": {"enabled": True}, "quarantine": {"file_types": ["exe"]}, + "redirect": { + "target_uri": "https://example.com", + "preserve_path_and_query": True, + }, "resolve_dns_internally": { "fallback": "none", "view_id": "view_id", @@ -263,6 +267,10 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: "override_ips": ["1.1.1.1", "2.2.2.2"], "payload_log": {"enabled": True}, "quarantine": {"file_types": ["exe"]}, + "redirect": { + "target_uri": "https://example.com", + "preserve_path_and_query": True, + }, "resolve_dns_internally": { "fallback": "none", "view_id": "view_id", @@ -609,6 +617,10 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare "override_ips": ["1.1.1.1", "2.2.2.2"], "payload_log": {"enabled": True}, "quarantine": {"file_types": ["exe"]}, + "redirect": { + "target_uri": "https://example.com", + "preserve_path_and_query": True, + }, "resolve_dns_internally": { "fallback": "none", "view_id": "view_id", @@ -760,6 +772,10 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare "override_ips": ["1.1.1.1", "2.2.2.2"], "payload_log": {"enabled": True}, "quarantine": {"file_types": ["exe"]}, + "redirect": { + "target_uri": "https://example.com", + "preserve_path_and_query": True, + }, "resolve_dns_internally": { "fallback": "none", "view_id": "view_id", From c3a6b8b8ce31c721263f0b9da43322d0c3a9b1cf Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:56 -0400 Subject: [PATCH 060/849] feat(api): api update (#2566) --- .stats.yml | 2 +- .../addressing/prefixes/service_bindings.py | 10 ++++++---- src/cloudflare/types/workers/script_update_params.py | 12 ++++++++++++ .../dispatch/namespaces/script_update_params.py | 12 ++++++++++++ tests/api_resources/workers/test_scripts.py | 4 ++++ .../dispatch/namespaces/test_scripts.py | 4 ++++ 6 files changed, 39 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index ace2e5a3a98..84340f4d465 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4a27924f72bf1a019361f1c5bfb654c5f4ec52709d48af73a149ef057d60586a.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-67d7c57a8708946887e9f461dfa953f74dd1b602c01a3b3e331cfeae0f4e2a2a.yml diff --git a/src/cloudflare/resources/addressing/prefixes/service_bindings.py b/src/cloudflare/resources/addressing/prefixes/service_bindings.py index 053cdd351c4..cdcd528951e 100644 --- a/src/cloudflare/resources/addressing/prefixes/service_bindings.py +++ b/src/cloudflare/resources/addressing/prefixes/service_bindings.py @@ -66,8 +66,9 @@ def create( """ Creates a new Service Binding, routing traffic to IPs within the given CIDR to a service running on Cloudflare's network. **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. + prefixes currently configured with a Magic Transit/Cloudflare CDN/Cloudflare + Spectrum service binding, and only allows creating upgrade service bindings for + the Cloudflare CDN or Cloudflare Spectrum. Args: account_id: Identifier of a Cloudflare account. @@ -289,8 +290,9 @@ async def create( """ Creates a new Service Binding, routing traffic to IPs within the given CIDR to a service running on Cloudflare's network. **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. + prefixes currently configured with a Magic Transit/Cloudflare CDN/Cloudflare + Spectrum service binding, and only allows creating upgrade service bindings for + the Cloudflare CDN or Cloudflare Spectrum. Args: account_id: Identifier of a Cloudflare account. diff --git a/src/cloudflare/types/workers/script_update_params.py b/src/cloudflare/types/workers/script_update_params.py index 7f811178335..423e1607576 100644 --- a/src/cloudflare/types/workers/script_update_params.py +++ b/src/cloudflare/types/workers/script_update_params.py @@ -52,6 +52,18 @@ class ScriptUpdateParams(TypedDict, total=False): class MetadataAssetsConfig(TypedDict, total=False): + _headers: str + """ + The contents of a \\__headers file (used to attach custom headers on asset + responses) + """ + + _redirects: str + """ + The contents of a \\__redirects file (used to apply redirects or proxy paths ahead + of asset serving) + """ + html_handling: Literal["auto-trailing-slash", "force-trailing-slash", "drop-trailing-slash", "none"] """Determines the redirects and rewrites of requests for HTML content.""" diff --git a/src/cloudflare/types/workers_for_platforms/dispatch/namespaces/script_update_params.py b/src/cloudflare/types/workers_for_platforms/dispatch/namespaces/script_update_params.py index 10300b60f5d..b8b5e1b1b8b 100644 --- a/src/cloudflare/types/workers_for_platforms/dispatch/namespaces/script_update_params.py +++ b/src/cloudflare/types/workers_for_platforms/dispatch/namespaces/script_update_params.py @@ -55,6 +55,18 @@ class ScriptUpdateParams(TypedDict, total=False): class MetadataAssetsConfig(TypedDict, total=False): + _headers: str + """ + The contents of a \\__headers file (used to attach custom headers on asset + responses) + """ + + _redirects: str + """ + The contents of a \\__redirects file (used to apply redirects or proxy paths ahead + of asset serving) + """ + html_handling: Literal["auto-trailing-slash", "force-trailing-slash", "drop-trailing-slash", "none"] """Determines the redirects and rewrites of requests for HTML content.""" diff --git a/tests/api_resources/workers/test_scripts.py b/tests/api_resources/workers/test_scripts.py index d59f5b83d2b..d013290fc79 100644 --- a/tests/api_resources/workers/test_scripts.py +++ b/tests/api_resources/workers/test_scripts.py @@ -40,6 +40,8 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: metadata={ "assets": { "config": { + "_headers": "/dashboard/*\nX-Frame-Options: DENY\n\n/static/*\nAccess-Control-Allow-Origin: *", + "_redirects": "/foo /bar 301\n/news/* /blog/:splat", "html_handling": "auto-trailing-slash", "not_found_handling": "none", "run_worker_first": False, @@ -311,6 +313,8 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare metadata={ "assets": { "config": { + "_headers": "/dashboard/*\nX-Frame-Options: DENY\n\n/static/*\nAccess-Control-Allow-Origin: *", + "_redirects": "/foo /bar 301\n/news/* /blog/:splat", "html_handling": "auto-trailing-slash", "not_found_handling": "none", "run_worker_first": False, diff --git a/tests/api_resources/workers_for_platforms/dispatch/namespaces/test_scripts.py b/tests/api_resources/workers_for_platforms/dispatch/namespaces/test_scripts.py index 92193fbc316..ec4838782f6 100644 --- a/tests/api_resources/workers_for_platforms/dispatch/namespaces/test_scripts.py +++ b/tests/api_resources/workers_for_platforms/dispatch/namespaces/test_scripts.py @@ -41,6 +41,8 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: metadata={ "assets": { "config": { + "_headers": "/dashboard/*\nX-Frame-Options: DENY\n\n/static/*\nAccess-Control-Allow-Origin: *", + "_redirects": "/foo /bar 301\n/news/* /blog/:splat", "html_handling": "auto-trailing-slash", "not_found_handling": "none", "run_worker_first": False, @@ -313,6 +315,8 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare metadata={ "assets": { "config": { + "_headers": "/dashboard/*\nX-Frame-Options: DENY\n\n/static/*\nAccess-Control-Allow-Origin: *", + "_redirects": "/foo /bar 301\n/news/* /blog/:splat", "html_handling": "auto-trailing-slash", "not_found_handling": "none", "run_worker_first": False, From db752217899e7238851cb3dc3a575cff862064a2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:56 -0400 Subject: [PATCH 061/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 84340f4d465..f6ce9b0047c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-67d7c57a8708946887e9f461dfa953f74dd1b602c01a3b3e331cfeae0f4e2a2a.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-25b035a11bab55f6145f67f5712cac687ba98f10f46d9d226a1e6a45b4ea5b65.yml From 373e33095f9d4aa8eab0f796f382eb8f69ba9e04 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:56 -0400 Subject: [PATCH 062/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index f6ce9b0047c..01159cc0f48 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-25b035a11bab55f6145f67f5712cac687ba98f10f46d9d226a1e6a45b4ea5b65.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-05a88de5a587dd3d0a24c1de604402eb3161770602ea5233de53cc853c8c7365.yml From fce9f77df723b318c82a1333fd00863c283da665 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:56 -0400 Subject: [PATCH 063/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 01159cc0f48..a992e8239a0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-05a88de5a587dd3d0a24c1de604402eb3161770602ea5233de53cc853c8c7365.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e573b89c560e954c1154e0cf23b1c5df60c5009be616d76d60a9b838912d1ef4.yml From db63a891f6490c9520e739d357b31f27bb724e1d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:56 -0400 Subject: [PATCH 064/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index a992e8239a0..733dd1e1c2c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e573b89c560e954c1154e0cf23b1c5df60c5009be616d76d60a9b838912d1ef4.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-fa1bd56f9f7f955a689a630c6b2673d7c1c7cd47c51315165dbcdcb58f9e990e.yml From 06dc8d6337810ecffcbccb36d16acd54e1e0327e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:56 -0400 Subject: [PATCH 065/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 733dd1e1c2c..e9016373c44 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-fa1bd56f9f7f955a689a630c6b2673d7c1c7cd47c51315165dbcdcb58f9e990e.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-aef4121f26b65111f92e495ba47bdb288219cf6193b4934461633aded1ef61a2.yml From 0a539cac4324c0202b3eb1f8a0a78cbea506146e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:56 -0400 Subject: [PATCH 066/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index e9016373c44..a992e8239a0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-aef4121f26b65111f92e495ba47bdb288219cf6193b4934461633aded1ef61a2.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e573b89c560e954c1154e0cf23b1c5df60c5009be616d76d60a9b838912d1ef4.yml From 79599563c7bab297b2a6eaa0880ebf879869bab7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:56 -0400 Subject: [PATCH 067/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index a992e8239a0..533a0458ecd 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e573b89c560e954c1154e0cf23b1c5df60c5009be616d76d60a9b838912d1ef4.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1714fa8aa590a8df7f7e3dc90865ade9709ecc87c0af649652defcf1e3536cd3.yml From 171d27895a7ca652024e2d1b4542eaac65fdc2e3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:56 -0400 Subject: [PATCH 068/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 533a0458ecd..6f086b9fa52 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1714fa8aa590a8df7f7e3dc90865ade9709ecc87c0af649652defcf1e3536cd3.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-faf4ed73d8cff9724c4cfd97d3ff70144a7bc8f82301a3873926212f4a939263.yml From eed2102b4a6dcd079046e8fb1c057cf06e3371ea Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:57 -0400 Subject: [PATCH 069/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 6f086b9fa52..210690fa529 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-faf4ed73d8cff9724c4cfd97d3ff70144a7bc8f82301a3873926212f4a939263.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-43e12109fc7e40ea57b21dfad4e8da431dd8a3a50fa8841ec32858e8558c75a8.yml From 2a72515dcd6738bfe0732e1090aa9dcfa9ba0cc4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:57 -0400 Subject: [PATCH 070/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 210690fa529..5315edb0668 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-43e12109fc7e40ea57b21dfad4e8da431dd8a3a50fa8841ec32858e8558c75a8.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d46699b5798255553b2e8f50bd8ee8e66f4e0f95c063edaa56e6ebcb55591f88.yml From 43cc685c2e6a60076d8bc0ff8c7196b41215b438 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:57 -0400 Subject: [PATCH 071/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 5315edb0668..a81142933e9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d46699b5798255553b2e8f50bd8ee8e66f4e0f95c063edaa56e6ebcb55591f88.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-c0040ac1af2de0cbc950b747507b5e2b29bdff94dcc97da996ea1b48fb58c364.yml From 1a00b4942c5b7ac95ec7eb1947fd17174a150989 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:57 -0400 Subject: [PATCH 072/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index a81142933e9..bf24d13d2eb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-c0040ac1af2de0cbc950b747507b5e2b29bdff94dcc97da996ea1b48fb58c364.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-c9dfd9e2bb1f36a0f24cf3caea253ebf69b4d38e43912a695e89b0879db123b6.yml From a06b786bd01064b502573be3729bb66824e36da2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:57 -0400 Subject: [PATCH 073/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index bf24d13d2eb..467eceff0e1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-c9dfd9e2bb1f36a0f24cf3caea253ebf69b4d38e43912a695e89b0879db123b6.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d37364ae7931ee2bfed250f88bebfee4810768864f0be5bc924019066021a8ab.yml From 671d6f13da991eb853f8044208b0ca7b511ba283 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:57 -0400 Subject: [PATCH 074/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 467eceff0e1..cb155cfb6ca 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1654 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d37364ae7931ee2bfed250f88bebfee4810768864f0be5bc924019066021a8ab.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-6c15a36391095aacaddd2ccbee8f3f53ffc4217b13a54b9eae9476f004b870b7.yml From a32f7f4efde78bfe87b31f13e3bd3c6fc014bacc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:57 -0400 Subject: [PATCH 075/849] feat(radar): add new endpoint mappings (#2567) --- .stats.yml | 2 +- api.md | 22 + src/cloudflare/resources/radar/ai/__init__.py | 14 + src/cloudflare/resources/radar/ai/ai.py | 32 + .../resources/radar/ai/to_markdown.py | 176 ++++ .../resources/radar/attacks/layer3/summary.py | 400 ++++++++ .../resources/radar/attacks/layer7/summary.py | 854 ++++++++++++++++-- src/cloudflare/resources/radar/bgp/routes.py | 117 ++- src/cloudflare/types/radar/ai/__init__.py | 2 + .../radar/ai/to_markdown_create_params.py | 15 + .../radar/ai/to_markdown_create_response.py | 20 + .../types/radar/attacks/layer3/__init__.py | 4 + .../attacks/layer3/summary_industry_params.py | 67 ++ .../layer3/summary_industry_response.py | 56 ++ .../attacks/layer3/summary_vertical_params.py | 67 ++ .../layer3/summary_vertical_response.py | 56 ++ .../types/radar/attacks/layer7/__init__.py | 4 + .../attacks/layer7/summary_industry_params.py | 133 +++ .../layer7/summary_industry_response.py | 56 ++ .../attacks/layer7/summary_vertical_params.py | 133 +++ .../layer7/summary_vertical_response.py | 56 ++ src/cloudflare/types/radar/bgp/__init__.py | 2 + .../types/radar/bgp/route_realtime_params.py | 15 + .../radar/bgp/route_realtime_response.py | 48 + .../radar/ai/test_to_markdown.py | 115 +++ .../radar/attacks/layer3/test_summary.py | 170 ++++ .../radar/attacks/layer7/test_summary.py | 178 ++++ tests/api_resources/radar/bgp/test_routes.py | 67 ++ 28 files changed, 2780 insertions(+), 101 deletions(-) create mode 100644 src/cloudflare/resources/radar/ai/to_markdown.py create mode 100644 src/cloudflare/types/radar/ai/to_markdown_create_params.py create mode 100644 src/cloudflare/types/radar/ai/to_markdown_create_response.py create mode 100644 src/cloudflare/types/radar/attacks/layer3/summary_industry_params.py create mode 100644 src/cloudflare/types/radar/attacks/layer3/summary_industry_response.py create mode 100644 src/cloudflare/types/radar/attacks/layer3/summary_vertical_params.py create mode 100644 src/cloudflare/types/radar/attacks/layer3/summary_vertical_response.py create mode 100644 src/cloudflare/types/radar/attacks/layer7/summary_industry_params.py create mode 100644 src/cloudflare/types/radar/attacks/layer7/summary_industry_response.py create mode 100644 src/cloudflare/types/radar/attacks/layer7/summary_vertical_params.py create mode 100644 src/cloudflare/types/radar/attacks/layer7/summary_vertical_response.py create mode 100644 src/cloudflare/types/radar/bgp/route_realtime_params.py create mode 100644 src/cloudflare/types/radar/bgp/route_realtime_response.py create mode 100644 tests/api_resources/radar/ai/test_to_markdown.py diff --git a/.stats.yml b/.stats.yml index cb155cfb6ca..955f4bbf356 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ -configured_endpoints: 1654 +configured_endpoints: 1660 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-6c15a36391095aacaddd2ccbee8f3f53ffc4217b13a54b9eae9476f004b870b7.yml diff --git a/api.md b/api.md index c9f812bbae4..cfdaf1e9f1e 100644 --- a/api.md +++ b/api.md @@ -6946,6 +6946,18 @@ Methods: ## AI +### ToMarkdown + +Types: + +```python +from cloudflare.types.radar.ai import ToMarkdownCreateResponse +``` + +Methods: + +- client.radar.ai.to_markdown.create(\*, account_id, \*\*params) -> SyncSinglePage[ToMarkdownCreateResponse] + ### Inference #### Summary @@ -7104,6 +7116,7 @@ from cloudflare.types.radar.bgp import ( RouteAsesResponse, RouteMoasResponse, RoutePfx2asResponse, + RouteRealtimeResponse, RouteStatsResponse, ) ``` @@ -7113,6 +7126,7 @@ Methods: - client.radar.bgp.routes.ases(\*\*params) -> RouteAsesResponse - client.radar.bgp.routes.moas(\*\*params) -> RouteMoasResponse - client.radar.bgp.routes.pfx2as(\*\*params) -> RoutePfx2asResponse +- client.radar.bgp.routes.realtime(\*\*params) -> RouteRealtimeResponse - client.radar.bgp.routes.stats(\*\*params) -> RouteStatsResponse ### IPs @@ -7555,9 +7569,11 @@ Types: from cloudflare.types.radar.attacks.layer3 import ( SummaryBitrateResponse, SummaryDurationResponse, + SummaryIndustryResponse, SummaryIPVersionResponse, SummaryProtocolResponse, SummaryVectorResponse, + SummaryVerticalResponse, ) ``` @@ -7565,9 +7581,11 @@ Methods: - client.radar.attacks.layer3.summary.bitrate(\*\*params) -> SummaryBitrateResponse - client.radar.attacks.layer3.summary.duration(\*\*params) -> SummaryDurationResponse +- client.radar.attacks.layer3.summary.industry(\*\*params) -> SummaryIndustryResponse - client.radar.attacks.layer3.summary.ip_version(\*\*params) -> SummaryIPVersionResponse - client.radar.attacks.layer3.summary.protocol(\*\*params) -> SummaryProtocolResponse - client.radar.attacks.layer3.summary.vector(\*\*params) -> SummaryVectorResponse +- client.radar.attacks.layer3.summary.vertical(\*\*params) -> SummaryVerticalResponse #### TimeseriesGroups @@ -7646,9 +7664,11 @@ Types: from cloudflare.types.radar.attacks.layer7 import ( SummaryHTTPMethodResponse, SummaryHTTPVersionResponse, + SummaryIndustryResponse, SummaryIPVersionResponse, SummaryManagedRulesResponse, SummaryMitigationProductResponse, + SummaryVerticalResponse, ) ``` @@ -7656,9 +7676,11 @@ Methods: - client.radar.attacks.layer7.summary.http_method(\*\*params) -> SummaryHTTPMethodResponse - client.radar.attacks.layer7.summary.http_version(\*\*params) -> SummaryHTTPVersionResponse +- client.radar.attacks.layer7.summary.industry(\*\*params) -> SummaryIndustryResponse - client.radar.attacks.layer7.summary.ip_version(\*\*params) -> SummaryIPVersionResponse - client.radar.attacks.layer7.summary.managed_rules(\*\*params) -> SummaryManagedRulesResponse - client.radar.attacks.layer7.summary.mitigation_product(\*\*params) -> SummaryMitigationProductResponse +- client.radar.attacks.layer7.summary.vertical(\*\*params) -> SummaryVerticalResponse #### TimeseriesGroups diff --git a/src/cloudflare/resources/radar/ai/__init__.py b/src/cloudflare/resources/radar/ai/__init__.py index 0a3ef3d68d8..5b5048adbe1 100644 --- a/src/cloudflare/resources/radar/ai/__init__.py +++ b/src/cloudflare/resources/radar/ai/__init__.py @@ -24,6 +24,14 @@ InferenceResourceWithStreamingResponse, AsyncInferenceResourceWithStreamingResponse, ) +from .to_markdown import ( + ToMarkdownResource, + AsyncToMarkdownResource, + ToMarkdownResourceWithRawResponse, + AsyncToMarkdownResourceWithRawResponse, + ToMarkdownResourceWithStreamingResponse, + AsyncToMarkdownResourceWithStreamingResponse, +) from .timeseries_groups import ( TimeseriesGroupsResource, AsyncTimeseriesGroupsResource, @@ -34,6 +42,12 @@ ) __all__ = [ + "ToMarkdownResource", + "AsyncToMarkdownResource", + "ToMarkdownResourceWithRawResponse", + "AsyncToMarkdownResourceWithRawResponse", + "ToMarkdownResourceWithStreamingResponse", + "AsyncToMarkdownResourceWithStreamingResponse", "InferenceResource", "AsyncInferenceResource", "InferenceResourceWithRawResponse", diff --git a/src/cloudflare/resources/radar/ai/ai.py b/src/cloudflare/resources/radar/ai/ai.py index 4038bdd803e..a0b5b483650 100644 --- a/src/cloudflare/resources/radar/ai/ai.py +++ b/src/cloudflare/resources/radar/ai/ai.py @@ -11,6 +11,14 @@ AsyncBotsResourceWithStreamingResponse, ) from ...._compat import cached_property +from .to_markdown import ( + ToMarkdownResource, + AsyncToMarkdownResource, + ToMarkdownResourceWithRawResponse, + AsyncToMarkdownResourceWithRawResponse, + ToMarkdownResourceWithStreamingResponse, + AsyncToMarkdownResourceWithStreamingResponse, +) from ...._resource import SyncAPIResource, AsyncAPIResource from .timeseries_groups import ( TimeseriesGroupsResource, @@ -33,6 +41,10 @@ class AIResource(SyncAPIResource): + @cached_property + def to_markdown(self) -> ToMarkdownResource: + return ToMarkdownResource(self._client) + @cached_property def inference(self) -> InferenceResource: return InferenceResource(self._client) @@ -66,6 +78,10 @@ def with_streaming_response(self) -> AIResourceWithStreamingResponse: class AsyncAIResource(AsyncAPIResource): + @cached_property + def to_markdown(self) -> AsyncToMarkdownResource: + return AsyncToMarkdownResource(self._client) + @cached_property def inference(self) -> AsyncInferenceResource: return AsyncInferenceResource(self._client) @@ -102,6 +118,10 @@ class AIResourceWithRawResponse: def __init__(self, ai: AIResource) -> None: self._ai = ai + @cached_property + def to_markdown(self) -> ToMarkdownResourceWithRawResponse: + return ToMarkdownResourceWithRawResponse(self._ai.to_markdown) + @cached_property def inference(self) -> InferenceResourceWithRawResponse: return InferenceResourceWithRawResponse(self._ai.inference) @@ -119,6 +139,10 @@ class AsyncAIResourceWithRawResponse: def __init__(self, ai: AsyncAIResource) -> None: self._ai = ai + @cached_property + def to_markdown(self) -> AsyncToMarkdownResourceWithRawResponse: + return AsyncToMarkdownResourceWithRawResponse(self._ai.to_markdown) + @cached_property def inference(self) -> AsyncInferenceResourceWithRawResponse: return AsyncInferenceResourceWithRawResponse(self._ai.inference) @@ -136,6 +160,10 @@ class AIResourceWithStreamingResponse: def __init__(self, ai: AIResource) -> None: self._ai = ai + @cached_property + def to_markdown(self) -> ToMarkdownResourceWithStreamingResponse: + return ToMarkdownResourceWithStreamingResponse(self._ai.to_markdown) + @cached_property def inference(self) -> InferenceResourceWithStreamingResponse: return InferenceResourceWithStreamingResponse(self._ai.inference) @@ -153,6 +181,10 @@ class AsyncAIResourceWithStreamingResponse: def __init__(self, ai: AsyncAIResource) -> None: self._ai = ai + @cached_property + def to_markdown(self) -> AsyncToMarkdownResourceWithStreamingResponse: + return AsyncToMarkdownResourceWithStreamingResponse(self._ai.to_markdown) + @cached_property def inference(self) -> AsyncInferenceResourceWithStreamingResponse: return AsyncInferenceResourceWithStreamingResponse(self._ai.inference) diff --git a/src/cloudflare/resources/radar/ai/to_markdown.py b/src/cloudflare/resources/radar/ai/to_markdown.py new file mode 100644 index 00000000000..6be8c550f12 --- /dev/null +++ b/src/cloudflare/resources/radar/ai/to_markdown.py @@ -0,0 +1,176 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import httpx + +from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven, FileTypes +from ...._utils import maybe_transform +from ...._compat import cached_property +from ...._resource import SyncAPIResource, AsyncAPIResource +from ...._response import ( + to_raw_response_wrapper, + to_streamed_response_wrapper, + async_to_raw_response_wrapper, + async_to_streamed_response_wrapper, +) +from ....pagination import SyncSinglePage, AsyncSinglePage +from ...._base_client import AsyncPaginator, make_request_options +from ....types.radar.ai import to_markdown_create_params +from ....types.radar.ai.to_markdown_create_response import ToMarkdownCreateResponse + +__all__ = ["ToMarkdownResource", "AsyncToMarkdownResource"] + + +class ToMarkdownResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> ToMarkdownResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return ToMarkdownResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> ToMarkdownResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return ToMarkdownResourceWithStreamingResponse(self) + + def create( + self, + *, + account_id: str, + body: FileTypes | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> SyncSinglePage[ToMarkdownCreateResponse]: + """ + Convert Files into Markdown + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + extra_headers = {"Accept": "applications/json", **(extra_headers or {})} + return self._get_api_list( + f"/accounts/{account_id}/ai/tomarkdown", + page=SyncSinglePage[ToMarkdownCreateResponse], + body=maybe_transform(body, to_markdown_create_params.ToMarkdownCreateParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + model=ToMarkdownCreateResponse, + method="post", + ) + + +class AsyncToMarkdownResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncToMarkdownResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return AsyncToMarkdownResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncToMarkdownResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return AsyncToMarkdownResourceWithStreamingResponse(self) + + def create( + self, + *, + account_id: str, + body: FileTypes | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> AsyncPaginator[ToMarkdownCreateResponse, AsyncSinglePage[ToMarkdownCreateResponse]]: + """ + Convert Files into Markdown + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + extra_headers = {"Accept": "applications/json", **(extra_headers or {})} + return self._get_api_list( + f"/accounts/{account_id}/ai/tomarkdown", + page=AsyncSinglePage[ToMarkdownCreateResponse], + body=maybe_transform(body, to_markdown_create_params.ToMarkdownCreateParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + model=ToMarkdownCreateResponse, + method="post", + ) + + +class ToMarkdownResourceWithRawResponse: + def __init__(self, to_markdown: ToMarkdownResource) -> None: + self._to_markdown = to_markdown + + self.create = to_raw_response_wrapper( + to_markdown.create, + ) + + +class AsyncToMarkdownResourceWithRawResponse: + def __init__(self, to_markdown: AsyncToMarkdownResource) -> None: + self._to_markdown = to_markdown + + self.create = async_to_raw_response_wrapper( + to_markdown.create, + ) + + +class ToMarkdownResourceWithStreamingResponse: + def __init__(self, to_markdown: ToMarkdownResource) -> None: + self._to_markdown = to_markdown + + self.create = to_streamed_response_wrapper( + to_markdown.create, + ) + + +class AsyncToMarkdownResourceWithStreamingResponse: + def __init__(self, to_markdown: AsyncToMarkdownResource) -> None: + self._to_markdown = to_markdown + + self.create = async_to_streamed_response_wrapper( + to_markdown.create, + ) diff --git a/src/cloudflare/resources/radar/attacks/layer3/summary.py b/src/cloudflare/resources/radar/attacks/layer3/summary.py index 3b3b37605d1..9a18d3711c9 100644 --- a/src/cloudflare/resources/radar/attacks/layer3/summary.py +++ b/src/cloudflare/resources/radar/attacks/layer3/summary.py @@ -27,13 +27,17 @@ summary_vector_params, summary_bitrate_params, summary_duration_params, + summary_industry_params, summary_protocol_params, + summary_vertical_params, summary_ip_version_params, ) from .....types.radar.attacks.layer3.summary_vector_response import SummaryVectorResponse from .....types.radar.attacks.layer3.summary_bitrate_response import SummaryBitrateResponse from .....types.radar.attacks.layer3.summary_duration_response import SummaryDurationResponse +from .....types.radar.attacks.layer3.summary_industry_response import SummaryIndustryResponse from .....types.radar.attacks.layer3.summary_protocol_response import SummaryProtocolResponse +from .....types.radar.attacks.layer3.summary_vertical_response import SummaryVerticalResponse from .....types.radar.attacks.layer3.summary_ip_version_response import SummaryIPVersionResponse __all__ = ["SummaryResource", "AsyncSummaryResource"] @@ -231,6 +235,99 @@ def duration( cast_to=cast(Type[SummaryDurationResponse], ResultWrapper[SummaryDurationResponse]), ) + def industry( + self, + *, + continent: List[str] | NotGiven = NOT_GIVEN, + date_end: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + date_range: List[str] | NotGiven = NOT_GIVEN, + date_start: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + direction: Literal["ORIGIN", "TARGET"] | NotGiven = NOT_GIVEN, + format: Literal["JSON", "CSV"] | NotGiven = NOT_GIVEN, + ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, + limit_per_group: int | NotGiven = NOT_GIVEN, + location: List[str] | NotGiven = NOT_GIVEN, + name: List[str] | NotGiven = NOT_GIVEN, + protocol: List[Literal["UDP", "TCP", "ICMP", "GRE"]] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> SummaryIndustryResponse: + """ + Retrieves the distribution of layer 3 attacks by targeted industry. + + Args: + continent: Comma-separated list of continents (alpha-2 continent codes). Prefix with `-` to + exclude continents from results. For example, `-EU,NA` excludes results from EU, + but includes results from NA. + + date_end: End of the date range (inclusive). + + date_range: Filters results by the specified date range. For example, use `7d` and + `7dcontrol` to compare this week with the previous week. Use this parameter or + set specific start and end dates (`dateStart` and `dateEnd` parameters). + + date_start: Start of the date range. + + direction: Together with the `location` parameter, will apply the filter to origin or + target location. + + format: Format in which results will be returned. + + ip_version: Filters results by IP version (Ipv4 vs. IPv6). + + limit_per_group: Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + + location: Comma-separated list of locations (alpha-2 codes). Prefix with `-` to exclude + locations from results. For example, `-US,PT` excludes results from the US, but + includes results from PT. + + name: Array of names used to label the series in the response. + + protocol: Array of L3/4 attack types. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + return self._get( + "/radar/attacks/layer3/summary/industry", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "continent": continent, + "date_end": date_end, + "date_range": date_range, + "date_start": date_start, + "direction": direction, + "format": format, + "ip_version": ip_version, + "limit_per_group": limit_per_group, + "location": location, + "name": name, + "protocol": protocol, + }, + summary_industry_params.SummaryIndustryParams, + ), + post_parser=ResultWrapper[SummaryIndustryResponse]._unwrapper, + ), + cast_to=cast(Type[SummaryIndustryResponse], ResultWrapper[SummaryIndustryResponse]), + ) + def ip_version( self, *, @@ -488,6 +585,99 @@ def vector( cast_to=cast(Type[SummaryVectorResponse], ResultWrapper[SummaryVectorResponse]), ) + def vertical( + self, + *, + continent: List[str] | NotGiven = NOT_GIVEN, + date_end: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + date_range: List[str] | NotGiven = NOT_GIVEN, + date_start: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + direction: Literal["ORIGIN", "TARGET"] | NotGiven = NOT_GIVEN, + format: Literal["JSON", "CSV"] | NotGiven = NOT_GIVEN, + ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, + limit_per_group: int | NotGiven = NOT_GIVEN, + location: List[str] | NotGiven = NOT_GIVEN, + name: List[str] | NotGiven = NOT_GIVEN, + protocol: List[Literal["UDP", "TCP", "ICMP", "GRE"]] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> SummaryVerticalResponse: + """ + Retrieves the distribution of layer 3 attacks by targeted vertical. + + Args: + continent: Comma-separated list of continents (alpha-2 continent codes). Prefix with `-` to + exclude continents from results. For example, `-EU,NA` excludes results from EU, + but includes results from NA. + + date_end: End of the date range (inclusive). + + date_range: Filters results by the specified date range. For example, use `7d` and + `7dcontrol` to compare this week with the previous week. Use this parameter or + set specific start and end dates (`dateStart` and `dateEnd` parameters). + + date_start: Start of the date range. + + direction: Together with the `location` parameter, will apply the filter to origin or + target location. + + format: Format in which results will be returned. + + ip_version: Filters results by IP version (Ipv4 vs. IPv6). + + limit_per_group: Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + + location: Comma-separated list of locations (alpha-2 codes). Prefix with `-` to exclude + locations from results. For example, `-US,PT` excludes results from the US, but + includes results from PT. + + name: Array of names used to label the series in the response. + + protocol: Array of L3/4 attack types. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + return self._get( + "/radar/attacks/layer3/summary/vertical", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "continent": continent, + "date_end": date_end, + "date_range": date_range, + "date_start": date_start, + "direction": direction, + "format": format, + "ip_version": ip_version, + "limit_per_group": limit_per_group, + "location": location, + "name": name, + "protocol": protocol, + }, + summary_vertical_params.SummaryVerticalParams, + ), + post_parser=ResultWrapper[SummaryVerticalResponse]._unwrapper, + ), + cast_to=cast(Type[SummaryVerticalResponse], ResultWrapper[SummaryVerticalResponse]), + ) + class AsyncSummaryResource(AsyncAPIResource): @cached_property @@ -681,6 +871,99 @@ async def duration( cast_to=cast(Type[SummaryDurationResponse], ResultWrapper[SummaryDurationResponse]), ) + async def industry( + self, + *, + continent: List[str] | NotGiven = NOT_GIVEN, + date_end: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + date_range: List[str] | NotGiven = NOT_GIVEN, + date_start: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + direction: Literal["ORIGIN", "TARGET"] | NotGiven = NOT_GIVEN, + format: Literal["JSON", "CSV"] | NotGiven = NOT_GIVEN, + ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, + limit_per_group: int | NotGiven = NOT_GIVEN, + location: List[str] | NotGiven = NOT_GIVEN, + name: List[str] | NotGiven = NOT_GIVEN, + protocol: List[Literal["UDP", "TCP", "ICMP", "GRE"]] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> SummaryIndustryResponse: + """ + Retrieves the distribution of layer 3 attacks by targeted industry. + + Args: + continent: Comma-separated list of continents (alpha-2 continent codes). Prefix with `-` to + exclude continents from results. For example, `-EU,NA` excludes results from EU, + but includes results from NA. + + date_end: End of the date range (inclusive). + + date_range: Filters results by the specified date range. For example, use `7d` and + `7dcontrol` to compare this week with the previous week. Use this parameter or + set specific start and end dates (`dateStart` and `dateEnd` parameters). + + date_start: Start of the date range. + + direction: Together with the `location` parameter, will apply the filter to origin or + target location. + + format: Format in which results will be returned. + + ip_version: Filters results by IP version (Ipv4 vs. IPv6). + + limit_per_group: Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + + location: Comma-separated list of locations (alpha-2 codes). Prefix with `-` to exclude + locations from results. For example, `-US,PT` excludes results from the US, but + includes results from PT. + + name: Array of names used to label the series in the response. + + protocol: Array of L3/4 attack types. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + return await self._get( + "/radar/attacks/layer3/summary/industry", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=await async_maybe_transform( + { + "continent": continent, + "date_end": date_end, + "date_range": date_range, + "date_start": date_start, + "direction": direction, + "format": format, + "ip_version": ip_version, + "limit_per_group": limit_per_group, + "location": location, + "name": name, + "protocol": protocol, + }, + summary_industry_params.SummaryIndustryParams, + ), + post_parser=ResultWrapper[SummaryIndustryResponse]._unwrapper, + ), + cast_to=cast(Type[SummaryIndustryResponse], ResultWrapper[SummaryIndustryResponse]), + ) + async def ip_version( self, *, @@ -938,6 +1221,99 @@ async def vector( cast_to=cast(Type[SummaryVectorResponse], ResultWrapper[SummaryVectorResponse]), ) + async def vertical( + self, + *, + continent: List[str] | NotGiven = NOT_GIVEN, + date_end: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + date_range: List[str] | NotGiven = NOT_GIVEN, + date_start: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + direction: Literal["ORIGIN", "TARGET"] | NotGiven = NOT_GIVEN, + format: Literal["JSON", "CSV"] | NotGiven = NOT_GIVEN, + ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, + limit_per_group: int | NotGiven = NOT_GIVEN, + location: List[str] | NotGiven = NOT_GIVEN, + name: List[str] | NotGiven = NOT_GIVEN, + protocol: List[Literal["UDP", "TCP", "ICMP", "GRE"]] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> SummaryVerticalResponse: + """ + Retrieves the distribution of layer 3 attacks by targeted vertical. + + Args: + continent: Comma-separated list of continents (alpha-2 continent codes). Prefix with `-` to + exclude continents from results. For example, `-EU,NA` excludes results from EU, + but includes results from NA. + + date_end: End of the date range (inclusive). + + date_range: Filters results by the specified date range. For example, use `7d` and + `7dcontrol` to compare this week with the previous week. Use this parameter or + set specific start and end dates (`dateStart` and `dateEnd` parameters). + + date_start: Start of the date range. + + direction: Together with the `location` parameter, will apply the filter to origin or + target location. + + format: Format in which results will be returned. + + ip_version: Filters results by IP version (Ipv4 vs. IPv6). + + limit_per_group: Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + + location: Comma-separated list of locations (alpha-2 codes). Prefix with `-` to exclude + locations from results. For example, `-US,PT` excludes results from the US, but + includes results from PT. + + name: Array of names used to label the series in the response. + + protocol: Array of L3/4 attack types. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + return await self._get( + "/radar/attacks/layer3/summary/vertical", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=await async_maybe_transform( + { + "continent": continent, + "date_end": date_end, + "date_range": date_range, + "date_start": date_start, + "direction": direction, + "format": format, + "ip_version": ip_version, + "limit_per_group": limit_per_group, + "location": location, + "name": name, + "protocol": protocol, + }, + summary_vertical_params.SummaryVerticalParams, + ), + post_parser=ResultWrapper[SummaryVerticalResponse]._unwrapper, + ), + cast_to=cast(Type[SummaryVerticalResponse], ResultWrapper[SummaryVerticalResponse]), + ) + class SummaryResourceWithRawResponse: def __init__(self, summary: SummaryResource) -> None: @@ -949,6 +1325,9 @@ def __init__(self, summary: SummaryResource) -> None: self.duration = to_raw_response_wrapper( summary.duration, ) + self.industry = to_raw_response_wrapper( + summary.industry, + ) self.ip_version = to_raw_response_wrapper( summary.ip_version, ) @@ -958,6 +1337,9 @@ def __init__(self, summary: SummaryResource) -> None: self.vector = to_raw_response_wrapper( summary.vector, ) + self.vertical = to_raw_response_wrapper( + summary.vertical, + ) class AsyncSummaryResourceWithRawResponse: @@ -970,6 +1352,9 @@ def __init__(self, summary: AsyncSummaryResource) -> None: self.duration = async_to_raw_response_wrapper( summary.duration, ) + self.industry = async_to_raw_response_wrapper( + summary.industry, + ) self.ip_version = async_to_raw_response_wrapper( summary.ip_version, ) @@ -979,6 +1364,9 @@ def __init__(self, summary: AsyncSummaryResource) -> None: self.vector = async_to_raw_response_wrapper( summary.vector, ) + self.vertical = async_to_raw_response_wrapper( + summary.vertical, + ) class SummaryResourceWithStreamingResponse: @@ -991,6 +1379,9 @@ def __init__(self, summary: SummaryResource) -> None: self.duration = to_streamed_response_wrapper( summary.duration, ) + self.industry = to_streamed_response_wrapper( + summary.industry, + ) self.ip_version = to_streamed_response_wrapper( summary.ip_version, ) @@ -1000,6 +1391,9 @@ def __init__(self, summary: SummaryResource) -> None: self.vector = to_streamed_response_wrapper( summary.vector, ) + self.vertical = to_streamed_response_wrapper( + summary.vertical, + ) class AsyncSummaryResourceWithStreamingResponse: @@ -1012,6 +1406,9 @@ def __init__(self, summary: AsyncSummaryResource) -> None: self.duration = async_to_streamed_response_wrapper( summary.duration, ) + self.industry = async_to_streamed_response_wrapper( + summary.industry, + ) self.ip_version = async_to_streamed_response_wrapper( summary.ip_version, ) @@ -1021,3 +1418,6 @@ def __init__(self, summary: AsyncSummaryResource) -> None: self.vector = async_to_streamed_response_wrapper( summary.vector, ) + self.vertical = async_to_streamed_response_wrapper( + summary.vertical, + ) diff --git a/src/cloudflare/resources/radar/attacks/layer7/summary.py b/src/cloudflare/resources/radar/attacks/layer7/summary.py index 328caa824cb..645ceb81248 100644 --- a/src/cloudflare/resources/radar/attacks/layer7/summary.py +++ b/src/cloudflare/resources/radar/attacks/layer7/summary.py @@ -24,12 +24,16 @@ from ....._wrappers import ResultWrapper from ....._base_client import make_request_options from .....types.radar.attacks.layer7 import ( + summary_industry_params, + summary_vertical_params, summary_ip_version_params, summary_http_method_params, summary_http_version_params, summary_managed_rules_params, summary_mitigation_product_params, ) +from .....types.radar.attacks.layer7.summary_industry_response import SummaryIndustryResponse +from .....types.radar.attacks.layer7.summary_vertical_response import SummaryVerticalResponse from .....types.radar.attacks.layer7.summary_ip_version_response import SummaryIPVersionResponse from .....types.radar.attacks.layer7.summary_http_method_response import SummaryHTTPMethodResponse from .....types.radar.attacks.layer7.summary_http_version_response import SummaryHTTPVersionResponse @@ -308,6 +312,163 @@ def http_version( cast_to=cast(Type[SummaryHTTPVersionResponse], ResultWrapper[SummaryHTTPVersionResponse]), ) + def industry( + self, + *, + asn: List[str] | NotGiven = NOT_GIVEN, + continent: List[str] | NotGiven = NOT_GIVEN, + date_end: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + date_range: List[str] | NotGiven = NOT_GIVEN, + date_start: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + format: Literal["JSON", "CSV"] | NotGiven = NOT_GIVEN, + http_method: List[ + Literal[ + "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", + ] + ] + | NotGiven = NOT_GIVEN, + http_version: List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]] | NotGiven = NOT_GIVEN, + ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, + limit_per_group: int | NotGiven = NOT_GIVEN, + location: List[str] | NotGiven = NOT_GIVEN, + mitigation_product: List[ + Literal[ + "DDOS", "WAF", "BOT_MANAGEMENT", "ACCESS_RULES", "IP_REPUTATION", "API_SHIELD", "DATA_LOSS_PREVENTION" + ] + ] + | NotGiven = NOT_GIVEN, + name: List[str] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> SummaryIndustryResponse: + """ + Retrieves the distribution of layer 7 attacks by targeted industry. + + Args: + asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to + exclude ASNs from results. For example, `-174, 3356` excludes results from + AS174, but includes results from AS3356. + + continent: Comma-separated list of continents (alpha-2 continent codes). Prefix with `-` to + exclude continents from results. For example, `-EU,NA` excludes results from EU, + but includes results from NA. + + date_end: End of the date range (inclusive). + + date_range: Filters results by the specified date range. For example, use `7d` and + `7dcontrol` to compare this week with the previous week. Use this parameter or + set specific start and end dates (`dateStart` and `dateEnd` parameters). + + date_start: Start of the date range. + + format: Format in which results will be returned. + + http_method: Filters results by HTTP method. + + http_version: Filters results by HTTP version. + + ip_version: Filters results by IP version (Ipv4 vs. IPv6). + + limit_per_group: Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + + location: Comma-separated list of locations (alpha-2 codes). Prefix with `-` to exclude + locations from results. For example, `-US,PT` excludes results from the US, but + includes results from PT. + + mitigation_product: Array of L7 mitigation products. + + name: Array of names used to label the series in the response. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + return self._get( + "/radar/attacks/layer7/summary/industry", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "asn": asn, + "continent": continent, + "date_end": date_end, + "date_range": date_range, + "date_start": date_start, + "format": format, + "http_method": http_method, + "http_version": http_version, + "ip_version": ip_version, + "limit_per_group": limit_per_group, + "location": location, + "mitigation_product": mitigation_product, + "name": name, + }, + summary_industry_params.SummaryIndustryParams, + ), + post_parser=ResultWrapper[SummaryIndustryResponse]._unwrapper, + ), + cast_to=cast(Type[SummaryIndustryResponse], ResultWrapper[SummaryIndustryResponse]), + ) + def ip_version( self, *, @@ -531,9 +692,441 @@ def managed_rules( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> SummaryManagedRulesResponse: + ) -> SummaryManagedRulesResponse: + """ + Retrieves the distribution of layer 7 attacks by managed rules. + + Args: + asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to + exclude ASNs from results. For example, `-174, 3356` excludes results from + AS174, but includes results from AS3356. + + continent: Comma-separated list of continents (alpha-2 continent codes). Prefix with `-` to + exclude continents from results. For example, `-EU,NA` excludes results from EU, + but includes results from NA. + + date_end: End of the date range (inclusive). + + date_range: Filters results by the specified date range. For example, use `7d` and + `7dcontrol` to compare this week with the previous week. Use this parameter or + set specific start and end dates (`dateStart` and `dateEnd` parameters). + + date_start: Start of the date range. + + format: Format in which results will be returned. + + http_method: Filters results by HTTP method. + + http_version: Filters results by HTTP version. + + ip_version: Filters results by IP version (Ipv4 vs. IPv6). + + limit_per_group: Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + + location: Comma-separated list of locations (alpha-2 codes). Prefix with `-` to exclude + locations from results. For example, `-US,PT` excludes results from the US, but + includes results from PT. + + mitigation_product: Array of L7 mitigation products. + + name: Array of names used to label the series in the response. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + return self._get( + "/radar/attacks/layer7/summary/managed_rules", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "asn": asn, + "continent": continent, + "date_end": date_end, + "date_range": date_range, + "date_start": date_start, + "format": format, + "http_method": http_method, + "http_version": http_version, + "ip_version": ip_version, + "limit_per_group": limit_per_group, + "location": location, + "mitigation_product": mitigation_product, + "name": name, + }, + summary_managed_rules_params.SummaryManagedRulesParams, + ), + post_parser=ResultWrapper[SummaryManagedRulesResponse]._unwrapper, + ), + cast_to=cast(Type[SummaryManagedRulesResponse], ResultWrapper[SummaryManagedRulesResponse]), + ) + + def mitigation_product( + self, + *, + asn: List[str] | NotGiven = NOT_GIVEN, + continent: List[str] | NotGiven = NOT_GIVEN, + date_end: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + date_range: List[str] | NotGiven = NOT_GIVEN, + date_start: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + format: Literal["JSON", "CSV"] | NotGiven = NOT_GIVEN, + http_method: List[ + Literal[ + "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", + ] + ] + | NotGiven = NOT_GIVEN, + http_version: List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]] | NotGiven = NOT_GIVEN, + ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, + limit_per_group: int | NotGiven = NOT_GIVEN, + location: List[str] | NotGiven = NOT_GIVEN, + name: List[str] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> SummaryMitigationProductResponse: + """ + Retrieves the distribution of layer 7 attacks by mitigation product. + + Args: + asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to + exclude ASNs from results. For example, `-174, 3356` excludes results from + AS174, but includes results from AS3356. + + continent: Comma-separated list of continents (alpha-2 continent codes). Prefix with `-` to + exclude continents from results. For example, `-EU,NA` excludes results from EU, + but includes results from NA. + + date_end: End of the date range (inclusive). + + date_range: Filters results by the specified date range. For example, use `7d` and + `7dcontrol` to compare this week with the previous week. Use this parameter or + set specific start and end dates (`dateStart` and `dateEnd` parameters). + + date_start: Start of the date range. + + format: Format in which results will be returned. + + http_method: Filters results by HTTP method. + + http_version: Filters results by HTTP version. + + ip_version: Filters results by IP version (Ipv4 vs. IPv6). + + limit_per_group: Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + + location: Comma-separated list of locations (alpha-2 codes). Prefix with `-` to exclude + locations from results. For example, `-US,PT` excludes results from the US, but + includes results from PT. + + name: Array of names used to label the series in the response. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + return self._get( + "/radar/attacks/layer7/summary/mitigation_product", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "asn": asn, + "continent": continent, + "date_end": date_end, + "date_range": date_range, + "date_start": date_start, + "format": format, + "http_method": http_method, + "http_version": http_version, + "ip_version": ip_version, + "limit_per_group": limit_per_group, + "location": location, + "name": name, + }, + summary_mitigation_product_params.SummaryMitigationProductParams, + ), + post_parser=ResultWrapper[SummaryMitigationProductResponse]._unwrapper, + ), + cast_to=cast(Type[SummaryMitigationProductResponse], ResultWrapper[SummaryMitigationProductResponse]), + ) + + def vertical( + self, + *, + asn: List[str] | NotGiven = NOT_GIVEN, + continent: List[str] | NotGiven = NOT_GIVEN, + date_end: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + date_range: List[str] | NotGiven = NOT_GIVEN, + date_start: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + format: Literal["JSON", "CSV"] | NotGiven = NOT_GIVEN, + http_method: List[ + Literal[ + "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", + ] + ] + | NotGiven = NOT_GIVEN, + http_version: List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]] | NotGiven = NOT_GIVEN, + ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, + limit_per_group: int | NotGiven = NOT_GIVEN, + location: List[str] | NotGiven = NOT_GIVEN, + mitigation_product: List[ + Literal[ + "DDOS", "WAF", "BOT_MANAGEMENT", "ACCESS_RULES", "IP_REPUTATION", "API_SHIELD", "DATA_LOSS_PREVENTION" + ] + ] + | NotGiven = NOT_GIVEN, + name: List[str] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> SummaryVerticalResponse: + """ + Retrieves the distribution of layer 7 attacks by targeted vertical. + + Args: + asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to + exclude ASNs from results. For example, `-174, 3356` excludes results from + AS174, but includes results from AS3356. + + continent: Comma-separated list of continents (alpha-2 continent codes). Prefix with `-` to + exclude continents from results. For example, `-EU,NA` excludes results from EU, + but includes results from NA. + + date_end: End of the date range (inclusive). + + date_range: Filters results by the specified date range. For example, use `7d` and + `7dcontrol` to compare this week with the previous week. Use this parameter or + set specific start and end dates (`dateStart` and `dateEnd` parameters). + + date_start: Start of the date range. + + format: Format in which results will be returned. + + http_method: Filters results by HTTP method. + + http_version: Filters results by HTTP version. + + ip_version: Filters results by IP version (Ipv4 vs. IPv6). + + limit_per_group: Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + + location: Comma-separated list of locations (alpha-2 codes). Prefix with `-` to exclude + locations from results. For example, `-US,PT` excludes results from the US, but + includes results from PT. + + mitigation_product: Array of L7 mitigation products. + + name: Array of names used to label the series in the response. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + return self._get( + "/radar/attacks/layer7/summary/vertical", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "asn": asn, + "continent": continent, + "date_end": date_end, + "date_range": date_range, + "date_start": date_start, + "format": format, + "http_method": http_method, + "http_version": http_version, + "ip_version": ip_version, + "limit_per_group": limit_per_group, + "location": location, + "mitigation_product": mitigation_product, + "name": name, + }, + summary_vertical_params.SummaryVerticalParams, + ), + post_parser=ResultWrapper[SummaryVerticalResponse]._unwrapper, + ), + cast_to=cast(Type[SummaryVerticalResponse], ResultWrapper[SummaryVerticalResponse]), + ) + + +class AsyncSummaryResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncSummaryResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return AsyncSummaryResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncSummaryResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return AsyncSummaryResourceWithStreamingResponse(self) + + async def http_method( + self, + *, + asn: List[str] | NotGiven = NOT_GIVEN, + continent: List[str] | NotGiven = NOT_GIVEN, + date_end: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + date_range: List[str] | NotGiven = NOT_GIVEN, + date_start: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, + format: Literal["JSON", "CSV"] | NotGiven = NOT_GIVEN, + http_version: List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]] | NotGiven = NOT_GIVEN, + ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, + limit_per_group: int | NotGiven = NOT_GIVEN, + location: List[str] | NotGiven = NOT_GIVEN, + mitigation_product: List[ + Literal[ + "DDOS", "WAF", "BOT_MANAGEMENT", "ACCESS_RULES", "IP_REPUTATION", "API_SHIELD", "DATA_LOSS_PREVENTION" + ] + ] + | NotGiven = NOT_GIVEN, + name: List[str] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> SummaryHTTPMethodResponse: """ - Retrieves the distribution of layer 7 attacks by managed rules. + Retrieves the distribution of layer 7 attacks by HTTP method. Args: asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to @@ -554,8 +1147,6 @@ def managed_rules( format: Format in which results will be returned. - http_method: Filters results by HTTP method. - http_version: Filters results by HTTP version. ip_version: Filters results by IP version (Ipv4 vs. IPv6). @@ -581,14 +1172,14 @@ def managed_rules( timeout: Override the client-level default timeout for this request, in seconds """ - return self._get( - "/radar/attacks/layer7/summary/managed_rules", + return await self._get( + "/radar/attacks/layer7/summary/http_method", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout, - query=maybe_transform( + query=await async_maybe_transform( { "asn": asn, "continent": continent, @@ -596,7 +1187,6 @@ def managed_rules( "date_range": date_range, "date_start": date_start, "format": format, - "http_method": http_method, "http_version": http_version, "ip_version": ip_version, "limit_per_group": limit_per_group, @@ -604,14 +1194,14 @@ def managed_rules( "mitigation_product": mitigation_product, "name": name, }, - summary_managed_rules_params.SummaryManagedRulesParams, + summary_http_method_params.SummaryHTTPMethodParams, ), - post_parser=ResultWrapper[SummaryManagedRulesResponse]._unwrapper, + post_parser=ResultWrapper[SummaryHTTPMethodResponse]._unwrapper, ), - cast_to=cast(Type[SummaryManagedRulesResponse], ResultWrapper[SummaryManagedRulesResponse]), + cast_to=cast(Type[SummaryHTTPMethodResponse], ResultWrapper[SummaryHTTPMethodResponse]), ) - def mitigation_product( + async def http_version( self, *, asn: List[str] | NotGiven = NOT_GIVEN, @@ -671,10 +1261,14 @@ def mitigation_product( ] ] | NotGiven = NOT_GIVEN, - http_version: List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]] | NotGiven = NOT_GIVEN, ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, - limit_per_group: int | NotGiven = NOT_GIVEN, location: List[str] | NotGiven = NOT_GIVEN, + mitigation_product: List[ + Literal[ + "DDOS", "WAF", "BOT_MANAGEMENT", "ACCESS_RULES", "IP_REPUTATION", "API_SHIELD", "DATA_LOSS_PREVENTION" + ] + ] + | NotGiven = NOT_GIVEN, name: List[str] | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -682,9 +1276,9 @@ def mitigation_product( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> SummaryMitigationProductResponse: + ) -> SummaryHTTPVersionResponse: """ - Retrieves the distribution of layer 7 attacks by mitigation product. + Retrieves the distribution of layer 7 attacks by HTTP version. Args: asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to @@ -707,19 +1301,14 @@ def mitigation_product( http_method: Filters results by HTTP method. - http_version: Filters results by HTTP version. - ip_version: Filters results by IP version (Ipv4 vs. IPv6). - limit_per_group: Limits the number of objects per group to the top items within the specified - time range. If there are more items than the limit, the response will include - the count of items, with any remaining items grouped together under an "other" - category. - location: Comma-separated list of locations (alpha-2 codes). Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. + mitigation_product: Array of L7 mitigation products. + name: Array of names used to label the series in the response. extra_headers: Send extra headers @@ -730,14 +1319,14 @@ def mitigation_product( timeout: Override the client-level default timeout for this request, in seconds """ - return self._get( - "/radar/attacks/layer7/summary/mitigation_product", + return await self._get( + "/radar/attacks/layer7/summary/http_version", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout, - query=maybe_transform( + query=await async_maybe_transform( { "asn": asn, "continent": continent, @@ -746,41 +1335,19 @@ def mitigation_product( "date_start": date_start, "format": format, "http_method": http_method, - "http_version": http_version, "ip_version": ip_version, - "limit_per_group": limit_per_group, "location": location, + "mitigation_product": mitigation_product, "name": name, }, - summary_mitigation_product_params.SummaryMitigationProductParams, + summary_http_version_params.SummaryHTTPVersionParams, ), - post_parser=ResultWrapper[SummaryMitigationProductResponse]._unwrapper, + post_parser=ResultWrapper[SummaryHTTPVersionResponse]._unwrapper, ), - cast_to=cast(Type[SummaryMitigationProductResponse], ResultWrapper[SummaryMitigationProductResponse]), + cast_to=cast(Type[SummaryHTTPVersionResponse], ResultWrapper[SummaryHTTPVersionResponse]), ) - -class AsyncSummaryResource(AsyncAPIResource): - @cached_property - def with_raw_response(self) -> AsyncSummaryResourceWithRawResponse: - """ - This property can be used as a prefix for any HTTP method call to return - the raw response object instead of the parsed content. - - For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers - """ - return AsyncSummaryResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> AsyncSummaryResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response - """ - return AsyncSummaryResourceWithStreamingResponse(self) - - async def http_method( + async def industry( self, *, asn: List[str] | NotGiven = NOT_GIVEN, @@ -789,6 +1356,57 @@ async def http_method( date_range: List[str] | NotGiven = NOT_GIVEN, date_start: List[Union[str, datetime]] | NotGiven = NOT_GIVEN, format: Literal["JSON", "CSV"] | NotGiven = NOT_GIVEN, + http_method: List[ + Literal[ + "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", + ] + ] + | NotGiven = NOT_GIVEN, http_version: List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]] | NotGiven = NOT_GIVEN, ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, limit_per_group: int | NotGiven = NOT_GIVEN, @@ -806,9 +1424,9 @@ async def http_method( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> SummaryHTTPMethodResponse: + ) -> SummaryIndustryResponse: """ - Retrieves the distribution of layer 7 attacks by HTTP method. + Retrieves the distribution of layer 7 attacks by targeted industry. Args: asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to @@ -829,6 +1447,8 @@ async def http_method( format: Format in which results will be returned. + http_method: Filters results by HTTP method. + http_version: Filters results by HTTP version. ip_version: Filters results by IP version (Ipv4 vs. IPv6). @@ -855,7 +1475,7 @@ async def http_method( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/radar/attacks/layer7/summary/http_method", + "/radar/attacks/layer7/summary/industry", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -869,6 +1489,7 @@ async def http_method( "date_range": date_range, "date_start": date_start, "format": format, + "http_method": http_method, "http_version": http_version, "ip_version": ip_version, "limit_per_group": limit_per_group, @@ -876,14 +1497,14 @@ async def http_method( "mitigation_product": mitigation_product, "name": name, }, - summary_http_method_params.SummaryHTTPMethodParams, + summary_industry_params.SummaryIndustryParams, ), - post_parser=ResultWrapper[SummaryHTTPMethodResponse]._unwrapper, + post_parser=ResultWrapper[SummaryIndustryResponse]._unwrapper, ), - cast_to=cast(Type[SummaryHTTPMethodResponse], ResultWrapper[SummaryHTTPMethodResponse]), + cast_to=cast(Type[SummaryIndustryResponse], ResultWrapper[SummaryIndustryResponse]), ) - async def http_version( + async def ip_version( self, *, asn: List[str] | NotGiven = NOT_GIVEN, @@ -943,7 +1564,7 @@ async def http_version( ] ] | NotGiven = NOT_GIVEN, - ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, + http_version: List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]] | NotGiven = NOT_GIVEN, location: List[str] | NotGiven = NOT_GIVEN, mitigation_product: List[ Literal[ @@ -958,9 +1579,9 @@ async def http_version( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> SummaryHTTPVersionResponse: + ) -> SummaryIPVersionResponse: """ - Retrieves the distribution of layer 7 attacks by HTTP version. + Retrieves the distribution of layer 7 attacks by IP version. Args: asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to @@ -983,7 +1604,7 @@ async def http_version( http_method: Filters results by HTTP method. - ip_version: Filters results by IP version (Ipv4 vs. IPv6). + http_version: Filters results by HTTP version. location: Comma-separated list of locations (alpha-2 codes). Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but @@ -1002,7 +1623,7 @@ async def http_version( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/radar/attacks/layer7/summary/http_version", + "/radar/attacks/layer7/summary/ip_version", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1017,19 +1638,19 @@ async def http_version( "date_start": date_start, "format": format, "http_method": http_method, - "ip_version": ip_version, + "http_version": http_version, "location": location, "mitigation_product": mitigation_product, "name": name, }, - summary_http_version_params.SummaryHTTPVersionParams, + summary_ip_version_params.SummaryIPVersionParams, ), - post_parser=ResultWrapper[SummaryHTTPVersionResponse]._unwrapper, + post_parser=ResultWrapper[SummaryIPVersionResponse]._unwrapper, ), - cast_to=cast(Type[SummaryHTTPVersionResponse], ResultWrapper[SummaryHTTPVersionResponse]), + cast_to=cast(Type[SummaryIPVersionResponse], ResultWrapper[SummaryIPVersionResponse]), ) - async def ip_version( + async def managed_rules( self, *, asn: List[str] | NotGiven = NOT_GIVEN, @@ -1090,6 +1711,8 @@ async def ip_version( ] | NotGiven = NOT_GIVEN, http_version: List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]] | NotGiven = NOT_GIVEN, + ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, + limit_per_group: int | NotGiven = NOT_GIVEN, location: List[str] | NotGiven = NOT_GIVEN, mitigation_product: List[ Literal[ @@ -1104,9 +1727,9 @@ async def ip_version( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> SummaryIPVersionResponse: + ) -> SummaryManagedRulesResponse: """ - Retrieves the distribution of layer 7 attacks by IP version. + Retrieves the distribution of layer 7 attacks by managed rules. Args: asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to @@ -1131,6 +1754,13 @@ async def ip_version( http_version: Filters results by HTTP version. + ip_version: Filters results by IP version (Ipv4 vs. IPv6). + + limit_per_group: Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + location: Comma-separated list of locations (alpha-2 codes). Prefix with `-` to exclude locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. @@ -1148,7 +1778,7 @@ async def ip_version( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/radar/attacks/layer7/summary/ip_version", + "/radar/attacks/layer7/summary/managed_rules", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1164,18 +1794,20 @@ async def ip_version( "format": format, "http_method": http_method, "http_version": http_version, + "ip_version": ip_version, + "limit_per_group": limit_per_group, "location": location, "mitigation_product": mitigation_product, "name": name, }, - summary_ip_version_params.SummaryIPVersionParams, + summary_managed_rules_params.SummaryManagedRulesParams, ), - post_parser=ResultWrapper[SummaryIPVersionResponse]._unwrapper, + post_parser=ResultWrapper[SummaryManagedRulesResponse]._unwrapper, ), - cast_to=cast(Type[SummaryIPVersionResponse], ResultWrapper[SummaryIPVersionResponse]), + cast_to=cast(Type[SummaryManagedRulesResponse], ResultWrapper[SummaryManagedRulesResponse]), ) - async def managed_rules( + async def mitigation_product( self, *, asn: List[str] | NotGiven = NOT_GIVEN, @@ -1239,12 +1871,6 @@ async def managed_rules( ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, limit_per_group: int | NotGiven = NOT_GIVEN, location: List[str] | NotGiven = NOT_GIVEN, - mitigation_product: List[ - Literal[ - "DDOS", "WAF", "BOT_MANAGEMENT", "ACCESS_RULES", "IP_REPUTATION", "API_SHIELD", "DATA_LOSS_PREVENTION" - ] - ] - | NotGiven = NOT_GIVEN, name: List[str] | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -1252,9 +1878,9 @@ async def managed_rules( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> SummaryManagedRulesResponse: + ) -> SummaryMitigationProductResponse: """ - Retrieves the distribution of layer 7 attacks by managed rules. + Retrieves the distribution of layer 7 attacks by mitigation product. Args: asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to @@ -1290,8 +1916,6 @@ async def managed_rules( locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. - mitigation_product: Array of L7 mitigation products. - name: Array of names used to label the series in the response. extra_headers: Send extra headers @@ -1303,7 +1927,7 @@ async def managed_rules( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/radar/attacks/layer7/summary/managed_rules", + "/radar/attacks/layer7/summary/mitigation_product", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1322,17 +1946,16 @@ async def managed_rules( "ip_version": ip_version, "limit_per_group": limit_per_group, "location": location, - "mitigation_product": mitigation_product, "name": name, }, - summary_managed_rules_params.SummaryManagedRulesParams, + summary_mitigation_product_params.SummaryMitigationProductParams, ), - post_parser=ResultWrapper[SummaryManagedRulesResponse]._unwrapper, + post_parser=ResultWrapper[SummaryMitigationProductResponse]._unwrapper, ), - cast_to=cast(Type[SummaryManagedRulesResponse], ResultWrapper[SummaryManagedRulesResponse]), + cast_to=cast(Type[SummaryMitigationProductResponse], ResultWrapper[SummaryMitigationProductResponse]), ) - async def mitigation_product( + async def vertical( self, *, asn: List[str] | NotGiven = NOT_GIVEN, @@ -1396,6 +2019,12 @@ async def mitigation_product( ip_version: List[Literal["IPv4", "IPv6"]] | NotGiven = NOT_GIVEN, limit_per_group: int | NotGiven = NOT_GIVEN, location: List[str] | NotGiven = NOT_GIVEN, + mitigation_product: List[ + Literal[ + "DDOS", "WAF", "BOT_MANAGEMENT", "ACCESS_RULES", "IP_REPUTATION", "API_SHIELD", "DATA_LOSS_PREVENTION" + ] + ] + | NotGiven = NOT_GIVEN, name: List[str] | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -1403,9 +2032,9 @@ async def mitigation_product( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> SummaryMitigationProductResponse: + ) -> SummaryVerticalResponse: """ - Retrieves the distribution of layer 7 attacks by mitigation product. + Retrieves the distribution of layer 7 attacks by targeted vertical. Args: asn: Comma-separated list of Autonomous System Numbers (ASNs). Prefix with `-` to @@ -1441,6 +2070,8 @@ async def mitigation_product( locations from results. For example, `-US,PT` excludes results from the US, but includes results from PT. + mitigation_product: Array of L7 mitigation products. + name: Array of names used to label the series in the response. extra_headers: Send extra headers @@ -1452,7 +2083,7 @@ async def mitigation_product( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/radar/attacks/layer7/summary/mitigation_product", + "/radar/attacks/layer7/summary/vertical", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1471,13 +2102,14 @@ async def mitigation_product( "ip_version": ip_version, "limit_per_group": limit_per_group, "location": location, + "mitigation_product": mitigation_product, "name": name, }, - summary_mitigation_product_params.SummaryMitigationProductParams, + summary_vertical_params.SummaryVerticalParams, ), - post_parser=ResultWrapper[SummaryMitigationProductResponse]._unwrapper, + post_parser=ResultWrapper[SummaryVerticalResponse]._unwrapper, ), - cast_to=cast(Type[SummaryMitigationProductResponse], ResultWrapper[SummaryMitigationProductResponse]), + cast_to=cast(Type[SummaryVerticalResponse], ResultWrapper[SummaryVerticalResponse]), ) @@ -1491,6 +2123,9 @@ def __init__(self, summary: SummaryResource) -> None: self.http_version = to_raw_response_wrapper( summary.http_version, ) + self.industry = to_raw_response_wrapper( + summary.industry, + ) self.ip_version = to_raw_response_wrapper( summary.ip_version, ) @@ -1500,6 +2135,9 @@ def __init__(self, summary: SummaryResource) -> None: self.mitigation_product = to_raw_response_wrapper( summary.mitigation_product, ) + self.vertical = to_raw_response_wrapper( + summary.vertical, + ) class AsyncSummaryResourceWithRawResponse: @@ -1512,6 +2150,9 @@ def __init__(self, summary: AsyncSummaryResource) -> None: self.http_version = async_to_raw_response_wrapper( summary.http_version, ) + self.industry = async_to_raw_response_wrapper( + summary.industry, + ) self.ip_version = async_to_raw_response_wrapper( summary.ip_version, ) @@ -1521,6 +2162,9 @@ def __init__(self, summary: AsyncSummaryResource) -> None: self.mitigation_product = async_to_raw_response_wrapper( summary.mitigation_product, ) + self.vertical = async_to_raw_response_wrapper( + summary.vertical, + ) class SummaryResourceWithStreamingResponse: @@ -1533,6 +2177,9 @@ def __init__(self, summary: SummaryResource) -> None: self.http_version = to_streamed_response_wrapper( summary.http_version, ) + self.industry = to_streamed_response_wrapper( + summary.industry, + ) self.ip_version = to_streamed_response_wrapper( summary.ip_version, ) @@ -1542,6 +2189,9 @@ def __init__(self, summary: SummaryResource) -> None: self.mitigation_product = to_streamed_response_wrapper( summary.mitigation_product, ) + self.vertical = to_streamed_response_wrapper( + summary.vertical, + ) class AsyncSummaryResourceWithStreamingResponse: @@ -1554,6 +2204,9 @@ def __init__(self, summary: AsyncSummaryResource) -> None: self.http_version = async_to_streamed_response_wrapper( summary.http_version, ) + self.industry = async_to_streamed_response_wrapper( + summary.industry, + ) self.ip_version = async_to_streamed_response_wrapper( summary.ip_version, ) @@ -1563,3 +2216,6 @@ def __init__(self, summary: AsyncSummaryResource) -> None: self.mitigation_product = async_to_streamed_response_wrapper( summary.mitigation_product, ) + self.vertical = async_to_streamed_response_wrapper( + summary.vertical, + ) diff --git a/src/cloudflare/resources/radar/bgp/routes.py b/src/cloudflare/resources/radar/bgp/routes.py index 7af5788eabc..2fabdd0e5cf 100644 --- a/src/cloudflare/resources/radar/bgp/routes.py +++ b/src/cloudflare/resources/radar/bgp/routes.py @@ -22,11 +22,18 @@ ) from ...._wrappers import ResultWrapper from ...._base_client import make_request_options -from ....types.radar.bgp import route_ases_params, route_moas_params, route_stats_params, route_pfx2as_params +from ....types.radar.bgp import ( + route_ases_params, + route_moas_params, + route_stats_params, + route_pfx2as_params, + route_realtime_params, +) from ....types.radar.bgp.route_ases_response import RouteAsesResponse from ....types.radar.bgp.route_moas_response import RouteMoasResponse from ....types.radar.bgp.route_stats_response import RouteStatsResponse from ....types.radar.bgp.route_pfx2as_response import RoutePfx2asResponse +from ....types.radar.bgp.route_realtime_response import RouteRealtimeResponse __all__ = ["RoutesResource", "AsyncRoutesResource"] @@ -226,6 +233,54 @@ def pfx2as( cast_to=cast(Type[RoutePfx2asResponse], ResultWrapper[RoutePfx2asResponse]), ) + def realtime( + self, + *, + format: Literal["JSON", "CSV"] | NotGiven = NOT_GIVEN, + prefix: str | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> RouteRealtimeResponse: + """ + Retrieves realtime routes for prefixes using public realtime data collectors + (RouteViews and RIPE RIS). + + Args: + format: Format in which results will be returned. + + prefix: Network prefix, IPv4 or IPv6. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + return self._get( + "/radar/bgp/routes/realtime", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "format": format, + "prefix": prefix, + }, + route_realtime_params.RouteRealtimeParams, + ), + post_parser=ResultWrapper[RouteRealtimeResponse]._unwrapper, + ), + cast_to=cast(Type[RouteRealtimeResponse], ResultWrapper[RouteRealtimeResponse]), + ) + def stats( self, *, @@ -473,6 +528,54 @@ async def pfx2as( cast_to=cast(Type[RoutePfx2asResponse], ResultWrapper[RoutePfx2asResponse]), ) + async def realtime( + self, + *, + format: Literal["JSON", "CSV"] | NotGiven = NOT_GIVEN, + prefix: str | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> RouteRealtimeResponse: + """ + Retrieves realtime routes for prefixes using public realtime data collectors + (RouteViews and RIPE RIS). + + Args: + format: Format in which results will be returned. + + prefix: Network prefix, IPv4 or IPv6. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + return await self._get( + "/radar/bgp/routes/realtime", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=await async_maybe_transform( + { + "format": format, + "prefix": prefix, + }, + route_realtime_params.RouteRealtimeParams, + ), + post_parser=ResultWrapper[RouteRealtimeResponse]._unwrapper, + ), + cast_to=cast(Type[RouteRealtimeResponse], ResultWrapper[RouteRealtimeResponse]), + ) + async def stats( self, *, @@ -538,6 +641,9 @@ def __init__(self, routes: RoutesResource) -> None: self.pfx2as = to_raw_response_wrapper( routes.pfx2as, ) + self.realtime = to_raw_response_wrapper( + routes.realtime, + ) self.stats = to_raw_response_wrapper( routes.stats, ) @@ -556,6 +662,9 @@ def __init__(self, routes: AsyncRoutesResource) -> None: self.pfx2as = async_to_raw_response_wrapper( routes.pfx2as, ) + self.realtime = async_to_raw_response_wrapper( + routes.realtime, + ) self.stats = async_to_raw_response_wrapper( routes.stats, ) @@ -574,6 +683,9 @@ def __init__(self, routes: RoutesResource) -> None: self.pfx2as = to_streamed_response_wrapper( routes.pfx2as, ) + self.realtime = to_streamed_response_wrapper( + routes.realtime, + ) self.stats = to_streamed_response_wrapper( routes.stats, ) @@ -592,6 +704,9 @@ def __init__(self, routes: AsyncRoutesResource) -> None: self.pfx2as = async_to_streamed_response_wrapper( routes.pfx2as, ) + self.realtime = async_to_streamed_response_wrapper( + routes.realtime, + ) self.stats = async_to_streamed_response_wrapper( routes.stats, ) diff --git a/src/cloudflare/types/radar/ai/__init__.py b/src/cloudflare/types/radar/ai/__init__.py index d0721eb62fd..265f1746cd4 100755 --- a/src/cloudflare/types/radar/ai/__init__.py +++ b/src/cloudflare/types/radar/ai/__init__.py @@ -2,5 +2,7 @@ from __future__ import annotations +from .to_markdown_create_params import ToMarkdownCreateParams as ToMarkdownCreateParams +from .to_markdown_create_response import ToMarkdownCreateResponse as ToMarkdownCreateResponse from .timeseries_group_user_agent_params import TimeseriesGroupUserAgentParams as TimeseriesGroupUserAgentParams from .timeseries_group_user_agent_response import TimeseriesGroupUserAgentResponse as TimeseriesGroupUserAgentResponse diff --git a/src/cloudflare/types/radar/ai/to_markdown_create_params.py b/src/cloudflare/types/radar/ai/to_markdown_create_params.py new file mode 100644 index 00000000000..838f0bf0e1f --- /dev/null +++ b/src/cloudflare/types/radar/ai/to_markdown_create_params.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +from ...._types import FileTypes + +__all__ = ["ToMarkdownCreateParams"] + + +class ToMarkdownCreateParams(TypedDict, total=False): + account_id: Required[str] + + body: FileTypes diff --git a/src/cloudflare/types/radar/ai/to_markdown_create_response.py b/src/cloudflare/types/radar/ai/to_markdown_create_response.py new file mode 100644 index 00000000000..4cf1f4130c9 --- /dev/null +++ b/src/cloudflare/types/radar/ai/to_markdown_create_response.py @@ -0,0 +1,20 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + + +from pydantic import Field as FieldInfo + +from ...._models import BaseModel + +__all__ = ["ToMarkdownCreateResponse"] + + +class ToMarkdownCreateResponse(BaseModel): + data: str + + format: str + + mime_type: str = FieldInfo(alias="mimeType") + + name: str + + tokens: str diff --git a/src/cloudflare/types/radar/attacks/layer3/__init__.py b/src/cloudflare/types/radar/attacks/layer3/__init__.py index 5d1d4cd7239..f2324093590 100644 --- a/src/cloudflare/types/radar/attacks/layer3/__init__.py +++ b/src/cloudflare/types/radar/attacks/layer3/__init__.py @@ -11,12 +11,16 @@ from .top_vertical_response import TopVerticalResponse as TopVerticalResponse from .summary_bitrate_params import SummaryBitrateParams as SummaryBitrateParams from .summary_duration_params import SummaryDurationParams as SummaryDurationParams +from .summary_industry_params import SummaryIndustryParams as SummaryIndustryParams from .summary_protocol_params import SummaryProtocolParams as SummaryProtocolParams from .summary_vector_response import SummaryVectorResponse as SummaryVectorResponse +from .summary_vertical_params import SummaryVerticalParams as SummaryVerticalParams from .summary_bitrate_response import SummaryBitrateResponse as SummaryBitrateResponse from .summary_duration_response import SummaryDurationResponse as SummaryDurationResponse +from .summary_industry_response import SummaryIndustryResponse as SummaryIndustryResponse from .summary_ip_version_params import SummaryIPVersionParams as SummaryIPVersionParams from .summary_protocol_response import SummaryProtocolResponse as SummaryProtocolResponse +from .summary_vertical_response import SummaryVerticalResponse as SummaryVerticalResponse from .summary_ip_version_response import SummaryIPVersionResponse as SummaryIPVersionResponse from .timeseries_group_vector_params import TimeseriesGroupVectorParams as TimeseriesGroupVectorParams from .timeseries_group_bitrate_params import TimeseriesGroupBitrateParams as TimeseriesGroupBitrateParams diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_industry_params.py b/src/cloudflare/types/radar/attacks/layer3/summary_industry_params.py new file mode 100644 index 00000000000..1772c0a2a50 --- /dev/null +++ b/src/cloudflare/types/radar/attacks/layer3/summary_industry_params.py @@ -0,0 +1,67 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import List, Union +from datetime import datetime +from typing_extensions import Literal, Annotated, TypedDict + +from ....._utils import PropertyInfo + +__all__ = ["SummaryIndustryParams"] + + +class SummaryIndustryParams(TypedDict, total=False): + continent: List[str] + """Comma-separated list of continents (alpha-2 continent codes). + + Prefix with `-` to exclude continents from results. For example, `-EU,NA` + excludes results from EU, but includes results from NA. + """ + + date_end: Annotated[List[Union[str, datetime]], PropertyInfo(alias="dateEnd", format="iso8601")] + """End of the date range (inclusive).""" + + date_range: Annotated[List[str], PropertyInfo(alias="dateRange")] + """Filters results by the specified date range. + + For example, use `7d` and `7dcontrol` to compare this week with the previous + week. Use this parameter or set specific start and end dates (`dateStart` and + `dateEnd` parameters). + """ + + date_start: Annotated[List[Union[str, datetime]], PropertyInfo(alias="dateStart", format="iso8601")] + """Start of the date range.""" + + direction: Literal["ORIGIN", "TARGET"] + """ + Together with the `location` parameter, will apply the filter to origin or + target location. + """ + + format: Literal["JSON", "CSV"] + """Format in which results will be returned.""" + + ip_version: Annotated[List[Literal["IPv4", "IPv6"]], PropertyInfo(alias="ipVersion")] + """Filters results by IP version (Ipv4 vs. IPv6).""" + + limit_per_group: Annotated[int, PropertyInfo(alias="limitPerGroup")] + """ + Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + """ + + location: List[str] + """Comma-separated list of locations (alpha-2 codes). + + Prefix with `-` to exclude locations from results. For example, `-US,PT` + excludes results from the US, but includes results from PT. + """ + + name: List[str] + """Array of names used to label the series in the response.""" + + protocol: List[Literal["UDP", "TCP", "ICMP", "GRE"]] + """Array of L3/4 attack types.""" diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_industry_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_industry_response.py new file mode 100644 index 00000000000..de252763039 --- /dev/null +++ b/src/cloudflare/types/radar/attacks/layer3/summary_industry_response.py @@ -0,0 +1,56 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Dict, List, Optional +from datetime import datetime + +from pydantic import Field as FieldInfo + +from ....._models import BaseModel + +__all__ = ["SummaryIndustryResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) + + +class MetaConfidenceInfo(BaseModel): + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + + level: Optional[int] = None + + +class Meta(BaseModel): + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + + last_updated: str = FieldInfo(alias="lastUpdated") + + normalization: str + + confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) + + +class SummaryIndustryResponse(BaseModel): + meta: Meta + + summary_0: Dict[str, str] diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_vertical_params.py b/src/cloudflare/types/radar/attacks/layer3/summary_vertical_params.py new file mode 100644 index 00000000000..893462d70b1 --- /dev/null +++ b/src/cloudflare/types/radar/attacks/layer3/summary_vertical_params.py @@ -0,0 +1,67 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import List, Union +from datetime import datetime +from typing_extensions import Literal, Annotated, TypedDict + +from ....._utils import PropertyInfo + +__all__ = ["SummaryVerticalParams"] + + +class SummaryVerticalParams(TypedDict, total=False): + continent: List[str] + """Comma-separated list of continents (alpha-2 continent codes). + + Prefix with `-` to exclude continents from results. For example, `-EU,NA` + excludes results from EU, but includes results from NA. + """ + + date_end: Annotated[List[Union[str, datetime]], PropertyInfo(alias="dateEnd", format="iso8601")] + """End of the date range (inclusive).""" + + date_range: Annotated[List[str], PropertyInfo(alias="dateRange")] + """Filters results by the specified date range. + + For example, use `7d` and `7dcontrol` to compare this week with the previous + week. Use this parameter or set specific start and end dates (`dateStart` and + `dateEnd` parameters). + """ + + date_start: Annotated[List[Union[str, datetime]], PropertyInfo(alias="dateStart", format="iso8601")] + """Start of the date range.""" + + direction: Literal["ORIGIN", "TARGET"] + """ + Together with the `location` parameter, will apply the filter to origin or + target location. + """ + + format: Literal["JSON", "CSV"] + """Format in which results will be returned.""" + + ip_version: Annotated[List[Literal["IPv4", "IPv6"]], PropertyInfo(alias="ipVersion")] + """Filters results by IP version (Ipv4 vs. IPv6).""" + + limit_per_group: Annotated[int, PropertyInfo(alias="limitPerGroup")] + """ + Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + """ + + location: List[str] + """Comma-separated list of locations (alpha-2 codes). + + Prefix with `-` to exclude locations from results. For example, `-US,PT` + excludes results from the US, but includes results from PT. + """ + + name: List[str] + """Array of names used to label the series in the response.""" + + protocol: List[Literal["UDP", "TCP", "ICMP", "GRE"]] + """Array of L3/4 attack types.""" diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_vertical_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_vertical_response.py new file mode 100644 index 00000000000..d2cdd169f86 --- /dev/null +++ b/src/cloudflare/types/radar/attacks/layer3/summary_vertical_response.py @@ -0,0 +1,56 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Dict, List, Optional +from datetime import datetime + +from pydantic import Field as FieldInfo + +from ....._models import BaseModel + +__all__ = ["SummaryVerticalResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) + + +class MetaConfidenceInfo(BaseModel): + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + + level: Optional[int] = None + + +class Meta(BaseModel): + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + + last_updated: str = FieldInfo(alias="lastUpdated") + + normalization: str + + confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) + + +class SummaryVerticalResponse(BaseModel): + meta: Meta + + summary_0: Dict[str, str] diff --git a/src/cloudflare/types/radar/attacks/layer7/__init__.py b/src/cloudflare/types/radar/attacks/layer7/__init__.py index c4c0638daa1..e44f35ad755 100644 --- a/src/cloudflare/types/radar/attacks/layer7/__init__.py +++ b/src/cloudflare/types/radar/attacks/layer7/__init__.py @@ -8,7 +8,11 @@ from .top_attacks_response import TopAttacksResponse as TopAttacksResponse from .top_industry_response import TopIndustryResponse as TopIndustryResponse from .top_vertical_response import TopVerticalResponse as TopVerticalResponse +from .summary_industry_params import SummaryIndustryParams as SummaryIndustryParams +from .summary_vertical_params import SummaryVerticalParams as SummaryVerticalParams +from .summary_industry_response import SummaryIndustryResponse as SummaryIndustryResponse from .summary_ip_version_params import SummaryIPVersionParams as SummaryIPVersionParams +from .summary_vertical_response import SummaryVerticalResponse as SummaryVerticalResponse from .summary_http_method_params import SummaryHTTPMethodParams as SummaryHTTPMethodParams from .summary_http_version_params import SummaryHTTPVersionParams as SummaryHTTPVersionParams from .summary_ip_version_response import SummaryIPVersionResponse as SummaryIPVersionResponse diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_industry_params.py b/src/cloudflare/types/radar/attacks/layer7/summary_industry_params.py new file mode 100644 index 00000000000..b3e491753a6 --- /dev/null +++ b/src/cloudflare/types/radar/attacks/layer7/summary_industry_params.py @@ -0,0 +1,133 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import List, Union +from datetime import datetime +from typing_extensions import Literal, Annotated, TypedDict + +from ....._utils import PropertyInfo + +__all__ = ["SummaryIndustryParams"] + + +class SummaryIndustryParams(TypedDict, total=False): + asn: List[str] + """Comma-separated list of Autonomous System Numbers (ASNs). + + Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes + results from AS174, but includes results from AS3356. + """ + + continent: List[str] + """Comma-separated list of continents (alpha-2 continent codes). + + Prefix with `-` to exclude continents from results. For example, `-EU,NA` + excludes results from EU, but includes results from NA. + """ + + date_end: Annotated[List[Union[str, datetime]], PropertyInfo(alias="dateEnd", format="iso8601")] + """End of the date range (inclusive).""" + + date_range: Annotated[List[str], PropertyInfo(alias="dateRange")] + """Filters results by the specified date range. + + For example, use `7d` and `7dcontrol` to compare this week with the previous + week. Use this parameter or set specific start and end dates (`dateStart` and + `dateEnd` parameters). + """ + + date_start: Annotated[List[Union[str, datetime]], PropertyInfo(alias="dateStart", format="iso8601")] + """Start of the date range.""" + + format: Literal["JSON", "CSV"] + """Format in which results will be returned.""" + + http_method: Annotated[ + List[ + Literal[ + "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", + ] + ], + PropertyInfo(alias="httpMethod"), + ] + """Filters results by HTTP method.""" + + http_version: Annotated[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]], PropertyInfo(alias="httpVersion")] + """Filters results by HTTP version.""" + + ip_version: Annotated[List[Literal["IPv4", "IPv6"]], PropertyInfo(alias="ipVersion")] + """Filters results by IP version (Ipv4 vs. IPv6).""" + + limit_per_group: Annotated[int, PropertyInfo(alias="limitPerGroup")] + """ + Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + """ + + location: List[str] + """Comma-separated list of locations (alpha-2 codes). + + Prefix with `-` to exclude locations from results. For example, `-US,PT` + excludes results from the US, but includes results from PT. + """ + + mitigation_product: Annotated[ + List[ + Literal[ + "DDOS", "WAF", "BOT_MANAGEMENT", "ACCESS_RULES", "IP_REPUTATION", "API_SHIELD", "DATA_LOSS_PREVENTION" + ] + ], + PropertyInfo(alias="mitigationProduct"), + ] + """Array of L7 mitigation products.""" + + name: List[str] + """Array of names used to label the series in the response.""" diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_industry_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_industry_response.py new file mode 100644 index 00000000000..de252763039 --- /dev/null +++ b/src/cloudflare/types/radar/attacks/layer7/summary_industry_response.py @@ -0,0 +1,56 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Dict, List, Optional +from datetime import datetime + +from pydantic import Field as FieldInfo + +from ....._models import BaseModel + +__all__ = ["SummaryIndustryResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) + + +class MetaConfidenceInfo(BaseModel): + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + + level: Optional[int] = None + + +class Meta(BaseModel): + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + + last_updated: str = FieldInfo(alias="lastUpdated") + + normalization: str + + confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) + + +class SummaryIndustryResponse(BaseModel): + meta: Meta + + summary_0: Dict[str, str] diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_vertical_params.py b/src/cloudflare/types/radar/attacks/layer7/summary_vertical_params.py new file mode 100644 index 00000000000..70c250100ef --- /dev/null +++ b/src/cloudflare/types/radar/attacks/layer7/summary_vertical_params.py @@ -0,0 +1,133 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import List, Union +from datetime import datetime +from typing_extensions import Literal, Annotated, TypedDict + +from ....._utils import PropertyInfo + +__all__ = ["SummaryVerticalParams"] + + +class SummaryVerticalParams(TypedDict, total=False): + asn: List[str] + """Comma-separated list of Autonomous System Numbers (ASNs). + + Prefix with `-` to exclude ASNs from results. For example, `-174, 3356` excludes + results from AS174, but includes results from AS3356. + """ + + continent: List[str] + """Comma-separated list of continents (alpha-2 continent codes). + + Prefix with `-` to exclude continents from results. For example, `-EU,NA` + excludes results from EU, but includes results from NA. + """ + + date_end: Annotated[List[Union[str, datetime]], PropertyInfo(alias="dateEnd", format="iso8601")] + """End of the date range (inclusive).""" + + date_range: Annotated[List[str], PropertyInfo(alias="dateRange")] + """Filters results by the specified date range. + + For example, use `7d` and `7dcontrol` to compare this week with the previous + week. Use this parameter or set specific start and end dates (`dateStart` and + `dateEnd` parameters). + """ + + date_start: Annotated[List[Union[str, datetime]], PropertyInfo(alias="dateStart", format="iso8601")] + """Start of the date range.""" + + format: Literal["JSON", "CSV"] + """Format in which results will be returned.""" + + http_method: Annotated[ + List[ + Literal[ + "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", + ] + ], + PropertyInfo(alias="httpMethod"), + ] + """Filters results by HTTP method.""" + + http_version: Annotated[List[Literal["HTTPv1", "HTTPv2", "HTTPv3"]], PropertyInfo(alias="httpVersion")] + """Filters results by HTTP version.""" + + ip_version: Annotated[List[Literal["IPv4", "IPv6"]], PropertyInfo(alias="ipVersion")] + """Filters results by IP version (Ipv4 vs. IPv6).""" + + limit_per_group: Annotated[int, PropertyInfo(alias="limitPerGroup")] + """ + Limits the number of objects per group to the top items within the specified + time range. If there are more items than the limit, the response will include + the count of items, with any remaining items grouped together under an "other" + category. + """ + + location: List[str] + """Comma-separated list of locations (alpha-2 codes). + + Prefix with `-` to exclude locations from results. For example, `-US,PT` + excludes results from the US, but includes results from PT. + """ + + mitigation_product: Annotated[ + List[ + Literal[ + "DDOS", "WAF", "BOT_MANAGEMENT", "ACCESS_RULES", "IP_REPUTATION", "API_SHIELD", "DATA_LOSS_PREVENTION" + ] + ], + PropertyInfo(alias="mitigationProduct"), + ] + """Array of L7 mitigation products.""" + + name: List[str] + """Array of names used to label the series in the response.""" diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_vertical_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_vertical_response.py new file mode 100644 index 00000000000..d2cdd169f86 --- /dev/null +++ b/src/cloudflare/types/radar/attacks/layer7/summary_vertical_response.py @@ -0,0 +1,56 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Dict, List, Optional +from datetime import datetime + +from pydantic import Field as FieldInfo + +from ....._models import BaseModel + +__all__ = ["SummaryVerticalResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) + + +class MetaConfidenceInfo(BaseModel): + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + + level: Optional[int] = None + + +class Meta(BaseModel): + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + + last_updated: str = FieldInfo(alias="lastUpdated") + + normalization: str + + confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) + + +class SummaryVerticalResponse(BaseModel): + meta: Meta + + summary_0: Dict[str, str] diff --git a/src/cloudflare/types/radar/bgp/__init__.py b/src/cloudflare/types/radar/bgp/__init__.py index fdbf378f666..eabcfa6c9bc 100644 --- a/src/cloudflare/types/radar/bgp/__init__.py +++ b/src/cloudflare/types/radar/bgp/__init__.py @@ -12,5 +12,7 @@ from .ip_timeseries_params import IPTimeseriesParams as IPTimeseriesParams from .route_stats_response import RouteStatsResponse as RouteStatsResponse from .route_pfx2as_response import RoutePfx2asResponse as RoutePfx2asResponse +from .route_realtime_params import RouteRealtimeParams as RouteRealtimeParams from .top_prefixes_response import TopPrefixesResponse as TopPrefixesResponse from .ip_timeseries_response import IPTimeseriesResponse as IPTimeseriesResponse +from .route_realtime_response import RouteRealtimeResponse as RouteRealtimeResponse diff --git a/src/cloudflare/types/radar/bgp/route_realtime_params.py b/src/cloudflare/types/radar/bgp/route_realtime_params.py new file mode 100644 index 00000000000..3083ba299bf --- /dev/null +++ b/src/cloudflare/types/radar/bgp/route_realtime_params.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Literal, TypedDict + +__all__ = ["RouteRealtimeParams"] + + +class RouteRealtimeParams(TypedDict, total=False): + format: Literal["JSON", "CSV"] + """Format in which results will be returned.""" + + prefix: str + """Network prefix, IPv4 or IPv6.""" diff --git a/src/cloudflare/types/radar/bgp/route_realtime_response.py b/src/cloudflare/types/radar/bgp/route_realtime_response.py new file mode 100644 index 00000000000..8a91d21142a --- /dev/null +++ b/src/cloudflare/types/radar/bgp/route_realtime_response.py @@ -0,0 +1,48 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List + +from ...._models import BaseModel + +__all__ = ["RouteRealtimeResponse", "Meta", "MetaCollector", "Route"] + + +class MetaCollector(BaseModel): + collector: str + """public route collector ID""" + + latest_realtime_ts: str + """latest realtime stream timestamp for this collector""" + + latest_rib_ts: str + """latest RIB dump MRT file timestamp for this collector""" + + latest_updates_ts: str + """latest BGP updates MRT file timestamp for this collector""" + + +class Meta(BaseModel): + collectors: List[MetaCollector] + + +class Route(BaseModel): + as_path: List[int] + """AS-level path for this route, from collector to origin""" + + collector: str + """public collector ID for this route""" + + communities: List[str] + """BGP community values""" + + prefix: str + """IP prefix of this query""" + + timestamp: str + """latest timestamp of change for this route""" + + +class RouteRealtimeResponse(BaseModel): + meta: Meta + + routes: List[Route] diff --git a/tests/api_resources/radar/ai/test_to_markdown.py b/tests/api_resources/radar/ai/test_to_markdown.py new file mode 100644 index 00000000000..bb7bff55ffe --- /dev/null +++ b/tests/api_resources/radar/ai/test_to_markdown.py @@ -0,0 +1,115 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import os +from typing import Any, cast + +import pytest + +from cloudflare import Cloudflare, AsyncCloudflare +from tests.utils import assert_matches_type +from cloudflare.pagination import SyncSinglePage, AsyncSinglePage +from cloudflare.types.radar.ai import ToMarkdownCreateResponse + +base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") + + +class TestToMarkdown: + parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + def test_method_create(self, client: Cloudflare) -> None: + to_markdown = client.radar.ai.to_markdown.create( + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + assert_matches_type(SyncSinglePage[ToMarkdownCreateResponse], to_markdown, path=["response"]) + + @parametrize + def test_method_create_with_all_params(self, client: Cloudflare) -> None: + to_markdown = client.radar.ai.to_markdown.create( + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=b"raw file contents", + ) + assert_matches_type(SyncSinglePage[ToMarkdownCreateResponse], to_markdown, path=["response"]) + + @parametrize + def test_raw_response_create(self, client: Cloudflare) -> None: + response = client.radar.ai.to_markdown.with_raw_response.create( + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + to_markdown = response.parse() + assert_matches_type(SyncSinglePage[ToMarkdownCreateResponse], to_markdown, path=["response"]) + + @parametrize + def test_streaming_response_create(self, client: Cloudflare) -> None: + with client.radar.ai.to_markdown.with_streaming_response.create( + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + to_markdown = response.parse() + assert_matches_type(SyncSinglePage[ToMarkdownCreateResponse], to_markdown, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_create(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.radar.ai.to_markdown.with_raw_response.create( + account_id="", + ) + + +class TestAsyncToMarkdown: + parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + async def test_method_create(self, async_client: AsyncCloudflare) -> None: + to_markdown = await async_client.radar.ai.to_markdown.create( + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + assert_matches_type(AsyncSinglePage[ToMarkdownCreateResponse], to_markdown, path=["response"]) + + @parametrize + async def test_method_create_with_all_params(self, async_client: AsyncCloudflare) -> None: + to_markdown = await async_client.radar.ai.to_markdown.create( + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=b"raw file contents", + ) + assert_matches_type(AsyncSinglePage[ToMarkdownCreateResponse], to_markdown, path=["response"]) + + @parametrize + async def test_raw_response_create(self, async_client: AsyncCloudflare) -> None: + response = await async_client.radar.ai.to_markdown.with_raw_response.create( + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + to_markdown = await response.parse() + assert_matches_type(AsyncSinglePage[ToMarkdownCreateResponse], to_markdown, path=["response"]) + + @parametrize + async def test_streaming_response_create(self, async_client: AsyncCloudflare) -> None: + async with async_client.radar.ai.to_markdown.with_streaming_response.create( + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + to_markdown = await response.parse() + assert_matches_type(AsyncSinglePage[ToMarkdownCreateResponse], to_markdown, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_create(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.radar.ai.to_markdown.with_raw_response.create( + account_id="", + ) diff --git a/tests/api_resources/radar/attacks/layer3/test_summary.py b/tests/api_resources/radar/attacks/layer3/test_summary.py index fdcc5ae9d60..a488256e75c 100644 --- a/tests/api_resources/radar/attacks/layer3/test_summary.py +++ b/tests/api_resources/radar/attacks/layer3/test_summary.py @@ -14,7 +14,9 @@ SummaryVectorResponse, SummaryBitrateResponse, SummaryDurationResponse, + SummaryIndustryResponse, SummaryProtocolResponse, + SummaryVerticalResponse, SummaryIPVersionResponse, ) @@ -106,6 +108,48 @@ def test_streaming_response_duration(self, client: Cloudflare) -> None: assert cast(Any, response.is_closed) is True + @parametrize + def test_method_industry(self, client: Cloudflare) -> None: + summary = client.radar.attacks.layer3.summary.industry() + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + @parametrize + def test_method_industry_with_all_params(self, client: Cloudflare) -> None: + summary = client.radar.attacks.layer3.summary.industry( + continent=["string"], + date_end=[parse_datetime("2019-12-27T18:11:19.117Z")], + date_range=["7d"], + date_start=[parse_datetime("2019-12-27T18:11:19.117Z")], + direction="ORIGIN", + format="JSON", + ip_version=["IPv4"], + limit_per_group=10, + location=["string"], + name=["main_series"], + protocol=["UDP"], + ) + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + @parametrize + def test_raw_response_industry(self, client: Cloudflare) -> None: + response = client.radar.attacks.layer3.summary.with_raw_response.industry() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + summary = response.parse() + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + @parametrize + def test_streaming_response_industry(self, client: Cloudflare) -> None: + with client.radar.attacks.layer3.summary.with_streaming_response.industry() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + summary = response.parse() + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + assert cast(Any, response.is_closed) is True + @parametrize def test_method_ip_version(self, client: Cloudflare) -> None: summary = client.radar.attacks.layer3.summary.ip_version() @@ -228,6 +272,48 @@ def test_streaming_response_vector(self, client: Cloudflare) -> None: assert cast(Any, response.is_closed) is True + @parametrize + def test_method_vertical(self, client: Cloudflare) -> None: + summary = client.radar.attacks.layer3.summary.vertical() + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + @parametrize + def test_method_vertical_with_all_params(self, client: Cloudflare) -> None: + summary = client.radar.attacks.layer3.summary.vertical( + continent=["string"], + date_end=[parse_datetime("2019-12-27T18:11:19.117Z")], + date_range=["7d"], + date_start=[parse_datetime("2019-12-27T18:11:19.117Z")], + direction="ORIGIN", + format="JSON", + ip_version=["IPv4"], + limit_per_group=10, + location=["string"], + name=["main_series"], + protocol=["UDP"], + ) + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + @parametrize + def test_raw_response_vertical(self, client: Cloudflare) -> None: + response = client.radar.attacks.layer3.summary.with_raw_response.vertical() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + summary = response.parse() + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + @parametrize + def test_streaming_response_vertical(self, client: Cloudflare) -> None: + with client.radar.attacks.layer3.summary.with_streaming_response.vertical() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + summary = response.parse() + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + assert cast(Any, response.is_closed) is True + class TestAsyncSummary: parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"]) @@ -314,6 +400,48 @@ async def test_streaming_response_duration(self, async_client: AsyncCloudflare) assert cast(Any, response.is_closed) is True + @parametrize + async def test_method_industry(self, async_client: AsyncCloudflare) -> None: + summary = await async_client.radar.attacks.layer3.summary.industry() + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + @parametrize + async def test_method_industry_with_all_params(self, async_client: AsyncCloudflare) -> None: + summary = await async_client.radar.attacks.layer3.summary.industry( + continent=["string"], + date_end=[parse_datetime("2019-12-27T18:11:19.117Z")], + date_range=["7d"], + date_start=[parse_datetime("2019-12-27T18:11:19.117Z")], + direction="ORIGIN", + format="JSON", + ip_version=["IPv4"], + limit_per_group=10, + location=["string"], + name=["main_series"], + protocol=["UDP"], + ) + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + @parametrize + async def test_raw_response_industry(self, async_client: AsyncCloudflare) -> None: + response = await async_client.radar.attacks.layer3.summary.with_raw_response.industry() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + summary = await response.parse() + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + @parametrize + async def test_streaming_response_industry(self, async_client: AsyncCloudflare) -> None: + async with async_client.radar.attacks.layer3.summary.with_streaming_response.industry() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + summary = await response.parse() + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + assert cast(Any, response.is_closed) is True + @parametrize async def test_method_ip_version(self, async_client: AsyncCloudflare) -> None: summary = await async_client.radar.attacks.layer3.summary.ip_version() @@ -435,3 +563,45 @@ async def test_streaming_response_vector(self, async_client: AsyncCloudflare) -> assert_matches_type(SummaryVectorResponse, summary, path=["response"]) assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_vertical(self, async_client: AsyncCloudflare) -> None: + summary = await async_client.radar.attacks.layer3.summary.vertical() + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + @parametrize + async def test_method_vertical_with_all_params(self, async_client: AsyncCloudflare) -> None: + summary = await async_client.radar.attacks.layer3.summary.vertical( + continent=["string"], + date_end=[parse_datetime("2019-12-27T18:11:19.117Z")], + date_range=["7d"], + date_start=[parse_datetime("2019-12-27T18:11:19.117Z")], + direction="ORIGIN", + format="JSON", + ip_version=["IPv4"], + limit_per_group=10, + location=["string"], + name=["main_series"], + protocol=["UDP"], + ) + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + @parametrize + async def test_raw_response_vertical(self, async_client: AsyncCloudflare) -> None: + response = await async_client.radar.attacks.layer3.summary.with_raw_response.vertical() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + summary = await response.parse() + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + @parametrize + async def test_streaming_response_vertical(self, async_client: AsyncCloudflare) -> None: + async with async_client.radar.attacks.layer3.summary.with_streaming_response.vertical() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + summary = await response.parse() + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + assert cast(Any, response.is_closed) is True diff --git a/tests/api_resources/radar/attacks/layer7/test_summary.py b/tests/api_resources/radar/attacks/layer7/test_summary.py index e7264d066ec..ee33af513ca 100644 --- a/tests/api_resources/radar/attacks/layer7/test_summary.py +++ b/tests/api_resources/radar/attacks/layer7/test_summary.py @@ -11,6 +11,8 @@ from tests.utils import assert_matches_type from cloudflare._utils import parse_datetime from cloudflare.types.radar.attacks.layer7 import ( + SummaryIndustryResponse, + SummaryVerticalResponse, SummaryIPVersionResponse, SummaryHTTPMethodResponse, SummaryHTTPVersionResponse, @@ -109,6 +111,50 @@ def test_streaming_response_http_version(self, client: Cloudflare) -> None: assert cast(Any, response.is_closed) is True + @parametrize + def test_method_industry(self, client: Cloudflare) -> None: + summary = client.radar.attacks.layer7.summary.industry() + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + @parametrize + def test_method_industry_with_all_params(self, client: Cloudflare) -> None: + summary = client.radar.attacks.layer7.summary.industry( + asn=["string"], + continent=["string"], + date_end=[parse_datetime("2019-12-27T18:11:19.117Z")], + date_range=["7d"], + date_start=[parse_datetime("2019-12-27T18:11:19.117Z")], + format="JSON", + http_method=["GET"], + http_version=["HTTPv1"], + ip_version=["IPv4"], + limit_per_group=10, + location=["string"], + mitigation_product=["DDOS"], + name=["main_series"], + ) + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + @parametrize + def test_raw_response_industry(self, client: Cloudflare) -> None: + response = client.radar.attacks.layer7.summary.with_raw_response.industry() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + summary = response.parse() + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + @parametrize + def test_streaming_response_industry(self, client: Cloudflare) -> None: + with client.radar.attacks.layer7.summary.with_streaming_response.industry() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + summary = response.parse() + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + assert cast(Any, response.is_closed) is True + @parametrize def test_method_ip_version(self, client: Cloudflare) -> None: summary = client.radar.attacks.layer7.summary.ip_version() @@ -238,6 +284,50 @@ def test_streaming_response_mitigation_product(self, client: Cloudflare) -> None assert cast(Any, response.is_closed) is True + @parametrize + def test_method_vertical(self, client: Cloudflare) -> None: + summary = client.radar.attacks.layer7.summary.vertical() + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + @parametrize + def test_method_vertical_with_all_params(self, client: Cloudflare) -> None: + summary = client.radar.attacks.layer7.summary.vertical( + asn=["string"], + continent=["string"], + date_end=[parse_datetime("2019-12-27T18:11:19.117Z")], + date_range=["7d"], + date_start=[parse_datetime("2019-12-27T18:11:19.117Z")], + format="JSON", + http_method=["GET"], + http_version=["HTTPv1"], + ip_version=["IPv4"], + limit_per_group=10, + location=["string"], + mitigation_product=["DDOS"], + name=["main_series"], + ) + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + @parametrize + def test_raw_response_vertical(self, client: Cloudflare) -> None: + response = client.radar.attacks.layer7.summary.with_raw_response.vertical() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + summary = response.parse() + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + @parametrize + def test_streaming_response_vertical(self, client: Cloudflare) -> None: + with client.radar.attacks.layer7.summary.with_streaming_response.vertical() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + summary = response.parse() + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + assert cast(Any, response.is_closed) is True + class TestAsyncSummary: parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"]) @@ -327,6 +417,50 @@ async def test_streaming_response_http_version(self, async_client: AsyncCloudfla assert cast(Any, response.is_closed) is True + @parametrize + async def test_method_industry(self, async_client: AsyncCloudflare) -> None: + summary = await async_client.radar.attacks.layer7.summary.industry() + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + @parametrize + async def test_method_industry_with_all_params(self, async_client: AsyncCloudflare) -> None: + summary = await async_client.radar.attacks.layer7.summary.industry( + asn=["string"], + continent=["string"], + date_end=[parse_datetime("2019-12-27T18:11:19.117Z")], + date_range=["7d"], + date_start=[parse_datetime("2019-12-27T18:11:19.117Z")], + format="JSON", + http_method=["GET"], + http_version=["HTTPv1"], + ip_version=["IPv4"], + limit_per_group=10, + location=["string"], + mitigation_product=["DDOS"], + name=["main_series"], + ) + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + @parametrize + async def test_raw_response_industry(self, async_client: AsyncCloudflare) -> None: + response = await async_client.radar.attacks.layer7.summary.with_raw_response.industry() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + summary = await response.parse() + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + @parametrize + async def test_streaming_response_industry(self, async_client: AsyncCloudflare) -> None: + async with async_client.radar.attacks.layer7.summary.with_streaming_response.industry() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + summary = await response.parse() + assert_matches_type(SummaryIndustryResponse, summary, path=["response"]) + + assert cast(Any, response.is_closed) is True + @parametrize async def test_method_ip_version(self, async_client: AsyncCloudflare) -> None: summary = await async_client.radar.attacks.layer7.summary.ip_version() @@ -455,3 +589,47 @@ async def test_streaming_response_mitigation_product(self, async_client: AsyncCl assert_matches_type(SummaryMitigationProductResponse, summary, path=["response"]) assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_vertical(self, async_client: AsyncCloudflare) -> None: + summary = await async_client.radar.attacks.layer7.summary.vertical() + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + @parametrize + async def test_method_vertical_with_all_params(self, async_client: AsyncCloudflare) -> None: + summary = await async_client.radar.attacks.layer7.summary.vertical( + asn=["string"], + continent=["string"], + date_end=[parse_datetime("2019-12-27T18:11:19.117Z")], + date_range=["7d"], + date_start=[parse_datetime("2019-12-27T18:11:19.117Z")], + format="JSON", + http_method=["GET"], + http_version=["HTTPv1"], + ip_version=["IPv4"], + limit_per_group=10, + location=["string"], + mitigation_product=["DDOS"], + name=["main_series"], + ) + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + @parametrize + async def test_raw_response_vertical(self, async_client: AsyncCloudflare) -> None: + response = await async_client.radar.attacks.layer7.summary.with_raw_response.vertical() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + summary = await response.parse() + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + @parametrize + async def test_streaming_response_vertical(self, async_client: AsyncCloudflare) -> None: + async with async_client.radar.attacks.layer7.summary.with_streaming_response.vertical() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + summary = await response.parse() + assert_matches_type(SummaryVerticalResponse, summary, path=["response"]) + + assert cast(Any, response.is_closed) is True diff --git a/tests/api_resources/radar/bgp/test_routes.py b/tests/api_resources/radar/bgp/test_routes.py index 6e1de8fdc16..7a2621097c1 100644 --- a/tests/api_resources/radar/bgp/test_routes.py +++ b/tests/api_resources/radar/bgp/test_routes.py @@ -14,6 +14,7 @@ RouteMoasResponse, RouteStatsResponse, RoutePfx2asResponse, + RouteRealtimeResponse, ) base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -129,6 +130,39 @@ def test_streaming_response_pfx2as(self, client: Cloudflare) -> None: assert cast(Any, response.is_closed) is True + @parametrize + def test_method_realtime(self, client: Cloudflare) -> None: + route = client.radar.bgp.routes.realtime() + assert_matches_type(RouteRealtimeResponse, route, path=["response"]) + + @parametrize + def test_method_realtime_with_all_params(self, client: Cloudflare) -> None: + route = client.radar.bgp.routes.realtime( + format="JSON", + prefix="1.1.1.0/24", + ) + assert_matches_type(RouteRealtimeResponse, route, path=["response"]) + + @parametrize + def test_raw_response_realtime(self, client: Cloudflare) -> None: + response = client.radar.bgp.routes.with_raw_response.realtime() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + route = response.parse() + assert_matches_type(RouteRealtimeResponse, route, path=["response"]) + + @parametrize + def test_streaming_response_realtime(self, client: Cloudflare) -> None: + with client.radar.bgp.routes.with_streaming_response.realtime() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + route = response.parse() + assert_matches_type(RouteRealtimeResponse, route, path=["response"]) + + assert cast(Any, response.is_closed) is True + @parametrize def test_method_stats(self, client: Cloudflare) -> None: route = client.radar.bgp.routes.stats() @@ -274,6 +308,39 @@ async def test_streaming_response_pfx2as(self, async_client: AsyncCloudflare) -> assert cast(Any, response.is_closed) is True + @parametrize + async def test_method_realtime(self, async_client: AsyncCloudflare) -> None: + route = await async_client.radar.bgp.routes.realtime() + assert_matches_type(RouteRealtimeResponse, route, path=["response"]) + + @parametrize + async def test_method_realtime_with_all_params(self, async_client: AsyncCloudflare) -> None: + route = await async_client.radar.bgp.routes.realtime( + format="JSON", + prefix="1.1.1.0/24", + ) + assert_matches_type(RouteRealtimeResponse, route, path=["response"]) + + @parametrize + async def test_raw_response_realtime(self, async_client: AsyncCloudflare) -> None: + response = await async_client.radar.bgp.routes.with_raw_response.realtime() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + route = await response.parse() + assert_matches_type(RouteRealtimeResponse, route, path=["response"]) + + @parametrize + async def test_streaming_response_realtime(self, async_client: AsyncCloudflare) -> None: + async with async_client.radar.bgp.routes.with_streaming_response.realtime() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + route = await response.parse() + assert_matches_type(RouteRealtimeResponse, route, path=["response"]) + + assert cast(Any, response.is_closed) is True + @parametrize async def test_method_stats(self, async_client: AsyncCloudflare) -> None: route = await async_client.radar.bgp.routes.stats() From 4a7cce2366d0fb28f4a6b9a987e5aed39c64ee59 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:57 -0400 Subject: [PATCH 076/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 955f4bbf356..31378a023f1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1660 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-6c15a36391095aacaddd2ccbee8f3f53ffc4217b13a54b9eae9476f004b870b7.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ba269a62194f81af008c8d67cda9ad2714a16b362d4f9cc82ebb37d0b7fc6c8c.yml From c8c233135cca6dbfc1555da4eee591dc39ff582e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:57 -0400 Subject: [PATCH 077/849] feat(api): api update (#2568) --- .stats.yml | 2 +- src/cloudflare/types/kv/namespace.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 31378a023f1..7e161ff492c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1660 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ba269a62194f81af008c8d67cda9ad2714a16b362d4f9cc82ebb37d0b7fc6c8c.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-80bbd2b1fa109e81d427d3b8e1dc2366596e788a7ae4fd7e05637ffd662834e7.yml diff --git a/src/cloudflare/types/kv/namespace.py b/src/cloudflare/types/kv/namespace.py index cac0817cd75..2e87575041d 100644 --- a/src/cloudflare/types/kv/namespace.py +++ b/src/cloudflare/types/kv/namespace.py @@ -14,6 +14,9 @@ class Namespace(BaseModel): title: str """A human-readable string name for a Namespace.""" + beta: Optional[bool] = None + """True if new beta namespace, with additional preview features.""" + supports_url_encoding: Optional[bool] = None """True if keys written on the URL will be URL-decoded before storing. From 9f2b44a424f687317fb0ce7fe97a23196c971b58 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:58 -0400 Subject: [PATCH 078/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 7e161ff492c..27b04598350 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1660 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-80bbd2b1fa109e81d427d3b8e1dc2366596e788a7ae4fd7e05637ffd662834e7.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-175317554e35d1dd9f303317efd0e28661936078248bcdec6b64aa83ab37a0d1.yml From b31b885bdc3be95ddc4d0ab69034c2246c0c5717 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:58 -0400 Subject: [PATCH 079/849] feat(api): api update (#2570) --- .stats.yml | 4 +- api.md | 13 - .../resources/kv/namespaces/__init__.py | 14 - .../resources/kv/namespaces/analytics.py | 290 ------------------ .../resources/kv/namespaces/namespaces.py | 32 -- .../types/kv/namespaces/__init__.py | 4 - .../kv/namespaces/analytics_list_params.py | 62 ---- .../kv/namespaces/analytics_stored_params.py | 62 ---- .../types/kv/namespaces/components.py | 86 ------ src/cloudflare/types/kv/namespaces/schema.py | 86 ------ .../kv/namespaces/test_analytics.py | 239 --------------- 11 files changed, 2 insertions(+), 890 deletions(-) delete mode 100644 src/cloudflare/resources/kv/namespaces/analytics.py delete mode 100644 src/cloudflare/types/kv/namespaces/analytics_list_params.py delete mode 100644 src/cloudflare/types/kv/namespaces/analytics_stored_params.py delete mode 100644 src/cloudflare/types/kv/namespaces/components.py delete mode 100644 src/cloudflare/types/kv/namespaces/schema.py delete mode 100644 tests/api_resources/kv/namespaces/test_analytics.py diff --git a/.stats.yml b/.stats.yml index 27b04598350..a84b2651370 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ -configured_endpoints: 1660 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-175317554e35d1dd9f303317efd0e28661936078248bcdec6b64aa83ab37a0d1.yml +configured_endpoints: 1658 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-27adaef614fe341136b91bcfb30e13b3097fe43f1bacf9c56e0137b1cf7a7ffe.yml diff --git a/api.md b/api.md index cfdaf1e9f1e..24e38033d89 100644 --- a/api.md +++ b/api.md @@ -2541,19 +2541,6 @@ Methods: - client.kv.namespaces.bulk_update(namespace_id, \*, account_id, \*\*params) -> Optional[NamespaceBulkUpdateResponse] - client.kv.namespaces.get(namespace_id, \*, account_id) -> Optional[Namespace] -### Analytics - -Types: - -```python -from cloudflare.types.kv.namespaces import Components, Schema -``` - -Methods: - -- client.kv.namespaces.analytics.list(\*, account_id, \*\*params) -> Optional[Schema] -- client.kv.namespaces.analytics.stored(\*, account_id, \*\*params) -> Optional[Components] - ### Keys Types: diff --git a/src/cloudflare/resources/kv/namespaces/__init__.py b/src/cloudflare/resources/kv/namespaces/__init__.py index d65e56636a8..eaf6f601cea 100644 --- a/src/cloudflare/resources/kv/namespaces/__init__.py +++ b/src/cloudflare/resources/kv/namespaces/__init__.py @@ -24,14 +24,6 @@ MetadataResourceWithStreamingResponse, AsyncMetadataResourceWithStreamingResponse, ) -from .analytics import ( - AnalyticsResource, - AsyncAnalyticsResource, - AnalyticsResourceWithRawResponse, - AsyncAnalyticsResourceWithRawResponse, - AnalyticsResourceWithStreamingResponse, - AsyncAnalyticsResourceWithStreamingResponse, -) from .namespaces import ( NamespacesResource, AsyncNamespacesResource, @@ -42,12 +34,6 @@ ) __all__ = [ - "AnalyticsResource", - "AsyncAnalyticsResource", - "AnalyticsResourceWithRawResponse", - "AsyncAnalyticsResourceWithRawResponse", - "AnalyticsResourceWithStreamingResponse", - "AsyncAnalyticsResourceWithStreamingResponse", "KeysResource", "AsyncKeysResource", "KeysResourceWithRawResponse", diff --git a/src/cloudflare/resources/kv/namespaces/analytics.py b/src/cloudflare/resources/kv/namespaces/analytics.py deleted file mode 100644 index bfcbd6d9058..00000000000 --- a/src/cloudflare/resources/kv/namespaces/analytics.py +++ /dev/null @@ -1,290 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Type, Optional, cast - -import httpx - -from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven -from ...._utils import ( - maybe_transform, - async_maybe_transform, -) -from ...._compat import cached_property -from ...._resource import SyncAPIResource, AsyncAPIResource -from ...._response import ( - to_raw_response_wrapper, - to_streamed_response_wrapper, - async_to_raw_response_wrapper, - async_to_streamed_response_wrapper, -) -from ...._wrappers import ResultWrapper -from ...._base_client import make_request_options -from ....types.kv.namespaces import analytics_list_params, analytics_stored_params -from ....types.kv.namespaces.schema import Schema -from ....types.kv.namespaces.components import Components - -__all__ = ["AnalyticsResource", "AsyncAnalyticsResource"] - - -class AnalyticsResource(SyncAPIResource): - @cached_property - def with_raw_response(self) -> AnalyticsResourceWithRawResponse: - """ - This property can be used as a prefix for any HTTP method call to return - the raw response object instead of the parsed content. - - For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers - """ - return AnalyticsResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> AnalyticsResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response - """ - return AnalyticsResourceWithStreamingResponse(self) - - def list( - self, - *, - account_id: str, - query: analytics_list_params.Query | NotGiven = NOT_GIVEN, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[Schema]: - """ - Retrieves Workers KV request metrics for the given account. - - Args: - account_id: Identifier - - query: For specifying result metrics. - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not account_id: - raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - return self._get( - f"/accounts/{account_id}/storage/analytics", - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - query=maybe_transform({"query": query}, analytics_list_params.AnalyticsListParams), - post_parser=ResultWrapper[Optional[Schema]]._unwrapper, - ), - cast_to=cast(Type[Optional[Schema]], ResultWrapper[Schema]), - ) - - def stored( - self, - *, - account_id: str, - query: analytics_stored_params.Query | NotGiven = NOT_GIVEN, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[Components]: - """ - Retrieves Workers KV stored data metrics for the given account. - - Args: - account_id: Identifier - - query: For specifying result metrics. - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not account_id: - raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - return self._get( - f"/accounts/{account_id}/storage/analytics/stored", - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - query=maybe_transform({"query": query}, analytics_stored_params.AnalyticsStoredParams), - post_parser=ResultWrapper[Optional[Components]]._unwrapper, - ), - cast_to=cast(Type[Optional[Components]], ResultWrapper[Components]), - ) - - -class AsyncAnalyticsResource(AsyncAPIResource): - @cached_property - def with_raw_response(self) -> AsyncAnalyticsResourceWithRawResponse: - """ - This property can be used as a prefix for any HTTP method call to return - the raw response object instead of the parsed content. - - For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers - """ - return AsyncAnalyticsResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> AsyncAnalyticsResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response - """ - return AsyncAnalyticsResourceWithStreamingResponse(self) - - async def list( - self, - *, - account_id: str, - query: analytics_list_params.Query | NotGiven = NOT_GIVEN, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[Schema]: - """ - Retrieves Workers KV request metrics for the given account. - - Args: - account_id: Identifier - - query: For specifying result metrics. - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not account_id: - raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - return await self._get( - f"/accounts/{account_id}/storage/analytics", - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - query=await async_maybe_transform({"query": query}, analytics_list_params.AnalyticsListParams), - post_parser=ResultWrapper[Optional[Schema]]._unwrapper, - ), - cast_to=cast(Type[Optional[Schema]], ResultWrapper[Schema]), - ) - - async def stored( - self, - *, - account_id: str, - query: analytics_stored_params.Query | NotGiven = NOT_GIVEN, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[Components]: - """ - Retrieves Workers KV stored data metrics for the given account. - - Args: - account_id: Identifier - - query: For specifying result metrics. - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not account_id: - raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - return await self._get( - f"/accounts/{account_id}/storage/analytics/stored", - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - query=await async_maybe_transform({"query": query}, analytics_stored_params.AnalyticsStoredParams), - post_parser=ResultWrapper[Optional[Components]]._unwrapper, - ), - cast_to=cast(Type[Optional[Components]], ResultWrapper[Components]), - ) - - -class AnalyticsResourceWithRawResponse: - def __init__(self, analytics: AnalyticsResource) -> None: - self._analytics = analytics - - self.list = to_raw_response_wrapper( - analytics.list, - ) - self.stored = to_raw_response_wrapper( - analytics.stored, - ) - - -class AsyncAnalyticsResourceWithRawResponse: - def __init__(self, analytics: AsyncAnalyticsResource) -> None: - self._analytics = analytics - - self.list = async_to_raw_response_wrapper( - analytics.list, - ) - self.stored = async_to_raw_response_wrapper( - analytics.stored, - ) - - -class AnalyticsResourceWithStreamingResponse: - def __init__(self, analytics: AnalyticsResource) -> None: - self._analytics = analytics - - self.list = to_streamed_response_wrapper( - analytics.list, - ) - self.stored = to_streamed_response_wrapper( - analytics.stored, - ) - - -class AsyncAnalyticsResourceWithStreamingResponse: - def __init__(self, analytics: AsyncAnalyticsResource) -> None: - self._analytics = analytics - - self.list = async_to_streamed_response_wrapper( - analytics.list, - ) - self.stored = async_to_streamed_response_wrapper( - analytics.stored, - ) diff --git a/src/cloudflare/resources/kv/namespaces/namespaces.py b/src/cloudflare/resources/kv/namespaces/namespaces.py index c5d42615d89..20ee234603f 100644 --- a/src/cloudflare/resources/kv/namespaces/namespaces.py +++ b/src/cloudflare/resources/kv/namespaces/namespaces.py @@ -36,14 +36,6 @@ maybe_transform, async_maybe_transform, ) -from .analytics import ( - AnalyticsResource, - AsyncAnalyticsResource, - AnalyticsResourceWithRawResponse, - AsyncAnalyticsResourceWithRawResponse, - AnalyticsResourceWithStreamingResponse, - AsyncAnalyticsResourceWithStreamingResponse, -) from ...._compat import cached_property from ....types.kv import ( namespace_list_params, @@ -71,10 +63,6 @@ class NamespacesResource(SyncAPIResource): - @cached_property - def analytics(self) -> AnalyticsResource: - return AnalyticsResource(self._client) - @cached_property def keys(self) -> KeysResource: return KeysResource(self._client) @@ -450,10 +438,6 @@ def get( class AsyncNamespacesResource(AsyncAPIResource): - @cached_property - def analytics(self) -> AsyncAnalyticsResource: - return AsyncAnalyticsResource(self._client) - @cached_property def keys(self) -> AsyncKeysResource: return AsyncKeysResource(self._client) @@ -854,10 +838,6 @@ def __init__(self, namespaces: NamespacesResource) -> None: namespaces.get, ) - @cached_property - def analytics(self) -> AnalyticsResourceWithRawResponse: - return AnalyticsResourceWithRawResponse(self._namespaces.analytics) - @cached_property def keys(self) -> KeysResourceWithRawResponse: return KeysResourceWithRawResponse(self._namespaces.keys) @@ -897,10 +877,6 @@ def __init__(self, namespaces: AsyncNamespacesResource) -> None: namespaces.get, ) - @cached_property - def analytics(self) -> AsyncAnalyticsResourceWithRawResponse: - return AsyncAnalyticsResourceWithRawResponse(self._namespaces.analytics) - @cached_property def keys(self) -> AsyncKeysResourceWithRawResponse: return AsyncKeysResourceWithRawResponse(self._namespaces.keys) @@ -940,10 +916,6 @@ def __init__(self, namespaces: NamespacesResource) -> None: namespaces.get, ) - @cached_property - def analytics(self) -> AnalyticsResourceWithStreamingResponse: - return AnalyticsResourceWithStreamingResponse(self._namespaces.analytics) - @cached_property def keys(self) -> KeysResourceWithStreamingResponse: return KeysResourceWithStreamingResponse(self._namespaces.keys) @@ -983,10 +955,6 @@ def __init__(self, namespaces: AsyncNamespacesResource) -> None: namespaces.get, ) - @cached_property - def analytics(self) -> AsyncAnalyticsResourceWithStreamingResponse: - return AsyncAnalyticsResourceWithStreamingResponse(self._namespaces.analytics) - @cached_property def keys(self) -> AsyncKeysResourceWithStreamingResponse: return AsyncKeysResourceWithStreamingResponse(self._namespaces.keys) diff --git a/src/cloudflare/types/kv/namespaces/__init__.py b/src/cloudflare/types/kv/namespaces/__init__.py index 3105ebc40af..49140e07efe 100644 --- a/src/cloudflare/types/kv/namespaces/__init__.py +++ b/src/cloudflare/types/kv/namespaces/__init__.py @@ -3,12 +3,8 @@ from __future__ import annotations from .key import Key as Key -from .schema import Schema as Schema -from .components import Components as Components from .key_list_params import KeyListParams as KeyListParams from .value_update_params import ValueUpdateParams as ValueUpdateParams -from .analytics_list_params import AnalyticsListParams as AnalyticsListParams from .metadata_get_response import MetadataGetResponse as MetadataGetResponse from .value_delete_response import ValueDeleteResponse as ValueDeleteResponse from .value_update_response import ValueUpdateResponse as ValueUpdateResponse -from .analytics_stored_params import AnalyticsStoredParams as AnalyticsStoredParams diff --git a/src/cloudflare/types/kv/namespaces/analytics_list_params.py b/src/cloudflare/types/kv/namespaces/analytics_list_params.py deleted file mode 100644 index bac015948be..00000000000 --- a/src/cloudflare/types/kv/namespaces/analytics_list_params.py +++ /dev/null @@ -1,62 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import List, Union -from datetime import datetime -from typing_extensions import Literal, Required, Annotated, TypedDict - -from ...._utils import PropertyInfo - -__all__ = ["AnalyticsListParams", "Query"] - - -class AnalyticsListParams(TypedDict, total=False): - account_id: Required[str] - """Identifier""" - - query: Query - """For specifying result metrics.""" - - -class Query(TypedDict, total=False): - dimensions: List[Literal["accountId", "responseCode", "requestType"]] - """Can be used to break down the data by given attributes.""" - - filters: str - """Used to filter rows by one or more dimensions. - - Filters can be combined using OR and AND boolean logic. AND takes precedence - over OR in all the expressions. The OR operator is defined using a comma (,) or - OR keyword surrounded by whitespace. The AND operator is defined using a - semicolon (;) or AND keyword surrounded by whitespace. Note that the semicolon - is a reserved character in URLs (rfc1738) and needs to be percent-encoded as - %3B. Comparison options are: - - | Operator | Name | URL Encoded | - | -------- | ------------------------ | ----------- | - | == | Equals | %3D%3D | - | != | Does not equals | !%3D | - | > | Greater Than | %3E | - | < | Less Than | %3C | - | >= | Greater than or equal to | %3E%3D | - | <= | Less than or equal to | %3C%3D . | - """ - - limit: int - """Limit number of returned metrics.""" - - metrics: List[Literal["requests", "writeKiB", "readKiB"]] - """One or more metrics to compute.""" - - since: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")] - """Start of time interval to query, defaults to 6 hours before request received.""" - - sort: List[str] - """ - Array of dimensions or metrics to sort by, each dimension/metric may be prefixed - by - (descending) or + (ascending). - """ - - until: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")] - """End of time interval to query, defaults to current time.""" diff --git a/src/cloudflare/types/kv/namespaces/analytics_stored_params.py b/src/cloudflare/types/kv/namespaces/analytics_stored_params.py deleted file mode 100644 index 0b0c576986a..00000000000 --- a/src/cloudflare/types/kv/namespaces/analytics_stored_params.py +++ /dev/null @@ -1,62 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import List, Union -from datetime import datetime -from typing_extensions import Literal, Required, Annotated, TypedDict - -from ...._utils import PropertyInfo - -__all__ = ["AnalyticsStoredParams", "Query"] - - -class AnalyticsStoredParams(TypedDict, total=False): - account_id: Required[str] - """Identifier""" - - query: Query - """For specifying result metrics.""" - - -class Query(TypedDict, total=False): - dimensions: List[Literal["namespaceId"]] - """Can be used to break down the data by given attributes.""" - - filters: str - """Used to filter rows by one or more dimensions. - - Filters can be combined using OR and AND boolean logic. AND takes precedence - over OR in all the expressions. The OR operator is defined using a comma (,) or - OR keyword surrounded by whitespace. The AND operator is defined using a - semicolon (;) or AND keyword surrounded by whitespace. Note that the semicolon - is a reserved character in URLs (rfc1738) and needs to be percent-encoded as - %3B. Comparison options are: - - | Operator | Name | URL Encoded | - | -------- | ------------------------ | ----------- | - | == | Equals | %3D%3D | - | != | Does not equals | !%3D | - | > | Greater Than | %3E | - | < | Less Than | %3C | - | >= | Greater than or equal to | %3E%3D | - | <= | Less than or equal to | %3C%3D . | - """ - - limit: int - """Limit number of returned metrics.""" - - metrics: List[Literal["storedBytes", "storedKeys"]] - """One or more metrics to compute.""" - - since: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")] - """Start of time interval to query, defaults to 6 hours before request received.""" - - sort: List[str] - """ - Array of dimensions or metrics to sort by, each dimension/metric may be prefixed - by - (descending) or + (ascending). - """ - - until: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")] - """End of time interval to query, defaults to current time.""" diff --git a/src/cloudflare/types/kv/namespaces/components.py b/src/cloudflare/types/kv/namespaces/components.py deleted file mode 100644 index 4f441969953..00000000000 --- a/src/cloudflare/types/kv/namespaces/components.py +++ /dev/null @@ -1,86 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Dict, List, Optional -from datetime import datetime - -from ...._models import BaseModel - -__all__ = ["Components", "Data", "Query"] - - -class Data(BaseModel): - metrics: List[List[float]] - """List of metrics returned by the query.""" - - dimensions: Optional[List[str]] = None - - -class Query(BaseModel): - dimensions: Optional[List[str]] = None - """Can be used to break down the data by given attributes.""" - - filters: Optional[str] = None - """Used to filter rows by one or more dimensions. - - Filters can be combined using OR and AND boolean logic. AND takes precedence - over OR in all the expressions. The OR operator is defined using a comma (,) or - OR keyword surrounded by whitespace. The AND operator is defined using a - semicolon (;) or AND keyword surrounded by whitespace. Note that the semicolon - is a reserved character in URLs (rfc1738) and needs to be percent-encoded as - %3B. Comparison options are: - - | Operator | Name | URL Encoded | - | -------- | ------------------------ | ----------- | - | == | Equals | %3D%3D | - | != | Does not equals | !%3D | - | > | Greater Than | %3E | - | < | Less Than | %3C | - | >= | Greater than or equal to | %3E%3D | - | <= | Less than or equal to | %3C%3D . | - """ - - limit: Optional[int] = None - """Limit number of returned metrics.""" - - metrics: Optional[List[str]] = None - """One or more metrics to compute.""" - - since: Optional[datetime] = None - """Start of time interval to query, defaults to 6 hours before request received.""" - - sort: Optional[List[str]] = None - """ - Array of dimensions or metrics to sort by, each dimension/metric may be prefixed - by - (descending) or + (ascending). - """ - - until: Optional[datetime] = None - """End of time interval to query, defaults to current time.""" - - -class Components(BaseModel): - data: Optional[List[Data]] = None - - data_lag: float - """Number of seconds between current time and last processed event, i.e. - - how many seconds of data could be missing. - """ - - max: Dict[str, float] - """Maximum results for each metric.""" - - min: Dict[str, float] - """Minimum results for each metric.""" - - query: Query - """For specifying result metrics.""" - - rows: float - """Total number of rows in the result.""" - - totals: Dict[str, float] - """Total results for metrics across all data.""" - - time_intervals: Optional[List[List[datetime]]] = None - """Time interval buckets by beginning and ending""" diff --git a/src/cloudflare/types/kv/namespaces/schema.py b/src/cloudflare/types/kv/namespaces/schema.py deleted file mode 100644 index 142059675f8..00000000000 --- a/src/cloudflare/types/kv/namespaces/schema.py +++ /dev/null @@ -1,86 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Dict, List, Optional -from datetime import datetime - -from ...._models import BaseModel - -__all__ = ["Schema", "Data", "Query"] - - -class Data(BaseModel): - metrics: List[List[float]] - """List of metrics returned by the query.""" - - dimensions: Optional[List[str]] = None - - -class Query(BaseModel): - dimensions: Optional[List[str]] = None - """Can be used to break down the data by given attributes.""" - - filters: Optional[str] = None - """Used to filter rows by one or more dimensions. - - Filters can be combined using OR and AND boolean logic. AND takes precedence - over OR in all the expressions. The OR operator is defined using a comma (,) or - OR keyword surrounded by whitespace. The AND operator is defined using a - semicolon (;) or AND keyword surrounded by whitespace. Note that the semicolon - is a reserved character in URLs (rfc1738) and needs to be percent-encoded as - %3B. Comparison options are: - - | Operator | Name | URL Encoded | - | -------- | ------------------------ | ----------- | - | == | Equals | %3D%3D | - | != | Does not equals | !%3D | - | > | Greater Than | %3E | - | < | Less Than | %3C | - | >= | Greater than or equal to | %3E%3D | - | <= | Less than or equal to | %3C%3D . | - """ - - limit: Optional[int] = None - """Limit number of returned metrics.""" - - metrics: Optional[List[str]] = None - """One or more metrics to compute.""" - - since: Optional[datetime] = None - """Start of time interval to query, defaults to 6 hours before request received.""" - - sort: Optional[List[str]] = None - """ - Array of dimensions or metrics to sort by, each dimension/metric may be prefixed - by - (descending) or + (ascending). - """ - - until: Optional[datetime] = None - """End of time interval to query, defaults to current time.""" - - -class Schema(BaseModel): - data: Optional[List[Data]] = None - - data_lag: float - """Number of seconds between current time and last processed event, i.e. - - how many seconds of data could be missing. - """ - - max: Dict[str, float] - """Maximum results for each metric.""" - - min: Dict[str, float] - """Minimum results for each metric.""" - - query: Query - """For specifying result metrics.""" - - rows: float - """Total number of rows in the result.""" - - totals: Dict[str, float] - """Total results for metrics across all data.""" - - time_intervals: Optional[List[List[datetime]]] = None - """Time interval buckets by beginning and ending""" diff --git a/tests/api_resources/kv/namespaces/test_analytics.py b/tests/api_resources/kv/namespaces/test_analytics.py deleted file mode 100644 index d222030a30e..00000000000 --- a/tests/api_resources/kv/namespaces/test_analytics.py +++ /dev/null @@ -1,239 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -import os -from typing import Any, Optional, cast - -import pytest - -from cloudflare import Cloudflare, AsyncCloudflare -from tests.utils import assert_matches_type -from cloudflare._utils import parse_datetime -from cloudflare.types.kv.namespaces import Schema, Components - -base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") - - -class TestAnalytics: - parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - - @parametrize - def test_method_list(self, client: Cloudflare) -> None: - analytics = client.kv.namespaces.analytics.list( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - ) - assert_matches_type(Optional[Schema], analytics, path=["response"]) - - @parametrize - def test_method_list_with_all_params(self, client: Cloudflare) -> None: - analytics = client.kv.namespaces.analytics.list( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - query={ - "dimensions": ["accountId"], - "filters": "requestType==read AND responseCode!=200", - "limit": 0, - "metrics": ["requests"], - "since": parse_datetime("2019-01-02T02:20:00Z"), - "sort": ["+requests", "-responseCode"], - "until": parse_datetime("2019-01-02T03:20:00Z"), - }, - ) - assert_matches_type(Optional[Schema], analytics, path=["response"]) - - @parametrize - def test_raw_response_list(self, client: Cloudflare) -> None: - response = client.kv.namespaces.analytics.with_raw_response.list( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - analytics = response.parse() - assert_matches_type(Optional[Schema], analytics, path=["response"]) - - @parametrize - def test_streaming_response_list(self, client: Cloudflare) -> None: - with client.kv.namespaces.analytics.with_streaming_response.list( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - analytics = response.parse() - assert_matches_type(Optional[Schema], analytics, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_list(self, client: Cloudflare) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): - client.kv.namespaces.analytics.with_raw_response.list( - account_id="", - ) - - @parametrize - def test_method_stored(self, client: Cloudflare) -> None: - analytics = client.kv.namespaces.analytics.stored( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - ) - assert_matches_type(Optional[Components], analytics, path=["response"]) - - @parametrize - def test_method_stored_with_all_params(self, client: Cloudflare) -> None: - analytics = client.kv.namespaces.analytics.stored( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - query={ - "dimensions": ["namespaceId"], - "filters": "namespaceId==a4e8cbb7-1b58-4990-925e-e026d40c4c64", - "limit": 0, - "metrics": ["storedBytes"], - "since": parse_datetime("2019-01-02T02:20:00Z"), - "sort": ["+storedBytes", "-namespaceId"], - "until": parse_datetime("2019-01-02T03:20:00Z"), - }, - ) - assert_matches_type(Optional[Components], analytics, path=["response"]) - - @parametrize - def test_raw_response_stored(self, client: Cloudflare) -> None: - response = client.kv.namespaces.analytics.with_raw_response.stored( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - analytics = response.parse() - assert_matches_type(Optional[Components], analytics, path=["response"]) - - @parametrize - def test_streaming_response_stored(self, client: Cloudflare) -> None: - with client.kv.namespaces.analytics.with_streaming_response.stored( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - analytics = response.parse() - assert_matches_type(Optional[Components], analytics, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_stored(self, client: Cloudflare) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): - client.kv.namespaces.analytics.with_raw_response.stored( - account_id="", - ) - - -class TestAsyncAnalytics: - parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"]) - - @parametrize - async def test_method_list(self, async_client: AsyncCloudflare) -> None: - analytics = await async_client.kv.namespaces.analytics.list( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - ) - assert_matches_type(Optional[Schema], analytics, path=["response"]) - - @parametrize - async def test_method_list_with_all_params(self, async_client: AsyncCloudflare) -> None: - analytics = await async_client.kv.namespaces.analytics.list( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - query={ - "dimensions": ["accountId"], - "filters": "requestType==read AND responseCode!=200", - "limit": 0, - "metrics": ["requests"], - "since": parse_datetime("2019-01-02T02:20:00Z"), - "sort": ["+requests", "-responseCode"], - "until": parse_datetime("2019-01-02T03:20:00Z"), - }, - ) - assert_matches_type(Optional[Schema], analytics, path=["response"]) - - @parametrize - async def test_raw_response_list(self, async_client: AsyncCloudflare) -> None: - response = await async_client.kv.namespaces.analytics.with_raw_response.list( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - analytics = await response.parse() - assert_matches_type(Optional[Schema], analytics, path=["response"]) - - @parametrize - async def test_streaming_response_list(self, async_client: AsyncCloudflare) -> None: - async with async_client.kv.namespaces.analytics.with_streaming_response.list( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - analytics = await response.parse() - assert_matches_type(Optional[Schema], analytics, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_list(self, async_client: AsyncCloudflare) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): - await async_client.kv.namespaces.analytics.with_raw_response.list( - account_id="", - ) - - @parametrize - async def test_method_stored(self, async_client: AsyncCloudflare) -> None: - analytics = await async_client.kv.namespaces.analytics.stored( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - ) - assert_matches_type(Optional[Components], analytics, path=["response"]) - - @parametrize - async def test_method_stored_with_all_params(self, async_client: AsyncCloudflare) -> None: - analytics = await async_client.kv.namespaces.analytics.stored( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - query={ - "dimensions": ["namespaceId"], - "filters": "namespaceId==a4e8cbb7-1b58-4990-925e-e026d40c4c64", - "limit": 0, - "metrics": ["storedBytes"], - "since": parse_datetime("2019-01-02T02:20:00Z"), - "sort": ["+storedBytes", "-namespaceId"], - "until": parse_datetime("2019-01-02T03:20:00Z"), - }, - ) - assert_matches_type(Optional[Components], analytics, path=["response"]) - - @parametrize - async def test_raw_response_stored(self, async_client: AsyncCloudflare) -> None: - response = await async_client.kv.namespaces.analytics.with_raw_response.stored( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - analytics = await response.parse() - assert_matches_type(Optional[Components], analytics, path=["response"]) - - @parametrize - async def test_streaming_response_stored(self, async_client: AsyncCloudflare) -> None: - async with async_client.kv.namespaces.analytics.with_streaming_response.stored( - account_id="023e105f4ecef8ad9ca31a8372d0c353", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - analytics = await response.parse() - assert_matches_type(Optional[Components], analytics, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_stored(self, async_client: AsyncCloudflare) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): - await async_client.kv.namespaces.analytics.with_raw_response.stored( - account_id="", - ) From 0749c30ad39ef495c4713b3e5ea2ddab974062be Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:58 -0400 Subject: [PATCH 080/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index a84b2651370..cfd8d971b71 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-27adaef614fe341136b91bcfb30e13b3097fe43f1bacf9c56e0137b1cf7a7ffe.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-9bd83d8d7da86d325038aadd09da7a0c98468db62d68d3a60c3d9549cb5079a4.yml From bb5d651470c92f754afdee147321aaa20d6a13ba Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:58 -0400 Subject: [PATCH 081/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index cfd8d971b71..99cbc4c544f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-9bd83d8d7da86d325038aadd09da7a0c98468db62d68d3a60c3d9549cb5079a4.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ba1b5d514dd30b763180a9f6b8311df9873e962cf5555b796017196dca71c8b5.yml From 6dd613ecebc28f425bf3090d7c514980f3ec3989 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:58 -0400 Subject: [PATCH 082/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 99cbc4c544f..44bb781c743 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ba1b5d514dd30b763180a9f6b8311df9873e962cf5555b796017196dca71c8b5.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b46199ec5c5860b617ddff25c8ecea1db4dd7296838439ffb5b36c69a26d6cf7.yml From 38f39f5a2d0caf40575ef083485892ac22ffd0aa Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:58 -0400 Subject: [PATCH 083/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 44bb781c743..9ecd25a2d6d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b46199ec5c5860b617ddff25c8ecea1db4dd7296838439ffb5b36c69a26d6cf7.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b25ce4c9ad7e76a31efba04eacbbc431a759d79be5dd128bd7c700fb280acc18.yml From 9c74c352887ec2467b7d19eb132c042d9461e511 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:58 -0400 Subject: [PATCH 084/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 9ecd25a2d6d..5657db14db0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b25ce4c9ad7e76a31efba04eacbbc431a759d79be5dd128bd7c700fb280acc18.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d15b284e58e96ad328ff32819945264deab77dbc460bdafcc596cc1c35e01503.yml From 897cb5d9fca5c4807959b698045e46d36ff8a5a9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:58 -0400 Subject: [PATCH 085/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 5657db14db0..9833d39c3ed 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d15b284e58e96ad328ff32819945264deab77dbc460bdafcc596cc1c35e01503.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-cfbb789da1a00926b5d8844c1ac722c7de4b5e2becc759e931ac6fbe154a0c9a.yml From ea4af79fd75de2781331293cb1d82319b5b8f119 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:58 -0400 Subject: [PATCH 086/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 9833d39c3ed..2dd7f485c02 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-cfbb789da1a00926b5d8844c1ac722c7de4b5e2becc759e931ac6fbe154a0c9a.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-044ea05e6fe7e4607a01240097ba31d0046fb9dcd5a277da271b9514a074a990.yml From 6377c9625b2a2aa88369adc90249851fbd73bc49 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:59 -0400 Subject: [PATCH 087/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 2dd7f485c02..8638d4463e2 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-044ea05e6fe7e4607a01240097ba31d0046fb9dcd5a277da271b9514a074a990.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4b4ea1d424837739dc867b1e91b85b11befb9e405dc789cf538c7778deccef3b.yml From 3b1e3ac4c4e989d5b3684b47f343b491e9d10516 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:59 -0400 Subject: [PATCH 088/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 8638d4463e2..34f902325b5 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4b4ea1d424837739dc867b1e91b85b11befb9e405dc789cf538c7778deccef3b.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1fbaece1066cd4dbb378545fd0a0706d6774df5bd512517c12b1ac373ebc7eef.yml From b3b4976eee38212f6b66438beb2316b689cbcc9b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:59 -0400 Subject: [PATCH 089/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 34f902325b5..3ab344d6d15 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1fbaece1066cd4dbb378545fd0a0706d6774df5bd512517c12b1ac373ebc7eef.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a5d1366b84a48c1c6611b6627684a98e67c28d03d9005ac94fe7d58bfb59790b.yml From 09eee108cf323c1912828aeaddbc5ae1dc1f1c8c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:59 -0400 Subject: [PATCH 090/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 3ab344d6d15..5425654deaa 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-a5d1366b84a48c1c6611b6627684a98e67c28d03d9005ac94fe7d58bfb59790b.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1045e01414182cd7b8473cde38d155828475254ef1d1d3f23c44199f437be1f7.yml From d3faaf203e0ba4052c4c186cf36583ecd73489df Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:59 -0400 Subject: [PATCH 091/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 5425654deaa..2448223b577 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1045e01414182cd7b8473cde38d155828475254ef1d1d3f23c44199f437be1f7.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-13efab80a5f3baee3372af2aa9dfbb61e9f695c3ba695285de3a066fb5f0e4ae.yml From e6469e548feb128e1a03f5850c99684f5f6d64da Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:59 -0400 Subject: [PATCH 092/849] feat(api): api update (#2571) --- .stats.yml | 2 +- src/cloudflare/types/queues/queue.py | 3 +++ src/cloudflare/types/queues/queue_update_params.py | 3 +++ tests/api_resources/test_queues.py | 2 ++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 2448223b577..5f048ca19a7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-13efab80a5f3baee3372af2aa9dfbb61e9f695c3ba695285de3a066fb5f0e4ae.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-acd302a2a599b84e800c5bdfa4e3b532fc732316df4f88044e5b0a41295800ac.yml diff --git a/src/cloudflare/types/queues/queue.py b/src/cloudflare/types/queues/queue.py index c8638ac3f1a..9db9ab26583 100644 --- a/src/cloudflare/types/queues/queue.py +++ b/src/cloudflare/types/queues/queue.py @@ -28,6 +28,9 @@ class Settings(BaseModel): delivery_delay: Optional[float] = None """Number of seconds to delay delivery of all messages to consumers.""" + delivery_paused: Optional[bool] = None + """Indicates if message delivery to consumers is currently paused.""" + message_retention_period: Optional[float] = None """Number of seconds after which an unconsumed message will be delayed.""" diff --git a/src/cloudflare/types/queues/queue_update_params.py b/src/cloudflare/types/queues/queue_update_params.py index 83a56ea2f6f..9b53025f044 100644 --- a/src/cloudflare/types/queues/queue_update_params.py +++ b/src/cloudflare/types/queues/queue_update_params.py @@ -20,5 +20,8 @@ class Settings(TypedDict, total=False): delivery_delay: float """Number of seconds to delay delivery of all messages to consumers.""" + delivery_paused: bool + """Indicates if message delivery to consumers is currently paused.""" + message_retention_period: float """Number of seconds after which an unconsumed message will be delayed.""" diff --git a/tests/api_resources/test_queues.py b/tests/api_resources/test_queues.py index 210197c9a59..cb0e86b2daf 100644 --- a/tests/api_resources/test_queues.py +++ b/tests/api_resources/test_queues.py @@ -76,6 +76,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: queue_name="example-queue", settings={ "delivery_delay": 5, + "delivery_paused": True, "message_retention_period": 345600, }, ) @@ -317,6 +318,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare queue_name="example-queue", settings={ "delivery_delay": 5, + "delivery_paused": True, "message_retention_period": 345600, }, ) From 9be116edb575d255f69205c82af673bff01ac36f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:59 -0400 Subject: [PATCH 093/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 5f048ca19a7..10e7c0bf33e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-acd302a2a599b84e800c5bdfa4e3b532fc732316df4f88044e5b0a41295800ac.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1465a39b3ed382b3f0dc9fee4694559816b3387c75591dcbc379aeb28cc004b5.yml From f14a36c084fba5e30c36e24d488e1729ce8963c9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:59 -0400 Subject: [PATCH 094/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 10e7c0bf33e..7de797394a0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1465a39b3ed382b3f0dc9fee4694559816b3387c75591dcbc379aeb28cc004b5.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-939b34468f849b9e37212abad514a68c78ae02b4f26d00db73fd3e63468b7174.yml From 5feb309c32656695079e91819d101e14fda59948 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:46:59 -0400 Subject: [PATCH 095/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 7de797394a0..f512df4a1ad 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-939b34468f849b9e37212abad514a68c78ae02b4f26d00db73fd3e63468b7174.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-7c5dffcd62c967e6fa23a4f90521ede2605166912526af87e8c9a20b3c3c66a2.yml From 6dc8b43cba8458b9cead53a4c775fcf1108c5088 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:00 -0400 Subject: [PATCH 096/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index f512df4a1ad..a14752c390f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-7c5dffcd62c967e6fa23a4f90521ede2605166912526af87e8c9a20b3c3c66a2.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d7058cc45b39ce1939a8e3bee41f649b1aeb7d08c2f8879cc942b94f77f82de3.yml From 8b817066d4c3c983d0ddbc5f10cb1628eecacf35 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:00 -0400 Subject: [PATCH 097/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index a14752c390f..f512df4a1ad 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1658 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d7058cc45b39ce1939a8e3bee41f649b1aeb7d08c2f8879cc942b94f77f82de3.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-7c5dffcd62c967e6fa23a4f90521ede2605166912526af87e8c9a20b3c3c66a2.yml From 23bc225bf94f9f2f0852b91cae448f0141656d81 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:00 -0400 Subject: [PATCH 098/849] feat(queues): add support for purge (#2572) --- .stats.yml | 2 +- api.md | 14 + src/cloudflare/resources/queues/__init__.py | 14 + src/cloudflare/resources/queues/purge.py | 306 ++++++++++++++++++ src/cloudflare/resources/queues/queues.py | 152 ++++++++- src/cloudflare/types/queues/__init__.py | 3 + .../types/queues/purge_start_params.py | 15 + .../types/queues/purge_status_response.py | 15 + .../types/queues/queue_edit_params.py | 27 ++ tests/api_resources/queues/test_purge.py | 232 +++++++++++++ tests/api_resources/test_queues.py | 129 +++++++- 11 files changed, 906 insertions(+), 3 deletions(-) create mode 100644 src/cloudflare/resources/queues/purge.py create mode 100644 src/cloudflare/types/queues/purge_start_params.py create mode 100644 src/cloudflare/types/queues/purge_status_response.py create mode 100644 src/cloudflare/types/queues/queue_edit_params.py create mode 100644 tests/api_resources/queues/test_purge.py diff --git a/.stats.yml b/.stats.yml index f512df4a1ad..733ad9c9054 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ -configured_endpoints: 1658 +configured_endpoints: 1661 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-7c5dffcd62c967e6fa23a4f90521ede2605166912526af87e8c9a20b3c3c66a2.yml diff --git a/api.md b/api.md index 24e38033d89..eafe427e85b 100644 --- a/api.md +++ b/api.md @@ -2619,6 +2619,7 @@ Methods: - client.queues.update(queue_id, \*, account_id, \*\*params) -> Optional[Queue] - client.queues.list(\*, account_id) -> SyncSinglePage[Queue] - client.queues.delete(queue_id, \*, account_id) -> QueueDeleteResponse +- client.queues.edit(queue_id, \*, account_id, \*\*params) -> Optional[Queue] - client.queues.get(queue_id, \*, account_id) -> Optional[Queue] ## Consumers @@ -2649,6 +2650,19 @@ Methods: - client.queues.messages.ack(queue_id, \*, account_id, \*\*params) -> Optional[MessageAckResponse] - client.queues.messages.pull(queue_id, \*, account_id, \*\*params) -> SyncSinglePage[MessagePullResponse] +## Purge + +Types: + +```python +from cloudflare.types.queues import PurgeStatusResponse +``` + +Methods: + +- client.queues.purge.start(queue_id, \*, account_id, \*\*params) -> Optional[Queue] +- client.queues.purge.status(queue_id, \*, account_id) -> Optional[PurgeStatusResponse] + # APIGateway ## Configurations diff --git a/src/cloudflare/resources/queues/__init__.py b/src/cloudflare/resources/queues/__init__.py index 27d187759fa..bccb10e7bf2 100644 --- a/src/cloudflare/resources/queues/__init__.py +++ b/src/cloudflare/resources/queues/__init__.py @@ -1,5 +1,13 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from .purge import ( + PurgeResource, + AsyncPurgeResource, + PurgeResourceWithRawResponse, + AsyncPurgeResourceWithRawResponse, + PurgeResourceWithStreamingResponse, + AsyncPurgeResourceWithStreamingResponse, +) from .queues import ( QueuesResource, AsyncQueuesResource, @@ -38,6 +46,12 @@ "AsyncMessagesResourceWithRawResponse", "MessagesResourceWithStreamingResponse", "AsyncMessagesResourceWithStreamingResponse", + "PurgeResource", + "AsyncPurgeResource", + "PurgeResourceWithRawResponse", + "AsyncPurgeResourceWithRawResponse", + "PurgeResourceWithStreamingResponse", + "AsyncPurgeResourceWithStreamingResponse", "QueuesResource", "AsyncQueuesResource", "QueuesResourceWithRawResponse", diff --git a/src/cloudflare/resources/queues/purge.py b/src/cloudflare/resources/queues/purge.py new file mode 100644 index 00000000000..6b9462e9d63 --- /dev/null +++ b/src/cloudflare/resources/queues/purge.py @@ -0,0 +1,306 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Type, Optional, cast + +import httpx + +from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven +from ..._utils import ( + maybe_transform, + async_maybe_transform, +) +from ..._compat import cached_property +from ..._resource import SyncAPIResource, AsyncAPIResource +from ..._response import ( + to_raw_response_wrapper, + to_streamed_response_wrapper, + async_to_raw_response_wrapper, + async_to_streamed_response_wrapper, +) +from ..._wrappers import ResultWrapper +from ..._base_client import make_request_options +from ...types.queues import purge_start_params +from ...types.queues.queue import Queue +from ...types.queues.purge_status_response import PurgeStatusResponse + +__all__ = ["PurgeResource", "AsyncPurgeResource"] + + +class PurgeResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> PurgeResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return PurgeResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> PurgeResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return PurgeResourceWithStreamingResponse(self) + + def start( + self, + queue_id: str, + *, + account_id: str, + delete_messages_permanently: bool | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[Queue]: + """ + Deletes all messages from the Queue. + + Args: + account_id: A Resource identifier. + + queue_id: A Resource identifier. + + delete_messages_permanently: Confimation that all messages will be deleted permanently. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not queue_id: + raise ValueError(f"Expected a non-empty value for `queue_id` but received {queue_id!r}") + return self._post( + f"/accounts/{account_id}/queues/{queue_id}/purge", + body=maybe_transform( + {"delete_messages_permanently": delete_messages_permanently}, purge_start_params.PurgeStartParams + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[Queue]]._unwrapper, + ), + cast_to=cast(Type[Optional[Queue]], ResultWrapper[Queue]), + ) + + def status( + self, + queue_id: str, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[PurgeStatusResponse]: + """ + Get details about a Queue's purge status. + + Args: + account_id: A Resource identifier. + + queue_id: A Resource identifier. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not queue_id: + raise ValueError(f"Expected a non-empty value for `queue_id` but received {queue_id!r}") + return self._get( + f"/accounts/{account_id}/queues/{queue_id}/purge", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[PurgeStatusResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[PurgeStatusResponse]], ResultWrapper[PurgeStatusResponse]), + ) + + +class AsyncPurgeResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncPurgeResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return AsyncPurgeResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncPurgeResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return AsyncPurgeResourceWithStreamingResponse(self) + + async def start( + self, + queue_id: str, + *, + account_id: str, + delete_messages_permanently: bool | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[Queue]: + """ + Deletes all messages from the Queue. + + Args: + account_id: A Resource identifier. + + queue_id: A Resource identifier. + + delete_messages_permanently: Confimation that all messages will be deleted permanently. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not queue_id: + raise ValueError(f"Expected a non-empty value for `queue_id` but received {queue_id!r}") + return await self._post( + f"/accounts/{account_id}/queues/{queue_id}/purge", + body=await async_maybe_transform( + {"delete_messages_permanently": delete_messages_permanently}, purge_start_params.PurgeStartParams + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[Queue]]._unwrapper, + ), + cast_to=cast(Type[Optional[Queue]], ResultWrapper[Queue]), + ) + + async def status( + self, + queue_id: str, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[PurgeStatusResponse]: + """ + Get details about a Queue's purge status. + + Args: + account_id: A Resource identifier. + + queue_id: A Resource identifier. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not queue_id: + raise ValueError(f"Expected a non-empty value for `queue_id` but received {queue_id!r}") + return await self._get( + f"/accounts/{account_id}/queues/{queue_id}/purge", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[PurgeStatusResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[PurgeStatusResponse]], ResultWrapper[PurgeStatusResponse]), + ) + + +class PurgeResourceWithRawResponse: + def __init__(self, purge: PurgeResource) -> None: + self._purge = purge + + self.start = to_raw_response_wrapper( + purge.start, + ) + self.status = to_raw_response_wrapper( + purge.status, + ) + + +class AsyncPurgeResourceWithRawResponse: + def __init__(self, purge: AsyncPurgeResource) -> None: + self._purge = purge + + self.start = async_to_raw_response_wrapper( + purge.start, + ) + self.status = async_to_raw_response_wrapper( + purge.status, + ) + + +class PurgeResourceWithStreamingResponse: + def __init__(self, purge: PurgeResource) -> None: + self._purge = purge + + self.start = to_streamed_response_wrapper( + purge.start, + ) + self.status = to_streamed_response_wrapper( + purge.status, + ) + + +class AsyncPurgeResourceWithStreamingResponse: + def __init__(self, purge: AsyncPurgeResource) -> None: + self._purge = purge + + self.start = async_to_streamed_response_wrapper( + purge.start, + ) + self.status = async_to_streamed_response_wrapper( + purge.status, + ) diff --git a/src/cloudflare/resources/queues/queues.py b/src/cloudflare/resources/queues/queues.py index deb5d98623f..8bed0af90cd 100644 --- a/src/cloudflare/resources/queues/queues.py +++ b/src/cloudflare/resources/queues/queues.py @@ -6,6 +6,14 @@ import httpx +from .purge import ( + PurgeResource, + AsyncPurgeResource, + PurgeResourceWithRawResponse, + AsyncPurgeResourceWithRawResponse, + PurgeResourceWithStreamingResponse, + AsyncPurgeResourceWithStreamingResponse, +) from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven from ..._utils import ( maybe_transform, @@ -38,7 +46,7 @@ from ..._wrappers import ResultWrapper from ...pagination import SyncSinglePage, AsyncSinglePage from ..._base_client import AsyncPaginator, make_request_options -from ...types.queues import queue_create_params, queue_update_params +from ...types.queues import queue_edit_params, queue_create_params, queue_update_params from ...types.queues.queue import Queue from ...types.queues.queue_delete_response import QueueDeleteResponse @@ -54,6 +62,10 @@ def consumers(self) -> ConsumersResource: def messages(self) -> MessagesResource: return MessagesResource(self._client) + @cached_property + def purge(self) -> PurgeResource: + return PurgeResource(self._client) + @cached_property def with_raw_response(self) -> QueuesResourceWithRawResponse: """ @@ -246,6 +258,59 @@ def delete( cast_to=QueueDeleteResponse, ) + def edit( + self, + queue_id: str, + *, + account_id: str, + queue_name: str | NotGiven = NOT_GIVEN, + settings: queue_edit_params.Settings | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[Queue]: + """ + Updates a Queue. + + Args: + account_id: A Resource identifier. + + queue_id: A Resource identifier. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not queue_id: + raise ValueError(f"Expected a non-empty value for `queue_id` but received {queue_id!r}") + return self._patch( + f"/accounts/{account_id}/queues/{queue_id}", + body=maybe_transform( + { + "queue_name": queue_name, + "settings": settings, + }, + queue_edit_params.QueueEditParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[Queue]]._unwrapper, + ), + cast_to=cast(Type[Optional[Queue]], ResultWrapper[Queue]), + ) + def get( self, queue_id: str, @@ -300,6 +365,10 @@ def consumers(self) -> AsyncConsumersResource: def messages(self) -> AsyncMessagesResource: return AsyncMessagesResource(self._client) + @cached_property + def purge(self) -> AsyncPurgeResource: + return AsyncPurgeResource(self._client) + @cached_property def with_raw_response(self) -> AsyncQueuesResourceWithRawResponse: """ @@ -492,6 +561,59 @@ async def delete( cast_to=QueueDeleteResponse, ) + async def edit( + self, + queue_id: str, + *, + account_id: str, + queue_name: str | NotGiven = NOT_GIVEN, + settings: queue_edit_params.Settings | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[Queue]: + """ + Updates a Queue. + + Args: + account_id: A Resource identifier. + + queue_id: A Resource identifier. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not queue_id: + raise ValueError(f"Expected a non-empty value for `queue_id` but received {queue_id!r}") + return await self._patch( + f"/accounts/{account_id}/queues/{queue_id}", + body=await async_maybe_transform( + { + "queue_name": queue_name, + "settings": settings, + }, + queue_edit_params.QueueEditParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[Queue]]._unwrapper, + ), + cast_to=cast(Type[Optional[Queue]], ResultWrapper[Queue]), + ) + async def get( self, queue_id: str, @@ -553,6 +675,9 @@ def __init__(self, queues: QueuesResource) -> None: self.delete = to_raw_response_wrapper( queues.delete, ) + self.edit = to_raw_response_wrapper( + queues.edit, + ) self.get = to_raw_response_wrapper( queues.get, ) @@ -565,6 +690,10 @@ def consumers(self) -> ConsumersResourceWithRawResponse: def messages(self) -> MessagesResourceWithRawResponse: return MessagesResourceWithRawResponse(self._queues.messages) + @cached_property + def purge(self) -> PurgeResourceWithRawResponse: + return PurgeResourceWithRawResponse(self._queues.purge) + class AsyncQueuesResourceWithRawResponse: def __init__(self, queues: AsyncQueuesResource) -> None: @@ -582,6 +711,9 @@ def __init__(self, queues: AsyncQueuesResource) -> None: self.delete = async_to_raw_response_wrapper( queues.delete, ) + self.edit = async_to_raw_response_wrapper( + queues.edit, + ) self.get = async_to_raw_response_wrapper( queues.get, ) @@ -594,6 +726,10 @@ def consumers(self) -> AsyncConsumersResourceWithRawResponse: def messages(self) -> AsyncMessagesResourceWithRawResponse: return AsyncMessagesResourceWithRawResponse(self._queues.messages) + @cached_property + def purge(self) -> AsyncPurgeResourceWithRawResponse: + return AsyncPurgeResourceWithRawResponse(self._queues.purge) + class QueuesResourceWithStreamingResponse: def __init__(self, queues: QueuesResource) -> None: @@ -611,6 +747,9 @@ def __init__(self, queues: QueuesResource) -> None: self.delete = to_streamed_response_wrapper( queues.delete, ) + self.edit = to_streamed_response_wrapper( + queues.edit, + ) self.get = to_streamed_response_wrapper( queues.get, ) @@ -623,6 +762,10 @@ def consumers(self) -> ConsumersResourceWithStreamingResponse: def messages(self) -> MessagesResourceWithStreamingResponse: return MessagesResourceWithStreamingResponse(self._queues.messages) + @cached_property + def purge(self) -> PurgeResourceWithStreamingResponse: + return PurgeResourceWithStreamingResponse(self._queues.purge) + class AsyncQueuesResourceWithStreamingResponse: def __init__(self, queues: AsyncQueuesResource) -> None: @@ -640,6 +783,9 @@ def __init__(self, queues: AsyncQueuesResource) -> None: self.delete = async_to_streamed_response_wrapper( queues.delete, ) + self.edit = async_to_streamed_response_wrapper( + queues.edit, + ) self.get = async_to_streamed_response_wrapper( queues.get, ) @@ -651,3 +797,7 @@ def consumers(self) -> AsyncConsumersResourceWithStreamingResponse: @cached_property def messages(self) -> AsyncMessagesResourceWithStreamingResponse: return AsyncMessagesResourceWithStreamingResponse(self._queues.messages) + + @cached_property + def purge(self) -> AsyncPurgeResourceWithStreamingResponse: + return AsyncPurgeResourceWithStreamingResponse(self._queues.purge) diff --git a/src/cloudflare/types/queues/__init__.py b/src/cloudflare/types/queues/__init__.py index f7d869e72ae..68567434996 100644 --- a/src/cloudflare/types/queues/__init__.py +++ b/src/cloudflare/types/queues/__init__.py @@ -4,12 +4,15 @@ from .queue import Queue as Queue from .consumer import Consumer as Consumer +from .queue_edit_params import QueueEditParams as QueueEditParams from .message_ack_params import MessageAckParams as MessageAckParams +from .purge_start_params import PurgeStartParams as PurgeStartParams from .message_pull_params import MessagePullParams as MessagePullParams from .queue_create_params import QueueCreateParams as QueueCreateParams from .queue_update_params import QueueUpdateParams as QueueUpdateParams from .message_ack_response import MessageAckResponse as MessageAckResponse from .message_pull_response import MessagePullResponse as MessagePullResponse +from .purge_status_response import PurgeStatusResponse as PurgeStatusResponse from .queue_delete_response import QueueDeleteResponse as QueueDeleteResponse from .consumer_create_params import ConsumerCreateParams as ConsumerCreateParams from .consumer_update_params import ConsumerUpdateParams as ConsumerUpdateParams diff --git a/src/cloudflare/types/queues/purge_start_params.py b/src/cloudflare/types/queues/purge_start_params.py new file mode 100644 index 00000000000..c6f16dc04c0 --- /dev/null +++ b/src/cloudflare/types/queues/purge_start_params.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["PurgeStartParams"] + + +class PurgeStartParams(TypedDict, total=False): + account_id: Required[str] + """A Resource identifier.""" + + delete_messages_permanently: bool + """Confimation that all messages will be deleted permanently.""" diff --git a/src/cloudflare/types/queues/purge_status_response.py b/src/cloudflare/types/queues/purge_status_response.py new file mode 100644 index 00000000000..82578fa1f2b --- /dev/null +++ b/src/cloudflare/types/queues/purge_status_response.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ..._models import BaseModel + +__all__ = ["PurgeStatusResponse"] + + +class PurgeStatusResponse(BaseModel): + completed: Optional[str] = None + """Indicates if the last purge operation completed successfully.""" + + started_at: Optional[str] = None + """Timestamp when the last purge operation started.""" diff --git a/src/cloudflare/types/queues/queue_edit_params.py b/src/cloudflare/types/queues/queue_edit_params.py new file mode 100644 index 00000000000..5b99c17dda8 --- /dev/null +++ b/src/cloudflare/types/queues/queue_edit_params.py @@ -0,0 +1,27 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["QueueEditParams", "Settings"] + + +class QueueEditParams(TypedDict, total=False): + account_id: Required[str] + """A Resource identifier.""" + + queue_name: str + + settings: Settings + + +class Settings(TypedDict, total=False): + delivery_delay: float + """Number of seconds to delay delivery of all messages to consumers.""" + + delivery_paused: bool + """Indicates if message delivery to consumers is currently paused.""" + + message_retention_period: float + """Number of seconds after which an unconsumed message will be delayed.""" diff --git a/tests/api_resources/queues/test_purge.py b/tests/api_resources/queues/test_purge.py new file mode 100644 index 00000000000..f246fe06841 --- /dev/null +++ b/tests/api_resources/queues/test_purge.py @@ -0,0 +1,232 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import os +from typing import Any, Optional, cast + +import pytest + +from cloudflare import Cloudflare, AsyncCloudflare +from tests.utils import assert_matches_type +from cloudflare.types.queues import Queue, PurgeStatusResponse + +base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") + + +class TestPurge: + parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + def test_method_start(self, client: Cloudflare) -> None: + purge = client.queues.purge.start( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + assert_matches_type(Optional[Queue], purge, path=["response"]) + + @parametrize + def test_method_start_with_all_params(self, client: Cloudflare) -> None: + purge = client.queues.purge.start( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + delete_messages_permanently=True, + ) + assert_matches_type(Optional[Queue], purge, path=["response"]) + + @parametrize + def test_raw_response_start(self, client: Cloudflare) -> None: + response = client.queues.purge.with_raw_response.start( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + purge = response.parse() + assert_matches_type(Optional[Queue], purge, path=["response"]) + + @parametrize + def test_streaming_response_start(self, client: Cloudflare) -> None: + with client.queues.purge.with_streaming_response.start( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + purge = response.parse() + assert_matches_type(Optional[Queue], purge, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_start(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.queues.purge.with_raw_response.start( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `queue_id` but received ''"): + client.queues.purge.with_raw_response.start( + queue_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + + @parametrize + def test_method_status(self, client: Cloudflare) -> None: + purge = client.queues.purge.status( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + assert_matches_type(Optional[PurgeStatusResponse], purge, path=["response"]) + + @parametrize + def test_raw_response_status(self, client: Cloudflare) -> None: + response = client.queues.purge.with_raw_response.status( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + purge = response.parse() + assert_matches_type(Optional[PurgeStatusResponse], purge, path=["response"]) + + @parametrize + def test_streaming_response_status(self, client: Cloudflare) -> None: + with client.queues.purge.with_streaming_response.status( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + purge = response.parse() + assert_matches_type(Optional[PurgeStatusResponse], purge, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_status(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.queues.purge.with_raw_response.status( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `queue_id` but received ''"): + client.queues.purge.with_raw_response.status( + queue_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + + +class TestAsyncPurge: + parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + async def test_method_start(self, async_client: AsyncCloudflare) -> None: + purge = await async_client.queues.purge.start( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + assert_matches_type(Optional[Queue], purge, path=["response"]) + + @parametrize + async def test_method_start_with_all_params(self, async_client: AsyncCloudflare) -> None: + purge = await async_client.queues.purge.start( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + delete_messages_permanently=True, + ) + assert_matches_type(Optional[Queue], purge, path=["response"]) + + @parametrize + async def test_raw_response_start(self, async_client: AsyncCloudflare) -> None: + response = await async_client.queues.purge.with_raw_response.start( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + purge = await response.parse() + assert_matches_type(Optional[Queue], purge, path=["response"]) + + @parametrize + async def test_streaming_response_start(self, async_client: AsyncCloudflare) -> None: + async with async_client.queues.purge.with_streaming_response.start( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + purge = await response.parse() + assert_matches_type(Optional[Queue], purge, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_start(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.queues.purge.with_raw_response.start( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `queue_id` but received ''"): + await async_client.queues.purge.with_raw_response.start( + queue_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + + @parametrize + async def test_method_status(self, async_client: AsyncCloudflare) -> None: + purge = await async_client.queues.purge.status( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + assert_matches_type(Optional[PurgeStatusResponse], purge, path=["response"]) + + @parametrize + async def test_raw_response_status(self, async_client: AsyncCloudflare) -> None: + response = await async_client.queues.purge.with_raw_response.status( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + purge = await response.parse() + assert_matches_type(Optional[PurgeStatusResponse], purge, path=["response"]) + + @parametrize + async def test_streaming_response_status(self, async_client: AsyncCloudflare) -> None: + async with async_client.queues.purge.with_streaming_response.status( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + purge = await response.parse() + assert_matches_type(Optional[PurgeStatusResponse], purge, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_status(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.queues.purge.with_raw_response.status( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `queue_id` but received ''"): + await async_client.queues.purge.with_raw_response.status( + queue_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) diff --git a/tests/api_resources/test_queues.py b/tests/api_resources/test_queues.py index cb0e86b2daf..fb1930d4074 100644 --- a/tests/api_resources/test_queues.py +++ b/tests/api_resources/test_queues.py @@ -10,7 +10,10 @@ from cloudflare import Cloudflare, AsyncCloudflare from tests.utils import assert_matches_type from cloudflare.pagination import SyncSinglePage, AsyncSinglePage -from cloudflare.types.queues import Queue, QueueDeleteResponse +from cloudflare.types.queues import ( + Queue, + QueueDeleteResponse, +) base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -208,6 +211,68 @@ def test_path_params_delete(self, client: Cloudflare) -> None: account_id="023e105f4ecef8ad9ca31a8372d0c353", ) + @parametrize + def test_method_edit(self, client: Cloudflare) -> None: + queue = client.queues.edit( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + assert_matches_type(Optional[Queue], queue, path=["response"]) + + @parametrize + def test_method_edit_with_all_params(self, client: Cloudflare) -> None: + queue = client.queues.edit( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + queue_name="example-queue", + settings={ + "delivery_delay": 5, + "delivery_paused": True, + "message_retention_period": 345600, + }, + ) + assert_matches_type(Optional[Queue], queue, path=["response"]) + + @parametrize + def test_raw_response_edit(self, client: Cloudflare) -> None: + response = client.queues.with_raw_response.edit( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + queue = response.parse() + assert_matches_type(Optional[Queue], queue, path=["response"]) + + @parametrize + def test_streaming_response_edit(self, client: Cloudflare) -> None: + with client.queues.with_streaming_response.edit( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + queue = response.parse() + assert_matches_type(Optional[Queue], queue, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_edit(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.queues.with_raw_response.edit( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `queue_id` but received ''"): + client.queues.with_raw_response.edit( + queue_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + @parametrize def test_method_get(self, client: Cloudflare) -> None: queue = client.queues.get( @@ -450,6 +515,68 @@ async def test_path_params_delete(self, async_client: AsyncCloudflare) -> None: account_id="023e105f4ecef8ad9ca31a8372d0c353", ) + @parametrize + async def test_method_edit(self, async_client: AsyncCloudflare) -> None: + queue = await async_client.queues.edit( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + assert_matches_type(Optional[Queue], queue, path=["response"]) + + @parametrize + async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) -> None: + queue = await async_client.queues.edit( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + queue_name="example-queue", + settings={ + "delivery_delay": 5, + "delivery_paused": True, + "message_retention_period": 345600, + }, + ) + assert_matches_type(Optional[Queue], queue, path=["response"]) + + @parametrize + async def test_raw_response_edit(self, async_client: AsyncCloudflare) -> None: + response = await async_client.queues.with_raw_response.edit( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + queue = await response.parse() + assert_matches_type(Optional[Queue], queue, path=["response"]) + + @parametrize + async def test_streaming_response_edit(self, async_client: AsyncCloudflare) -> None: + async with async_client.queues.with_streaming_response.edit( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + queue = await response.parse() + assert_matches_type(Optional[Queue], queue, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_edit(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.queues.with_raw_response.edit( + queue_id="023e105f4ecef8ad9ca31a8372d0c353", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `queue_id` but received ''"): + await async_client.queues.with_raw_response.edit( + queue_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + ) + @parametrize async def test_method_get(self, async_client: AsyncCloudflare) -> None: queue = await async_client.queues.get( From cc218d0186577256bed2e71c42d5728501ae0b90 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:00 -0400 Subject: [PATCH 099/849] feat(kv): add support for bulk get endpoints (#2573) --- .stats.yml | 2 +- api.md | 2 + .../resources/kv/namespaces/namespaces.py | 156 +++++++++++++++++- src/cloudflare/types/kv/__init__.py | 2 + .../types/kv/namespace_bulk_get_params.py | 24 +++ .../types/kv/namespace_bulk_get_response.py | 40 +++++ tests/api_resources/kv/test_namespaces.py | 129 +++++++++++++++ 7 files changed, 353 insertions(+), 2 deletions(-) create mode 100644 src/cloudflare/types/kv/namespace_bulk_get_params.py create mode 100644 src/cloudflare/types/kv/namespace_bulk_get_response.py diff --git a/.stats.yml b/.stats.yml index 733ad9c9054..831c25f3ae9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ -configured_endpoints: 1661 +configured_endpoints: 1662 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-7c5dffcd62c967e6fa23a4f90521ede2605166912526af87e8c9a20b3c3c66a2.yml diff --git a/api.md b/api.md index eafe427e85b..f9a7c5f415e 100644 --- a/api.md +++ b/api.md @@ -2527,6 +2527,7 @@ from cloudflare.types.kv import ( NamespaceUpdateResponse, NamespaceDeleteResponse, NamespaceBulkDeleteResponse, + NamespaceBulkGetResponse, NamespaceBulkUpdateResponse, ) ``` @@ -2538,6 +2539,7 @@ Methods: - client.kv.namespaces.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[Namespace] - client.kv.namespaces.delete(namespace_id, \*, account_id) -> Optional[NamespaceDeleteResponse] - client.kv.namespaces.bulk_delete(namespace_id, \*, account_id, \*\*params) -> Optional[NamespaceBulkDeleteResponse] +- client.kv.namespaces.bulk_get(namespace_id, \*, account_id, \*\*params) -> Optional[NamespaceBulkGetResponse] - client.kv.namespaces.bulk_update(namespace_id, \*, account_id, \*\*params) -> Optional[NamespaceBulkUpdateResponse] - client.kv.namespaces.get(namespace_id, \*, account_id) -> Optional[Namespace] diff --git a/src/cloudflare/resources/kv/namespaces/namespaces.py b/src/cloudflare/resources/kv/namespaces/namespaces.py index 20ee234603f..71c5c8ebd1d 100644 --- a/src/cloudflare/resources/kv/namespaces/namespaces.py +++ b/src/cloudflare/resources/kv/namespaces/namespaces.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import List, Type, Iterable, Optional, cast +from typing import Any, List, Type, Iterable, Optional, cast from typing_extensions import Literal import httpx @@ -41,6 +41,7 @@ namespace_list_params, namespace_create_params, namespace_update_params, + namespace_bulk_get_params, namespace_bulk_update_params, ) from ...._resource import SyncAPIResource, AsyncAPIResource @@ -56,6 +57,7 @@ from ....types.kv.namespace import Namespace from ....types.kv.namespace_delete_response import NamespaceDeleteResponse from ....types.kv.namespace_update_response import NamespaceUpdateResponse +from ....types.kv.namespace_bulk_get_response import NamespaceBulkGetResponse from ....types.kv.namespace_bulk_delete_response import NamespaceBulkDeleteResponse from ....types.kv.namespace_bulk_update_response import NamespaceBulkUpdateResponse @@ -340,6 +342,76 @@ def bulk_delete( cast_to=cast(Type[Optional[NamespaceBulkDeleteResponse]], ResultWrapper[NamespaceBulkDeleteResponse]), ) + def bulk_get( + self, + namespace_id: str, + *, + account_id: str, + keys: List[str], + type: Literal["text", "json"] | NotGiven = NOT_GIVEN, + with_metadata: bool | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[NamespaceBulkGetResponse]: + """Get multiple KV pairs from the namespace. + + Body should contain keys to retrieve + at most 100. Keys must contain text-based values. If value is json, it can be + requested to return in JSON, instead of string. Metadata can be return if + withMetadata is true. + + Args: + account_id: Identifier + + namespace_id: Namespace identifier tag. + + keys: Array of keys to retrieve (maximum 100) + + type: Whether to parse JSON values in the response + + with_metadata: Whether to include metadata in the response + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not namespace_id: + raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") + return cast( + Optional[NamespaceBulkGetResponse], + self._post( + f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/get", + body=maybe_transform( + { + "keys": keys, + "type": type, + "with_metadata": with_metadata, + }, + namespace_bulk_get_params.NamespaceBulkGetParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[NamespaceBulkGetResponse]]._unwrapper, + ), + cast_to=cast( + Any, ResultWrapper[NamespaceBulkGetResponse] + ), # Union types cannot be passed in as arguments in the type system + ), + ) + def bulk_update( self, namespace_id: str, @@ -715,6 +787,76 @@ async def bulk_delete( cast_to=cast(Type[Optional[NamespaceBulkDeleteResponse]], ResultWrapper[NamespaceBulkDeleteResponse]), ) + async def bulk_get( + self, + namespace_id: str, + *, + account_id: str, + keys: List[str], + type: Literal["text", "json"] | NotGiven = NOT_GIVEN, + with_metadata: bool | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[NamespaceBulkGetResponse]: + """Get multiple KV pairs from the namespace. + + Body should contain keys to retrieve + at most 100. Keys must contain text-based values. If value is json, it can be + requested to return in JSON, instead of string. Metadata can be return if + withMetadata is true. + + Args: + account_id: Identifier + + namespace_id: Namespace identifier tag. + + keys: Array of keys to retrieve (maximum 100) + + type: Whether to parse JSON values in the response + + with_metadata: Whether to include metadata in the response + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not namespace_id: + raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") + return cast( + Optional[NamespaceBulkGetResponse], + await self._post( + f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/get", + body=await async_maybe_transform( + { + "keys": keys, + "type": type, + "with_metadata": with_metadata, + }, + namespace_bulk_get_params.NamespaceBulkGetParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[NamespaceBulkGetResponse]]._unwrapper, + ), + cast_to=cast( + Any, ResultWrapper[NamespaceBulkGetResponse] + ), # Union types cannot be passed in as arguments in the type system + ), + ) + async def bulk_update( self, namespace_id: str, @@ -831,6 +973,9 @@ def __init__(self, namespaces: NamespacesResource) -> None: self.bulk_delete = to_raw_response_wrapper( namespaces.bulk_delete, ) + self.bulk_get = to_raw_response_wrapper( + namespaces.bulk_get, + ) self.bulk_update = to_raw_response_wrapper( namespaces.bulk_update, ) @@ -870,6 +1015,9 @@ def __init__(self, namespaces: AsyncNamespacesResource) -> None: self.bulk_delete = async_to_raw_response_wrapper( namespaces.bulk_delete, ) + self.bulk_get = async_to_raw_response_wrapper( + namespaces.bulk_get, + ) self.bulk_update = async_to_raw_response_wrapper( namespaces.bulk_update, ) @@ -909,6 +1057,9 @@ def __init__(self, namespaces: NamespacesResource) -> None: self.bulk_delete = to_streamed_response_wrapper( namespaces.bulk_delete, ) + self.bulk_get = to_streamed_response_wrapper( + namespaces.bulk_get, + ) self.bulk_update = to_streamed_response_wrapper( namespaces.bulk_update, ) @@ -948,6 +1099,9 @@ def __init__(self, namespaces: AsyncNamespacesResource) -> None: self.bulk_delete = async_to_streamed_response_wrapper( namespaces.bulk_delete, ) + self.bulk_get = async_to_streamed_response_wrapper( + namespaces.bulk_get, + ) self.bulk_update = async_to_streamed_response_wrapper( namespaces.bulk_update, ) diff --git a/src/cloudflare/types/kv/__init__.py b/src/cloudflare/types/kv/__init__.py index afaccc1c1e0..896a0346ad5 100644 --- a/src/cloudflare/types/kv/__init__.py +++ b/src/cloudflare/types/kv/__init__.py @@ -6,8 +6,10 @@ from .namespace_list_params import NamespaceListParams as NamespaceListParams from .namespace_create_params import NamespaceCreateParams as NamespaceCreateParams from .namespace_update_params import NamespaceUpdateParams as NamespaceUpdateParams +from .namespace_bulk_get_params import NamespaceBulkGetParams as NamespaceBulkGetParams from .namespace_delete_response import NamespaceDeleteResponse as NamespaceDeleteResponse from .namespace_update_response import NamespaceUpdateResponse as NamespaceUpdateResponse +from .namespace_bulk_get_response import NamespaceBulkGetResponse as NamespaceBulkGetResponse from .namespace_bulk_delete_params import NamespaceBulkDeleteParams as NamespaceBulkDeleteParams from .namespace_bulk_update_params import NamespaceBulkUpdateParams as NamespaceBulkUpdateParams from .namespace_bulk_delete_response import NamespaceBulkDeleteResponse as NamespaceBulkDeleteResponse diff --git a/src/cloudflare/types/kv/namespace_bulk_get_params.py b/src/cloudflare/types/kv/namespace_bulk_get_params.py new file mode 100644 index 00000000000..9f49de2a982 --- /dev/null +++ b/src/cloudflare/types/kv/namespace_bulk_get_params.py @@ -0,0 +1,24 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import List +from typing_extensions import Literal, Required, Annotated, TypedDict + +from ..._utils import PropertyInfo + +__all__ = ["NamespaceBulkGetParams"] + + +class NamespaceBulkGetParams(TypedDict, total=False): + account_id: Required[str] + """Identifier""" + + keys: Required[List[str]] + """Array of keys to retrieve (maximum 100)""" + + type: Literal["text", "json"] + """Whether to parse JSON values in the response""" + + with_metadata: Annotated[bool, PropertyInfo(alias="withMetadata")] + """Whether to include metadata in the response""" diff --git a/src/cloudflare/types/kv/namespace_bulk_get_response.py b/src/cloudflare/types/kv/namespace_bulk_get_response.py new file mode 100644 index 00000000000..8a590e1caa2 --- /dev/null +++ b/src/cloudflare/types/kv/namespace_bulk_get_response.py @@ -0,0 +1,40 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Dict, Union, Optional +from typing_extensions import TypeAlias + +from ..._models import BaseModel + +__all__ = [ + "NamespaceBulkGetResponse", + "WorkersKVBulkGetResult", + "WorkersKVBulkGetResultWithMetadata", + "WorkersKVBulkGetResultWithMetadataValues", +] + + +class WorkersKVBulkGetResult(BaseModel): + values: Optional[Dict[str, Union[str, float, bool, Dict[str, object]]]] = None + """Requested keys are paired with their values in an object""" + + +class WorkersKVBulkGetResultWithMetadataValues(BaseModel): + metadata: Optional[Dict[str, object]] = None + """The metadata associated with the key""" + + value: Union[str, float, bool, Dict[str, object]] + """The value associated with the key""" + + expiration: Optional[float] = None + """ + The time, measured in number of seconds since the UNIX epoch, at which the key + should expire. + """ + + +class WorkersKVBulkGetResultWithMetadata(BaseModel): + values: Optional[Dict[str, Optional[WorkersKVBulkGetResultWithMetadataValues]]] = None + """Requested keys are paired with their values and metadata in an object""" + + +NamespaceBulkGetResponse: TypeAlias = Union[WorkersKVBulkGetResult, WorkersKVBulkGetResultWithMetadata, None] diff --git a/tests/api_resources/kv/test_namespaces.py b/tests/api_resources/kv/test_namespaces.py index 7f288603c1d..89f37e50ab0 100644 --- a/tests/api_resources/kv/test_namespaces.py +++ b/tests/api_resources/kv/test_namespaces.py @@ -13,6 +13,7 @@ Namespace, NamespaceDeleteResponse, NamespaceUpdateResponse, + NamespaceBulkGetResponse, NamespaceBulkDeleteResponse, NamespaceBulkUpdateResponse, ) @@ -269,6 +270,70 @@ def test_path_params_bulk_delete(self, client: Cloudflare) -> None: body=["My-Key"], ) + @parametrize + def test_method_bulk_get(self, client: Cloudflare) -> None: + namespace = client.kv.namespaces.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) + assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) + + @parametrize + def test_method_bulk_get_with_all_params(self, client: Cloudflare) -> None: + namespace = client.kv.namespaces.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + type="text", + with_metadata=True, + ) + assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) + + @parametrize + def test_raw_response_bulk_get(self, client: Cloudflare) -> None: + response = client.kv.namespaces.with_raw_response.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + namespace = response.parse() + assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) + + @parametrize + def test_streaming_response_bulk_get(self, client: Cloudflare) -> None: + with client.kv.namespaces.with_streaming_response.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + namespace = response.parse() + assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_bulk_get(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.kv.namespaces.with_raw_response.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="", + keys=["My-Key"], + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): + client.kv.namespaces.with_raw_response.bulk_get( + namespace_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) + @parametrize def test_method_bulk_update(self, client: Cloudflare) -> None: namespace = client.kv.namespaces.bulk_update( @@ -619,6 +684,70 @@ async def test_path_params_bulk_delete(self, async_client: AsyncCloudflare) -> N body=["My-Key"], ) + @parametrize + async def test_method_bulk_get(self, async_client: AsyncCloudflare) -> None: + namespace = await async_client.kv.namespaces.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) + assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) + + @parametrize + async def test_method_bulk_get_with_all_params(self, async_client: AsyncCloudflare) -> None: + namespace = await async_client.kv.namespaces.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + type="text", + with_metadata=True, + ) + assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) + + @parametrize + async def test_raw_response_bulk_get(self, async_client: AsyncCloudflare) -> None: + response = await async_client.kv.namespaces.with_raw_response.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + namespace = await response.parse() + assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) + + @parametrize + async def test_streaming_response_bulk_get(self, async_client: AsyncCloudflare) -> None: + async with async_client.kv.namespaces.with_streaming_response.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + namespace = await response.parse() + assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_bulk_get(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.kv.namespaces.with_raw_response.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="", + keys=["My-Key"], + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): + await async_client.kv.namespaces.with_raw_response.bulk_get( + namespace_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) + @parametrize async def test_method_bulk_update(self, async_client: AsyncCloudflare) -> None: namespace = await async_client.kv.namespaces.bulk_update( From 0c1a3cde17e04b535f51cd86da37916e9898c879 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:00 -0400 Subject: [PATCH 100/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 831c25f3ae9..c6e86ab74e2 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-7c5dffcd62c967e6fa23a4f90521ede2605166912526af87e8c9a20b3c3c66a2.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d7058cc45b39ce1939a8e3bee41f649b1aeb7d08c2f8879cc942b94f77f82de3.yml From 63fe23724f87d7bf39f1d2e9bace268b4b934a7a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:00 -0400 Subject: [PATCH 101/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index c6e86ab74e2..a9f79512025 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d7058cc45b39ce1939a8e3bee41f649b1aeb7d08c2f8879cc942b94f77f82de3.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-25a72d570307d47f3166e831fb8e21b28374bbb1ccb69be0232ac519bb283369.yml From fb046c9ac40490981231424a1445fb39dca72fef Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:00 -0400 Subject: [PATCH 102/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index a9f79512025..4c0db03b77f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-25a72d570307d47f3166e831fb8e21b28374bbb1ccb69be0232ac519bb283369.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-16ebe3be82c8beb607420aed4675ca2aa2a14c5b8c2ac2a60db7772e94b7fba2.yml From 4c89890bf6a0664dfac39944cbc4b5db235a8e37 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:00 -0400 Subject: [PATCH 103/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 4c0db03b77f..a6fb4a94ebb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-16ebe3be82c8beb607420aed4675ca2aa2a14c5b8c2ac2a60db7772e94b7fba2.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1c762872065d2896fca8049b489ac58bbc7f02a163fc175824fc040f525b9495.yml From 2b920bce7af766c7a49cc666805ad40b672b78c4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:01 -0400 Subject: [PATCH 104/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index a6fb4a94ebb..6130984ec06 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1c762872065d2896fca8049b489ac58bbc7f02a163fc175824fc040f525b9495.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-379ac74e1a29cb5436455393740011b944a1d9c3b144326b77a3872fb2dc1865.yml From e0f23f6c98c5121d3a2b7e4dd2b6e24d0f52cfc1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:01 -0400 Subject: [PATCH 105/849] chore: fix typos (#2574) --- src/cloudflare/_models.py | 2 +- src/cloudflare/_utils/_transform.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cloudflare/_models.py b/src/cloudflare/_models.py index b51a1bf5f94..349357169f4 100644 --- a/src/cloudflare/_models.py +++ b/src/cloudflare/_models.py @@ -681,7 +681,7 @@ def set_pydantic_config(typ: Any, config: pydantic.ConfigDict) -> None: setattr(typ, "__pydantic_config__", config) # noqa: B010 -# our use of subclasssing here causes weirdness for type checkers, +# our use of subclassing here causes weirdness for type checkers, # so we just pretend that we don't subclass if TYPE_CHECKING: GenericModel = BaseModel diff --git a/src/cloudflare/_utils/_transform.py b/src/cloudflare/_utils/_transform.py index 18afd9d8bd5..7ac2e17fbbd 100644 --- a/src/cloudflare/_utils/_transform.py +++ b/src/cloudflare/_utils/_transform.py @@ -126,7 +126,7 @@ def _get_annotated_type(type_: type) -> type | None: def _maybe_transform_key(key: str, type_: type) -> str: """Transform the given `data` based on the annotations provided in `type_`. - Note: this function only looks at `Annotated` types that contain `PropertInfo` metadata. + Note: this function only looks at `Annotated` types that contain `PropertyInfo` metadata. """ annotated_type = _get_annotated_type(type_) if annotated_type is None: From 0fcc0eb8bed9f61bac3e6b7e4a822068e3bcaf36 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:01 -0400 Subject: [PATCH 106/849] codegen metadata --- .stats.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.stats.yml b/.stats.yml index 6130984ec06..a86f84141d4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,4 @@ configured_endpoints: 1662 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-379ac74e1a29cb5436455393740011b944a1d9c3b144326b77a3872fb2dc1865.yml +openapi_spec_hash: ed2a249fc3cf02eaab2accaa47e67fe1 +config_hash: 889730175b003f94ada58b7860299ea1 From c8b5873b69c2a27800f2931544d7d675e3a75eab Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:01 -0400 Subject: [PATCH 107/849] feat(api): api update (#2575) --- .stats.yml | 4 ++-- src/cloudflare/types/logpush/output_options.py | 8 ++++---- src/cloudflare/types/logpush/output_options_param.py | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.stats.yml b/.stats.yml index a86f84141d4..86e95d7614d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-379ac74e1a29cb5436455393740011b944a1d9c3b144326b77a3872fb2dc1865.yml -openapi_spec_hash: ed2a249fc3cf02eaab2accaa47e67fe1 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d52ee1d2da0c839fb35df04c7f2e9980e4291156170ff2d24d2b87195b75e736.yml +openapi_spec_hash: 28649f5f2ccc244340d10f8ed2cf5800 config_hash: 889730175b003f94ada58b7860299ea1 diff --git a/src/cloudflare/types/logpush/output_options.py b/src/cloudflare/types/logpush/output_options.py index 0dcd9da69e8..6adcfa4319b 100644 --- a/src/cloudflare/types/logpush/output_options.py +++ b/src/cloudflare/types/logpush/output_options.py @@ -52,10 +52,10 @@ class OutputOptions(BaseModel): record_template: Optional[str] = None """ - 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. + String to use as template for each record instead of the default json key value + mapping. 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. """ sample_rate: Optional[float] = None diff --git a/src/cloudflare/types/logpush/output_options_param.py b/src/cloudflare/types/logpush/output_options_param.py index 068734402e9..b62782da326 100644 --- a/src/cloudflare/types/logpush/output_options_param.py +++ b/src/cloudflare/types/logpush/output_options_param.py @@ -52,10 +52,10 @@ class OutputOptionsParam(TypedDict, total=False): record_template: Optional[str] """ - 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. + String to use as template for each record instead of the default json key value + mapping. 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. """ sample_rate: Optional[float] From bb5ce84ef4280b13984d461a0d57f5aba3b97f7f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:01 -0400 Subject: [PATCH 108/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 86e95d7614d..0e0bfe16ac2 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d52ee1d2da0c839fb35df04c7f2e9980e4291156170ff2d24d2b87195b75e736.yml -openapi_spec_hash: 28649f5f2ccc244340d10f8ed2cf5800 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2f2f810e065becf10c3ac9fc29bc057ea4ca3445abd6bb1f827cf176978d77fa.yml +openapi_spec_hash: d07b513f32d0bcf66e3f834ffaf0efba config_hash: 889730175b003f94ada58b7860299ea1 From d38e78473b6d98e11684a8ca9181002419281cac Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:01 -0400 Subject: [PATCH 109/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0e0bfe16ac2..0a014859894 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2f2f810e065becf10c3ac9fc29bc057ea4ca3445abd6bb1f827cf176978d77fa.yml -openapi_spec_hash: d07b513f32d0bcf66e3f834ffaf0efba +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0dd43ed104cbaee117f2e600bf594295e7dacacb8f3048bf402ad0adedbc21ff.yml +openapi_spec_hash: 931d3de67b3e80f82285b5f43aa771f7 config_hash: 889730175b003f94ada58b7860299ea1 From 4f8ffed1bb837f0aa483d7549609b53dc3edad7c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:01 -0400 Subject: [PATCH 110/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0a014859894..7f58f5f8fa1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0dd43ed104cbaee117f2e600bf594295e7dacacb8f3048bf402ad0adedbc21ff.yml -openapi_spec_hash: 931d3de67b3e80f82285b5f43aa771f7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-834177936f2fd0fae0253623ce5751885bc508703e34e2b8b00e3fc6784ac852.yml +openapi_spec_hash: 233b452db386b08b44b0b833b4b803d7 config_hash: 889730175b003f94ada58b7860299ea1 From 365f8b8392e9a73209f6ccf3dcbf5fa767bb4997 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:01 -0400 Subject: [PATCH 111/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 7f58f5f8fa1..b3d2505bc83 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-834177936f2fd0fae0253623ce5751885bc508703e34e2b8b00e3fc6784ac852.yml -openapi_spec_hash: 233b452db386b08b44b0b833b4b803d7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f11833d811c4d6db485959eae419e63e23bc8aa736ae88738269a93928bc464d.yml +openapi_spec_hash: 485399afc9116bfe453374d6b933a479 config_hash: 889730175b003f94ada58b7860299ea1 From ad83253dd2962a3eccbbda4de061a3cea51ee430 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:01 -0400 Subject: [PATCH 112/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b3d2505bc83..0e0bfe16ac2 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f11833d811c4d6db485959eae419e63e23bc8aa736ae88738269a93928bc464d.yml -openapi_spec_hash: 485399afc9116bfe453374d6b933a479 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2f2f810e065becf10c3ac9fc29bc057ea4ca3445abd6bb1f827cf176978d77fa.yml +openapi_spec_hash: d07b513f32d0bcf66e3f834ffaf0efba config_hash: 889730175b003f94ada58b7860299ea1 From b087493e546c7db1645d22955c2758758add4bda Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:02 -0400 Subject: [PATCH 113/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 0e0bfe16ac2..80e51e1b69a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2f2f810e065becf10c3ac9fc29bc057ea4ca3445abd6bb1f827cf176978d77fa.yml openapi_spec_hash: d07b513f32d0bcf66e3f834ffaf0efba -config_hash: 889730175b003f94ada58b7860299ea1 +config_hash: a3bf1982efda6b8ff0a45660c1f0f516 From c4a30f58e9c265a59e85f296e36fa54d099a69b9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:02 -0400 Subject: [PATCH 114/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 80e51e1b69a..8db8c377045 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2f2f810e065becf10c3ac9fc29bc057ea4ca3445abd6bb1f827cf176978d77fa.yml -openapi_spec_hash: d07b513f32d0bcf66e3f834ffaf0efba +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2a22a758f52598858fdf7bc7e6e2f183388f10c74de80b97c78ae979fba09e8f.yml +openapi_spec_hash: f10396a6fd7f4c20adb1bafc9009319b config_hash: a3bf1982efda6b8ff0a45660c1f0f516 From 6fed285b03aabd1c2691187302fd04234e1abb80 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:02 -0400 Subject: [PATCH 115/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8db8c377045..c566888467b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2a22a758f52598858fdf7bc7e6e2f183388f10c74de80b97c78ae979fba09e8f.yml -openapi_spec_hash: f10396a6fd7f4c20adb1bafc9009319b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-47886b98c37ba3a22c76ce20542b50a299502e7fca1d5106aad1887da8888369.yml +openapi_spec_hash: 06684fa391b70e2cfe45e6d5120b9f09 config_hash: a3bf1982efda6b8ff0a45660c1f0f516 From 8d68b06e42b27b4aa2ab858dd4a7d81f07abb400 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:02 -0400 Subject: [PATCH 116/849] feat(api): api update (#2577) --- .stats.yml | 4 ++-- src/cloudflare/types/accounts/logs/audit_list_response.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index c566888467b..7c19b8f59b8 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-47886b98c37ba3a22c76ce20542b50a299502e7fca1d5106aad1887da8888369.yml -openapi_spec_hash: 06684fa391b70e2cfe45e6d5120b9f09 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ea029e2953a0481670f18fce0bcac8f2f31cf760713fbec7935e259dafad5f46.yml +openapi_spec_hash: b9271a3dcb520471beb84b2db081e965 config_hash: a3bf1982efda6b8ff0a45660c1f0f516 diff --git a/src/cloudflare/types/accounts/logs/audit_list_response.py b/src/cloudflare/types/accounts/logs/audit_list_response.py index ec2281163c6..75c964af8ee 100644 --- a/src/cloudflare/types/accounts/logs/audit_list_response.py +++ b/src/cloudflare/types/accounts/logs/audit_list_response.py @@ -54,7 +54,7 @@ class Actor(BaseModel): token_name: Optional[str] = None """Filters by the API token name when the actor context is an api_token.""" - type: Optional[Literal["user", "account", "cloudflare-admin"]] = None + type: Optional[Literal["account", "cloudflare_admin", "system", "user"]] = None """The type of actor.""" From 9d7e34aa7fade7e2e45060b46c2af2da0947cfdc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:02 -0400 Subject: [PATCH 117/849] fix(types): add missing total=False (#2578) --- src/cloudflare/types/dns/batch_patch_param.py | 40 +++++++++---------- src/cloudflare/types/dns/batch_put_param.py | 40 +++++++++---------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/cloudflare/types/dns/batch_patch_param.py b/src/cloudflare/types/dns/batch_patch_param.py index d1d7258178d..a7004efe440 100644 --- a/src/cloudflare/types/dns/batch_patch_param.py +++ b/src/cloudflare/types/dns/batch_patch_param.py @@ -55,62 +55,62 @@ ] -class A(ARecordParam): +class A(ARecordParam, total=False): id: Required[str] """Identifier""" -class AAAA(AAAARecordParam): +class AAAA(AAAARecordParam, total=False): id: Required[str] """Identifier""" -class CAA(CAARecordParam): +class CAA(CAARecordParam, total=False): id: Required[str] """Identifier""" -class CERT(CERTRecordParam): +class CERT(CERTRecordParam, total=False): id: Required[str] """Identifier""" -class CNAME(CNAMERecordParam): +class CNAME(CNAMERecordParam, total=False): id: Required[str] """Identifier""" -class DNSKEY(DNSKEYRecordParam): +class DNSKEY(DNSKEYRecordParam, total=False): id: Required[str] """Identifier""" -class DS(DSRecordParam): +class DS(DSRecordParam, total=False): id: Required[str] """Identifier""" -class HTTPS(HTTPSRecordParam): +class HTTPS(HTTPSRecordParam, total=False): id: Required[str] """Identifier""" -class LOC(LOCRecordParam): +class LOC(LOCRecordParam, total=False): id: Required[str] """Identifier""" -class MX(MXRecordParam): +class MX(MXRecordParam, total=False): id: Required[str] """Identifier""" -class NAPTR(NAPTRRecordParam): +class NAPTR(NAPTRRecordParam, total=False): id: Required[str] """Identifier""" -class NS(NSRecordParam): +class NS(NSRecordParam, total=False): id: Required[str] """Identifier""" @@ -172,42 +172,42 @@ class Openpgpkey(TypedDict, total=False): """Record type.""" -class PTR(PTRRecordParam): +class PTR(PTRRecordParam, total=False): id: Required[str] """Identifier""" -class SMIMEA(SMIMEARecordParam): +class SMIMEA(SMIMEARecordParam, total=False): id: Required[str] """Identifier""" -class SRV(SRVRecordParam): +class SRV(SRVRecordParam, total=False): id: Required[str] """Identifier""" -class SSHFP(SSHFPRecordParam): +class SSHFP(SSHFPRecordParam, total=False): id: Required[str] """Identifier""" -class SVCB(SVCBRecordParam): +class SVCB(SVCBRecordParam, total=False): id: Required[str] """Identifier""" -class TLSA(TLSARecordParam): +class TLSA(TLSARecordParam, total=False): id: Required[str] """Identifier""" -class TXT(TXTRecordParam): +class TXT(TXTRecordParam, total=False): id: Required[str] """Identifier""" -class URI(URIRecordParam): +class URI(URIRecordParam, total=False): id: Required[str] """Identifier""" diff --git a/src/cloudflare/types/dns/batch_put_param.py b/src/cloudflare/types/dns/batch_put_param.py index 3f4303893c9..97508ad4e25 100644 --- a/src/cloudflare/types/dns/batch_put_param.py +++ b/src/cloudflare/types/dns/batch_put_param.py @@ -55,62 +55,62 @@ ] -class A(ARecordParam): +class A(ARecordParam, total=False): id: str """Identifier""" -class AAAA(AAAARecordParam): +class AAAA(AAAARecordParam, total=False): id: str """Identifier""" -class CAA(CAARecordParam): +class CAA(CAARecordParam, total=False): id: str """Identifier""" -class CERT(CERTRecordParam): +class CERT(CERTRecordParam, total=False): id: str """Identifier""" -class CNAME(CNAMERecordParam): +class CNAME(CNAMERecordParam, total=False): id: str """Identifier""" -class DNSKEY(DNSKEYRecordParam): +class DNSKEY(DNSKEYRecordParam, total=False): id: str """Identifier""" -class DS(DSRecordParam): +class DS(DSRecordParam, total=False): id: str """Identifier""" -class HTTPS(HTTPSRecordParam): +class HTTPS(HTTPSRecordParam, total=False): id: str """Identifier""" -class LOC(LOCRecordParam): +class LOC(LOCRecordParam, total=False): id: str """Identifier""" -class MX(MXRecordParam): +class MX(MXRecordParam, total=False): id: str """Identifier""" -class NAPTR(NAPTRRecordParam): +class NAPTR(NAPTRRecordParam, total=False): id: str """Identifier""" -class NS(NSRecordParam): +class NS(NSRecordParam, total=False): id: str """Identifier""" @@ -172,42 +172,42 @@ class Openpgpkey(TypedDict, total=False): """ -class PTR(PTRRecordParam): +class PTR(PTRRecordParam, total=False): id: str """Identifier""" -class SMIMEA(SMIMEARecordParam): +class SMIMEA(SMIMEARecordParam, total=False): id: str """Identifier""" -class SRV(SRVRecordParam): +class SRV(SRVRecordParam, total=False): id: str """Identifier""" -class SSHFP(SSHFPRecordParam): +class SSHFP(SSHFPRecordParam, total=False): id: str """Identifier""" -class SVCB(SVCBRecordParam): +class SVCB(SVCBRecordParam, total=False): id: str """Identifier""" -class TLSA(TLSARecordParam): +class TLSA(TLSARecordParam, total=False): id: str """Identifier""" -class TXT(TXTRecordParam): +class TXT(TXTRecordParam, total=False): id: str """Identifier""" -class URI(URIRecordParam): +class URI(URIRecordParam, total=False): id: str """Identifier""" From 28ad38e7d6c40af6d6125cad304435e8d1ca0953 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:02 -0400 Subject: [PATCH 118/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 7c19b8f59b8..c7a560fb3ba 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ea029e2953a0481670f18fce0bcac8f2f31cf760713fbec7935e259dafad5f46.yml -openapi_spec_hash: b9271a3dcb520471beb84b2db081e965 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e4b9f5edb1a080561740120d2418d122731ef29e54de4d6f48f5e47834cd8863.yml +openapi_spec_hash: aa8f1f50bc2718e571d926389ca0461c config_hash: a3bf1982efda6b8ff0a45660c1f0f516 From 63065ff249c464583337523de7c0aed8f2f8bd9a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:02 -0400 Subject: [PATCH 119/849] feat(kv_namespace): bulk operations to `.keys` (#2579) --- .stats.yml | 2 +- api.md | 22 +- .../resources/kv/namespaces/keys.py | 390 +++++++++++++++++- .../resources/kv/namespaces/namespaces.py | 389 +---------------- src/cloudflare/types/kv/__init__.py | 6 - .../types/kv/namespaces/__init__.py | 6 + .../key_bulk_delete_params.py} | 4 +- .../key_bulk_delete_response.py} | 6 +- .../key_bulk_get_params.py} | 6 +- .../key_bulk_get_response.py} | 6 +- .../key_bulk_update_params.py} | 4 +- .../key_bulk_update_response.py} | 6 +- .../api_resources/kv/namespaces/test_keys.py | 349 +++++++++++++++- tests/api_resources/kv/test_namespaces.py | 343 --------------- 14 files changed, 770 insertions(+), 769 deletions(-) rename src/cloudflare/types/kv/{namespace_bulk_delete_params.py => namespaces/key_bulk_delete_params.py} (74%) rename src/cloudflare/types/kv/{namespace_bulk_delete_response.py => namespaces/key_bulk_delete_response.py} (74%) rename src/cloudflare/types/kv/{namespace_bulk_get_params.py => namespaces/key_bulk_get_params.py} (81%) rename src/cloudflare/types/kv/{namespace_bulk_get_response.py => namespaces/key_bulk_get_response.py} (86%) rename src/cloudflare/types/kv/{namespace_bulk_update_params.py => namespaces/key_bulk_update_params.py} (91%) rename src/cloudflare/types/kv/{namespace_bulk_update_response.py => namespaces/key_bulk_update_response.py} (74%) diff --git a/.stats.yml b/.stats.yml index c7a560fb3ba..ceb3f10cf22 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e4b9f5edb1a080561740120d2418d122731ef29e54de4d6f48f5e47834cd8863.yml openapi_spec_hash: aa8f1f50bc2718e571d926389ca0461c -config_hash: a3bf1982efda6b8ff0a45660c1f0f516 +config_hash: ba292e0053602e8a8923a35fb6c7c1e9 diff --git a/api.md b/api.md index f9a7c5f415e..a15999809b9 100644 --- a/api.md +++ b/api.md @@ -2522,14 +2522,7 @@ Methods: Types: ```python -from cloudflare.types.kv import ( - Namespace, - NamespaceUpdateResponse, - NamespaceDeleteResponse, - NamespaceBulkDeleteResponse, - NamespaceBulkGetResponse, - NamespaceBulkUpdateResponse, -) +from cloudflare.types.kv import Namespace, NamespaceUpdateResponse, NamespaceDeleteResponse ``` Methods: @@ -2538,9 +2531,6 @@ Methods: - client.kv.namespaces.update(namespace_id, \*, account_id, \*\*params) -> Optional[NamespaceUpdateResponse] - client.kv.namespaces.list(\*, account_id, \*\*params) -> SyncV4PagePaginationArray[Namespace] - client.kv.namespaces.delete(namespace_id, \*, account_id) -> Optional[NamespaceDeleteResponse] -- client.kv.namespaces.bulk_delete(namespace_id, \*, account_id, \*\*params) -> Optional[NamespaceBulkDeleteResponse] -- client.kv.namespaces.bulk_get(namespace_id, \*, account_id, \*\*params) -> Optional[NamespaceBulkGetResponse] -- client.kv.namespaces.bulk_update(namespace_id, \*, account_id, \*\*params) -> Optional[NamespaceBulkUpdateResponse] - client.kv.namespaces.get(namespace_id, \*, account_id) -> Optional[Namespace] ### Keys @@ -2548,12 +2538,20 @@ Methods: Types: ```python -from cloudflare.types.kv.namespaces import Key +from cloudflare.types.kv.namespaces import ( + Key, + KeyBulkDeleteResponse, + KeyBulkGetResponse, + KeyBulkUpdateResponse, +) ``` Methods: - client.kv.namespaces.keys.list(namespace_id, \*, account_id, \*\*params) -> SyncCursorLimitPagination[Key] +- client.kv.namespaces.keys.bulk_delete(namespace_id, \*, account_id, \*\*params) -> Optional[KeyBulkDeleteResponse] +- client.kv.namespaces.keys.bulk_get(namespace_id, \*, account_id, \*\*params) -> Optional[KeyBulkGetResponse] +- client.kv.namespaces.keys.bulk_update(namespace_id, \*, account_id, \*\*params) -> Optional[KeyBulkUpdateResponse] ### Metadata diff --git a/src/cloudflare/resources/kv/namespaces/keys.py b/src/cloudflare/resources/kv/namespaces/keys.py index 74f23131457..3b54860a3c3 100644 --- a/src/cloudflare/resources/kv/namespaces/keys.py +++ b/src/cloudflare/resources/kv/namespaces/keys.py @@ -2,10 +2,16 @@ from __future__ import annotations +from typing import Any, List, Type, Iterable, Optional, cast +from typing_extensions import Literal + import httpx from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven -from ...._utils import maybe_transform +from ...._utils import ( + maybe_transform, + async_maybe_transform, +) from ...._compat import cached_property from ...._resource import SyncAPIResource, AsyncAPIResource from ...._response import ( @@ -14,10 +20,14 @@ async_to_raw_response_wrapper, async_to_streamed_response_wrapper, ) +from ...._wrappers import ResultWrapper from ....pagination import SyncCursorLimitPagination, AsyncCursorLimitPagination from ...._base_client import AsyncPaginator, make_request_options -from ....types.kv.namespaces import key_list_params +from ....types.kv.namespaces import key_list_params, key_bulk_get_params, key_bulk_update_params from ....types.kv.namespaces.key import Key +from ....types.kv.namespaces.key_bulk_get_response import KeyBulkGetResponse +from ....types.kv.namespaces.key_bulk_delete_response import KeyBulkDeleteResponse +from ....types.kv.namespaces.key_bulk_update_response import KeyBulkUpdateResponse __all__ = ["KeysResource", "AsyncKeysResource"] @@ -108,6 +118,176 @@ def list( model=Key, ) + def bulk_delete( + self, + namespace_id: str, + *, + account_id: str, + body: List[str], + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[KeyBulkDeleteResponse]: + """Remove multiple KV pairs from the namespace. + + Body should be an array of up to + 10,000 keys to be removed. + + Args: + account_id: Identifier + + namespace_id: Namespace identifier tag. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not namespace_id: + raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") + return self._post( + f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/delete", + body=maybe_transform(body, List[str]), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[KeyBulkDeleteResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[KeyBulkDeleteResponse]], ResultWrapper[KeyBulkDeleteResponse]), + ) + + def bulk_get( + self, + namespace_id: str, + *, + account_id: str, + keys: List[str], + type: Literal["text", "json"] | NotGiven = NOT_GIVEN, + with_metadata: bool | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[KeyBulkGetResponse]: + """Get multiple KV pairs from the namespace. + + Body should contain keys to retrieve + at most 100. Keys must contain text-based values. If value is json, it can be + requested to return in JSON, instead of string. Metadata can be return if + withMetadata is true. + + Args: + account_id: Identifier + + namespace_id: Namespace identifier tag. + + keys: Array of keys to retrieve (maximum 100) + + type: Whether to parse JSON values in the response + + with_metadata: Whether to include metadata in the response + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not namespace_id: + raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") + return cast( + Optional[KeyBulkGetResponse], + self._post( + f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/get", + body=maybe_transform( + { + "keys": keys, + "type": type, + "with_metadata": with_metadata, + }, + key_bulk_get_params.KeyBulkGetParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[KeyBulkGetResponse]]._unwrapper, + ), + cast_to=cast( + Any, ResultWrapper[KeyBulkGetResponse] + ), # Union types cannot be passed in as arguments in the type system + ), + ) + + def bulk_update( + self, + namespace_id: str, + *, + account_id: str, + body: Iterable[key_bulk_update_params.Body], + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[KeyBulkUpdateResponse]: + """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. + + Args: + account_id: Identifier + + namespace_id: Namespace identifier tag. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not namespace_id: + raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") + return self._put( + f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk", + body=maybe_transform(body, Iterable[key_bulk_update_params.Body]), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[KeyBulkUpdateResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[KeyBulkUpdateResponse]], ResultWrapper[KeyBulkUpdateResponse]), + ) + class AsyncKeysResource(AsyncAPIResource): @cached_property @@ -195,6 +375,176 @@ def list( model=Key, ) + async def bulk_delete( + self, + namespace_id: str, + *, + account_id: str, + body: List[str], + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[KeyBulkDeleteResponse]: + """Remove multiple KV pairs from the namespace. + + Body should be an array of up to + 10,000 keys to be removed. + + Args: + account_id: Identifier + + namespace_id: Namespace identifier tag. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not namespace_id: + raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") + return await self._post( + f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/delete", + body=await async_maybe_transform(body, List[str]), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[KeyBulkDeleteResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[KeyBulkDeleteResponse]], ResultWrapper[KeyBulkDeleteResponse]), + ) + + async def bulk_get( + self, + namespace_id: str, + *, + account_id: str, + keys: List[str], + type: Literal["text", "json"] | NotGiven = NOT_GIVEN, + with_metadata: bool | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[KeyBulkGetResponse]: + """Get multiple KV pairs from the namespace. + + Body should contain keys to retrieve + at most 100. Keys must contain text-based values. If value is json, it can be + requested to return in JSON, instead of string. Metadata can be return if + withMetadata is true. + + Args: + account_id: Identifier + + namespace_id: Namespace identifier tag. + + keys: Array of keys to retrieve (maximum 100) + + type: Whether to parse JSON values in the response + + with_metadata: Whether to include metadata in the response + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not namespace_id: + raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") + return cast( + Optional[KeyBulkGetResponse], + await self._post( + f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/get", + body=await async_maybe_transform( + { + "keys": keys, + "type": type, + "with_metadata": with_metadata, + }, + key_bulk_get_params.KeyBulkGetParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[KeyBulkGetResponse]]._unwrapper, + ), + cast_to=cast( + Any, ResultWrapper[KeyBulkGetResponse] + ), # Union types cannot be passed in as arguments in the type system + ), + ) + + async def bulk_update( + self, + namespace_id: str, + *, + account_id: str, + body: Iterable[key_bulk_update_params.Body], + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[KeyBulkUpdateResponse]: + """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. + + Args: + account_id: Identifier + + namespace_id: Namespace identifier tag. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not namespace_id: + raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") + return await self._put( + f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk", + body=await async_maybe_transform(body, Iterable[key_bulk_update_params.Body]), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[KeyBulkUpdateResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[KeyBulkUpdateResponse]], ResultWrapper[KeyBulkUpdateResponse]), + ) + class KeysResourceWithRawResponse: def __init__(self, keys: KeysResource) -> None: @@ -203,6 +553,15 @@ def __init__(self, keys: KeysResource) -> None: self.list = to_raw_response_wrapper( keys.list, ) + self.bulk_delete = to_raw_response_wrapper( + keys.bulk_delete, + ) + self.bulk_get = to_raw_response_wrapper( + keys.bulk_get, + ) + self.bulk_update = to_raw_response_wrapper( + keys.bulk_update, + ) class AsyncKeysResourceWithRawResponse: @@ -212,6 +571,15 @@ def __init__(self, keys: AsyncKeysResource) -> None: self.list = async_to_raw_response_wrapper( keys.list, ) + self.bulk_delete = async_to_raw_response_wrapper( + keys.bulk_delete, + ) + self.bulk_get = async_to_raw_response_wrapper( + keys.bulk_get, + ) + self.bulk_update = async_to_raw_response_wrapper( + keys.bulk_update, + ) class KeysResourceWithStreamingResponse: @@ -221,6 +589,15 @@ def __init__(self, keys: KeysResource) -> None: self.list = to_streamed_response_wrapper( keys.list, ) + self.bulk_delete = to_streamed_response_wrapper( + keys.bulk_delete, + ) + self.bulk_get = to_streamed_response_wrapper( + keys.bulk_get, + ) + self.bulk_update = to_streamed_response_wrapper( + keys.bulk_update, + ) class AsyncKeysResourceWithStreamingResponse: @@ -230,3 +607,12 @@ def __init__(self, keys: AsyncKeysResource) -> None: self.list = async_to_streamed_response_wrapper( keys.list, ) + self.bulk_delete = async_to_streamed_response_wrapper( + keys.bulk_delete, + ) + self.bulk_get = async_to_streamed_response_wrapper( + keys.bulk_get, + ) + self.bulk_update = async_to_streamed_response_wrapper( + keys.bulk_update, + ) diff --git a/src/cloudflare/resources/kv/namespaces/namespaces.py b/src/cloudflare/resources/kv/namespaces/namespaces.py index 71c5c8ebd1d..6b1137eeb12 100644 --- a/src/cloudflare/resources/kv/namespaces/namespaces.py +++ b/src/cloudflare/resources/kv/namespaces/namespaces.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import Any, List, Type, Iterable, Optional, cast +from typing import Type, Optional, cast from typing_extensions import Literal import httpx @@ -37,13 +37,7 @@ async_maybe_transform, ) from ...._compat import cached_property -from ....types.kv import ( - namespace_list_params, - namespace_create_params, - namespace_update_params, - namespace_bulk_get_params, - namespace_bulk_update_params, -) +from ....types.kv import namespace_list_params, namespace_create_params, namespace_update_params from ...._resource import SyncAPIResource, AsyncAPIResource from ...._response import ( to_raw_response_wrapper, @@ -57,9 +51,6 @@ from ....types.kv.namespace import Namespace from ....types.kv.namespace_delete_response import NamespaceDeleteResponse from ....types.kv.namespace_update_response import NamespaceUpdateResponse -from ....types.kv.namespace_bulk_get_response import NamespaceBulkGetResponse -from ....types.kv.namespace_bulk_delete_response import NamespaceBulkDeleteResponse -from ....types.kv.namespace_bulk_update_response import NamespaceBulkUpdateResponse __all__ = ["NamespacesResource", "AsyncNamespacesResource"] @@ -294,176 +285,6 @@ def delete( cast_to=cast(Type[Optional[NamespaceDeleteResponse]], ResultWrapper[NamespaceDeleteResponse]), ) - def bulk_delete( - self, - namespace_id: str, - *, - account_id: str, - body: List[str], - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[NamespaceBulkDeleteResponse]: - """Remove multiple KV pairs from the namespace. - - Body should be an array of up to - 10,000 keys to be removed. - - Args: - account_id: Identifier - - namespace_id: Namespace identifier tag. - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not account_id: - raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - if not namespace_id: - raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") - return self._post( - f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/delete", - body=maybe_transform(body, List[str]), - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - post_parser=ResultWrapper[Optional[NamespaceBulkDeleteResponse]]._unwrapper, - ), - cast_to=cast(Type[Optional[NamespaceBulkDeleteResponse]], ResultWrapper[NamespaceBulkDeleteResponse]), - ) - - def bulk_get( - self, - namespace_id: str, - *, - account_id: str, - keys: List[str], - type: Literal["text", "json"] | NotGiven = NOT_GIVEN, - with_metadata: bool | NotGiven = NOT_GIVEN, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[NamespaceBulkGetResponse]: - """Get multiple KV pairs from the namespace. - - Body should contain keys to retrieve - at most 100. Keys must contain text-based values. If value is json, it can be - requested to return in JSON, instead of string. Metadata can be return if - withMetadata is true. - - Args: - account_id: Identifier - - namespace_id: Namespace identifier tag. - - keys: Array of keys to retrieve (maximum 100) - - type: Whether to parse JSON values in the response - - with_metadata: Whether to include metadata in the response - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not account_id: - raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - if not namespace_id: - raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") - return cast( - Optional[NamespaceBulkGetResponse], - self._post( - f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/get", - body=maybe_transform( - { - "keys": keys, - "type": type, - "with_metadata": with_metadata, - }, - namespace_bulk_get_params.NamespaceBulkGetParams, - ), - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - post_parser=ResultWrapper[Optional[NamespaceBulkGetResponse]]._unwrapper, - ), - cast_to=cast( - Any, ResultWrapper[NamespaceBulkGetResponse] - ), # Union types cannot be passed in as arguments in the type system - ), - ) - - def bulk_update( - self, - namespace_id: str, - *, - account_id: str, - body: Iterable[namespace_bulk_update_params.Body], - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[NamespaceBulkUpdateResponse]: - """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. - - Args: - account_id: Identifier - - namespace_id: Namespace identifier tag. - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not account_id: - raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - if not namespace_id: - raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") - return self._put( - f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk", - body=maybe_transform(body, Iterable[namespace_bulk_update_params.Body]), - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - post_parser=ResultWrapper[Optional[NamespaceBulkUpdateResponse]]._unwrapper, - ), - cast_to=cast(Type[Optional[NamespaceBulkUpdateResponse]], ResultWrapper[NamespaceBulkUpdateResponse]), - ) - def get( self, namespace_id: str, @@ -739,176 +560,6 @@ async def delete( cast_to=cast(Type[Optional[NamespaceDeleteResponse]], ResultWrapper[NamespaceDeleteResponse]), ) - async def bulk_delete( - self, - namespace_id: str, - *, - account_id: str, - body: List[str], - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[NamespaceBulkDeleteResponse]: - """Remove multiple KV pairs from the namespace. - - Body should be an array of up to - 10,000 keys to be removed. - - Args: - account_id: Identifier - - namespace_id: Namespace identifier tag. - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not account_id: - raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - if not namespace_id: - raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") - return await self._post( - f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/delete", - body=await async_maybe_transform(body, List[str]), - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - post_parser=ResultWrapper[Optional[NamespaceBulkDeleteResponse]]._unwrapper, - ), - cast_to=cast(Type[Optional[NamespaceBulkDeleteResponse]], ResultWrapper[NamespaceBulkDeleteResponse]), - ) - - async def bulk_get( - self, - namespace_id: str, - *, - account_id: str, - keys: List[str], - type: Literal["text", "json"] | NotGiven = NOT_GIVEN, - with_metadata: bool | NotGiven = NOT_GIVEN, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[NamespaceBulkGetResponse]: - """Get multiple KV pairs from the namespace. - - Body should contain keys to retrieve - at most 100. Keys must contain text-based values. If value is json, it can be - requested to return in JSON, instead of string. Metadata can be return if - withMetadata is true. - - Args: - account_id: Identifier - - namespace_id: Namespace identifier tag. - - keys: Array of keys to retrieve (maximum 100) - - type: Whether to parse JSON values in the response - - with_metadata: Whether to include metadata in the response - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not account_id: - raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - if not namespace_id: - raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") - return cast( - Optional[NamespaceBulkGetResponse], - await self._post( - f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/get", - body=await async_maybe_transform( - { - "keys": keys, - "type": type, - "with_metadata": with_metadata, - }, - namespace_bulk_get_params.NamespaceBulkGetParams, - ), - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - post_parser=ResultWrapper[Optional[NamespaceBulkGetResponse]]._unwrapper, - ), - cast_to=cast( - Any, ResultWrapper[NamespaceBulkGetResponse] - ), # Union types cannot be passed in as arguments in the type system - ), - ) - - async def bulk_update( - self, - namespace_id: str, - *, - account_id: str, - body: Iterable[namespace_bulk_update_params.Body], - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[NamespaceBulkUpdateResponse]: - """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. - - Args: - account_id: Identifier - - namespace_id: Namespace identifier tag. - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not account_id: - raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - if not namespace_id: - raise ValueError(f"Expected a non-empty value for `namespace_id` but received {namespace_id!r}") - return await self._put( - f"/accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk", - body=await async_maybe_transform(body, Iterable[namespace_bulk_update_params.Body]), - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - post_parser=ResultWrapper[Optional[NamespaceBulkUpdateResponse]]._unwrapper, - ), - cast_to=cast(Type[Optional[NamespaceBulkUpdateResponse]], ResultWrapper[NamespaceBulkUpdateResponse]), - ) - async def get( self, namespace_id: str, @@ -970,15 +621,6 @@ def __init__(self, namespaces: NamespacesResource) -> None: self.delete = to_raw_response_wrapper( namespaces.delete, ) - self.bulk_delete = to_raw_response_wrapper( - namespaces.bulk_delete, - ) - self.bulk_get = to_raw_response_wrapper( - namespaces.bulk_get, - ) - self.bulk_update = to_raw_response_wrapper( - namespaces.bulk_update, - ) self.get = to_raw_response_wrapper( namespaces.get, ) @@ -1012,15 +654,6 @@ def __init__(self, namespaces: AsyncNamespacesResource) -> None: self.delete = async_to_raw_response_wrapper( namespaces.delete, ) - self.bulk_delete = async_to_raw_response_wrapper( - namespaces.bulk_delete, - ) - self.bulk_get = async_to_raw_response_wrapper( - namespaces.bulk_get, - ) - self.bulk_update = async_to_raw_response_wrapper( - namespaces.bulk_update, - ) self.get = async_to_raw_response_wrapper( namespaces.get, ) @@ -1054,15 +687,6 @@ def __init__(self, namespaces: NamespacesResource) -> None: self.delete = to_streamed_response_wrapper( namespaces.delete, ) - self.bulk_delete = to_streamed_response_wrapper( - namespaces.bulk_delete, - ) - self.bulk_get = to_streamed_response_wrapper( - namespaces.bulk_get, - ) - self.bulk_update = to_streamed_response_wrapper( - namespaces.bulk_update, - ) self.get = to_streamed_response_wrapper( namespaces.get, ) @@ -1096,15 +720,6 @@ def __init__(self, namespaces: AsyncNamespacesResource) -> None: self.delete = async_to_streamed_response_wrapper( namespaces.delete, ) - self.bulk_delete = async_to_streamed_response_wrapper( - namespaces.bulk_delete, - ) - self.bulk_get = async_to_streamed_response_wrapper( - namespaces.bulk_get, - ) - self.bulk_update = async_to_streamed_response_wrapper( - namespaces.bulk_update, - ) self.get = async_to_streamed_response_wrapper( namespaces.get, ) diff --git a/src/cloudflare/types/kv/__init__.py b/src/cloudflare/types/kv/__init__.py index 896a0346ad5..e345eaf540a 100644 --- a/src/cloudflare/types/kv/__init__.py +++ b/src/cloudflare/types/kv/__init__.py @@ -6,11 +6,5 @@ from .namespace_list_params import NamespaceListParams as NamespaceListParams from .namespace_create_params import NamespaceCreateParams as NamespaceCreateParams from .namespace_update_params import NamespaceUpdateParams as NamespaceUpdateParams -from .namespace_bulk_get_params import NamespaceBulkGetParams as NamespaceBulkGetParams from .namespace_delete_response import NamespaceDeleteResponse as NamespaceDeleteResponse from .namespace_update_response import NamespaceUpdateResponse as NamespaceUpdateResponse -from .namespace_bulk_get_response import NamespaceBulkGetResponse as NamespaceBulkGetResponse -from .namespace_bulk_delete_params import NamespaceBulkDeleteParams as NamespaceBulkDeleteParams -from .namespace_bulk_update_params import NamespaceBulkUpdateParams as NamespaceBulkUpdateParams -from .namespace_bulk_delete_response import NamespaceBulkDeleteResponse as NamespaceBulkDeleteResponse -from .namespace_bulk_update_response import NamespaceBulkUpdateResponse as NamespaceBulkUpdateResponse diff --git a/src/cloudflare/types/kv/namespaces/__init__.py b/src/cloudflare/types/kv/namespaces/__init__.py index 49140e07efe..48f776acf2e 100644 --- a/src/cloudflare/types/kv/namespaces/__init__.py +++ b/src/cloudflare/types/kv/namespaces/__init__.py @@ -4,7 +4,13 @@ from .key import Key as Key from .key_list_params import KeyListParams as KeyListParams +from .key_bulk_get_params import KeyBulkGetParams as KeyBulkGetParams from .value_update_params import ValueUpdateParams as ValueUpdateParams +from .key_bulk_get_response import KeyBulkGetResponse as KeyBulkGetResponse from .metadata_get_response import MetadataGetResponse as MetadataGetResponse from .value_delete_response import ValueDeleteResponse as ValueDeleteResponse from .value_update_response import ValueUpdateResponse as ValueUpdateResponse +from .key_bulk_delete_params import KeyBulkDeleteParams as KeyBulkDeleteParams +from .key_bulk_update_params import KeyBulkUpdateParams as KeyBulkUpdateParams +from .key_bulk_delete_response import KeyBulkDeleteResponse as KeyBulkDeleteResponse +from .key_bulk_update_response import KeyBulkUpdateResponse as KeyBulkUpdateResponse diff --git a/src/cloudflare/types/kv/namespace_bulk_delete_params.py b/src/cloudflare/types/kv/namespaces/key_bulk_delete_params.py similarity index 74% rename from src/cloudflare/types/kv/namespace_bulk_delete_params.py rename to src/cloudflare/types/kv/namespaces/key_bulk_delete_params.py index 1de9c109a16..37cb14a66f5 100644 --- a/src/cloudflare/types/kv/namespace_bulk_delete_params.py +++ b/src/cloudflare/types/kv/namespaces/key_bulk_delete_params.py @@ -5,10 +5,10 @@ from typing import List from typing_extensions import Required, TypedDict -__all__ = ["NamespaceBulkDeleteParams"] +__all__ = ["KeyBulkDeleteParams"] -class NamespaceBulkDeleteParams(TypedDict, total=False): +class KeyBulkDeleteParams(TypedDict, total=False): account_id: Required[str] """Identifier""" diff --git a/src/cloudflare/types/kv/namespace_bulk_delete_response.py b/src/cloudflare/types/kv/namespaces/key_bulk_delete_response.py similarity index 74% rename from src/cloudflare/types/kv/namespace_bulk_delete_response.py rename to src/cloudflare/types/kv/namespaces/key_bulk_delete_response.py index 5cf86953b96..39e93931ddd 100644 --- a/src/cloudflare/types/kv/namespace_bulk_delete_response.py +++ b/src/cloudflare/types/kv/namespaces/key_bulk_delete_response.py @@ -2,12 +2,12 @@ from typing import List, Optional -from ..._models import BaseModel +from ...._models import BaseModel -__all__ = ["NamespaceBulkDeleteResponse"] +__all__ = ["KeyBulkDeleteResponse"] -class NamespaceBulkDeleteResponse(BaseModel): +class KeyBulkDeleteResponse(BaseModel): successful_key_count: Optional[float] = None """Number of keys successfully updated""" diff --git a/src/cloudflare/types/kv/namespace_bulk_get_params.py b/src/cloudflare/types/kv/namespaces/key_bulk_get_params.py similarity index 81% rename from src/cloudflare/types/kv/namespace_bulk_get_params.py rename to src/cloudflare/types/kv/namespaces/key_bulk_get_params.py index 9f49de2a982..aa64e6454fd 100644 --- a/src/cloudflare/types/kv/namespace_bulk_get_params.py +++ b/src/cloudflare/types/kv/namespaces/key_bulk_get_params.py @@ -5,12 +5,12 @@ from typing import List from typing_extensions import Literal, Required, Annotated, TypedDict -from ..._utils import PropertyInfo +from ...._utils import PropertyInfo -__all__ = ["NamespaceBulkGetParams"] +__all__ = ["KeyBulkGetParams"] -class NamespaceBulkGetParams(TypedDict, total=False): +class KeyBulkGetParams(TypedDict, total=False): account_id: Required[str] """Identifier""" diff --git a/src/cloudflare/types/kv/namespace_bulk_get_response.py b/src/cloudflare/types/kv/namespaces/key_bulk_get_response.py similarity index 86% rename from src/cloudflare/types/kv/namespace_bulk_get_response.py rename to src/cloudflare/types/kv/namespaces/key_bulk_get_response.py index 8a590e1caa2..f4b93663728 100644 --- a/src/cloudflare/types/kv/namespace_bulk_get_response.py +++ b/src/cloudflare/types/kv/namespaces/key_bulk_get_response.py @@ -3,10 +3,10 @@ from typing import Dict, Union, Optional from typing_extensions import TypeAlias -from ..._models import BaseModel +from ...._models import BaseModel __all__ = [ - "NamespaceBulkGetResponse", + "KeyBulkGetResponse", "WorkersKVBulkGetResult", "WorkersKVBulkGetResultWithMetadata", "WorkersKVBulkGetResultWithMetadataValues", @@ -37,4 +37,4 @@ class WorkersKVBulkGetResultWithMetadata(BaseModel): """Requested keys are paired with their values and metadata in an object""" -NamespaceBulkGetResponse: TypeAlias = Union[WorkersKVBulkGetResult, WorkersKVBulkGetResultWithMetadata, None] +KeyBulkGetResponse: TypeAlias = Union[WorkersKVBulkGetResult, WorkersKVBulkGetResultWithMetadata, None] diff --git a/src/cloudflare/types/kv/namespace_bulk_update_params.py b/src/cloudflare/types/kv/namespaces/key_bulk_update_params.py similarity index 91% rename from src/cloudflare/types/kv/namespace_bulk_update_params.py rename to src/cloudflare/types/kv/namespaces/key_bulk_update_params.py index e1ce68a86b6..4e03451367a 100644 --- a/src/cloudflare/types/kv/namespace_bulk_update_params.py +++ b/src/cloudflare/types/kv/namespaces/key_bulk_update_params.py @@ -5,10 +5,10 @@ from typing import Dict, Iterable from typing_extensions import Required, TypedDict -__all__ = ["NamespaceBulkUpdateParams", "Body"] +__all__ = ["KeyBulkUpdateParams", "Body"] -class NamespaceBulkUpdateParams(TypedDict, total=False): +class KeyBulkUpdateParams(TypedDict, total=False): account_id: Required[str] """Identifier""" diff --git a/src/cloudflare/types/kv/namespace_bulk_update_response.py b/src/cloudflare/types/kv/namespaces/key_bulk_update_response.py similarity index 74% rename from src/cloudflare/types/kv/namespace_bulk_update_response.py rename to src/cloudflare/types/kv/namespaces/key_bulk_update_response.py index 6076c1444f5..abe3b5b5794 100644 --- a/src/cloudflare/types/kv/namespace_bulk_update_response.py +++ b/src/cloudflare/types/kv/namespaces/key_bulk_update_response.py @@ -2,12 +2,12 @@ from typing import List, Optional -from ..._models import BaseModel +from ...._models import BaseModel -__all__ = ["NamespaceBulkUpdateResponse"] +__all__ = ["KeyBulkUpdateResponse"] -class NamespaceBulkUpdateResponse(BaseModel): +class KeyBulkUpdateResponse(BaseModel): successful_key_count: Optional[float] = None """Number of keys successfully updated""" diff --git a/tests/api_resources/kv/namespaces/test_keys.py b/tests/api_resources/kv/namespaces/test_keys.py index 074a872cc1d..db2389eed9b 100644 --- a/tests/api_resources/kv/namespaces/test_keys.py +++ b/tests/api_resources/kv/namespaces/test_keys.py @@ -3,14 +3,19 @@ from __future__ import annotations import os -from typing import Any, cast +from typing import Any, Optional, cast import pytest from cloudflare import Cloudflare, AsyncCloudflare from tests.utils import assert_matches_type from cloudflare.pagination import SyncCursorLimitPagination, AsyncCursorLimitPagination -from cloudflare.types.kv.namespaces import Key +from cloudflare.types.kv.namespaces import ( + Key, + KeyBulkGetResponse, + KeyBulkDeleteResponse, + KeyBulkUpdateResponse, +) base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -77,6 +82,176 @@ def test_path_params_list(self, client: Cloudflare) -> None: account_id="023e105f4ecef8ad9ca31a8372d0c353", ) + @parametrize + def test_method_bulk_delete(self, client: Cloudflare) -> None: + key = client.kv.namespaces.keys.bulk_delete( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=["My-Key"], + ) + assert_matches_type(Optional[KeyBulkDeleteResponse], key, path=["response"]) + + @parametrize + def test_raw_response_bulk_delete(self, client: Cloudflare) -> None: + response = client.kv.namespaces.keys.with_raw_response.bulk_delete( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=["My-Key"], + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + key = response.parse() + assert_matches_type(Optional[KeyBulkDeleteResponse], key, path=["response"]) + + @parametrize + def test_streaming_response_bulk_delete(self, client: Cloudflare) -> None: + with client.kv.namespaces.keys.with_streaming_response.bulk_delete( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=["My-Key"], + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + key = response.parse() + assert_matches_type(Optional[KeyBulkDeleteResponse], key, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_bulk_delete(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.kv.namespaces.keys.with_raw_response.bulk_delete( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="", + body=["My-Key"], + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): + client.kv.namespaces.keys.with_raw_response.bulk_delete( + namespace_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=["My-Key"], + ) + + @parametrize + def test_method_bulk_get(self, client: Cloudflare) -> None: + key = client.kv.namespaces.keys.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) + assert_matches_type(Optional[KeyBulkGetResponse], key, path=["response"]) + + @parametrize + def test_method_bulk_get_with_all_params(self, client: Cloudflare) -> None: + key = client.kv.namespaces.keys.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + type="text", + with_metadata=True, + ) + assert_matches_type(Optional[KeyBulkGetResponse], key, path=["response"]) + + @parametrize + def test_raw_response_bulk_get(self, client: Cloudflare) -> None: + response = client.kv.namespaces.keys.with_raw_response.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + key = response.parse() + assert_matches_type(Optional[KeyBulkGetResponse], key, path=["response"]) + + @parametrize + def test_streaming_response_bulk_get(self, client: Cloudflare) -> None: + with client.kv.namespaces.keys.with_streaming_response.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + key = response.parse() + assert_matches_type(Optional[KeyBulkGetResponse], key, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_bulk_get(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.kv.namespaces.keys.with_raw_response.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="", + keys=["My-Key"], + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): + client.kv.namespaces.keys.with_raw_response.bulk_get( + namespace_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) + + @parametrize + def test_method_bulk_update(self, client: Cloudflare) -> None: + key = client.kv.namespaces.keys.bulk_update( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=[{}], + ) + assert_matches_type(Optional[KeyBulkUpdateResponse], key, path=["response"]) + + @parametrize + def test_raw_response_bulk_update(self, client: Cloudflare) -> None: + response = client.kv.namespaces.keys.with_raw_response.bulk_update( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=[{}], + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + key = response.parse() + assert_matches_type(Optional[KeyBulkUpdateResponse], key, path=["response"]) + + @parametrize + def test_streaming_response_bulk_update(self, client: Cloudflare) -> None: + with client.kv.namespaces.keys.with_streaming_response.bulk_update( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=[{}], + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + key = response.parse() + assert_matches_type(Optional[KeyBulkUpdateResponse], key, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_bulk_update(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.kv.namespaces.keys.with_raw_response.bulk_update( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="", + body=[{}], + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): + client.kv.namespaces.keys.with_raw_response.bulk_update( + namespace_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=[{}], + ) + class TestAsyncKeys: parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"]) @@ -139,3 +314,173 @@ async def test_path_params_list(self, async_client: AsyncCloudflare) -> None: namespace_id="", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) + + @parametrize + async def test_method_bulk_delete(self, async_client: AsyncCloudflare) -> None: + key = await async_client.kv.namespaces.keys.bulk_delete( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=["My-Key"], + ) + assert_matches_type(Optional[KeyBulkDeleteResponse], key, path=["response"]) + + @parametrize + async def test_raw_response_bulk_delete(self, async_client: AsyncCloudflare) -> None: + response = await async_client.kv.namespaces.keys.with_raw_response.bulk_delete( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=["My-Key"], + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + key = await response.parse() + assert_matches_type(Optional[KeyBulkDeleteResponse], key, path=["response"]) + + @parametrize + async def test_streaming_response_bulk_delete(self, async_client: AsyncCloudflare) -> None: + async with async_client.kv.namespaces.keys.with_streaming_response.bulk_delete( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=["My-Key"], + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + key = await response.parse() + assert_matches_type(Optional[KeyBulkDeleteResponse], key, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_bulk_delete(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.kv.namespaces.keys.with_raw_response.bulk_delete( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="", + body=["My-Key"], + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): + await async_client.kv.namespaces.keys.with_raw_response.bulk_delete( + namespace_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=["My-Key"], + ) + + @parametrize + async def test_method_bulk_get(self, async_client: AsyncCloudflare) -> None: + key = await async_client.kv.namespaces.keys.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) + assert_matches_type(Optional[KeyBulkGetResponse], key, path=["response"]) + + @parametrize + async def test_method_bulk_get_with_all_params(self, async_client: AsyncCloudflare) -> None: + key = await async_client.kv.namespaces.keys.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + type="text", + with_metadata=True, + ) + assert_matches_type(Optional[KeyBulkGetResponse], key, path=["response"]) + + @parametrize + async def test_raw_response_bulk_get(self, async_client: AsyncCloudflare) -> None: + response = await async_client.kv.namespaces.keys.with_raw_response.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + key = await response.parse() + assert_matches_type(Optional[KeyBulkGetResponse], key, path=["response"]) + + @parametrize + async def test_streaming_response_bulk_get(self, async_client: AsyncCloudflare) -> None: + async with async_client.kv.namespaces.keys.with_streaming_response.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + key = await response.parse() + assert_matches_type(Optional[KeyBulkGetResponse], key, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_bulk_get(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.kv.namespaces.keys.with_raw_response.bulk_get( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="", + keys=["My-Key"], + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): + await async_client.kv.namespaces.keys.with_raw_response.bulk_get( + namespace_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + keys=["My-Key"], + ) + + @parametrize + async def test_method_bulk_update(self, async_client: AsyncCloudflare) -> None: + key = await async_client.kv.namespaces.keys.bulk_update( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=[{}], + ) + assert_matches_type(Optional[KeyBulkUpdateResponse], key, path=["response"]) + + @parametrize + async def test_raw_response_bulk_update(self, async_client: AsyncCloudflare) -> None: + response = await async_client.kv.namespaces.keys.with_raw_response.bulk_update( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=[{}], + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + key = await response.parse() + assert_matches_type(Optional[KeyBulkUpdateResponse], key, path=["response"]) + + @parametrize + async def test_streaming_response_bulk_update(self, async_client: AsyncCloudflare) -> None: + async with async_client.kv.namespaces.keys.with_streaming_response.bulk_update( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=[{}], + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + key = await response.parse() + assert_matches_type(Optional[KeyBulkUpdateResponse], key, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_bulk_update(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.kv.namespaces.keys.with_raw_response.bulk_update( + namespace_id="0f2ac74b498b48028cb68387c421e279", + account_id="", + body=[{}], + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): + await async_client.kv.namespaces.keys.with_raw_response.bulk_update( + namespace_id="", + account_id="023e105f4ecef8ad9ca31a8372d0c353", + body=[{}], + ) diff --git a/tests/api_resources/kv/test_namespaces.py b/tests/api_resources/kv/test_namespaces.py index 89f37e50ab0..aa2e9589dfe 100644 --- a/tests/api_resources/kv/test_namespaces.py +++ b/tests/api_resources/kv/test_namespaces.py @@ -13,9 +13,6 @@ Namespace, NamespaceDeleteResponse, NamespaceUpdateResponse, - NamespaceBulkGetResponse, - NamespaceBulkDeleteResponse, - NamespaceBulkUpdateResponse, ) from cloudflare.pagination import SyncV4PagePaginationArray, AsyncV4PagePaginationArray @@ -217,176 +214,6 @@ def test_path_params_delete(self, client: Cloudflare) -> None: account_id="023e105f4ecef8ad9ca31a8372d0c353", ) - @parametrize - def test_method_bulk_delete(self, client: Cloudflare) -> None: - namespace = client.kv.namespaces.bulk_delete( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=["My-Key"], - ) - assert_matches_type(Optional[NamespaceBulkDeleteResponse], namespace, path=["response"]) - - @parametrize - def test_raw_response_bulk_delete(self, client: Cloudflare) -> None: - response = client.kv.namespaces.with_raw_response.bulk_delete( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=["My-Key"], - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - namespace = response.parse() - assert_matches_type(Optional[NamespaceBulkDeleteResponse], namespace, path=["response"]) - - @parametrize - def test_streaming_response_bulk_delete(self, client: Cloudflare) -> None: - with client.kv.namespaces.with_streaming_response.bulk_delete( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=["My-Key"], - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - namespace = response.parse() - assert_matches_type(Optional[NamespaceBulkDeleteResponse], namespace, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_bulk_delete(self, client: Cloudflare) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): - client.kv.namespaces.with_raw_response.bulk_delete( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="", - body=["My-Key"], - ) - - with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): - client.kv.namespaces.with_raw_response.bulk_delete( - namespace_id="", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=["My-Key"], - ) - - @parametrize - def test_method_bulk_get(self, client: Cloudflare) -> None: - namespace = client.kv.namespaces.bulk_get( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - keys=["My-Key"], - ) - assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) - - @parametrize - def test_method_bulk_get_with_all_params(self, client: Cloudflare) -> None: - namespace = client.kv.namespaces.bulk_get( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - keys=["My-Key"], - type="text", - with_metadata=True, - ) - assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) - - @parametrize - def test_raw_response_bulk_get(self, client: Cloudflare) -> None: - response = client.kv.namespaces.with_raw_response.bulk_get( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - keys=["My-Key"], - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - namespace = response.parse() - assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) - - @parametrize - def test_streaming_response_bulk_get(self, client: Cloudflare) -> None: - with client.kv.namespaces.with_streaming_response.bulk_get( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - keys=["My-Key"], - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - namespace = response.parse() - assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_bulk_get(self, client: Cloudflare) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): - client.kv.namespaces.with_raw_response.bulk_get( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="", - keys=["My-Key"], - ) - - with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): - client.kv.namespaces.with_raw_response.bulk_get( - namespace_id="", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - keys=["My-Key"], - ) - - @parametrize - def test_method_bulk_update(self, client: Cloudflare) -> None: - namespace = client.kv.namespaces.bulk_update( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=[{}], - ) - assert_matches_type(Optional[NamespaceBulkUpdateResponse], namespace, path=["response"]) - - @parametrize - def test_raw_response_bulk_update(self, client: Cloudflare) -> None: - response = client.kv.namespaces.with_raw_response.bulk_update( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=[{}], - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - namespace = response.parse() - assert_matches_type(Optional[NamespaceBulkUpdateResponse], namespace, path=["response"]) - - @parametrize - def test_streaming_response_bulk_update(self, client: Cloudflare) -> None: - with client.kv.namespaces.with_streaming_response.bulk_update( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=[{}], - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - namespace = response.parse() - assert_matches_type(Optional[NamespaceBulkUpdateResponse], namespace, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_bulk_update(self, client: Cloudflare) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): - client.kv.namespaces.with_raw_response.bulk_update( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="", - body=[{}], - ) - - with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): - client.kv.namespaces.with_raw_response.bulk_update( - namespace_id="", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=[{}], - ) - @parametrize def test_method_get(self, client: Cloudflare) -> None: namespace = client.kv.namespaces.get( @@ -631,176 +458,6 @@ async def test_path_params_delete(self, async_client: AsyncCloudflare) -> None: account_id="023e105f4ecef8ad9ca31a8372d0c353", ) - @parametrize - async def test_method_bulk_delete(self, async_client: AsyncCloudflare) -> None: - namespace = await async_client.kv.namespaces.bulk_delete( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=["My-Key"], - ) - assert_matches_type(Optional[NamespaceBulkDeleteResponse], namespace, path=["response"]) - - @parametrize - async def test_raw_response_bulk_delete(self, async_client: AsyncCloudflare) -> None: - response = await async_client.kv.namespaces.with_raw_response.bulk_delete( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=["My-Key"], - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - namespace = await response.parse() - assert_matches_type(Optional[NamespaceBulkDeleteResponse], namespace, path=["response"]) - - @parametrize - async def test_streaming_response_bulk_delete(self, async_client: AsyncCloudflare) -> None: - async with async_client.kv.namespaces.with_streaming_response.bulk_delete( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=["My-Key"], - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - namespace = await response.parse() - assert_matches_type(Optional[NamespaceBulkDeleteResponse], namespace, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_bulk_delete(self, async_client: AsyncCloudflare) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): - await async_client.kv.namespaces.with_raw_response.bulk_delete( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="", - body=["My-Key"], - ) - - with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): - await async_client.kv.namespaces.with_raw_response.bulk_delete( - namespace_id="", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=["My-Key"], - ) - - @parametrize - async def test_method_bulk_get(self, async_client: AsyncCloudflare) -> None: - namespace = await async_client.kv.namespaces.bulk_get( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - keys=["My-Key"], - ) - assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) - - @parametrize - async def test_method_bulk_get_with_all_params(self, async_client: AsyncCloudflare) -> None: - namespace = await async_client.kv.namespaces.bulk_get( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - keys=["My-Key"], - type="text", - with_metadata=True, - ) - assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) - - @parametrize - async def test_raw_response_bulk_get(self, async_client: AsyncCloudflare) -> None: - response = await async_client.kv.namespaces.with_raw_response.bulk_get( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - keys=["My-Key"], - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - namespace = await response.parse() - assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) - - @parametrize - async def test_streaming_response_bulk_get(self, async_client: AsyncCloudflare) -> None: - async with async_client.kv.namespaces.with_streaming_response.bulk_get( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - keys=["My-Key"], - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - namespace = await response.parse() - assert_matches_type(Optional[NamespaceBulkGetResponse], namespace, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_bulk_get(self, async_client: AsyncCloudflare) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): - await async_client.kv.namespaces.with_raw_response.bulk_get( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="", - keys=["My-Key"], - ) - - with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): - await async_client.kv.namespaces.with_raw_response.bulk_get( - namespace_id="", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - keys=["My-Key"], - ) - - @parametrize - async def test_method_bulk_update(self, async_client: AsyncCloudflare) -> None: - namespace = await async_client.kv.namespaces.bulk_update( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=[{}], - ) - assert_matches_type(Optional[NamespaceBulkUpdateResponse], namespace, path=["response"]) - - @parametrize - async def test_raw_response_bulk_update(self, async_client: AsyncCloudflare) -> None: - response = await async_client.kv.namespaces.with_raw_response.bulk_update( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=[{}], - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - namespace = await response.parse() - assert_matches_type(Optional[NamespaceBulkUpdateResponse], namespace, path=["response"]) - - @parametrize - async def test_streaming_response_bulk_update(self, async_client: AsyncCloudflare) -> None: - async with async_client.kv.namespaces.with_streaming_response.bulk_update( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=[{}], - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - namespace = await response.parse() - assert_matches_type(Optional[NamespaceBulkUpdateResponse], namespace, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_bulk_update(self, async_client: AsyncCloudflare) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): - await async_client.kv.namespaces.with_raw_response.bulk_update( - namespace_id="0f2ac74b498b48028cb68387c421e279", - account_id="", - body=[{}], - ) - - with pytest.raises(ValueError, match=r"Expected a non-empty value for `namespace_id` but received ''"): - await async_client.kv.namespaces.with_raw_response.bulk_update( - namespace_id="", - account_id="023e105f4ecef8ad9ca31a8372d0c353", - body=[{}], - ) - @parametrize async def test_method_get(self, async_client: AsyncCloudflare) -> None: namespace = await async_client.kv.namespaces.get( From 691e88c0f1e87639d5fb9968d635e609ebcbdc70 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:02 -0400 Subject: [PATCH 120/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index ceb3f10cf22..4e75a217d89 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e4b9f5edb1a080561740120d2418d122731ef29e54de4d6f48f5e47834cd8863.yml -openapi_spec_hash: aa8f1f50bc2718e571d926389ca0461c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-946584f5d6c56c67630a313f408a2abec5b8d820e5cf4c3e4082999a9d8ad0c8.yml +openapi_spec_hash: 690560ce1a27b7781b188b4f4374c006 config_hash: ba292e0053602e8a8923a35fb6c7c1e9 From 22ed9e7cd2e994bc550063c0b20f98b1a485141a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:02 -0400 Subject: [PATCH 121/849] codegen metadata --- .stats.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 4e75a217d89..a06e93065fe 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-946584f5d6c56c67630a313f408a2abec5b8d820e5cf4c3e4082999a9d8ad0c8.yml -openapi_spec_hash: 690560ce1a27b7781b188b4f4374c006 -config_hash: ba292e0053602e8a8923a35fb6c7c1e9 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-08e317ef2517027e1329b3d79e5205dec0842211b17088b73e92bb4a88e1821e.yml +openapi_spec_hash: aa8f1f50bc2718e571d926389ca0461c +config_hash: 4bb763c52905a0e8a7c5fc45197e7007 From 83f3046e8fe45f8add0e2dfc73dd298a2c2816c4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:03 -0400 Subject: [PATCH 122/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index a06e93065fe..453928387ab 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-08e317ef2517027e1329b3d79e5205dec0842211b17088b73e92bb4a88e1821e.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-9a5fabc53c303e36f4e3ab08df48a7b7742a3d03d68a24714cf19bbef83519f9.yml openapi_spec_hash: aa8f1f50bc2718e571d926389ca0461c -config_hash: 4bb763c52905a0e8a7c5fc45197e7007 +config_hash: 5585b9011c45f8b6b0bc39d36ea3f840 From 382b222c69048b0949430df56aa3be5dbba43e9a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:03 -0400 Subject: [PATCH 123/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 453928387ab..98f81da5932 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-9a5fabc53c303e36f4e3ab08df48a7b7742a3d03d68a24714cf19bbef83519f9.yml -openapi_spec_hash: aa8f1f50bc2718e571d926389ca0461c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b380c5680ef1a27820ee3c17f013efa4fc6d68d6ad42536d9d0b2b7a3abe9028.yml +openapi_spec_hash: f1498f452c6d746e6f13fbcae61498cb config_hash: 5585b9011c45f8b6b0bc39d36ea3f840 From 35ad0da1a1335f9d6eb97a00d3c2991870136754 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:03 -0400 Subject: [PATCH 124/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 98f81da5932..13d2e60b82c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b380c5680ef1a27820ee3c17f013efa4fc6d68d6ad42536d9d0b2b7a3abe9028.yml -openapi_spec_hash: f1498f452c6d746e6f13fbcae61498cb +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f0246e6db153c7bb10626cce29a4a0fe52d4da4a3974e782c75df97d83855a2c.yml +openapi_spec_hash: fc8a6d67d1ab8469d2e71dd61b64553b config_hash: 5585b9011c45f8b6b0bc39d36ea3f840 From 5c98d68ca61acfe04fa41c00a725629b36b748fe Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:03 -0400 Subject: [PATCH 125/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 13d2e60b82c..d1aef96543f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f0246e6db153c7bb10626cce29a4a0fe52d4da4a3974e782c75df97d83855a2c.yml -openapi_spec_hash: fc8a6d67d1ab8469d2e71dd61b64553b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-861f1a5c378f48c0d46348fa0b27b5833e566510433ce0b1420cb6e560aced2c.yml +openapi_spec_hash: 9d5ac03d0920b736bc9354b37e328098 config_hash: 5585b9011c45f8b6b0bc39d36ea3f840 From 85781c7aa97beed4bb45aad8ed419a599cf5c0af Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:03 -0400 Subject: [PATCH 126/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index d1aef96543f..890542991e1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-861f1a5c378f48c0d46348fa0b27b5833e566510433ce0b1420cb6e560aced2c.yml -openapi_spec_hash: 9d5ac03d0920b736bc9354b37e328098 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-3a9b8048afe3b4fe591741f4cf1d495f8410771c2cc445df6f06b786d1708f06.yml +openapi_spec_hash: a58ee85704ea9423d917f0e8d73f6d61 config_hash: 5585b9011c45f8b6b0bc39d36ea3f840 From fd88938090029eb353ee697f98288a408ccde7a2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:03 -0400 Subject: [PATCH 127/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 890542991e1..239118823fc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-3a9b8048afe3b4fe591741f4cf1d495f8410771c2cc445df6f06b786d1708f06.yml -openapi_spec_hash: a58ee85704ea9423d917f0e8d73f6d61 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0abe640666af6d3645b70f71ac8f56f23fc5f8565934b2fae5c37a3556f01d64.yml +openapi_spec_hash: ac51a3c78f60ed2bfe1bfcbadc71d0e4 config_hash: 5585b9011c45f8b6b0bc39d36ea3f840 From e19a0bc2df06934284ff0d88784e9da1ac99c278 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:03 -0400 Subject: [PATCH 128/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 239118823fc..c5b31a99301 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0abe640666af6d3645b70f71ac8f56f23fc5f8565934b2fae5c37a3556f01d64.yml -openapi_spec_hash: ac51a3c78f60ed2bfe1bfcbadc71d0e4 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-dd880b7aa41cc532ee8f0a95909e1e7a191b76be9871762349e32cec08169766.yml +openapi_spec_hash: 062a6a5dfc124bcd62a7f7b3222a54ad config_hash: 5585b9011c45f8b6b0bc39d36ea3f840 From 9714af9f1f128fe1ca50ca6c2b301c1609bc3ed5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:03 -0400 Subject: [PATCH 129/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index c5b31a99301..f184662004c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-dd880b7aa41cc532ee8f0a95909e1e7a191b76be9871762349e32cec08169766.yml -openapi_spec_hash: 062a6a5dfc124bcd62a7f7b3222a54ad +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-58e74f391916ed587843402b76f7c4f4a394ab263d557ee6fe48b87746b9c2ef.yml +openapi_spec_hash: 3eaaf411a6e7cdee5b35a3120f0ae223 config_hash: 5585b9011c45f8b6b0bc39d36ea3f840 From 59c11df0c5ac682780880c21d280f284c589174a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:03 -0400 Subject: [PATCH 130/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index f184662004c..98f81da5932 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-58e74f391916ed587843402b76f7c4f4a394ab263d557ee6fe48b87746b9c2ef.yml -openapi_spec_hash: 3eaaf411a6e7cdee5b35a3120f0ae223 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b380c5680ef1a27820ee3c17f013efa4fc6d68d6ad42536d9d0b2b7a3abe9028.yml +openapi_spec_hash: f1498f452c6d746e6f13fbcae61498cb config_hash: 5585b9011c45f8b6b0bc39d36ea3f840 From 5ac1547cdc68f14a16ec484cd4a4fb9df37c3608 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:04 -0400 Subject: [PATCH 131/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 98f81da5932..c5b31a99301 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b380c5680ef1a27820ee3c17f013efa4fc6d68d6ad42536d9d0b2b7a3abe9028.yml -openapi_spec_hash: f1498f452c6d746e6f13fbcae61498cb +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-dd880b7aa41cc532ee8f0a95909e1e7a191b76be9871762349e32cec08169766.yml +openapi_spec_hash: 062a6a5dfc124bcd62a7f7b3222a54ad config_hash: 5585b9011c45f8b6b0bc39d36ea3f840 From eceb0bb92698012d4f147f298065870f5a706bcb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:04 -0400 Subject: [PATCH 132/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index c5b31a99301..cbddf944ad8 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-dd880b7aa41cc532ee8f0a95909e1e7a191b76be9871762349e32cec08169766.yml -openapi_spec_hash: 062a6a5dfc124bcd62a7f7b3222a54ad +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2327c225eb82e14ae8408d9957834d9c12def2ebf79dd74d08724d5e7c0715db.yml +openapi_spec_hash: aa2ca221166e48877364a94719fb4a59 config_hash: 5585b9011c45f8b6b0bc39d36ea3f840 From f15782abf3529f9f6c3633ffe37021eb0e0c27ae Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:04 -0400 Subject: [PATCH 133/849] chore(internal): consistently order route keys (#2580) --- .stats.yml | 2 +- api.md | 2 +- src/cloudflare/types/rate_limits/__init__.py | 1 - src/cloudflare/types/rate_limits/methods.py | 7 ------- src/cloudflare/types/rate_limits/rate_limit.py | 3 +-- .../types/rate_limits/rate_limit_create_params.py | 4 +--- .../types/rate_limits/rate_limit_delete_response.py | 3 +-- src/cloudflare/types/rate_limits/rate_limit_edit_params.py | 4 +--- 8 files changed, 6 insertions(+), 20 deletions(-) delete mode 100644 src/cloudflare/types/rate_limits/methods.py diff --git a/.stats.yml b/.stats.yml index cbddf944ad8..77f3426fb17 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2327c225eb82e14ae8408d9957834d9c12def2ebf79dd74d08724d5e7c0715db.yml openapi_spec_hash: aa2ca221166e48877364a94719fb4a59 -config_hash: 5585b9011c45f8b6b0bc39d36ea3f840 +config_hash: 7696ae00d11a8f7c9347e351774531e1 diff --git a/api.md b/api.md index a15999809b9..f46c8b3ee20 100644 --- a/api.md +++ b/api.md @@ -2110,7 +2110,7 @@ Methods: Types: ```python -from cloudflare.types.rate_limits import Action, Methods, RateLimit, RateLimitDeleteResponse +from cloudflare.types.rate_limits import Action, RateLimit, RateLimitDeleteResponse ``` Methods: diff --git a/src/cloudflare/types/rate_limits/__init__.py b/src/cloudflare/types/rate_limits/__init__.py index 3a9129f1e6e..37c5bbf55dc 100644 --- a/src/cloudflare/types/rate_limits/__init__.py +++ b/src/cloudflare/types/rate_limits/__init__.py @@ -3,7 +3,6 @@ from __future__ import annotations from .action import Action as Action -from .methods import Methods as Methods from .rate_limit import RateLimit as RateLimit from .rate_limit_edit_params import RateLimitEditParams as RateLimitEditParams from .rate_limit_list_params import RateLimitListParams as RateLimitListParams diff --git a/src/cloudflare/types/rate_limits/methods.py b/src/cloudflare/types/rate_limits/methods.py deleted file mode 100644 index 56be0c9d9d0..00000000000 --- a/src/cloudflare/types/rate_limits/methods.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["Methods"] - -Methods: TypeAlias = Literal["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "_ALL_"] diff --git a/src/cloudflare/types/rate_limits/rate_limit.py b/src/cloudflare/types/rate_limits/rate_limit.py index 9fa5741af1a..24cc1540a32 100644 --- a/src/cloudflare/types/rate_limits/rate_limit.py +++ b/src/cloudflare/types/rate_limits/rate_limit.py @@ -3,7 +3,6 @@ from typing import List, Optional from typing_extensions import Literal -from .methods import Methods from ..._models import BaseModel __all__ = ["RateLimit", "Action", "ActionResponse", "Bypass", "Match", "MatchHeader", "MatchRequest", "MatchResponse"] @@ -65,7 +64,7 @@ class MatchHeader(BaseModel): class MatchRequest(BaseModel): - methods: Optional[List[Methods]] = None + methods: Optional[List[Literal["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "_ALL_"]]] = None """The HTTP methods to match. You can specify a subset (for example, `['POST','PUT']`) or all methods diff --git a/src/cloudflare/types/rate_limits/rate_limit_create_params.py b/src/cloudflare/types/rate_limits/rate_limit_create_params.py index e4f35081a32..e6640c11db1 100644 --- a/src/cloudflare/types/rate_limits/rate_limit_create_params.py +++ b/src/cloudflare/types/rate_limits/rate_limit_create_params.py @@ -5,8 +5,6 @@ from typing import List, Iterable from typing_extensions import Literal, Required, TypedDict -from .methods import Methods - __all__ = ["RateLimitCreateParams", "Action", "ActionResponse", "Match", "MatchHeader", "MatchRequest", "MatchResponse"] @@ -87,7 +85,7 @@ class MatchHeader(TypedDict, total=False): class MatchRequest(TypedDict, total=False): - methods: List[Methods] + methods: List[Literal["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "_ALL_"]] """The HTTP methods to match. You can specify a subset (for example, `['POST','PUT']`) or all methods diff --git a/src/cloudflare/types/rate_limits/rate_limit_delete_response.py b/src/cloudflare/types/rate_limits/rate_limit_delete_response.py index 380d71356ee..077f6303106 100644 --- a/src/cloudflare/types/rate_limits/rate_limit_delete_response.py +++ b/src/cloudflare/types/rate_limits/rate_limit_delete_response.py @@ -3,7 +3,6 @@ from typing import List, Optional from typing_extensions import Literal -from .methods import Methods from ..._models import BaseModel __all__ = [ @@ -74,7 +73,7 @@ class MatchHeader(BaseModel): class MatchRequest(BaseModel): - methods: Optional[List[Methods]] = None + methods: Optional[List[Literal["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "_ALL_"]]] = None """The HTTP methods to match. You can specify a subset (for example, `['POST','PUT']`) or all methods diff --git a/src/cloudflare/types/rate_limits/rate_limit_edit_params.py b/src/cloudflare/types/rate_limits/rate_limit_edit_params.py index 3358bb60c93..caa19e87b35 100644 --- a/src/cloudflare/types/rate_limits/rate_limit_edit_params.py +++ b/src/cloudflare/types/rate_limits/rate_limit_edit_params.py @@ -5,8 +5,6 @@ from typing import List, Iterable from typing_extensions import Literal, Required, TypedDict -from .methods import Methods - __all__ = ["RateLimitEditParams", "Action", "ActionResponse", "Match", "MatchHeader", "MatchRequest", "MatchResponse"] @@ -87,7 +85,7 @@ class MatchHeader(TypedDict, total=False): class MatchRequest(TypedDict, total=False): - methods: List[Methods] + methods: List[Literal["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "_ALL_"]] """The HTTP methods to match. You can specify a subset (for example, `['POST','PUT']`) or all methods From ea8eba541f0e860de44f4f5550ddb0672c06a326 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:04 -0400 Subject: [PATCH 134/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 77f3426fb17..2f97678daa4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2327c225eb82e14ae8408d9957834d9c12def2ebf79dd74d08724d5e7c0715db.yml -openapi_spec_hash: aa2ca221166e48877364a94719fb4a59 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-58e74f391916ed587843402b76f7c4f4a394ab263d557ee6fe48b87746b9c2ef.yml +openapi_spec_hash: 3eaaf411a6e7cdee5b35a3120f0ae223 config_hash: 7696ae00d11a8f7c9347e351774531e1 From 1c512517ad96c151ccdb5d6a9d2177b9f7e4adb1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:04 -0400 Subject: [PATCH 135/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 2f97678daa4..1d7551ccbc3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-58e74f391916ed587843402b76f7c4f4a394ab263d557ee6fe48b87746b9c2ef.yml -openapi_spec_hash: 3eaaf411a6e7cdee5b35a3120f0ae223 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d6e7ac0584e2cab8c819ce2f5f375cf16568c087e6cfc855a3ef89a4e8e64c87.yml +openapi_spec_hash: 7a2731b521f801f6f807d3299c4f3e0c config_hash: 7696ae00d11a8f7c9347e351774531e1 From 8020023d93b1472da76e95132398d85e70a67fe7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:04 -0400 Subject: [PATCH 136/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 1d7551ccbc3..ea9595d8180 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d6e7ac0584e2cab8c819ce2f5f375cf16568c087e6cfc855a3ef89a4e8e64c87.yml -openapi_spec_hash: 7a2731b521f801f6f807d3299c4f3e0c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-3a9b8048afe3b4fe591741f4cf1d495f8410771c2cc445df6f06b786d1708f06.yml +openapi_spec_hash: a58ee85704ea9423d917f0e8d73f6d61 config_hash: 7696ae00d11a8f7c9347e351774531e1 From 45a632b6bbd04413a12dc77a75cf48b078f1d8ea Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:04 -0400 Subject: [PATCH 137/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index ea9595d8180..2f97678daa4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-3a9b8048afe3b4fe591741f4cf1d495f8410771c2cc445df6f06b786d1708f06.yml -openapi_spec_hash: a58ee85704ea9423d917f0e8d73f6d61 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-58e74f391916ed587843402b76f7c4f4a394ab263d557ee6fe48b87746b9c2ef.yml +openapi_spec_hash: 3eaaf411a6e7cdee5b35a3120f0ae223 config_hash: 7696ae00d11a8f7c9347e351774531e1 From f91d0a66a196477f971768a12707a226536b7491 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:04 -0400 Subject: [PATCH 138/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 2f97678daa4..ea9595d8180 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-58e74f391916ed587843402b76f7c4f4a394ab263d557ee6fe48b87746b9c2ef.yml -openapi_spec_hash: 3eaaf411a6e7cdee5b35a3120f0ae223 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-3a9b8048afe3b4fe591741f4cf1d495f8410771c2cc445df6f06b786d1708f06.yml +openapi_spec_hash: a58ee85704ea9423d917f0e8d73f6d61 config_hash: 7696ae00d11a8f7c9347e351774531e1 From 99b897e94174aeb90ca0abd39729134b55c831df Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:04 -0400 Subject: [PATCH 139/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index ea9595d8180..2f97678daa4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-3a9b8048afe3b4fe591741f4cf1d495f8410771c2cc445df6f06b786d1708f06.yml -openapi_spec_hash: a58ee85704ea9423d917f0e8d73f6d61 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-58e74f391916ed587843402b76f7c4f4a394ab263d557ee6fe48b87746b9c2ef.yml +openapi_spec_hash: 3eaaf411a6e7cdee5b35a3120f0ae223 config_hash: 7696ae00d11a8f7c9347e351774531e1 From 8993161c30fccd747e8d94405832e818b886b3bd Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:05 -0400 Subject: [PATCH 140/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 2f97678daa4..57e75e66e3d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-58e74f391916ed587843402b76f7c4f4a394ab263d557ee6fe48b87746b9c2ef.yml -openapi_spec_hash: 3eaaf411a6e7cdee5b35a3120f0ae223 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b380c5680ef1a27820ee3c17f013efa4fc6d68d6ad42536d9d0b2b7a3abe9028.yml +openapi_spec_hash: f1498f452c6d746e6f13fbcae61498cb config_hash: 7696ae00d11a8f7c9347e351774531e1 From 7c57e7fe25fe08d51c96e106ec8a40133621f05f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:05 -0400 Subject: [PATCH 141/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 57e75e66e3d..3e884094941 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b380c5680ef1a27820ee3c17f013efa4fc6d68d6ad42536d9d0b2b7a3abe9028.yml -openapi_spec_hash: f1498f452c6d746e6f13fbcae61498cb +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b027ce970a5d94e960be00a3ee2319ed85c4eb4d1badf8b25cc360c07eb0c2da.yml +openapi_spec_hash: 51c99a197e5b805e958fdf831eb63417 config_hash: 7696ae00d11a8f7c9347e351774531e1 From fb256d6d78ca55486d0691a6216f5efba0b1e049 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:05 -0400 Subject: [PATCH 142/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e884094941..e67255f36c0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b027ce970a5d94e960be00a3ee2319ed85c4eb4d1badf8b25cc360c07eb0c2da.yml -openapi_spec_hash: 51c99a197e5b805e958fdf831eb63417 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-70cfaadce4f7767b39d6de852df4a09d28da93f9c21509419749b4e7274ba3c4.yml +openapi_spec_hash: c647ea2f35b3a6eb4bf9d7f8f8d32c69 config_hash: 7696ae00d11a8f7c9347e351774531e1 From 997e76c44e424cfb00ae24f4165283a2250b1ac9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:05 -0400 Subject: [PATCH 143/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index e67255f36c0..9c6a29c126e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1662 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-70cfaadce4f7767b39d6de852df4a09d28da93f9c21509419749b4e7274ba3c4.yml -openapi_spec_hash: c647ea2f35b3a6eb4bf9d7f8f8d32c69 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0f85eda50790c0da1ccfce8ce0b48426d412c64626dfbd7e7e6056e91cc34439.yml +openapi_spec_hash: ff9db42dee98a21be0523ee649d3ff47 config_hash: 7696ae00d11a8f7c9347e351774531e1 From a80f4380c0cc3531517f8688273cb13104b6f6b8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:05 -0400 Subject: [PATCH 144/849] feat(devices): add global warp override support (#2581) --- .stats.yml | 4 +- api.md | 18 ++ .../resources/zero_trust/devices/__init__.py | 14 + .../resources/zero_trust/devices/devices.py | 32 ++ .../zero_trust/devices/resilience/__init__.py | 33 ++ .../resilience/global_warp_override.py | 300 ++++++++++++++++++ .../devices/resilience/resilience.py | 102 ++++++ .../zero_trust/devices/resilience/__init__.py | 7 + .../global_warp_override_create_params.py | 20 ++ .../global_warp_override_create_response.py | 16 + .../global_warp_override_get_response.py | 16 + .../zero_trust/devices/resilience/__init__.py | 1 + .../resilience/test_global_warp_override.py | 203 ++++++++++++ 13 files changed, 764 insertions(+), 2 deletions(-) create mode 100644 src/cloudflare/resources/zero_trust/devices/resilience/__init__.py create mode 100644 src/cloudflare/resources/zero_trust/devices/resilience/global_warp_override.py create mode 100644 src/cloudflare/resources/zero_trust/devices/resilience/resilience.py create mode 100644 src/cloudflare/types/zero_trust/devices/resilience/__init__.py create mode 100644 src/cloudflare/types/zero_trust/devices/resilience/global_warp_override_create_params.py create mode 100644 src/cloudflare/types/zero_trust/devices/resilience/global_warp_override_create_response.py create mode 100644 src/cloudflare/types/zero_trust/devices/resilience/global_warp_override_get_response.py create mode 100644 tests/api_resources/zero_trust/devices/resilience/__init__.py create mode 100644 tests/api_resources/zero_trust/devices/resilience/test_global_warp_override.py diff --git a/.stats.yml b/.stats.yml index 9c6a29c126e..639993c5cb3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 1662 +configured_endpoints: 1664 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0f85eda50790c0da1ccfce8ce0b48426d412c64626dfbd7e7e6056e91cc34439.yml openapi_spec_hash: ff9db42dee98a21be0523ee649d3ff47 -config_hash: 7696ae00d11a8f7c9347e351774531e1 +config_hash: f19070938c38d2589d482763642f37a1 diff --git a/api.md b/api.md index f46c8b3ee20..d3f325677c8 100644 --- a/api.md +++ b/api.md @@ -5105,6 +5105,24 @@ Methods: - client.zero_trust.devices.list(\*, account_id) -> SyncSinglePage[Device] - client.zero_trust.devices.get(device_id, \*, account_id) -> Optional[DeviceGetResponse] +### Resilience + +#### GlobalWARPOverride + +Types: + +```python +from cloudflare.types.zero_trust.devices.resilience import ( + GlobalWARPOverrideCreateResponse, + GlobalWARPOverrideGetResponse, +) +``` + +Methods: + +- client.zero_trust.devices.resilience.global_warp_override.create(\*, account_id, \*\*params) -> Optional[GlobalWARPOverrideCreateResponse] +- client.zero_trust.devices.resilience.global_warp_override.get(\*, account_id) -> Optional[GlobalWARPOverrideGetResponse] + ### DEXTests Types: diff --git a/src/cloudflare/resources/zero_trust/devices/__init__.py b/src/cloudflare/resources/zero_trust/devices/__init__.py index 5b55d59405f..395233561a0 100644 --- a/src/cloudflare/resources/zero_trust/devices/__init__.py +++ b/src/cloudflare/resources/zero_trust/devices/__init__.py @@ -64,6 +64,14 @@ DEXTestsResourceWithStreamingResponse, AsyncDEXTestsResourceWithStreamingResponse, ) +from .resilience import ( + ResilienceResource, + AsyncResilienceResource, + ResilienceResourceWithRawResponse, + AsyncResilienceResourceWithRawResponse, + ResilienceResourceWithStreamingResponse, + AsyncResilienceResourceWithStreamingResponse, +) from .fleet_status import ( FleetStatusResource, AsyncFleetStatusResource, @@ -82,6 +90,12 @@ ) __all__ = [ + "ResilienceResource", + "AsyncResilienceResource", + "ResilienceResourceWithRawResponse", + "AsyncResilienceResourceWithRawResponse", + "ResilienceResourceWithStreamingResponse", + "AsyncResilienceResourceWithStreamingResponse", "DEXTestsResource", "AsyncDEXTestsResource", "DEXTestsResourceWithRawResponse", diff --git a/src/cloudflare/resources/zero_trust/devices/devices.py b/src/cloudflare/resources/zero_trust/devices/devices.py index e22fa20a0c1..88934638041 100644 --- a/src/cloudflare/resources/zero_trust/devices/devices.py +++ b/src/cloudflare/resources/zero_trust/devices/devices.py @@ -90,6 +90,14 @@ PoliciesResourceWithStreamingResponse, AsyncPoliciesResourceWithStreamingResponse, ) +from .resilience.resilience import ( + ResilienceResource, + AsyncResilienceResource, + ResilienceResourceWithRawResponse, + AsyncResilienceResourceWithRawResponse, + ResilienceResourceWithStreamingResponse, + AsyncResilienceResourceWithStreamingResponse, +) from ....types.zero_trust.device import Device from ....types.zero_trust.device_get_response import DeviceGetResponse @@ -97,6 +105,10 @@ class DevicesResource(SyncAPIResource): + @cached_property + def resilience(self) -> ResilienceResource: + return ResilienceResource(self._client) + @cached_property def dex_tests(self) -> DEXTestsResource: return DEXTestsResource(self._client) @@ -230,6 +242,10 @@ def get( class AsyncDevicesResource(AsyncAPIResource): + @cached_property + def resilience(self) -> AsyncResilienceResource: + return AsyncResilienceResource(self._client) + @cached_property def dex_tests(self) -> AsyncDEXTestsResource: return AsyncDEXTestsResource(self._client) @@ -373,6 +389,10 @@ def __init__(self, devices: DevicesResource) -> None: devices.get, ) + @cached_property + def resilience(self) -> ResilienceResourceWithRawResponse: + return ResilienceResourceWithRawResponse(self._devices.resilience) + @cached_property def dex_tests(self) -> DEXTestsResourceWithRawResponse: return DEXTestsResourceWithRawResponse(self._devices.dex_tests) @@ -421,6 +441,10 @@ def __init__(self, devices: AsyncDevicesResource) -> None: devices.get, ) + @cached_property + def resilience(self) -> AsyncResilienceResourceWithRawResponse: + return AsyncResilienceResourceWithRawResponse(self._devices.resilience) + @cached_property def dex_tests(self) -> AsyncDEXTestsResourceWithRawResponse: return AsyncDEXTestsResourceWithRawResponse(self._devices.dex_tests) @@ -469,6 +493,10 @@ def __init__(self, devices: DevicesResource) -> None: devices.get, ) + @cached_property + def resilience(self) -> ResilienceResourceWithStreamingResponse: + return ResilienceResourceWithStreamingResponse(self._devices.resilience) + @cached_property def dex_tests(self) -> DEXTestsResourceWithStreamingResponse: return DEXTestsResourceWithStreamingResponse(self._devices.dex_tests) @@ -517,6 +545,10 @@ def __init__(self, devices: AsyncDevicesResource) -> None: devices.get, ) + @cached_property + def resilience(self) -> AsyncResilienceResourceWithStreamingResponse: + return AsyncResilienceResourceWithStreamingResponse(self._devices.resilience) + @cached_property def dex_tests(self) -> AsyncDEXTestsResourceWithStreamingResponse: return AsyncDEXTestsResourceWithStreamingResponse(self._devices.dex_tests) diff --git a/src/cloudflare/resources/zero_trust/devices/resilience/__init__.py b/src/cloudflare/resources/zero_trust/devices/resilience/__init__.py new file mode 100644 index 00000000000..b67a3de1fd1 --- /dev/null +++ b/src/cloudflare/resources/zero_trust/devices/resilience/__init__.py @@ -0,0 +1,33 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from .resilience import ( + ResilienceResource, + AsyncResilienceResource, + ResilienceResourceWithRawResponse, + AsyncResilienceResourceWithRawResponse, + ResilienceResourceWithStreamingResponse, + AsyncResilienceResourceWithStreamingResponse, +) +from .global_warp_override import ( + GlobalWARPOverrideResource, + AsyncGlobalWARPOverrideResource, + GlobalWARPOverrideResourceWithRawResponse, + AsyncGlobalWARPOverrideResourceWithRawResponse, + GlobalWARPOverrideResourceWithStreamingResponse, + AsyncGlobalWARPOverrideResourceWithStreamingResponse, +) + +__all__ = [ + "GlobalWARPOverrideResource", + "AsyncGlobalWARPOverrideResource", + "GlobalWARPOverrideResourceWithRawResponse", + "AsyncGlobalWARPOverrideResourceWithRawResponse", + "GlobalWARPOverrideResourceWithStreamingResponse", + "AsyncGlobalWARPOverrideResourceWithStreamingResponse", + "ResilienceResource", + "AsyncResilienceResource", + "ResilienceResourceWithRawResponse", + "AsyncResilienceResourceWithRawResponse", + "ResilienceResourceWithStreamingResponse", + "AsyncResilienceResourceWithStreamingResponse", +] diff --git a/src/cloudflare/resources/zero_trust/devices/resilience/global_warp_override.py b/src/cloudflare/resources/zero_trust/devices/resilience/global_warp_override.py new file mode 100644 index 00000000000..7231277a264 --- /dev/null +++ b/src/cloudflare/resources/zero_trust/devices/resilience/global_warp_override.py @@ -0,0 +1,300 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Type, Optional, cast + +import httpx + +from ....._types import NOT_GIVEN, Body, Query, Headers, NotGiven +from ....._utils import ( + maybe_transform, + async_maybe_transform, +) +from ....._compat import cached_property +from ....._resource import SyncAPIResource, AsyncAPIResource +from ....._response import ( + to_raw_response_wrapper, + to_streamed_response_wrapper, + async_to_raw_response_wrapper, + async_to_streamed_response_wrapper, +) +from ....._wrappers import ResultWrapper +from ....._base_client import make_request_options +from .....types.zero_trust.devices.resilience import global_warp_override_create_params +from .....types.zero_trust.devices.resilience.global_warp_override_get_response import GlobalWARPOverrideGetResponse +from .....types.zero_trust.devices.resilience.global_warp_override_create_response import ( + GlobalWARPOverrideCreateResponse, +) + +__all__ = ["GlobalWARPOverrideResource", "AsyncGlobalWARPOverrideResource"] + + +class GlobalWARPOverrideResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> GlobalWARPOverrideResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return GlobalWARPOverrideResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> GlobalWARPOverrideResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return GlobalWARPOverrideResourceWithStreamingResponse(self) + + def create( + self, + *, + account_id: str, + disconnect: bool, + justification: str | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[GlobalWARPOverrideCreateResponse]: + """ + Sets the Global WARP override state. + + Args: + disconnect: Disconnects all devices on the account using Global WARP override. + + justification: Reasoning for setting the Global WARP override state. This will be surfaced in + the audit log. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return self._post( + f"/accounts/{account_id}/devices/resilience/disconnect", + body=maybe_transform( + { + "disconnect": disconnect, + "justification": justification, + }, + global_warp_override_create_params.GlobalWARPOverrideCreateParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[GlobalWARPOverrideCreateResponse]]._unwrapper, + ), + cast_to=cast( + Type[Optional[GlobalWARPOverrideCreateResponse]], ResultWrapper[GlobalWARPOverrideCreateResponse] + ), + ) + + def get( + self, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[GlobalWARPOverrideGetResponse]: + """ + Fetch the Global WARP override state + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return self._get( + f"/accounts/{account_id}/devices/resilience/disconnect", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[GlobalWARPOverrideGetResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[GlobalWARPOverrideGetResponse]], ResultWrapper[GlobalWARPOverrideGetResponse]), + ) + + +class AsyncGlobalWARPOverrideResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncGlobalWARPOverrideResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return AsyncGlobalWARPOverrideResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncGlobalWARPOverrideResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return AsyncGlobalWARPOverrideResourceWithStreamingResponse(self) + + async def create( + self, + *, + account_id: str, + disconnect: bool, + justification: str | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[GlobalWARPOverrideCreateResponse]: + """ + Sets the Global WARP override state. + + Args: + disconnect: Disconnects all devices on the account using Global WARP override. + + justification: Reasoning for setting the Global WARP override state. This will be surfaced in + the audit log. + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return await self._post( + f"/accounts/{account_id}/devices/resilience/disconnect", + body=await async_maybe_transform( + { + "disconnect": disconnect, + "justification": justification, + }, + global_warp_override_create_params.GlobalWARPOverrideCreateParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[GlobalWARPOverrideCreateResponse]]._unwrapper, + ), + cast_to=cast( + Type[Optional[GlobalWARPOverrideCreateResponse]], ResultWrapper[GlobalWARPOverrideCreateResponse] + ), + ) + + async def get( + self, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[GlobalWARPOverrideGetResponse]: + """ + Fetch the Global WARP override state + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return await self._get( + f"/accounts/{account_id}/devices/resilience/disconnect", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[GlobalWARPOverrideGetResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[GlobalWARPOverrideGetResponse]], ResultWrapper[GlobalWARPOverrideGetResponse]), + ) + + +class GlobalWARPOverrideResourceWithRawResponse: + def __init__(self, global_warp_override: GlobalWARPOverrideResource) -> None: + self._global_warp_override = global_warp_override + + self.create = to_raw_response_wrapper( + global_warp_override.create, + ) + self.get = to_raw_response_wrapper( + global_warp_override.get, + ) + + +class AsyncGlobalWARPOverrideResourceWithRawResponse: + def __init__(self, global_warp_override: AsyncGlobalWARPOverrideResource) -> None: + self._global_warp_override = global_warp_override + + self.create = async_to_raw_response_wrapper( + global_warp_override.create, + ) + self.get = async_to_raw_response_wrapper( + global_warp_override.get, + ) + + +class GlobalWARPOverrideResourceWithStreamingResponse: + def __init__(self, global_warp_override: GlobalWARPOverrideResource) -> None: + self._global_warp_override = global_warp_override + + self.create = to_streamed_response_wrapper( + global_warp_override.create, + ) + self.get = to_streamed_response_wrapper( + global_warp_override.get, + ) + + +class AsyncGlobalWARPOverrideResourceWithStreamingResponse: + def __init__(self, global_warp_override: AsyncGlobalWARPOverrideResource) -> None: + self._global_warp_override = global_warp_override + + self.create = async_to_streamed_response_wrapper( + global_warp_override.create, + ) + self.get = async_to_streamed_response_wrapper( + global_warp_override.get, + ) diff --git a/src/cloudflare/resources/zero_trust/devices/resilience/resilience.py b/src/cloudflare/resources/zero_trust/devices/resilience/resilience.py new file mode 100644 index 00000000000..b921fb84488 --- /dev/null +++ b/src/cloudflare/resources/zero_trust/devices/resilience/resilience.py @@ -0,0 +1,102 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from ....._compat import cached_property +from ....._resource import SyncAPIResource, AsyncAPIResource +from .global_warp_override import ( + GlobalWARPOverrideResource, + AsyncGlobalWARPOverrideResource, + GlobalWARPOverrideResourceWithRawResponse, + AsyncGlobalWARPOverrideResourceWithRawResponse, + GlobalWARPOverrideResourceWithStreamingResponse, + AsyncGlobalWARPOverrideResourceWithStreamingResponse, +) + +__all__ = ["ResilienceResource", "AsyncResilienceResource"] + + +class ResilienceResource(SyncAPIResource): + @cached_property + def global_warp_override(self) -> GlobalWARPOverrideResource: + return GlobalWARPOverrideResource(self._client) + + @cached_property + def with_raw_response(self) -> ResilienceResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return ResilienceResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> ResilienceResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return ResilienceResourceWithStreamingResponse(self) + + +class AsyncResilienceResource(AsyncAPIResource): + @cached_property + def global_warp_override(self) -> AsyncGlobalWARPOverrideResource: + return AsyncGlobalWARPOverrideResource(self._client) + + @cached_property + def with_raw_response(self) -> AsyncResilienceResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return AsyncResilienceResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncResilienceResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return AsyncResilienceResourceWithStreamingResponse(self) + + +class ResilienceResourceWithRawResponse: + def __init__(self, resilience: ResilienceResource) -> None: + self._resilience = resilience + + @cached_property + def global_warp_override(self) -> GlobalWARPOverrideResourceWithRawResponse: + return GlobalWARPOverrideResourceWithRawResponse(self._resilience.global_warp_override) + + +class AsyncResilienceResourceWithRawResponse: + def __init__(self, resilience: AsyncResilienceResource) -> None: + self._resilience = resilience + + @cached_property + def global_warp_override(self) -> AsyncGlobalWARPOverrideResourceWithRawResponse: + return AsyncGlobalWARPOverrideResourceWithRawResponse(self._resilience.global_warp_override) + + +class ResilienceResourceWithStreamingResponse: + def __init__(self, resilience: ResilienceResource) -> None: + self._resilience = resilience + + @cached_property + def global_warp_override(self) -> GlobalWARPOverrideResourceWithStreamingResponse: + return GlobalWARPOverrideResourceWithStreamingResponse(self._resilience.global_warp_override) + + +class AsyncResilienceResourceWithStreamingResponse: + def __init__(self, resilience: AsyncResilienceResource) -> None: + self._resilience = resilience + + @cached_property + def global_warp_override(self) -> AsyncGlobalWARPOverrideResourceWithStreamingResponse: + return AsyncGlobalWARPOverrideResourceWithStreamingResponse(self._resilience.global_warp_override) diff --git a/src/cloudflare/types/zero_trust/devices/resilience/__init__.py b/src/cloudflare/types/zero_trust/devices/resilience/__init__.py new file mode 100644 index 00000000000..fd77f25e768 --- /dev/null +++ b/src/cloudflare/types/zero_trust/devices/resilience/__init__.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from .global_warp_override_get_response import GlobalWARPOverrideGetResponse as GlobalWARPOverrideGetResponse +from .global_warp_override_create_params import GlobalWARPOverrideCreateParams as GlobalWARPOverrideCreateParams +from .global_warp_override_create_response import GlobalWARPOverrideCreateResponse as GlobalWARPOverrideCreateResponse diff --git a/src/cloudflare/types/zero_trust/devices/resilience/global_warp_override_create_params.py b/src/cloudflare/types/zero_trust/devices/resilience/global_warp_override_create_params.py new file mode 100644 index 00000000000..362f206b71e --- /dev/null +++ b/src/cloudflare/types/zero_trust/devices/resilience/global_warp_override_create_params.py @@ -0,0 +1,20 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["GlobalWARPOverrideCreateParams"] + + +class GlobalWARPOverrideCreateParams(TypedDict, total=False): + account_id: Required[str] + + disconnect: Required[bool] + """Disconnects all devices on the account using Global WARP override.""" + + justification: str + """Reasoning for setting the Global WARP override state. + + This will be surfaced in the audit log. + """ diff --git a/src/cloudflare/types/zero_trust/devices/resilience/global_warp_override_create_response.py b/src/cloudflare/types/zero_trust/devices/resilience/global_warp_override_create_response.py new file mode 100644 index 00000000000..06de4161276 --- /dev/null +++ b/src/cloudflare/types/zero_trust/devices/resilience/global_warp_override_create_response.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from datetime import datetime + +from ....._models import BaseModel + +__all__ = ["GlobalWARPOverrideCreateResponse"] + + +class GlobalWARPOverrideCreateResponse(BaseModel): + disconnect: Optional[bool] = None + """Disconnects all devices on the account using Global WARP override.""" + + timestamp: Optional[datetime] = None + """When the Global WARP override state was updated.""" diff --git a/src/cloudflare/types/zero_trust/devices/resilience/global_warp_override_get_response.py b/src/cloudflare/types/zero_trust/devices/resilience/global_warp_override_get_response.py new file mode 100644 index 00000000000..d8f955bb263 --- /dev/null +++ b/src/cloudflare/types/zero_trust/devices/resilience/global_warp_override_get_response.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from datetime import datetime + +from ....._models import BaseModel + +__all__ = ["GlobalWARPOverrideGetResponse"] + + +class GlobalWARPOverrideGetResponse(BaseModel): + disconnect: Optional[bool] = None + """Disconnects all devices on the account using Global WARP override.""" + + timestamp: Optional[datetime] = None + """When the Global WARP override state was updated.""" diff --git a/tests/api_resources/zero_trust/devices/resilience/__init__.py b/tests/api_resources/zero_trust/devices/resilience/__init__.py new file mode 100644 index 00000000000..fd8019a9a1a --- /dev/null +++ b/tests/api_resources/zero_trust/devices/resilience/__init__.py @@ -0,0 +1 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. diff --git a/tests/api_resources/zero_trust/devices/resilience/test_global_warp_override.py b/tests/api_resources/zero_trust/devices/resilience/test_global_warp_override.py new file mode 100644 index 00000000000..6f3727f6460 --- /dev/null +++ b/tests/api_resources/zero_trust/devices/resilience/test_global_warp_override.py @@ -0,0 +1,203 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import os +from typing import Any, Optional, cast + +import pytest + +from cloudflare import Cloudflare, AsyncCloudflare +from tests.utils import assert_matches_type +from cloudflare.types.zero_trust.devices.resilience import ( + GlobalWARPOverrideGetResponse, + GlobalWARPOverrideCreateResponse, +) + +base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") + + +class TestGlobalWARPOverride: + parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + def test_method_create(self, client: Cloudflare) -> None: + global_warp_override = client.zero_trust.devices.resilience.global_warp_override.create( + account_id="699d98642c564d2e855e9661899b7252", + disconnect=False, + ) + assert_matches_type(Optional[GlobalWARPOverrideCreateResponse], global_warp_override, path=["response"]) + + @parametrize + def test_method_create_with_all_params(self, client: Cloudflare) -> None: + global_warp_override = client.zero_trust.devices.resilience.global_warp_override.create( + account_id="699d98642c564d2e855e9661899b7252", + disconnect=False, + justification="Turning off WARP for testing purposes.", + ) + assert_matches_type(Optional[GlobalWARPOverrideCreateResponse], global_warp_override, path=["response"]) + + @parametrize + def test_raw_response_create(self, client: Cloudflare) -> None: + response = client.zero_trust.devices.resilience.global_warp_override.with_raw_response.create( + account_id="699d98642c564d2e855e9661899b7252", + disconnect=False, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + global_warp_override = response.parse() + assert_matches_type(Optional[GlobalWARPOverrideCreateResponse], global_warp_override, path=["response"]) + + @parametrize + def test_streaming_response_create(self, client: Cloudflare) -> None: + with client.zero_trust.devices.resilience.global_warp_override.with_streaming_response.create( + account_id="699d98642c564d2e855e9661899b7252", + disconnect=False, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + global_warp_override = response.parse() + assert_matches_type(Optional[GlobalWARPOverrideCreateResponse], global_warp_override, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_create(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.zero_trust.devices.resilience.global_warp_override.with_raw_response.create( + account_id="", + disconnect=False, + ) + + @parametrize + def test_method_get(self, client: Cloudflare) -> None: + global_warp_override = client.zero_trust.devices.resilience.global_warp_override.get( + account_id="699d98642c564d2e855e9661899b7252", + ) + assert_matches_type(Optional[GlobalWARPOverrideGetResponse], global_warp_override, path=["response"]) + + @parametrize + def test_raw_response_get(self, client: Cloudflare) -> None: + response = client.zero_trust.devices.resilience.global_warp_override.with_raw_response.get( + account_id="699d98642c564d2e855e9661899b7252", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + global_warp_override = response.parse() + assert_matches_type(Optional[GlobalWARPOverrideGetResponse], global_warp_override, path=["response"]) + + @parametrize + def test_streaming_response_get(self, client: Cloudflare) -> None: + with client.zero_trust.devices.resilience.global_warp_override.with_streaming_response.get( + account_id="699d98642c564d2e855e9661899b7252", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + global_warp_override = response.parse() + assert_matches_type(Optional[GlobalWARPOverrideGetResponse], global_warp_override, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_get(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.zero_trust.devices.resilience.global_warp_override.with_raw_response.get( + account_id="", + ) + + +class TestAsyncGlobalWARPOverride: + parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + async def test_method_create(self, async_client: AsyncCloudflare) -> None: + global_warp_override = await async_client.zero_trust.devices.resilience.global_warp_override.create( + account_id="699d98642c564d2e855e9661899b7252", + disconnect=False, + ) + assert_matches_type(Optional[GlobalWARPOverrideCreateResponse], global_warp_override, path=["response"]) + + @parametrize + async def test_method_create_with_all_params(self, async_client: AsyncCloudflare) -> None: + global_warp_override = await async_client.zero_trust.devices.resilience.global_warp_override.create( + account_id="699d98642c564d2e855e9661899b7252", + disconnect=False, + justification="Turning off WARP for testing purposes.", + ) + assert_matches_type(Optional[GlobalWARPOverrideCreateResponse], global_warp_override, path=["response"]) + + @parametrize + async def test_raw_response_create(self, async_client: AsyncCloudflare) -> None: + response = await async_client.zero_trust.devices.resilience.global_warp_override.with_raw_response.create( + account_id="699d98642c564d2e855e9661899b7252", + disconnect=False, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + global_warp_override = await response.parse() + assert_matches_type(Optional[GlobalWARPOverrideCreateResponse], global_warp_override, path=["response"]) + + @parametrize + async def test_streaming_response_create(self, async_client: AsyncCloudflare) -> None: + async with async_client.zero_trust.devices.resilience.global_warp_override.with_streaming_response.create( + account_id="699d98642c564d2e855e9661899b7252", + disconnect=False, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + global_warp_override = await response.parse() + assert_matches_type(Optional[GlobalWARPOverrideCreateResponse], global_warp_override, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_create(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.zero_trust.devices.resilience.global_warp_override.with_raw_response.create( + account_id="", + disconnect=False, + ) + + @parametrize + async def test_method_get(self, async_client: AsyncCloudflare) -> None: + global_warp_override = await async_client.zero_trust.devices.resilience.global_warp_override.get( + account_id="699d98642c564d2e855e9661899b7252", + ) + assert_matches_type(Optional[GlobalWARPOverrideGetResponse], global_warp_override, path=["response"]) + + @parametrize + async def test_raw_response_get(self, async_client: AsyncCloudflare) -> None: + response = await async_client.zero_trust.devices.resilience.global_warp_override.with_raw_response.get( + account_id="699d98642c564d2e855e9661899b7252", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + global_warp_override = await response.parse() + assert_matches_type(Optional[GlobalWARPOverrideGetResponse], global_warp_override, path=["response"]) + + @parametrize + async def test_streaming_response_get(self, async_client: AsyncCloudflare) -> None: + async with async_client.zero_trust.devices.resilience.global_warp_override.with_streaming_response.get( + account_id="699d98642c564d2e855e9661899b7252", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + global_warp_override = await response.parse() + assert_matches_type(Optional[GlobalWARPOverrideGetResponse], global_warp_override, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_get(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.zero_trust.devices.resilience.global_warp_override.with_raw_response.get( + account_id="", + ) From 1daa8521adc88367e2eb028f7126aee31ef85f3b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:05 -0400 Subject: [PATCH 145/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 639993c5cb3..3e12fbd0229 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-0f85eda50790c0da1ccfce8ce0b48426d412c64626dfbd7e7e6056e91cc34439.yml -openapi_spec_hash: ff9db42dee98a21be0523ee649d3ff47 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-61d3c7ac1d6290250ccd8a7318a2e64f11a1264e1b4acea8162576617392375d.yml +openapi_spec_hash: 7fc5d026c1ed7e30217cb82b938df917 config_hash: f19070938c38d2589d482763642f37a1 From a589f62594aa3cb0cfb264336ad2398eefb93981 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:05 -0400 Subject: [PATCH 146/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e12fbd0229..03d4239dd8f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-61d3c7ac1d6290250ccd8a7318a2e64f11a1264e1b4acea8162576617392375d.yml -openapi_spec_hash: 7fc5d026c1ed7e30217cb82b938df917 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-70cfaadce4f7767b39d6de852df4a09d28da93f9c21509419749b4e7274ba3c4.yml +openapi_spec_hash: c647ea2f35b3a6eb4bf9d7f8f8d32c69 config_hash: f19070938c38d2589d482763642f37a1 From 3cbd92cc799e6159ae6974465adb4c8590ad81bc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:05 -0400 Subject: [PATCH 147/849] feat(api): api update (#2582) --- .stats.yml | 4 +- api.md | 28 +- .../custom_certificates.py | 30 +- .../resources/keyless_certificates.py | 16 +- src/cloudflare/resources/logpush/ownership.py | 13 +- .../resources/magic_transit/sites/acls.py | 15 +- .../origin_post_quantum_encryption.py | 42 +- src/cloudflare/resources/rulesets/rules.py | 297 ++--- src/cloudflare/resources/ssl/analyze.py | 16 +- .../resources/workers/scripts/content.py | 9 +- .../resources/workers/scripts/deployments.py | 5 +- .../resources/workers/scripts/schedules.py | 9 +- .../dispatch/namespaces/scripts/content.py | 9 +- .../gateway/configurations/configurations.py | 22 +- .../resources/zero_trust/gateway/logging.py | 8 +- .../identity_providers/identity_providers.py | 635 ++-------- src/cloudflare/resources/zones/holds.py | 49 +- .../addressing/address_map_delete_response.py | 5 +- .../address_maps/account_delete_response.py | 5 +- .../address_maps/account_update_response.py | 5 +- .../address_maps/ip_delete_response.py | 5 +- .../address_maps/ip_update_response.py | 5 +- .../address_maps/zone_delete_response.py | 5 +- .../address_maps/zone_update_response.py | 5 +- .../addressing/prefix_delete_response.py | 5 +- .../service_binding_delete_response.py | 5 +- .../regional_hostname_delete_response.py | 5 +- .../destinations/pagerduty_delete_response.py | 5 +- .../destinations/webhook_delete_response.py | 5 +- .../types/alerting/policy_delete_response.py | 5 +- src/cloudflare/types/api_gateway/message.py | 4 +- .../types/brand_protection/__init__.py | 3 - src/cloudflare/types/brand_protection/info.py | 22 +- .../types/brand_protection/rule_match.py | 21 - .../types/brand_protection/scan_status.py | 21 - .../types/brand_protection/submit.py | 29 +- .../url_info_model_results.py | 17 - src/cloudflare/types/cache/__init__.py | 3 - src/cloudflare/types/cache/cache_reserve.py | 4 +- .../types/cache/cache_reserve_clear.py | 7 - .../cache/cache_reserve_clear_response.py | 4 +- .../cache/cache_reserve_edit_response.py | 4 +- .../types/cache/cache_reserve_get_response.py | 4 +- .../cache/cache_reserve_status_response.py | 4 +- .../types/cache/regional_tiered_cache.py | 4 +- .../regional_tiered_cache_edit_response.py | 4 +- .../regional_tiered_cache_get_response.py | 4 +- .../types/cache/variant_delete_response.py | 4 +- .../types/cache/variant_edit_response.py | 4 +- .../types/cache/variant_get_response.py | 4 +- .../cloudforce_one/request_delete_response.py | 5 +- .../requests/asset_delete_response.py | 5 +- .../requests/message_delete_response.py | 5 +- .../requests/priority_delete_response.py | 5 +- .../custom_certificates/custom_certificate.py | 9 +- .../custom_certificate_create_params.py | 9 +- .../custom_certificate_edit_params.py | 9 +- .../types/custom_hostnames/__init__.py | 3 - .../types/custom_hostnames/bundle_method.py | 7 - .../certificate_update_response.py | 20 +- .../custom_hostname_create_params.py | 20 +- .../custom_hostname_create_response.py | 20 +- .../custom_hostname_edit_params.py | 20 +- .../custom_hostname_edit_response.py | 20 +- .../custom_hostname_get_response.py | 20 +- .../custom_hostname_list_response.py | 20 +- .../types/custom_hostnames/dcv_method.py | 7 - .../domain_validation_type.py | 7 - src/cloudflare/types/dns/__init__.py | 2 - src/cloudflare/types/dns/analytics/report.py | 15 +- .../types/dns/analytics/reports/by_time.py | 6 +- .../types/dns/dns_analytics_nominal_metric.py | 8 - .../types/dns/dns_analytics_query.py | 38 - .../types/dns/zone_transfers/__init__.py | 1 - .../types/dns/zone_transfers/incoming.py | 32 +- .../dns/zone_transfers/outgoing/outgoing.py | 26 +- .../dns/zone_transfers/outgoing_status.py | 8 - .../types/email_routing/dns_get_response.py | 9 +- .../firewall/waf/package_get_response.py | 5 +- .../types/firewall/waf/packages/__init__.py | 1 - .../waf/packages/rule_edit_response.py | 10 +- .../waf/packages/rule_list_response.py | 10 +- .../firewall/waf/packages/waf_rule_group.py | 15 - .../issue_dismiss_response.py | 5 +- .../miscategorization_create_response.py | 5 +- .../keyless_certificate_create_params.py | 9 +- src/cloudflare/types/logpush/__init__.py | 1 - .../types/logpush/ownership_validation.py | 11 - .../types/magic_transit/__init__.py | 2 - .../gre_tunnel_bulk_update_response.py | 8 +- .../gre_tunnel_create_response.py | 8 +- .../gre_tunnel_delete_response.py | 8 +- .../magic_transit/gre_tunnel_get_response.py | 8 +- .../magic_transit/gre_tunnel_list_response.py | 8 +- .../magic_transit/gre_tunnel_update_params.py | 8 +- .../gre_tunnel_update_response.py | 8 +- .../types/magic_transit/health_check.py | 8 +- .../types/magic_transit/health_check_param.py | 9 +- .../types/magic_transit/health_check_rate.py | 7 - .../types/magic_transit/health_check_type.py | 7 - .../ipsec_tunnel_bulk_update_response.py | 8 +- .../ipsec_tunnel_create_params.py | 8 +- .../ipsec_tunnel_create_response.py | 8 +- .../ipsec_tunnel_delete_response.py | 8 +- .../ipsec_tunnel_get_response.py | 8 +- .../ipsec_tunnel_list_response.py | 8 +- .../ipsec_tunnel_update_params.py | 8 +- .../ipsec_tunnel_update_response.py | 8 +- .../types/magic_transit/sites/__init__.py | 1 - .../types/magic_transit/sites/acl.py | 3 +- .../magic_transit/sites/acl_create_params.py | 5 +- .../magic_transit/sites/acl_edit_params.py | 5 +- .../magic_transit/sites/acl_update_params.py | 5 +- .../magic_transit/sites/allowed_protocol.py | 7 - .../__init__.py | 6 - ...in_post_quantum_encryption_get_response.py | 23 - ...post_quantum_encryption_update_response.py | 23 - .../types/queues/consumer_delete_response.py | 3 +- .../types/queues/queue_delete_response.py | 3 +- src/cloudflare/types/r2/buckets/__init__.py | 1 - src/cloudflare/types/r2/buckets/provider.py | 7 - src/cloudflare/types/r2/buckets/sippy.py | 3 +- .../types/r2/buckets/sippy_update_params.py | 5 +- src/cloudflare/types/radar/__init__.py | 2 - .../ai/bots/summary_user_agent_response.py | 31 +- .../ai/inference/summary_model_response.py | 31 +- .../ai/inference/summary_task_response.py | 31 +- .../summary_model_response.py | 15 +- .../summary_task_response.py | 15 +- .../timeseries_group_user_agent_response.py | 15 +- .../types/radar/annotation_list_response.py | 25 +- .../radar/annotations/outage_get_response.py | 25 +- .../annotations/outage_locations_response.py | 14 +- .../radar/as112/summary_dnssec_response.py | 38 +- .../radar/as112/summary_edns_response.py | 38 +- .../as112/summary_ip_version_response.py | 46 +- .../radar/as112/summary_protocol_response.py | 38 +- .../as112/summary_query_type_response.py | 31 +- .../as112/summary_response_codes_response.py | 37 +- .../timeseries_group_query_type_response.py | 15 +- ...imeseries_group_response_codes_response.py | 15 +- .../types/radar/as112/top_dnssec_response.py | 41 +- .../types/radar/as112/top_edns_response.py | 41 +- .../radar/as112/top_ip_version_response.py | 48 +- .../radar/as112/top_locations_response.py | 48 +- .../types/radar/as112_timeseries_response.py | 45 +- .../layer3/summary_bitrate_response.py | 38 +- .../layer3/summary_duration_response.py | 38 +- .../layer3/summary_industry_response.py | 31 +- .../layer3/summary_ip_version_response.py | 46 +- .../layer3/summary_protocol_response.py | 38 +- .../attacks/layer3/summary_vector_response.py | 31 +- .../layer3/summary_vertical_response.py | 31 +- .../timeseries_group_industry_response.py | 15 +- .../timeseries_group_ip_version_response.py | 15 +- .../timeseries_group_vector_response.py | 15 +- .../timeseries_group_vertical_response.py | 15 +- .../layer3/top/location_origin_response.py | 38 +- .../layer3/top/location_target_response.py | 38 +- .../attacks/layer3/top_attacks_response.py | 31 +- .../attacks/layer3/top_industry_response.py | 31 +- .../attacks/layer3/top_vertical_response.py | 31 +- .../attacks/layer3_timeseries_response.py | 12 +- .../layer7/summary_http_method_response.py | 31 +- .../layer7/summary_http_version_response.py | 38 +- .../layer7/summary_industry_response.py | 31 +- .../layer7/summary_ip_version_response.py | 46 +- .../layer7/summary_managed_rules_response.py | 31 +- .../summary_mitigation_product_response.py | 37 +- .../layer7/summary_vertical_response.py | 31 +- .../timeseries_group_http_method_response.py | 15 +- .../timeseries_group_industry_response.py | 15 +- .../timeseries_group_ip_version_response.py | 15 +- ...timeseries_group_managed_rules_response.py | 15 +- ...eries_group_mitigation_product_response.py | 15 +- .../timeseries_group_vertical_response.py | 15 +- .../attacks/layer7/top/ase_origin_response.py | 31 +- .../layer7/top/location_origin_response.py | 38 +- .../layer7/top/location_target_response.py | 38 +- .../attacks/layer7/top_attacks_response.py | 31 +- .../attacks/layer7/top_industry_response.py | 31 +- .../attacks/layer7/top_vertical_response.py | 31 +- .../attacks/layer7_timeseries_response.py | 45 +- .../types/radar/bgp/route_moas_response.py | 12 +- .../types/radar/bgp/route_pfx2as_response.py | 12 +- .../types/radar/bgp/route_stats_response.py | 12 +- .../types/radar/bgp/top/ase_get_response.py | 13 +- .../radar/bgp/top/ase_prefixes_response.py | 12 +- .../types/radar/bgp/top_prefixes_response.py | 13 +- .../types/radar/bgp_timeseries_response.py | 45 +- .../radar/dns/summary_cache_hit_response.py | 38 +- .../dns/summary_dnssec_aware_response.py | 38 +- .../radar/dns/summary_dnssec_e2e_response.py | 38 +- .../radar/dns/summary_dnssec_response.py | 38 +- .../radar/dns/summary_ip_version_response.py | 46 +- .../dns/summary_matching_answer_response.py | 38 +- .../radar/dns/summary_protocol_response.py | 38 +- .../radar/dns/summary_query_type_response.py | 31 +- .../dns/summary_response_code_response.py | 31 +- .../dns/summary_response_ttl_response.py | 38 +- .../timeseries_group_query_type_response.py | 15 +- ...timeseries_group_response_code_response.py | 15 +- .../types/radar/dns/top_ases_response.py | 41 +- .../types/radar/dns/top_locations_response.py | 48 +- .../types/radar/dns_timeseries_response.py | 45 +- .../email/routing/summary_arc_response.py | 34 +- .../email/routing/summary_dkim_response.py | 34 +- .../email/routing/summary_dmarc_response.py | 34 +- .../routing/summary_encrypted_response.py | 38 +- .../routing/summary_ip_version_response.py | 46 +- .../email/routing/summary_spf_response.py | 34 +- .../routing/timeseries_group_arc_response.py | 3 +- .../routing/timeseries_group_dkim_response.py | 3 +- .../timeseries_group_dmarc_response.py | 3 +- .../routing/timeseries_group_spf_response.py | 3 +- .../email/security/summary_arc_response.py | 34 +- .../email/security/summary_dkim_response.py | 34 +- .../email/security/summary_dmarc_response.py | 34 +- .../security/summary_malicious_response.py | 38 +- .../email/security/summary_spam_response.py | 38 +- .../email/security/summary_spf_response.py | 34 +- .../email/security/summary_spoof_response.py | 38 +- .../summary_threat_category_response.py | 38 +- .../security/summary_tls_version_response.py | 38 +- .../security/timeseries_group_arc_response.py | 3 +- .../timeseries_group_dkim_response.py | 3 +- .../timeseries_group_dmarc_response.py | 3 +- .../security/timeseries_group_spf_response.py | 3 +- .../email/security/top/tld_get_response.py | 31 +- .../top/tlds/malicious_get_response.py | 38 +- .../security/top/tlds/spam_get_response.py | 31 +- .../security/top/tlds/spoof_get_response.py | 31 +- .../types/radar/entities/asn_rel_response.py | 12 +- .../types/radar/http/ase_get_response.py | 41 +- .../radar/http/ases/bot_class_get_response.py | 41 +- .../http/ases/browser_family_get_response.py | 48 +- .../http/ases/device_type_get_response.py | 48 +- .../http/ases/http_method_get_response.py | 48 +- .../http/ases/http_protocol_get_response.py | 48 +- .../http/ases/ip_version_get_response.py | 48 +- .../types/radar/http/ases/os_get_response.py | 41 +- .../http/ases/tls_version_get_response.py | 48 +- .../types/radar/http/location_get_response.py | 41 +- .../http/locations/bot_class_get_response.py | 41 +- .../locations/browser_family_get_response.py | 48 +- .../locations/device_type_get_response.py | 48 +- .../locations/http_method_get_response.py | 48 +- .../locations/http_protocol_get_response.py | 48 +- .../http/locations/ip_version_get_response.py | 48 +- .../radar/http/locations/os_get_response.py | 41 +- .../locations/tls_version_get_response.py | 48 +- .../radar/http/summary_bot_class_response.py | 38 +- .../http/summary_device_type_response.py | 38 +- .../http/summary_http_protocol_response.py | 38 +- .../http/summary_http_version_response.py | 38 +- .../radar/http/summary_ip_version_response.py | 46 +- .../types/radar/http/summary_os_response.py | 38 +- .../http/summary_post_quantum_response.py | 38 +- .../http/summary_tls_version_response.py | 38 +- ...imeseries_group_browser_family_response.py | 15 +- .../http/timeseries_group_browser_response.py | 15 +- .../timeseries_group_ip_version_response.py | 15 +- .../http/timeseries_group_os_response.py | 15 +- .../radar/http/top_browser_family_response.py | 38 +- .../types/radar/http/top_browser_response.py | 31 +- .../types/radar/http_timeseries_response.py | 45 +- .../summary_bot_class_response.py | 38 +- .../summary_compromised_response.py | 38 +- .../types/radar/netflow_summary_response.py | 38 +- .../radar/netflow_timeseries_response.py | 45 +- .../radar/quality/iqi_summary_response.py | 38 +- .../radar/quality/speed/top_ases_response.py | 31 +- .../quality/speed/top_locations_response.py | 38 +- .../radar/quality/speed_summary_response.py | 38 +- .../types/radar/radar_email_series.py | 17 - .../types/radar/radar_email_summary.py | 16 - .../radar/ranking/domain_get_response.py | 13 +- ...rnet_service_timeseries_groups_response.py | 13 +- .../ranking_timeseries_groups_response.py | 13 +- .../top/user_agent_directive_response.py | 39 +- .../top_domain_categories_response.py | 39 +- .../tcp_resets_timeout_summary_response.py | 38 +- ...sets_timeout_timeseries_groups_response.py | 37 +- .../location_get_response.py | 12 +- .../radar/traffic_anomaly_get_response.py | 24 +- .../radar/verified_bots/top_bots_response.py | 31 +- .../verified_bots/top_categories_response.py | 38 +- src/cloudflare/types/rules/lists/__init__.py | 2 - .../lists/bulk_operation_get_response.py | 4 +- .../types/rules/lists/list_cursor.py | 13 - .../types/rules/lists/operation_status.py | 7 - src/cloudflare/types/rulesets/__init__.py | 2 - src/cloudflare/types/rulesets/block_rule.py | 4 +- .../types/rulesets/block_rule_param.py | 5 +- .../types/rulesets/compress_response_rule.py | 4 +- .../rulesets/compress_response_rule_param.py | 5 +- .../types/rulesets/ddos_dynamic_rule.py | 4 +- .../types/rulesets/ddos_dynamic_rule_param.py | 5 +- src/cloudflare/types/rulesets/execute_rule.py | 4 +- .../types/rulesets/execute_rule_param.py | 5 +- .../rulesets/force_connection_close_rule.py | 4 +- .../force_connection_close_rule_param.py | 5 +- .../types/rulesets/log_custom_field_rule.py | 4 +- .../rulesets/log_custom_field_rule_param.py | 5 +- src/cloudflare/types/rulesets/log_rule.py | 4 +- .../types/rulesets/log_rule_param.py | 5 +- src/cloudflare/types/rulesets/logging.py | 11 - .../types/rulesets/logging_param.py | 12 - .../types/rulesets/managed_challenge_rule.py | 4 +- .../rulesets/managed_challenge_rule_param.py | 5 +- .../types/rulesets/phase_get_response.py | 7 +- .../types/rulesets/phase_update_params.py | 7 +- .../types/rulesets/phase_update_response.py | 7 +- .../rulesets/phases/version_get_response.py | 7 +- .../types/rulesets/redirect_rule.py | 4 +- .../types/rulesets/redirect_rule_param.py | 5 +- src/cloudflare/types/rulesets/rewrite_rule.py | 4 +- .../types/rulesets/rewrite_rule_param.py | 4 +- src/cloudflare/types/rulesets/route_rule.py | 4 +- .../types/rulesets/route_rule_param.py | 5 +- .../types/rulesets/rule_create_params.py | 55 +- .../types/rulesets/rule_create_response.py | 7 +- .../types/rulesets/rule_delete_response.py | 7 +- .../types/rulesets/rule_edit_params.py | 55 +- .../types/rulesets/rule_edit_response.py | 7 +- .../types/rulesets/ruleset_create_params.py | 7 +- .../types/rulesets/ruleset_create_response.py | 7 +- .../types/rulesets/ruleset_get_response.py | 7 +- .../types/rulesets/ruleset_update_params.py | 7 +- .../types/rulesets/ruleset_update_response.py | 7 +- src/cloudflare/types/rulesets/score_rule.py | 4 +- .../types/rulesets/score_rule_param.py | 5 +- .../types/rulesets/serve_error_rule.py | 4 +- .../types/rulesets/serve_error_rule_param.py | 5 +- .../types/rulesets/set_cache_settings_rule.py | 4 +- .../rulesets/set_cache_settings_rule_param.py | 5 +- .../types/rulesets/set_config_rule.py | 4 +- .../types/rulesets/set_config_rule_param.py | 5 +- src/cloudflare/types/rulesets/skip_rule.py | 4 +- .../types/rulesets/skip_rule_param.py | 4 +- .../types/rulesets/version_get_response.py | 7 +- .../insight_dismiss_response.py | 5 +- .../security_txt_delete_response.py | 5 +- .../security_txt_update_response.py | 5 +- src/cloudflare/types/shared/identifier.py | 9 +- .../types/shared/load_balancer_preview.py | 11 +- src/cloudflare/types/shared/response_info.py | 9 +- src/cloudflare/types/shared/result.py | 31 +- .../types/snippets/rule_delete_response.py | 5 +- .../types/snippets/snippet_delete_response.py | 5 +- .../types/ssl/analyze_create_params.py | 10 +- src/cloudflare/types/workers/__init__.py | 1 - .../types/workers/route_create_response.py | 5 +- .../types/workers/route_delete_response.py | 5 +- .../types/workers/scripts/__init__.py | 4 - .../workers/scripts/content_update_params.py | 4 +- .../types/workers/scripts/deployment.py | 14 - .../scripts/deployment_create_params.py | 4 +- .../scripts/deployment_create_response.py | 3 +- .../scripts/deployment_get_response.py | 3 +- .../types/workers/scripts/deployment_param.py | 14 - .../types/workers/scripts/schedule.py | 15 - .../workers/scripts/schedule_get_response.py | 3 +- .../types/workers/scripts/schedule_param.py | 11 - .../workers/scripts/schedule_update_params.py | 4 +- .../scripts/schedule_update_response.py | 3 +- .../workers/scripts/tail_delete_response.py | 5 +- .../types/workers/worker_metadata_param.py | 22 - .../scripts/content_update_params.py | 4 +- src/cloudflare/types/zaraz/__init__.py | 4 - .../types/zaraz/button_text_translation.py | 18 - .../zaraz/button_text_translation_param.py | 19 - .../types/zaraz/config_update_params.py | 12 +- src/cloudflare/types/zaraz/configuration.py | 12 +- src/cloudflare/types/zaraz/neo_event.py | 23 - src/cloudflare/types/zaraz/neo_event_param.py | 24 - src/cloudflare/types/zero_trust/__init__.py | 4 - .../types/zero_trust/access/__init__.py | 1 - .../access/applications/__init__.py | 1 - .../applications/user_policy_check_geo.py | 11 - .../user_policy_check_list_response.py | 3 +- .../access/saas_app_name_id_format.py | 7 - .../types/zero_trust/access/saml_saas_app.py | 4 +- .../zero_trust/access/saml_saas_app_param.py | 5 +- .../users/active_session_get_response.py | 3 +- .../types/zero_trust/access/users/identity.py | 3 +- src/cloudflare/types/zero_trust/azure_ad.py | 15 +- .../types/zero_trust/azure_ad_param.py | 16 +- .../zero_trust/devices/crowdstrike_input.py | 3 +- .../devices/crowdstrike_input_param.py | 3 +- .../types/zero_trust/devices/device_input.py | 12 +- .../zero_trust/devices/device_input_param.py | 12 +- .../types/zero_trust/devices/file_input.py | 4 +- .../zero_trust/devices/file_input_param.py | 5 +- .../zero_trust/devices/os_version_input.py | 3 +- .../devices/os_version_input_param.py | 3 +- .../zero_trust/devices/sentinelone_input.py | 4 +- .../devices/sentinelone_input_param.py | 5 +- .../devices/sentinelone_s2s_input.py | 3 +- .../devices/sentinelone_s2s_input_param.py | 3 +- .../types/zero_trust/dex/http_details.py | 3 +- .../types/zero_trust/dex/tests/tests.py | 3 +- .../types/zero_trust/dex/traceroute.py | 3 +- .../zero_trust/digital_experience_monitor.py | 15 - .../types/zero_trust/gateway/__init__.py | 23 - .../gateway/activity_log_settings.py | 12 - .../gateway/activity_log_settings_param.py | 12 - .../zero_trust/gateway/anti_virus_settings.py | 25 - .../gateway/anti_virus_settings_param.py | 26 - .../zero_trust/gateway/block_page_settings.py | 60 - .../gateway/block_page_settings_param.py | 59 - .../gateway/body_scanning_settings.py | 12 - .../gateway/body_scanning_settings_param.py | 12 - .../gateway/browser_isolation_settings.py | 15 - .../browser_isolation_settings_param.py | 15 - .../gateway/configuration_edit_params.py | 5 +- .../gateway/configuration_edit_response.py | 4 +- .../gateway/configuration_get_response.py | 4 +- .../gateway/configuration_update_params.py | 5 +- .../gateway/configuration_update_response.py | 4 +- .../custom_certificate_settings_param.py | 15 - .../gateway/extended_email_matching.py | 15 - .../gateway/extended_email_matching_param.py | 15 - .../types/zero_trust/gateway/fips_settings.py | 12 - .../zero_trust/gateway/fips_settings_param.py | 12 - .../gateway/gateway_configuration_settings.py | 79 -- .../gateway_configuration_settings_param.py | 79 -- .../zero_trust/gateway/logging_setting.py | 16 +- .../gateway/logging_update_params.py | 16 +- .../gateway/notification_settings.py | 21 - .../gateway/notification_settings_param.py | 21 - .../zero_trust/gateway/protocol_detection.py | 12 - .../gateway/protocol_detection_param.py | 12 - .../types/zero_trust/gateway/tls_settings.py | 12 - .../zero_trust/gateway/tls_settings_param.py | 12 - .../types/zero_trust/identity_provider.py | 171 +-- .../identity_provider_create_params.py | 184 +-- .../identity_provider_list_response.py | 158 +-- .../zero_trust/identity_provider_param.py | 171 +-- .../identity_provider_scim_config.py | 47 - .../identity_provider_scim_config_param.py | 36 - .../zero_trust/identity_provider_type.py | 22 - .../identity_provider_update_params.py | 184 +-- src/cloudflare/types/zones/__init__.py | 1 - .../zones/custom_nameserver_get_response.py | 5 +- src/cloudflare/types/zones/zone_hold.py | 15 - tests/api_resources/logpush/test_ownership.py | 21 +- .../magic_transit/sites/test_acls.py | 12 +- .../magic_transit/test_cf_interconnects.py | 8 +- .../magic_transit/test_gre_tunnels.py | 8 +- .../magic_transit/test_ipsec_tunnels.py | 16 +- tests/api_resources/r2/buckets/test_sippy.py | 8 +- tests/api_resources/rulesets/test_phases.py | 4 +- tests/api_resources/rulesets/test_rules.py | 144 +-- tests/api_resources/ssl/test_analyze.py | 4 +- .../api_resources/test_custom_certificates.py | 8 +- tests/api_resources/test_custom_hostnames.py | 24 +- .../test_keyless_certificates.py | 4 +- .../test_origin_post_quantum_encryption.py | 54 +- tests/api_resources/test_rulesets.py | 8 +- .../workers/scripts/test_content.py | 10 +- .../workers/scripts/test_deployments.py | 9 +- .../namespaces/scripts/test_content.py | 10 +- tests/api_resources/zaraz/test_config.py | 48 +- .../zero_trust/access/test_applications.py | 8 +- .../zero_trust/devices/test_posture.py | 8 +- .../zero_trust/gateway/test_configurations.py | 184 +-- .../zero_trust/gateway/test_logging.py | 12 +- .../zero_trust/test_identity_providers.py | 1120 +++++++---------- tests/api_resources/zones/test_holds.py | 61 +- 470 files changed, 1857 insertions(+), 9649 deletions(-) delete mode 100644 src/cloudflare/types/brand_protection/rule_match.py delete mode 100644 src/cloudflare/types/brand_protection/scan_status.py delete mode 100644 src/cloudflare/types/brand_protection/url_info_model_results.py delete mode 100644 src/cloudflare/types/cache/cache_reserve_clear.py delete mode 100644 src/cloudflare/types/custom_hostnames/bundle_method.py delete mode 100644 src/cloudflare/types/custom_hostnames/dcv_method.py delete mode 100644 src/cloudflare/types/custom_hostnames/domain_validation_type.py delete mode 100644 src/cloudflare/types/dns/dns_analytics_nominal_metric.py delete mode 100644 src/cloudflare/types/dns/dns_analytics_query.py delete mode 100644 src/cloudflare/types/dns/zone_transfers/outgoing_status.py delete mode 100644 src/cloudflare/types/firewall/waf/packages/waf_rule_group.py delete mode 100644 src/cloudflare/types/logpush/ownership_validation.py delete mode 100644 src/cloudflare/types/magic_transit/health_check_rate.py delete mode 100644 src/cloudflare/types/magic_transit/health_check_type.py delete mode 100644 src/cloudflare/types/magic_transit/sites/allowed_protocol.py delete mode 100644 src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_get_response.py delete mode 100644 src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_update_response.py delete mode 100644 src/cloudflare/types/r2/buckets/provider.py delete mode 100644 src/cloudflare/types/radar/radar_email_series.py delete mode 100644 src/cloudflare/types/radar/radar_email_summary.py delete mode 100644 src/cloudflare/types/rules/lists/list_cursor.py delete mode 100644 src/cloudflare/types/rules/lists/operation_status.py delete mode 100644 src/cloudflare/types/rulesets/logging.py delete mode 100644 src/cloudflare/types/rulesets/logging_param.py delete mode 100644 src/cloudflare/types/workers/scripts/deployment.py delete mode 100644 src/cloudflare/types/workers/scripts/deployment_param.py delete mode 100644 src/cloudflare/types/workers/scripts/schedule.py delete mode 100644 src/cloudflare/types/workers/scripts/schedule_param.py delete mode 100644 src/cloudflare/types/workers/worker_metadata_param.py delete mode 100644 src/cloudflare/types/zaraz/button_text_translation.py delete mode 100644 src/cloudflare/types/zaraz/button_text_translation_param.py delete mode 100644 src/cloudflare/types/zaraz/neo_event.py delete mode 100644 src/cloudflare/types/zaraz/neo_event_param.py delete mode 100644 src/cloudflare/types/zero_trust/access/applications/user_policy_check_geo.py delete mode 100644 src/cloudflare/types/zero_trust/access/saas_app_name_id_format.py delete mode 100644 src/cloudflare/types/zero_trust/digital_experience_monitor.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/activity_log_settings.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/activity_log_settings_param.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/anti_virus_settings.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/anti_virus_settings_param.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/block_page_settings.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/block_page_settings_param.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/body_scanning_settings.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/body_scanning_settings_param.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/browser_isolation_settings.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/browser_isolation_settings_param.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/custom_certificate_settings_param.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/extended_email_matching.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/extended_email_matching_param.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/fips_settings.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/fips_settings_param.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings_param.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/notification_settings.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/notification_settings_param.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/protocol_detection.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/protocol_detection_param.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/tls_settings.py delete mode 100644 src/cloudflare/types/zero_trust/gateway/tls_settings_param.py delete mode 100644 src/cloudflare/types/zero_trust/identity_provider_scim_config.py delete mode 100644 src/cloudflare/types/zero_trust/identity_provider_scim_config_param.py delete mode 100644 src/cloudflare/types/zero_trust/identity_provider_type.py delete mode 100644 src/cloudflare/types/zones/zone_hold.py diff --git a/.stats.yml b/.stats.yml index 03d4239dd8f..4320e5905bc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-70cfaadce4f7767b39d6de852df4a09d28da93f9c21509419749b4e7274ba3c4.yml -openapi_spec_hash: c647ea2f35b3a6eb4bf9d7f8f8d32c69 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d60e8882189e2204ae91aeeadf9fe7a298f602085585332811afaf1786f86917.yml +openapi_spec_hash: 19ac633268a644b849d24b4797bb0c29 config_hash: f19070938c38d2589d482763642f37a1 diff --git a/api.md b/api.md index d3f325677c8..db6b5f53b48 100644 --- a/api.md +++ b/api.md @@ -421,15 +421,21 @@ Methods: Types: ```python -from cloudflare.types.zones import ZoneHold +from cloudflare.types.zones import ( + ZoneHold, + HoldCreateResponse, + HoldDeleteResponse, + HoldEditResponse, + HoldGetResponse, +) ``` Methods: -- client.zones.holds.create(\*, zone_id, \*\*params) -> ZoneHold -- client.zones.holds.delete(\*, zone_id, \*\*params) -> ZoneHold -- client.zones.holds.edit(\*, zone_id, \*\*params) -> ZoneHold -- client.zones.holds.get(\*, zone_id) -> ZoneHold +- client.zones.holds.create(\*, zone_id, \*\*params) -> object +- client.zones.holds.delete(\*, zone_id, \*\*params) -> object +- client.zones.holds.edit(\*, zone_id, \*\*params) -> object +- client.zones.holds.get(\*, zone_id) -> object ## Subscriptions @@ -1920,13 +1926,17 @@ Methods: Types: ```python -from cloudflare.types.logpush import OwnershipValidation, OwnershipCreateResponse +from cloudflare.types.logpush import ( + OwnershipValidation, + OwnershipCreateResponse, + OwnershipValidateResponse, +) ``` Methods: - client.logpush.ownership.create(\*, account_id, zone_id, \*\*params) -> Optional[OwnershipCreateResponse] -- client.logpush.ownership.validate(\*, account_id, zone_id, \*\*params) -> Optional[OwnershipValidation] +- client.logpush.ownership.validate(\*, account_id, zone_id, \*\*params) -> object ## Validate @@ -8333,8 +8343,8 @@ from cloudflare.types.origin_post_quantum_encryption import ( Methods: -- client.origin_post_quantum_encryption.update(\*, zone_id, \*\*params) -> Optional[OriginPostQuantumEncryptionUpdateResponse] -- client.origin_post_quantum_encryption.get(\*, zone_id) -> Optional[OriginPostQuantumEncryptionGetResponse] +- client.origin_post_quantum_encryption.update(\*, zone_id, \*\*params) -> object +- client.origin_post_quantum_encryption.get(\*, zone_id) -> object # Zaraz diff --git a/src/cloudflare/resources/custom_certificates/custom_certificates.py b/src/cloudflare/resources/custom_certificates/custom_certificates.py index 46a10ed0a04..05bf8f39e4a 100644 --- a/src/cloudflare/resources/custom_certificates/custom_certificates.py +++ b/src/cloudflare/resources/custom_certificates/custom_certificates.py @@ -31,13 +31,11 @@ from ..._wrappers import ResultWrapper from ...pagination import SyncV4PagePaginationArray, AsyncV4PagePaginationArray from ..._base_client import AsyncPaginator, make_request_options -from ...types.custom_hostnames import BundleMethod from ...types.custom_certificates import ( custom_certificate_edit_params, custom_certificate_list_params, custom_certificate_create_params, ) -from ...types.custom_hostnames.bundle_method import BundleMethod from ...types.custom_certificates.custom_certificate import CustomCertificate from ...types.custom_certificates.geo_restrictions_param import GeoRestrictionsParam from ...types.custom_certificates.custom_certificate_delete_response import CustomCertificateDeleteResponse @@ -75,7 +73,7 @@ def create( zone_id: str, certificate: str, private_key: str, - bundle_method: BundleMethod | NotGiven = NOT_GIVEN, + bundle_method: object | NotGiven = NOT_GIVEN, geo_restrictions: GeoRestrictionsParam | NotGiven = NOT_GIVEN, policy: str | NotGiven = NOT_GIVEN, type: Literal["legacy_custom", "sni_custom"] | NotGiven = NOT_GIVEN, @@ -96,11 +94,6 @@ def create( private_key: The zone's private key. - bundle_method: 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. - geo_restrictions: 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 @@ -271,7 +264,7 @@ def edit( custom_certificate_id: str, *, zone_id: str, - bundle_method: BundleMethod | NotGiven = NOT_GIVEN, + bundle_method: object | NotGiven = NOT_GIVEN, certificate: str | NotGiven = NOT_GIVEN, geo_restrictions: GeoRestrictionsParam | NotGiven = NOT_GIVEN, policy: str | NotGiven = NOT_GIVEN, @@ -294,11 +287,6 @@ def edit( custom_certificate_id: Identifier - bundle_method: 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. - certificate: The zone's SSL certificate or certificate and the intermediate(s). geo_restrictions: Specify the region where your private key can be held locally for optimal TLS @@ -434,7 +422,7 @@ async def create( zone_id: str, certificate: str, private_key: str, - bundle_method: BundleMethod | NotGiven = NOT_GIVEN, + bundle_method: object | NotGiven = NOT_GIVEN, geo_restrictions: GeoRestrictionsParam | NotGiven = NOT_GIVEN, policy: str | NotGiven = NOT_GIVEN, type: Literal["legacy_custom", "sni_custom"] | NotGiven = NOT_GIVEN, @@ -455,11 +443,6 @@ async def create( private_key: The zone's private key. - bundle_method: 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. - geo_restrictions: 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 @@ -630,7 +613,7 @@ async def edit( custom_certificate_id: str, *, zone_id: str, - bundle_method: BundleMethod | NotGiven = NOT_GIVEN, + bundle_method: object | NotGiven = NOT_GIVEN, certificate: str | NotGiven = NOT_GIVEN, geo_restrictions: GeoRestrictionsParam | NotGiven = NOT_GIVEN, policy: str | NotGiven = NOT_GIVEN, @@ -653,11 +636,6 @@ async def edit( custom_certificate_id: Identifier - bundle_method: 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. - certificate: The zone's SSL certificate or certificate and the intermediate(s). geo_restrictions: Specify the region where your private key can be held locally for optimal TLS diff --git a/src/cloudflare/resources/keyless_certificates.py b/src/cloudflare/resources/keyless_certificates.py index 898441ae15e..02e75e1fe23 100644 --- a/src/cloudflare/resources/keyless_certificates.py +++ b/src/cloudflare/resources/keyless_certificates.py @@ -22,9 +22,7 @@ from .._wrappers import ResultWrapper from ..pagination import SyncSinglePage, AsyncSinglePage from .._base_client import AsyncPaginator, make_request_options -from ..types.custom_hostnames import BundleMethod from ..types.keyless_certificates import keyless_certificate_edit_params, keyless_certificate_create_params -from ..types.custom_hostnames.bundle_method import BundleMethod from ..types.keyless_certificates.tunnel_param import TunnelParam from ..types.keyless_certificates.keyless_certificate import KeylessCertificate from ..types.keyless_certificates.keyless_certificate_delete_response import KeylessCertificateDeleteResponse @@ -59,7 +57,7 @@ def create( certificate: str, host: str, port: float, - bundle_method: BundleMethod | NotGiven = NOT_GIVEN, + bundle_method: object | NotGiven = NOT_GIVEN, name: str | NotGiven = NOT_GIVEN, tunnel: TunnelParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -82,11 +80,6 @@ def create( port: The keyless SSL port used to communicate between Cloudflare and the client's Keyless SSL server. - bundle_method: 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. - name: The keyless SSL name. tunnel: Configuration for using Keyless SSL through a Cloudflare Tunnel @@ -356,7 +349,7 @@ async def create( certificate: str, host: str, port: float, - bundle_method: BundleMethod | NotGiven = NOT_GIVEN, + bundle_method: object | NotGiven = NOT_GIVEN, name: str | NotGiven = NOT_GIVEN, tunnel: TunnelParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -379,11 +372,6 @@ async def create( port: The keyless SSL port used to communicate between Cloudflare and the client's Keyless SSL server. - bundle_method: 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. - name: The keyless SSL name. tunnel: Configuration for using Keyless SSL through a Cloudflare Tunnel diff --git a/src/cloudflare/resources/logpush/ownership.py b/src/cloudflare/resources/logpush/ownership.py index d1b236c4082..3f021569166 100644 --- a/src/cloudflare/resources/logpush/ownership.py +++ b/src/cloudflare/resources/logpush/ownership.py @@ -22,7 +22,6 @@ from ..._wrappers import ResultWrapper from ..._base_client import make_request_options from ...types.logpush import ownership_create_params, ownership_validate_params -from ...types.logpush.ownership_validation import OwnershipValidation from ...types.logpush.ownership_create_response import OwnershipCreateResponse __all__ = ["OwnershipResource", "AsyncOwnershipResource"] @@ -119,7 +118,7 @@ def validate( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[OwnershipValidation]: + ) -> object: """ Validates ownership challenge of the destination. @@ -168,9 +167,9 @@ def validate( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[Optional[OwnershipValidation]]._unwrapper, + post_parser=ResultWrapper[Optional[object]]._unwrapper, ), - cast_to=cast(Type[Optional[OwnershipValidation]], ResultWrapper[OwnershipValidation]), + cast_to=cast(Type[object], ResultWrapper[object]), ) @@ -267,7 +266,7 @@ async def validate( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[OwnershipValidation]: + ) -> object: """ Validates ownership challenge of the destination. @@ -316,9 +315,9 @@ async def validate( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[Optional[OwnershipValidation]]._unwrapper, + post_parser=ResultWrapper[Optional[object]]._unwrapper, ), - cast_to=cast(Type[Optional[OwnershipValidation]], ResultWrapper[OwnershipValidation]), + cast_to=cast(Type[object], ResultWrapper[object]), ) diff --git a/src/cloudflare/resources/magic_transit/sites/acls.py b/src/cloudflare/resources/magic_transit/sites/acls.py index fbb348cb83e..d38e38e4694 100644 --- a/src/cloudflare/resources/magic_transit/sites/acls.py +++ b/src/cloudflare/resources/magic_transit/sites/acls.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import List, Type, cast +from typing import Type, Iterable, cast import httpx @@ -24,7 +24,6 @@ from ...._base_client import AsyncPaginator, make_request_options from ....types.magic_transit.sites import acl_edit_params, acl_create_params, acl_update_params from ....types.magic_transit.sites.acl import ACL -from ....types.magic_transit.sites.allowed_protocol import AllowedProtocol from ....types.magic_transit.sites.acl_configuration_param import ACLConfigurationParam __all__ = ["ACLsResource", "AsyncACLsResource"] @@ -60,7 +59,7 @@ def create( name: str, description: str | NotGiven = NOT_GIVEN, forward_locally: bool | NotGiven = NOT_GIVEN, - protocols: List[AllowedProtocol] | NotGiven = NOT_GIVEN, + protocols: Iterable[object] | NotGiven = NOT_GIVEN, unidirectional: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -137,7 +136,7 @@ def update( lan_1: ACLConfigurationParam | NotGiven = NOT_GIVEN, lan_2: ACLConfigurationParam | NotGiven = NOT_GIVEN, name: str | NotGiven = NOT_GIVEN, - protocols: List[AllowedProtocol] | NotGiven = NOT_GIVEN, + protocols: Iterable[object] | NotGiven = NOT_GIVEN, unidirectional: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -308,7 +307,7 @@ def edit( lan_1: ACLConfigurationParam | NotGiven = NOT_GIVEN, lan_2: ACLConfigurationParam | NotGiven = NOT_GIVEN, name: str | NotGiven = NOT_GIVEN, - protocols: List[AllowedProtocol] | NotGiven = NOT_GIVEN, + protocols: Iterable[object] | NotGiven = NOT_GIVEN, unidirectional: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -458,7 +457,7 @@ async def create( name: str, description: str | NotGiven = NOT_GIVEN, forward_locally: bool | NotGiven = NOT_GIVEN, - protocols: List[AllowedProtocol] | NotGiven = NOT_GIVEN, + protocols: Iterable[object] | NotGiven = NOT_GIVEN, unidirectional: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -535,7 +534,7 @@ async def update( lan_1: ACLConfigurationParam | NotGiven = NOT_GIVEN, lan_2: ACLConfigurationParam | NotGiven = NOT_GIVEN, name: str | NotGiven = NOT_GIVEN, - protocols: List[AllowedProtocol] | NotGiven = NOT_GIVEN, + protocols: Iterable[object] | NotGiven = NOT_GIVEN, unidirectional: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -706,7 +705,7 @@ async def edit( lan_1: ACLConfigurationParam | NotGiven = NOT_GIVEN, lan_2: ACLConfigurationParam | NotGiven = NOT_GIVEN, name: str | NotGiven = NOT_GIVEN, - protocols: List[AllowedProtocol] | NotGiven = NOT_GIVEN, + protocols: Iterable[object] | NotGiven = NOT_GIVEN, unidirectional: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. diff --git a/src/cloudflare/resources/origin_post_quantum_encryption.py b/src/cloudflare/resources/origin_post_quantum_encryption.py index 829d0007ae3..8603308c956 100644 --- a/src/cloudflare/resources/origin_post_quantum_encryption.py +++ b/src/cloudflare/resources/origin_post_quantum_encryption.py @@ -23,12 +23,6 @@ from .._wrappers import ResultWrapper from .._base_client import make_request_options from ..types.origin_post_quantum_encryption import origin_post_quantum_encryption_update_params -from ..types.origin_post_quantum_encryption.origin_post_quantum_encryption_get_response import ( - OriginPostQuantumEncryptionGetResponse, -) -from ..types.origin_post_quantum_encryption.origin_post_quantum_encryption_update_response import ( - OriginPostQuantumEncryptionUpdateResponse, -) __all__ = ["OriginPostQuantumEncryptionResource", "AsyncOriginPostQuantumEncryptionResource"] @@ -64,7 +58,7 @@ def update( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[OriginPostQuantumEncryptionUpdateResponse]: + ) -> object: """ Instructs Cloudflare to use Post-Quantum (PQ) key agreement algorithms when connecting to your origin. Preferred instructs Cloudflare to opportunistically @@ -98,12 +92,9 @@ def update( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[Optional[OriginPostQuantumEncryptionUpdateResponse]]._unwrapper, - ), - cast_to=cast( - Type[Optional[OriginPostQuantumEncryptionUpdateResponse]], - ResultWrapper[OriginPostQuantumEncryptionUpdateResponse], + post_parser=ResultWrapper[Optional[object]]._unwrapper, ), + cast_to=cast(Type[object], ResultWrapper[object]), ) def get( @@ -116,7 +107,7 @@ def get( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[OriginPostQuantumEncryptionGetResponse]: + ) -> object: """ Instructs Cloudflare to use Post-Quantum (PQ) key agreement algorithms when connecting to your origin. Preferred instructs Cloudflare to opportunistically @@ -145,12 +136,9 @@ def get( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[Optional[OriginPostQuantumEncryptionGetResponse]]._unwrapper, - ), - cast_to=cast( - Type[Optional[OriginPostQuantumEncryptionGetResponse]], - ResultWrapper[OriginPostQuantumEncryptionGetResponse], + post_parser=ResultWrapper[Optional[object]]._unwrapper, ), + cast_to=cast(Type[object], ResultWrapper[object]), ) @@ -185,7 +173,7 @@ async def update( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[OriginPostQuantumEncryptionUpdateResponse]: + ) -> object: """ Instructs Cloudflare to use Post-Quantum (PQ) key agreement algorithms when connecting to your origin. Preferred instructs Cloudflare to opportunistically @@ -219,12 +207,9 @@ async def update( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[Optional[OriginPostQuantumEncryptionUpdateResponse]]._unwrapper, - ), - cast_to=cast( - Type[Optional[OriginPostQuantumEncryptionUpdateResponse]], - ResultWrapper[OriginPostQuantumEncryptionUpdateResponse], + post_parser=ResultWrapper[Optional[object]]._unwrapper, ), + cast_to=cast(Type[object], ResultWrapper[object]), ) async def get( @@ -237,7 +222,7 @@ async def get( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Optional[OriginPostQuantumEncryptionGetResponse]: + ) -> object: """ Instructs Cloudflare to use Post-Quantum (PQ) key agreement algorithms when connecting to your origin. Preferred instructs Cloudflare to opportunistically @@ -266,12 +251,9 @@ async def get( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[Optional[OriginPostQuantumEncryptionGetResponse]]._unwrapper, - ), - cast_to=cast( - Type[Optional[OriginPostQuantumEncryptionGetResponse]], - ResultWrapper[OriginPostQuantumEncryptionGetResponse], + post_parser=ResultWrapper[Optional[object]]._unwrapper, ), + cast_to=cast(Type[object], ResultWrapper[object]), ) diff --git a/src/cloudflare/resources/rulesets/rules.py b/src/cloudflare/resources/rulesets/rules.py index 39f7f0397c2..e963a4113c6 100644 --- a/src/cloudflare/resources/rulesets/rules.py +++ b/src/cloudflare/resources/rulesets/rules.py @@ -24,7 +24,6 @@ from ..._wrappers import ResultWrapper from ..._base_client import make_request_options from ...types.rulesets import rule_edit_params, rule_create_params -from ...types.rulesets.logging_param import LoggingParam from ...types.rulesets.rule_edit_response import RuleEditResponse from ...types.rulesets.rule_create_response import RuleCreateResponse from ...types.rulesets.rule_delete_response import RuleDeleteResponse @@ -66,7 +65,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -103,8 +102,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -135,7 +132,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.ChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -172,8 +169,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -204,7 +199,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.CompressionRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.CompressionRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.CompressionRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -241,8 +236,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -273,7 +266,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ExecuteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.ExecuteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ExecuteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -310,8 +303,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -343,7 +334,7 @@ def create( exposed_credential_check: rule_create_params.JavascriptChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.JavascriptChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.JavascriptChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -380,8 +371,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -412,7 +401,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.LogRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.LogRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.LogRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -449,8 +438,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -481,7 +468,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ManagedChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.ManagedChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ManagedChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -518,8 +505,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -550,7 +535,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.RedirectRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.RedirectRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.RedirectRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -587,8 +572,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -619,7 +602,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.RewriteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.RewriteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.RewriteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -656,8 +639,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -688,7 +669,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.OriginRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.OriginRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.OriginRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -725,8 +706,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -757,7 +736,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ScoreRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.ScoreRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ScoreRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -794,8 +773,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -826,7 +803,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ServeErrorRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.ServeErrorRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ServeErrorRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -863,8 +840,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -895,7 +870,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.SetConfigRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.SetConfigRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.SetConfigRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -932,8 +907,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -964,7 +937,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.SkipRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.SkipRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.SkipRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1001,8 +974,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1033,7 +1004,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.SetCacheSettingsRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.SetCacheSettingsRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.SetCacheSettingsRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1070,8 +1041,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1102,7 +1071,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.LogCustomFieldRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.LogCustomFieldRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.LogCustomFieldRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1139,8 +1108,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1171,7 +1138,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.DDoSDynamicRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.DDoSDynamicRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.DDoSDynamicRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1208,8 +1175,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1241,7 +1206,7 @@ def create( exposed_credential_check: rule_create_params.ForceConnectionCloseRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.ForceConnectionCloseRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ForceConnectionCloseRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1278,8 +1243,6 @@ def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1340,7 +1303,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1470,7 +1433,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1507,8 +1470,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1540,7 +1501,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.ChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1577,8 +1538,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1610,7 +1569,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.CompressionRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.CompressionRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.CompressionRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1647,8 +1606,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1680,7 +1637,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ExecuteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.ExecuteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ExecuteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1717,8 +1674,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1750,7 +1705,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.JavascriptChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.JavascriptChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.JavascriptChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1787,8 +1742,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1820,7 +1773,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.LogRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.LogRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.LogRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1857,8 +1810,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1890,7 +1841,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ManagedChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.ManagedChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ManagedChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1927,8 +1878,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1960,7 +1909,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.RedirectRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.RedirectRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.RedirectRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1997,8 +1946,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2030,7 +1977,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.RewriteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.RewriteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.RewriteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2067,8 +2014,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2100,7 +2045,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.OriginRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.OriginRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.OriginRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2137,8 +2082,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2170,7 +2113,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ScoreRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.ScoreRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ScoreRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2207,8 +2150,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2240,7 +2181,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ServeErrorRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.ServeErrorRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ServeErrorRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2277,8 +2218,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2310,7 +2249,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.SetConfigRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.SetConfigRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.SetConfigRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2347,8 +2286,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2380,7 +2317,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.SkipRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.SkipRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.SkipRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2417,8 +2354,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2450,7 +2385,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.SetCacheSettingsRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.SetCacheSettingsRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.SetCacheSettingsRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2487,8 +2422,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2520,7 +2453,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.LogCustomFieldRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.LogCustomFieldRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.LogCustomFieldRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2557,8 +2490,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2590,7 +2521,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.DDoSDynamicRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.DDoSDynamicRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.DDoSDynamicRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2627,8 +2558,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2661,7 +2590,7 @@ def edit( exposed_credential_check: rule_edit_params.ForceConnectionCloseRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.ForceConnectionCloseRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ForceConnectionCloseRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2698,8 +2627,6 @@ def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2762,7 +2689,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2852,7 +2779,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2889,8 +2816,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2921,7 +2846,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.ChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2958,8 +2883,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2990,7 +2913,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.CompressionRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.CompressionRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.CompressionRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3027,8 +2950,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3059,7 +2980,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ExecuteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.ExecuteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ExecuteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3096,8 +3017,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3129,7 +3048,7 @@ async def create( exposed_credential_check: rule_create_params.JavascriptChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.JavascriptChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.JavascriptChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3166,8 +3085,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3198,7 +3115,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.LogRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.LogRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.LogRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3235,8 +3152,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3267,7 +3182,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ManagedChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.ManagedChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ManagedChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3304,8 +3219,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3336,7 +3249,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.RedirectRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.RedirectRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.RedirectRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3373,8 +3286,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3405,7 +3316,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.RewriteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.RewriteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.RewriteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3442,8 +3353,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3474,7 +3383,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.OriginRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.OriginRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.OriginRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3511,8 +3420,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3543,7 +3450,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ScoreRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.ScoreRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ScoreRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3580,8 +3487,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3612,7 +3517,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ServeErrorRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.ServeErrorRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ServeErrorRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3649,8 +3554,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3681,7 +3584,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.SetConfigRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.SetConfigRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.SetConfigRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3718,8 +3621,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3750,7 +3651,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.SkipRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.SkipRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.SkipRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3787,8 +3688,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3819,7 +3718,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.SetCacheSettingsRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.SetCacheSettingsRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.SetCacheSettingsRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3856,8 +3755,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3888,7 +3785,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.LogCustomFieldRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.LogCustomFieldRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.LogCustomFieldRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3925,8 +3822,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3957,7 +3852,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.DDoSDynamicRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.DDoSDynamicRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.DDoSDynamicRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3994,8 +3889,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4027,7 +3920,7 @@ async def create( exposed_credential_check: rule_create_params.ForceConnectionCloseRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.ForceConnectionCloseRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ForceConnectionCloseRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4064,8 +3957,6 @@ async def create( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4126,7 +4017,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_create_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4256,7 +4147,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4293,8 +4184,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4326,7 +4215,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.ChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4363,8 +4252,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4396,7 +4283,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.CompressionRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.CompressionRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.CompressionRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4433,8 +4320,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4466,7 +4351,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ExecuteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.ExecuteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ExecuteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4503,8 +4388,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4536,7 +4419,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.JavascriptChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.JavascriptChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.JavascriptChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4573,8 +4456,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4606,7 +4487,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.LogRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.LogRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.LogRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4643,8 +4524,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4676,7 +4555,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ManagedChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.ManagedChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ManagedChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4713,8 +4592,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4746,7 +4623,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.RedirectRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.RedirectRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.RedirectRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4783,8 +4660,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4816,7 +4691,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.RewriteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.RewriteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.RewriteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4853,8 +4728,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4886,7 +4759,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.OriginRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.OriginRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.OriginRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4923,8 +4796,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4956,7 +4827,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ScoreRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.ScoreRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ScoreRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4993,8 +4864,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5026,7 +4895,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ServeErrorRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.ServeErrorRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ServeErrorRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5063,8 +4932,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5096,7 +4963,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.SetConfigRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.SetConfigRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.SetConfigRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5133,8 +5000,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5166,7 +5031,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.SkipRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.SkipRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.SkipRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5203,8 +5068,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5236,7 +5099,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.SetCacheSettingsRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.SetCacheSettingsRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.SetCacheSettingsRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5273,8 +5136,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5306,7 +5167,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.LogCustomFieldRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.LogCustomFieldRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.LogCustomFieldRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5343,8 +5204,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5376,7 +5235,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.DDoSDynamicRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.DDoSDynamicRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.DDoSDynamicRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5413,8 +5272,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5447,7 +5304,7 @@ async def edit( exposed_credential_check: rule_edit_params.ForceConnectionCloseRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.ForceConnectionCloseRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ForceConnectionCloseRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5484,8 +5341,6 @@ async def edit( expression: The expression defining which traffic will match the rule. - logging: An object configuring the rule's logging behavior. - position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5548,7 +5403,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: LoggingParam | NotGiven = NOT_GIVEN, + logging: object | NotGiven = NOT_GIVEN, position: rule_edit_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, diff --git a/src/cloudflare/resources/ssl/analyze.py b/src/cloudflare/resources/ssl/analyze.py index d5dc8263674..0e06c52578f 100644 --- a/src/cloudflare/resources/ssl/analyze.py +++ b/src/cloudflare/resources/ssl/analyze.py @@ -22,8 +22,6 @@ from ..._wrappers import ResultWrapper from ...types.ssl import analyze_create_params from ..._base_client import make_request_options -from ...types.custom_hostnames import BundleMethod -from ...types.custom_hostnames.bundle_method import BundleMethod __all__ = ["AnalyzeResource", "AsyncAnalyzeResource"] @@ -52,7 +50,7 @@ def create( self, *, zone_id: str, - bundle_method: BundleMethod | NotGiven = NOT_GIVEN, + bundle_method: object | NotGiven = NOT_GIVEN, certificate: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -68,11 +66,6 @@ def create( Args: zone_id: Identifier - bundle_method: 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. - certificate: The zone's SSL certificate or certificate and the intermediate(s). extra_headers: Send extra headers @@ -129,7 +122,7 @@ async def create( self, *, zone_id: str, - bundle_method: BundleMethod | NotGiven = NOT_GIVEN, + bundle_method: object | NotGiven = NOT_GIVEN, certificate: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -145,11 +138,6 @@ async def create( Args: zone_id: Identifier - bundle_method: 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. - certificate: The zone's SSL certificate or certificate and the intermediate(s). extra_headers: Send extra headers diff --git a/src/cloudflare/resources/workers/scripts/content.py b/src/cloudflare/resources/workers/scripts/content.py index 41fa26e276e..501d7846c04 100644 --- a/src/cloudflare/resources/workers/scripts/content.py +++ b/src/cloudflare/resources/workers/scripts/content.py @@ -32,7 +32,6 @@ from ...._base_client import make_request_options from ....types.workers.script import Script from ....types.workers.scripts import content_update_params -from ....types.workers.worker_metadata_param import WorkerMetadataParam __all__ = ["ContentResource", "AsyncContentResource"] @@ -62,7 +61,7 @@ def update( script_name: str, *, account_id: str, - metadata: WorkerMetadataParam, + metadata: object, cf_worker_body_part: str | NotGiven = NOT_GIVEN, cf_worker_main_module_part: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -80,8 +79,6 @@ def update( script_name: Name of the script, used in URLs and route configuration. - metadata: JSON encoded metadata about the uploaded parts and Worker configuration. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -187,7 +184,7 @@ async def update( script_name: str, *, account_id: str, - metadata: WorkerMetadataParam, + metadata: object, cf_worker_body_part: str | NotGiven = NOT_GIVEN, cf_worker_main_module_part: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -205,8 +202,6 @@ async def update( script_name: Name of the script, used in URLs and route configuration. - metadata: JSON encoded metadata about the uploaded parts and Worker configuration. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/cloudflare/resources/workers/scripts/deployments.py b/src/cloudflare/resources/workers/scripts/deployments.py index 8a16a470833..ed5b4a3ea45 100644 --- a/src/cloudflare/resources/workers/scripts/deployments.py +++ b/src/cloudflare/resources/workers/scripts/deployments.py @@ -23,7 +23,6 @@ from ...._wrappers import ResultWrapper from ...._base_client import make_request_options from ....types.workers.scripts import deployment_create_params -from ....types.workers.scripts.deployment_param import DeploymentParam from ....types.workers.scripts.deployment_get_response import DeploymentGetResponse from ....types.workers.scripts.deployment_create_response import DeploymentCreateResponse @@ -58,7 +57,7 @@ def create( strategy: Literal["percentage"], versions: Iterable[deployment_create_params.Version], force: bool | NotGiven = NOT_GIVEN, - annotations: DeploymentParam | NotGiven = NOT_GIVEN, + annotations: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -188,7 +187,7 @@ async def create( strategy: Literal["percentage"], versions: Iterable[deployment_create_params.Version], force: bool | NotGiven = NOT_GIVEN, - annotations: DeploymentParam | NotGiven = NOT_GIVEN, + annotations: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, diff --git a/src/cloudflare/resources/workers/scripts/schedules.py b/src/cloudflare/resources/workers/scripts/schedules.py index b87d9f76e7c..ddd276a467f 100644 --- a/src/cloudflare/resources/workers/scripts/schedules.py +++ b/src/cloudflare/resources/workers/scripts/schedules.py @@ -21,7 +21,6 @@ ) from ...._wrappers import ResultWrapper from ...._base_client import make_request_options -from ....types.workers.scripts.schedule_param import ScheduleParam from ....types.workers.scripts.schedule_get_response import ScheduleGetResponse from ....types.workers.scripts.schedule_update_response import ScheduleUpdateResponse @@ -53,7 +52,7 @@ def update( script_name: str, *, account_id: str, - body: Iterable[ScheduleParam], + body: Iterable[object], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -83,7 +82,7 @@ def update( raise ValueError(f"Expected a non-empty value for `script_name` but received {script_name!r}") return self._put( f"/accounts/{account_id}/workers/scripts/{script_name}/schedules", - body=maybe_transform(body, Iterable[ScheduleParam]), + body=maybe_transform(body, Iterable[object]), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -164,7 +163,7 @@ async def update( script_name: str, *, account_id: str, - body: Iterable[ScheduleParam], + body: Iterable[object], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -194,7 +193,7 @@ async def update( raise ValueError(f"Expected a non-empty value for `script_name` but received {script_name!r}") return await self._put( f"/accounts/{account_id}/workers/scripts/{script_name}/schedules", - body=await async_maybe_transform(body, Iterable[ScheduleParam]), + body=await async_maybe_transform(body, Iterable[object]), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/cloudflare/resources/workers_for_platforms/dispatch/namespaces/scripts/content.py b/src/cloudflare/resources/workers_for_platforms/dispatch/namespaces/scripts/content.py index 49da6102ab3..c3740cddc51 100644 --- a/src/cloudflare/resources/workers_for_platforms/dispatch/namespaces/scripts/content.py +++ b/src/cloudflare/resources/workers_for_platforms/dispatch/namespaces/scripts/content.py @@ -31,7 +31,6 @@ from ......_wrappers import ResultWrapper from ......_base_client import make_request_options from ......types.workers.script import Script -from ......types.workers.worker_metadata_param import WorkerMetadataParam from ......types.workers_for_platforms.dispatch.namespaces.scripts import content_update_params __all__ = ["ContentResource", "AsyncContentResource"] @@ -63,7 +62,7 @@ def update( *, account_id: str, dispatch_namespace: str, - metadata: WorkerMetadataParam, + metadata: object, cf_worker_body_part: str | NotGiven = NOT_GIVEN, cf_worker_main_module_part: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -83,8 +82,6 @@ def update( script_name: Name of the script, used in URLs and route configuration. - metadata: JSON encoded metadata about the uploaded parts and Worker configuration. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -199,7 +196,7 @@ async def update( *, account_id: str, dispatch_namespace: str, - metadata: WorkerMetadataParam, + metadata: object, cf_worker_body_part: str | NotGiven = NOT_GIVEN, cf_worker_main_module_part: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -219,8 +216,6 @@ async def update( script_name: Name of the script, used in URLs and route configuration. - metadata: JSON encoded metadata about the uploaded parts and Worker configuration. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/cloudflare/resources/zero_trust/gateway/configurations/configurations.py b/src/cloudflare/resources/zero_trust/gateway/configurations/configurations.py index b0a63b7be19..94faffd3758 100755 --- a/src/cloudflare/resources/zero_trust/gateway/configurations/configurations.py +++ b/src/cloudflare/resources/zero_trust/gateway/configurations/configurations.py @@ -29,14 +29,10 @@ CustomCertificateResourceWithStreamingResponse, AsyncCustomCertificateResourceWithStreamingResponse, ) -from .....types.zero_trust.gateway import ( - configuration_edit_params, - configuration_update_params, -) +from .....types.zero_trust.gateway import configuration_edit_params, configuration_update_params from .....types.zero_trust.gateway.configuration_get_response import ConfigurationGetResponse from .....types.zero_trust.gateway.configuration_edit_response import ConfigurationEditResponse from .....types.zero_trust.gateway.configuration_update_response import ConfigurationUpdateResponse -from .....types.zero_trust.gateway.gateway_configuration_settings_param import GatewayConfigurationSettingsParam __all__ = ["ConfigurationsResource", "AsyncConfigurationsResource"] @@ -69,7 +65,7 @@ def update( self, *, account_id: str, - settings: GatewayConfigurationSettingsParam | NotGiven = NOT_GIVEN, + settings: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -81,8 +77,6 @@ def update( Updates the current Zero Trust account configuration. Args: - settings: Account settings - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -110,7 +104,7 @@ def edit( self, *, account_id: str, - settings: GatewayConfigurationSettingsParam | NotGiven = NOT_GIVEN, + settings: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -127,8 +121,6 @@ def edit( error if any collection of settings is not properly configured. Args: - settings: Account settings - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -218,7 +210,7 @@ async def update( self, *, account_id: str, - settings: GatewayConfigurationSettingsParam | NotGiven = NOT_GIVEN, + settings: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -230,8 +222,6 @@ async def update( Updates the current Zero Trust account configuration. Args: - settings: Account settings - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -261,7 +251,7 @@ async def edit( self, *, account_id: str, - settings: GatewayConfigurationSettingsParam | NotGiven = NOT_GIVEN, + settings: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -278,8 +268,6 @@ async def edit( error if any collection of settings is not properly configured. Args: - settings: Account settings - extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/cloudflare/resources/zero_trust/gateway/logging.py b/src/cloudflare/resources/zero_trust/gateway/logging.py index 8f50a51ec9b..2d3426777ae 100644 --- a/src/cloudflare/resources/zero_trust/gateway/logging.py +++ b/src/cloudflare/resources/zero_trust/gateway/logging.py @@ -52,7 +52,7 @@ def update( *, account_id: str, redact_pii: bool | NotGiven = NOT_GIVEN, - settings_by_rule_type: logging_update_params.SettingsByRuleType | NotGiven = NOT_GIVEN, + settings_by_rule_type: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -67,8 +67,6 @@ def update( redact_pii: Redact personally identifiable information from activity logging (PII fields are: source IP, user email, user ID, device ID, URL, referrer, user agent). - settings_by_rule_type: Logging settings by rule type. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -161,7 +159,7 @@ async def update( *, account_id: str, redact_pii: bool | NotGiven = NOT_GIVEN, - settings_by_rule_type: logging_update_params.SettingsByRuleType | NotGiven = NOT_GIVEN, + settings_by_rule_type: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -176,8 +174,6 @@ async def update( redact_pii: Redact personally identifiable information from activity logging (PII fields are: source IP, user email, user ID, device ID, URL, referrer, user agent). - settings_by_rule_type: Logging settings by rule type. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/cloudflare/resources/zero_trust/identity_providers/identity_providers.py b/src/cloudflare/resources/zero_trust/identity_providers/identity_providers.py index 9436efa689e..71b7e7a5413 100644 --- a/src/cloudflare/resources/zero_trust/identity_providers/identity_providers.py +++ b/src/cloudflare/resources/zero_trust/identity_providers/identity_providers.py @@ -33,17 +33,14 @@ from ....pagination import SyncSinglePage, AsyncSinglePage from ...._base_client import AsyncPaginator, make_request_options from ....types.zero_trust import ( - IdentityProviderType, identity_provider_list_params, identity_provider_create_params, identity_provider_update_params, ) from ....types.zero_trust.identity_provider import IdentityProvider -from ....types.zero_trust.identity_provider_type import IdentityProviderType from ....types.zero_trust.generic_oauth_config_param import GenericOAuthConfigParam from ....types.zero_trust.identity_provider_list_response import IdentityProviderListResponse from ....types.zero_trust.identity_provider_delete_response import IdentityProviderDeleteResponse -from ....types.zero_trust.identity_provider_scim_config_param import IdentityProviderSCIMConfigParam __all__ = ["IdentityProvidersResource", "AsyncIdentityProvidersResource"] @@ -78,10 +75,10 @@ def create( *, config: identity_provider_create_params.AzureADConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -99,17 +96,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -126,10 +116,10 @@ def create( *, config: identity_provider_create_params.AccessCentrifyConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -147,17 +137,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -174,10 +157,10 @@ def create( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -195,17 +178,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -222,10 +198,10 @@ def create( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -243,17 +219,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -270,10 +239,10 @@ def create( *, config: identity_provider_create_params.AccessGoogleConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -291,17 +260,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -318,10 +280,10 @@ def create( *, config: identity_provider_create_params.AccessGoogleAppsConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -339,17 +301,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -366,10 +321,10 @@ def create( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -387,17 +342,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -414,10 +362,10 @@ def create( *, config: identity_provider_create_params.AccessOIDCConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -435,17 +383,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -462,10 +403,10 @@ def create( *, config: identity_provider_create_params.AccessOktaConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -483,17 +424,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -510,10 +444,10 @@ def create( *, config: identity_provider_create_params.AccessOneloginConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -531,17 +465,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -558,10 +485,10 @@ def create( *, config: identity_provider_create_params.AccessPingoneConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -579,17 +506,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -606,10 +526,10 @@ def create( *, config: identity_provider_create_params.AccessSAMLConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -627,17 +547,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -654,10 +567,10 @@ def create( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -675,17 +588,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -702,10 +608,10 @@ def create( *, config: identity_provider_create_params.AccessOnetimepinConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -723,17 +629,10 @@ def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -760,10 +659,10 @@ def create( | identity_provider_create_params.AccessSAMLConfig | identity_provider_create_params.AccessOnetimepinConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -816,10 +715,10 @@ def update( *, config: identity_provider_update_params.AzureADConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -839,17 +738,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -867,10 +759,10 @@ def update( *, config: identity_provider_update_params.AccessCentrifyConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -890,17 +782,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -918,10 +803,10 @@ def update( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -941,17 +826,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -969,10 +847,10 @@ def update( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -992,17 +870,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1020,10 +891,10 @@ def update( *, config: identity_provider_update_params.AccessGoogleConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1043,17 +914,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1071,10 +935,10 @@ def update( *, config: identity_provider_update_params.AccessGoogleAppsConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1094,17 +958,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1122,10 +979,10 @@ def update( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1145,17 +1002,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1173,10 +1023,10 @@ def update( *, config: identity_provider_update_params.AccessOIDCConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1196,17 +1046,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1224,10 +1067,10 @@ def update( *, config: identity_provider_update_params.AccessOktaConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1247,17 +1090,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1275,10 +1111,10 @@ def update( *, config: identity_provider_update_params.AccessOneloginConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1298,17 +1134,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1326,10 +1155,10 @@ def update( *, config: identity_provider_update_params.AccessPingoneConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1349,17 +1178,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1377,10 +1199,10 @@ def update( *, config: identity_provider_update_params.AccessSAMLConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1400,17 +1222,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1428,10 +1243,10 @@ def update( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1451,17 +1266,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1479,10 +1287,10 @@ def update( *, config: identity_provider_update_params.AccessOnetimepinConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1502,17 +1310,10 @@ def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1540,10 +1341,10 @@ def update( | identity_provider_update_params.AccessSAMLConfig | identity_provider_update_params.AccessOnetimepinConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1808,10 +1609,10 @@ async def create( *, config: identity_provider_create_params.AzureADConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1829,17 +1630,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1856,10 +1650,10 @@ async def create( *, config: identity_provider_create_params.AccessCentrifyConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1877,17 +1671,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1904,10 +1691,10 @@ async def create( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1925,17 +1712,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1952,10 +1732,10 @@ async def create( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1973,17 +1753,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2000,10 +1773,10 @@ async def create( *, config: identity_provider_create_params.AccessGoogleConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2021,17 +1794,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2048,10 +1814,10 @@ async def create( *, config: identity_provider_create_params.AccessGoogleAppsConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2069,17 +1835,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2096,10 +1855,10 @@ async def create( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2117,17 +1876,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2144,10 +1896,10 @@ async def create( *, config: identity_provider_create_params.AccessOIDCConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2165,17 +1917,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2192,10 +1937,10 @@ async def create( *, config: identity_provider_create_params.AccessOktaConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2213,17 +1958,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2240,10 +1978,10 @@ async def create( *, config: identity_provider_create_params.AccessOneloginConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2261,17 +1999,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2288,10 +2019,10 @@ async def create( *, config: identity_provider_create_params.AccessPingoneConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2309,17 +2040,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2336,10 +2060,10 @@ async def create( *, config: identity_provider_create_params.AccessSAMLConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2357,17 +2081,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2384,10 +2101,10 @@ async def create( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2405,17 +2122,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2432,10 +2142,10 @@ async def create( *, config: identity_provider_create_params.AccessOnetimepinConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2453,17 +2163,10 @@ async def create( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2490,10 +2193,10 @@ async def create( | identity_provider_create_params.AccessSAMLConfig | identity_provider_create_params.AccessOnetimepinConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2546,10 +2249,10 @@ async def update( *, config: identity_provider_update_params.AzureADConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2569,17 +2272,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2597,10 +2293,10 @@ async def update( *, config: identity_provider_update_params.AccessCentrifyConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2620,17 +2316,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2648,10 +2337,10 @@ async def update( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2671,17 +2360,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2699,10 +2381,10 @@ async def update( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2722,17 +2404,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2750,10 +2425,10 @@ async def update( *, config: identity_provider_update_params.AccessGoogleConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2773,17 +2448,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2801,10 +2469,10 @@ async def update( *, config: identity_provider_update_params.AccessGoogleAppsConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2824,17 +2492,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2852,10 +2513,10 @@ async def update( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2875,17 +2536,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2903,10 +2557,10 @@ async def update( *, config: identity_provider_update_params.AccessOIDCConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2926,17 +2580,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2954,10 +2601,10 @@ async def update( *, config: identity_provider_update_params.AccessOktaConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2977,17 +2624,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -3005,10 +2645,10 @@ async def update( *, config: identity_provider_update_params.AccessOneloginConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -3028,17 +2668,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -3056,10 +2689,10 @@ async def update( *, config: identity_provider_update_params.AccessPingoneConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -3079,17 +2712,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -3107,10 +2733,10 @@ async def update( *, config: identity_provider_update_params.AccessSAMLConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -3130,17 +2756,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -3158,10 +2777,10 @@ async def update( *, config: GenericOAuthConfigParam, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -3181,17 +2800,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -3209,10 +2821,10 @@ async def update( *, config: identity_provider_update_params.AccessOnetimepinConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -3232,17 +2844,10 @@ async def update( name: The name of the identity provider, shown to users on the login page. - type: 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/). - account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - scim_config: The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -3270,10 +2875,10 @@ async def update( | identity_provider_update_params.AccessSAMLConfig | identity_provider_update_params.AccessOnetimepinConfig, name: str, - type: IdentityProviderType, + type: object, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, + scim_config: object | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, diff --git a/src/cloudflare/resources/zones/holds.py b/src/cloudflare/resources/zones/holds.py index 521fde82848..a33bfa285c0 100644 --- a/src/cloudflare/resources/zones/holds.py +++ b/src/cloudflare/resources/zones/holds.py @@ -22,7 +22,6 @@ from ..._wrappers import ResultWrapper from ...types.zones import hold_edit_params, hold_create_params, hold_delete_params from ..._base_client import make_request_options -from ...types.zones.zone_hold import ZoneHold __all__ = ["HoldsResource", "AsyncHoldsResource"] @@ -58,7 +57,7 @@ def create( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> ZoneHold: + ) -> object: """ Enforce a zone hold on the zone, blocking the creation and activation of zones with this zone's hostname. @@ -89,9 +88,9 @@ def create( extra_body=extra_body, timeout=timeout, query=maybe_transform({"include_subdomains": include_subdomains}, hold_create_params.HoldCreateParams), - post_parser=ResultWrapper[ZoneHold]._unwrapper, + post_parser=ResultWrapper[object]._unwrapper, ), - cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), + cast_to=cast(Type[object], ResultWrapper[object]), ) def delete( @@ -105,7 +104,7 @@ def delete( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> ZoneHold: + ) -> object: """ Stop enforcement of a zone hold on the zone, permanently or temporarily, allowing the creation and activation of zones with this zone's hostname. @@ -135,9 +134,9 @@ def delete( extra_body=extra_body, timeout=timeout, query=maybe_transform({"hold_after": hold_after}, hold_delete_params.HoldDeleteParams), - post_parser=ResultWrapper[ZoneHold]._unwrapper, + post_parser=ResultWrapper[object]._unwrapper, ), - cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), + cast_to=cast(Type[object], ResultWrapper[object]), ) def edit( @@ -152,7 +151,7 @@ def edit( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> ZoneHold: + ) -> object: """ Update the `hold_after` and/or `include_subdomains` values on an existing zone hold. The hold is enabled if the `hold_after` date-time value is in the past. @@ -195,9 +194,9 @@ def edit( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[ZoneHold]._unwrapper, + post_parser=ResultWrapper[object]._unwrapper, ), - cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), + cast_to=cast(Type[object], ResultWrapper[object]), ) def get( @@ -210,7 +209,7 @@ def get( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> ZoneHold: + ) -> object: """ Retrieve whether the zone is subject to a zone hold, and metadata about the hold. @@ -235,9 +234,9 @@ def get( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[ZoneHold]._unwrapper, + post_parser=ResultWrapper[object]._unwrapper, ), - cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), + cast_to=cast(Type[object], ResultWrapper[object]), ) @@ -272,7 +271,7 @@ async def create( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> ZoneHold: + ) -> object: """ Enforce a zone hold on the zone, blocking the creation and activation of zones with this zone's hostname. @@ -305,9 +304,9 @@ async def create( query=await async_maybe_transform( {"include_subdomains": include_subdomains}, hold_create_params.HoldCreateParams ), - post_parser=ResultWrapper[ZoneHold]._unwrapper, + post_parser=ResultWrapper[object]._unwrapper, ), - cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), + cast_to=cast(Type[object], ResultWrapper[object]), ) async def delete( @@ -321,7 +320,7 @@ async def delete( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> ZoneHold: + ) -> object: """ Stop enforcement of a zone hold on the zone, permanently or temporarily, allowing the creation and activation of zones with this zone's hostname. @@ -351,9 +350,9 @@ async def delete( extra_body=extra_body, timeout=timeout, query=await async_maybe_transform({"hold_after": hold_after}, hold_delete_params.HoldDeleteParams), - post_parser=ResultWrapper[ZoneHold]._unwrapper, + post_parser=ResultWrapper[object]._unwrapper, ), - cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), + cast_to=cast(Type[object], ResultWrapper[object]), ) async def edit( @@ -368,7 +367,7 @@ async def edit( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> ZoneHold: + ) -> object: """ Update the `hold_after` and/or `include_subdomains` values on an existing zone hold. The hold is enabled if the `hold_after` date-time value is in the past. @@ -411,9 +410,9 @@ async def edit( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[ZoneHold]._unwrapper, + post_parser=ResultWrapper[object]._unwrapper, ), - cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), + cast_to=cast(Type[object], ResultWrapper[object]), ) async def get( @@ -426,7 +425,7 @@ async def get( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> ZoneHold: + ) -> object: """ Retrieve whether the zone is subject to a zone hold, and metadata about the hold. @@ -451,9 +450,9 @@ async def get( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[ZoneHold]._unwrapper, + post_parser=ResultWrapper[object]._unwrapper, ), - cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), + cast_to=cast(Type[object], ResultWrapper[object]), ) diff --git a/src/cloudflare/types/addressing/address_map_delete_response.py b/src/cloudflare/types/addressing/address_map_delete_response.py index 84e3c8f4e59..c550963dbb5 100644 --- a/src/cloudflare/types/addressing/address_map_delete_response.py +++ b/src/cloudflare/types/addressing/address_map_delete_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["AddressMapDeleteResponse", "ResultInfo"] @@ -24,9 +23,9 @@ class ResultInfo(BaseModel): class AddressMapDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/address_maps/account_delete_response.py b/src/cloudflare/types/addressing/address_maps/account_delete_response.py index 744418d64e0..61bdcf23062 100644 --- a/src/cloudflare/types/addressing/address_maps/account_delete_response.py +++ b/src/cloudflare/types/addressing/address_maps/account_delete_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["AccountDeleteResponse", "ResultInfo"] @@ -24,9 +23,9 @@ class ResultInfo(BaseModel): class AccountDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/address_maps/account_update_response.py b/src/cloudflare/types/addressing/address_maps/account_update_response.py index fd478f16aa5..228be02bbfd 100644 --- a/src/cloudflare/types/addressing/address_maps/account_update_response.py +++ b/src/cloudflare/types/addressing/address_maps/account_update_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["AccountUpdateResponse", "ResultInfo"] @@ -24,9 +23,9 @@ class ResultInfo(BaseModel): class AccountUpdateResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/address_maps/ip_delete_response.py b/src/cloudflare/types/addressing/address_maps/ip_delete_response.py index 6a1fda031cc..a4228a36959 100644 --- a/src/cloudflare/types/addressing/address_maps/ip_delete_response.py +++ b/src/cloudflare/types/addressing/address_maps/ip_delete_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["IPDeleteResponse", "ResultInfo"] @@ -24,9 +23,9 @@ class ResultInfo(BaseModel): class IPDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/address_maps/ip_update_response.py b/src/cloudflare/types/addressing/address_maps/ip_update_response.py index c224d9f3888..62ae951ce2b 100644 --- a/src/cloudflare/types/addressing/address_maps/ip_update_response.py +++ b/src/cloudflare/types/addressing/address_maps/ip_update_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["IPUpdateResponse", "ResultInfo"] @@ -24,9 +23,9 @@ class ResultInfo(BaseModel): class IPUpdateResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/address_maps/zone_delete_response.py b/src/cloudflare/types/addressing/address_maps/zone_delete_response.py index 62ae20be667..51aeb240fd9 100644 --- a/src/cloudflare/types/addressing/address_maps/zone_delete_response.py +++ b/src/cloudflare/types/addressing/address_maps/zone_delete_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["ZoneDeleteResponse", "ResultInfo"] @@ -24,9 +23,9 @@ class ResultInfo(BaseModel): class ZoneDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/address_maps/zone_update_response.py b/src/cloudflare/types/addressing/address_maps/zone_update_response.py index 8d9473e4e28..68bba584585 100644 --- a/src/cloudflare/types/addressing/address_maps/zone_update_response.py +++ b/src/cloudflare/types/addressing/address_maps/zone_update_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["ZoneUpdateResponse", "ResultInfo"] @@ -24,9 +23,9 @@ class ResultInfo(BaseModel): class ZoneUpdateResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/prefix_delete_response.py b/src/cloudflare/types/addressing/prefix_delete_response.py index 641bfe8f418..bd64e7ff86b 100644 --- a/src/cloudflare/types/addressing/prefix_delete_response.py +++ b/src/cloudflare/types/addressing/prefix_delete_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["PrefixDeleteResponse", "ResultInfo"] @@ -24,9 +23,9 @@ class ResultInfo(BaseModel): class PrefixDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/prefixes/service_binding_delete_response.py b/src/cloudflare/types/addressing/prefixes/service_binding_delete_response.py index 7c24a85fea7..451b4d33d32 100644 --- a/src/cloudflare/types/addressing/prefixes/service_binding_delete_response.py +++ b/src/cloudflare/types/addressing/prefixes/service_binding_delete_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["ServiceBindingDeleteResponse"] class ServiceBindingDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/regional_hostname_delete_response.py b/src/cloudflare/types/addressing/regional_hostname_delete_response.py index 1031166663d..496282c7069 100644 --- a/src/cloudflare/types/addressing/regional_hostname_delete_response.py +++ b/src/cloudflare/types/addressing/regional_hostname_delete_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["RegionalHostnameDeleteResponse"] class RegionalHostnameDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/alerting/destinations/pagerduty_delete_response.py b/src/cloudflare/types/alerting/destinations/pagerduty_delete_response.py index 958d795048c..cf001fd2c8b 100644 --- a/src/cloudflare/types/alerting/destinations/pagerduty_delete_response.py +++ b/src/cloudflare/types/alerting/destinations/pagerduty_delete_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["PagerdutyDeleteResponse", "ResultInfo"] @@ -24,9 +23,9 @@ class ResultInfo(BaseModel): class PagerdutyDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/alerting/destinations/webhook_delete_response.py b/src/cloudflare/types/alerting/destinations/webhook_delete_response.py index eef159b9921..02bcde4bcf3 100644 --- a/src/cloudflare/types/alerting/destinations/webhook_delete_response.py +++ b/src/cloudflare/types/alerting/destinations/webhook_delete_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["WebhookDeleteResponse", "ResultInfo"] @@ -24,9 +23,9 @@ class ResultInfo(BaseModel): class WebhookDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/alerting/policy_delete_response.py b/src/cloudflare/types/alerting/policy_delete_response.py index d0feccf6ae2..90be60e835f 100644 --- a/src/cloudflare/types/alerting/policy_delete_response.py +++ b/src/cloudflare/types/alerting/policy_delete_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["PolicyDeleteResponse", "ResultInfo"] @@ -24,9 +23,9 @@ class ResultInfo(BaseModel): class PolicyDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/api_gateway/message.py b/src/cloudflare/types/api_gateway/message.py index 3cc2e671066..729ee4daf7d 100644 --- a/src/cloudflare/types/api_gateway/message.py +++ b/src/cloudflare/types/api_gateway/message.py @@ -3,8 +3,6 @@ from typing import List from typing_extensions import TypeAlias -from ..shared.response_info import ResponseInfo - __all__ = ["Message"] -Message: TypeAlias = List[ResponseInfo] +Message: TypeAlias = List[object] diff --git a/src/cloudflare/types/brand_protection/__init__.py b/src/cloudflare/types/brand_protection/__init__.py index 3fa7ed724bd..0cf827a9c76 100644 --- a/src/cloudflare/types/brand_protection/__init__.py +++ b/src/cloudflare/types/brand_protection/__init__.py @@ -4,8 +4,5 @@ from .info import Info as Info from .submit import Submit as Submit -from .rule_match import RuleMatch as RuleMatch -from .scan_status import ScanStatus as ScanStatus -from .url_info_model_results import URLInfoModelResults as URLInfoModelResults from .brand_protection_submit_params import BrandProtectionSubmitParams as BrandProtectionSubmitParams from .brand_protection_url_info_params import BrandProtectionURLInfoParams as BrandProtectionURLInfoParams diff --git a/src/cloudflare/types/brand_protection/info.py b/src/cloudflare/types/brand_protection/info.py index ecc27c62f00..0e1435ca4a1 100644 --- a/src/cloudflare/types/brand_protection/info.py +++ b/src/cloudflare/types/brand_protection/info.py @@ -5,36 +5,24 @@ from pydantic import Field as FieldInfo from ..._models import BaseModel -from .rule_match import RuleMatch -from .scan_status import ScanStatus -from .url_info_model_results import URLInfoModelResults -__all__ = ["Info", "Categorization"] - - -class Categorization(BaseModel): - category: Optional[str] = None - """Name of the category applied.""" - - verification_status: Optional[str] = None - """Result of human review for this categorization.""" +__all__ = ["Info"] class Info(BaseModel): - categorizations: Optional[List[Categorization]] = None + categorizations: Optional[List[object]] = None """List of categorizations applied to this submission.""" - ai_model_results: Optional[List[URLInfoModelResults]] = FieldInfo(alias="model_results", default=None) + ai_model_results: Optional[List[object]] = FieldInfo(alias="model_results", default=None) """List of model results for completed scans.""" - rule_matches: Optional[List[RuleMatch]] = None + rule_matches: Optional[List[object]] = None """ List of signatures that matched against site content found when crawling the URL. """ - scan_status: Optional[ScanStatus] = None - """Status of the most recent scan found.""" + scan_status: Optional[object] = None screenshot_download_signature: Optional[str] = None """For internal use.""" diff --git a/src/cloudflare/types/brand_protection/rule_match.py b/src/cloudflare/types/brand_protection/rule_match.py deleted file mode 100644 index 00452de5674..00000000000 --- a/src/cloudflare/types/brand_protection/rule_match.py +++ /dev/null @@ -1,21 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ..._models import BaseModel - -__all__ = ["RuleMatch"] - - -class RuleMatch(BaseModel): - banning: Optional[bool] = None - """For internal use.""" - - blocking: Optional[bool] = None - """For internal use.""" - - description: Optional[str] = None - """Description of the signature that matched.""" - - name: Optional[str] = None - """Name of the signature that matched.""" diff --git a/src/cloudflare/types/brand_protection/scan_status.py b/src/cloudflare/types/brand_protection/scan_status.py deleted file mode 100644 index 711de0b5ed6..00000000000 --- a/src/cloudflare/types/brand_protection/scan_status.py +++ /dev/null @@ -1,21 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ..._models import BaseModel - -__all__ = ["ScanStatus"] - - -class ScanStatus(BaseModel): - last_processed: Optional[str] = None - """Timestamp of when the submission was processed.""" - - scan_complete: Optional[bool] = None - """For internal use.""" - - status_code: Optional[int] = None - """Status code that the crawler received when loading the submitted URL.""" - - submission_id: Optional[int] = None - """ID of the most recent submission.""" diff --git a/src/cloudflare/types/brand_protection/submit.py b/src/cloudflare/types/brand_protection/submit.py index 766580137d5..25fc7584e1a 100644 --- a/src/cloudflare/types/brand_protection/submit.py +++ b/src/cloudflare/types/brand_protection/submit.py @@ -4,39 +4,18 @@ from ..._models import BaseModel -__all__ = ["Submit", "ExcludedURL", "SkippedURL", "SubmittedURL"] - - -class ExcludedURL(BaseModel): - url: Optional[str] = None - """URL that was excluded.""" - - -class SkippedURL(BaseModel): - url: Optional[str] = None - """URL that was skipped.""" - - url_id: Optional[int] = None - """ID of the submission of that URL that is currently scanning.""" - - -class SubmittedURL(BaseModel): - url: Optional[str] = None - """URL that was submitted.""" - - url_id: Optional[int] = None - """ID assigned to this URL submission. Used to retrieve scanning results.""" +__all__ = ["Submit"] class Submit(BaseModel): - excluded_urls: Optional[List[ExcludedURL]] = None + excluded_urls: Optional[List[object]] = None """ URLs that were excluded from scanning because their domain is in our no-scan list. """ - skipped_urls: Optional[List[SkippedURL]] = None + skipped_urls: Optional[List[object]] = None """URLs that were skipped because the same URL is currently being scanned""" - submitted_urls: Optional[List[SubmittedURL]] = None + submitted_urls: Optional[List[object]] = None """URLs that were successfully submitted for scanning.""" diff --git a/src/cloudflare/types/brand_protection/url_info_model_results.py b/src/cloudflare/types/brand_protection/url_info_model_results.py deleted file mode 100644 index cd2086aba49..00000000000 --- a/src/cloudflare/types/brand_protection/url_info_model_results.py +++ /dev/null @@ -1,17 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from pydantic import Field as FieldInfo - -from ..._models import BaseModel - -__all__ = ["URLInfoModelResults"] - - -class URLInfoModelResults(BaseModel): - ai_model_name: Optional[str] = FieldInfo(alias="model_name", default=None) - """Name of the model.""" - - ai_model_score: Optional[float] = FieldInfo(alias="model_score", default=None) - """Score output by the model for this submission.""" diff --git a/src/cloudflare/types/cache/__init__.py b/src/cloudflare/types/cache/__init__.py index 10937a5c1b3..93112b27f49 100644 --- a/src/cloudflare/types/cache/__init__.py +++ b/src/cloudflare/types/cache/__init__.py @@ -3,13 +3,10 @@ from __future__ import annotations from .state import State as State -from .cache_reserve import CacheReserve as CacheReserve from .cache_purge_params import CachePurgeParams as CachePurgeParams -from .cache_reserve_clear import CacheReserveClear as CacheReserveClear from .variant_edit_params import VariantEditParams as VariantEditParams from .cache_purge_response import CachePurgeResponse as CachePurgeResponse from .variant_get_response import VariantGetResponse as VariantGetResponse -from .regional_tiered_cache import RegionalTieredCache as RegionalTieredCache from .variant_edit_response import VariantEditResponse as VariantEditResponse from .variant_delete_response import VariantDeleteResponse as VariantDeleteResponse from .cache_reserve_edit_params import CacheReserveEditParams as CacheReserveEditParams diff --git a/src/cloudflare/types/cache/cache_reserve.py b/src/cloudflare/types/cache/cache_reserve.py index 05aac60eee5..8977879f0b6 100644 --- a/src/cloudflare/types/cache/cache_reserve.py +++ b/src/cloudflare/types/cache/cache_reserve.py @@ -1,7 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing_extensions import Literal, TypeAlias +from typing_extensions import TypeAlias __all__ = ["CacheReserve"] -CacheReserve: TypeAlias = Literal["cache_reserve"] +CacheReserve: TypeAlias = object diff --git a/src/cloudflare/types/cache/cache_reserve_clear.py b/src/cloudflare/types/cache/cache_reserve_clear.py deleted file mode 100644 index 2c89da30490..00000000000 --- a/src/cloudflare/types/cache/cache_reserve_clear.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["CacheReserveClear"] - -CacheReserveClear: TypeAlias = Literal["cache_reserve_clear"] diff --git a/src/cloudflare/types/cache/cache_reserve_clear_response.py b/src/cloudflare/types/cache/cache_reserve_clear_response.py index 48410c41b3c..fdd8b21f451 100644 --- a/src/cloudflare/types/cache/cache_reserve_clear_response.py +++ b/src/cloudflare/types/cache/cache_reserve_clear_response.py @@ -5,14 +5,12 @@ from .state import State from ..._models import BaseModel -from .cache_reserve_clear import CacheReserveClear __all__ = ["CacheReserveClearResponse"] class CacheReserveClearResponse(BaseModel): - id: CacheReserveClear - """ID of the zone setting.""" + id: object start_ts: datetime """The time that the latest Cache Reserve Clear operation started.""" diff --git a/src/cloudflare/types/cache/cache_reserve_edit_response.py b/src/cloudflare/types/cache/cache_reserve_edit_response.py index 1ecbfb5cc66..2334d07a05e 100644 --- a/src/cloudflare/types/cache/cache_reserve_edit_response.py +++ b/src/cloudflare/types/cache/cache_reserve_edit_response.py @@ -5,14 +5,12 @@ from typing_extensions import Literal from ..._models import BaseModel -from .cache_reserve import CacheReserve __all__ = ["CacheReserveEditResponse"] class CacheReserveEditResponse(BaseModel): - id: CacheReserve - """ID of the zone setting.""" + id: object editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cache/cache_reserve_get_response.py b/src/cloudflare/types/cache/cache_reserve_get_response.py index bfca4dcc125..f4954549804 100644 --- a/src/cloudflare/types/cache/cache_reserve_get_response.py +++ b/src/cloudflare/types/cache/cache_reserve_get_response.py @@ -5,14 +5,12 @@ from typing_extensions import Literal from ..._models import BaseModel -from .cache_reserve import CacheReserve __all__ = ["CacheReserveGetResponse"] class CacheReserveGetResponse(BaseModel): - id: CacheReserve - """ID of the zone setting.""" + id: object editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cache/cache_reserve_status_response.py b/src/cloudflare/types/cache/cache_reserve_status_response.py index 277b898dd11..90d8adc4411 100644 --- a/src/cloudflare/types/cache/cache_reserve_status_response.py +++ b/src/cloudflare/types/cache/cache_reserve_status_response.py @@ -5,14 +5,12 @@ from .state import State from ..._models import BaseModel -from .cache_reserve_clear import CacheReserveClear __all__ = ["CacheReserveStatusResponse"] class CacheReserveStatusResponse(BaseModel): - id: CacheReserveClear - """ID of the zone setting.""" + id: object start_ts: datetime """The time that the latest Cache Reserve Clear operation started.""" diff --git a/src/cloudflare/types/cache/regional_tiered_cache.py b/src/cloudflare/types/cache/regional_tiered_cache.py index 83303075765..12849b4bc37 100644 --- a/src/cloudflare/types/cache/regional_tiered_cache.py +++ b/src/cloudflare/types/cache/regional_tiered_cache.py @@ -1,7 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing_extensions import Literal, TypeAlias +from typing_extensions import TypeAlias __all__ = ["RegionalTieredCache"] -RegionalTieredCache: TypeAlias = Literal["tc_regional"] +RegionalTieredCache: TypeAlias = object diff --git a/src/cloudflare/types/cache/regional_tiered_cache_edit_response.py b/src/cloudflare/types/cache/regional_tiered_cache_edit_response.py index 089ee489e99..85ee16c520d 100644 --- a/src/cloudflare/types/cache/regional_tiered_cache_edit_response.py +++ b/src/cloudflare/types/cache/regional_tiered_cache_edit_response.py @@ -5,14 +5,12 @@ from typing_extensions import Literal from ..._models import BaseModel -from .regional_tiered_cache import RegionalTieredCache __all__ = ["RegionalTieredCacheEditResponse"] class RegionalTieredCacheEditResponse(BaseModel): - id: RegionalTieredCache - """ID of the zone setting.""" + id: object editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cache/regional_tiered_cache_get_response.py b/src/cloudflare/types/cache/regional_tiered_cache_get_response.py index 2730910de20..003151d1d9b 100644 --- a/src/cloudflare/types/cache/regional_tiered_cache_get_response.py +++ b/src/cloudflare/types/cache/regional_tiered_cache_get_response.py @@ -5,14 +5,12 @@ from typing_extensions import Literal from ..._models import BaseModel -from .regional_tiered_cache import RegionalTieredCache __all__ = ["RegionalTieredCacheGetResponse"] class RegionalTieredCacheGetResponse(BaseModel): - id: RegionalTieredCache - """ID of the zone setting.""" + id: object editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cache/variant_delete_response.py b/src/cloudflare/types/cache/variant_delete_response.py index 6d697bb1232..8892900d988 100644 --- a/src/cloudflare/types/cache/variant_delete_response.py +++ b/src/cloudflare/types/cache/variant_delete_response.py @@ -2,7 +2,6 @@ from typing import Optional from datetime import datetime -from typing_extensions import Literal from ..._models import BaseModel @@ -10,8 +9,7 @@ class VariantDeleteResponse(BaseModel): - id: Literal["variants"] - """ID of the zone setting.""" + id: object editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cache/variant_edit_response.py b/src/cloudflare/types/cache/variant_edit_response.py index 0cd828d795a..b972ff108e8 100644 --- a/src/cloudflare/types/cache/variant_edit_response.py +++ b/src/cloudflare/types/cache/variant_edit_response.py @@ -2,7 +2,6 @@ from typing import Optional from datetime import datetime -from typing_extensions import Literal from ..._models import BaseModel @@ -10,8 +9,7 @@ class VariantEditResponse(BaseModel): - id: Literal["variants"] - """ID of the zone setting.""" + id: object editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cache/variant_get_response.py b/src/cloudflare/types/cache/variant_get_response.py index 1b440b5b812..1b9d60d1947 100644 --- a/src/cloudflare/types/cache/variant_get_response.py +++ b/src/cloudflare/types/cache/variant_get_response.py @@ -2,7 +2,6 @@ from typing import Optional from datetime import datetime -from typing_extensions import Literal from ..._models import BaseModel @@ -10,8 +9,7 @@ class VariantGetResponse(BaseModel): - id: Literal["variants"] - """ID of the zone setting.""" + id: object editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cloudforce_one/request_delete_response.py b/src/cloudflare/types/cloudforce_one/request_delete_response.py index b7ed5ffbe10..dad4ef9c3b3 100644 --- a/src/cloudflare/types/cloudforce_one/request_delete_response.py +++ b/src/cloudflare/types/cloudforce_one/request_delete_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["RequestDeleteResponse"] class RequestDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/cloudforce_one/requests/asset_delete_response.py b/src/cloudflare/types/cloudforce_one/requests/asset_delete_response.py index 53f0cdcba72..5e4512cd861 100644 --- a/src/cloudflare/types/cloudforce_one/requests/asset_delete_response.py +++ b/src/cloudflare/types/cloudforce_one/requests/asset_delete_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["AssetDeleteResponse"] class AssetDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/cloudforce_one/requests/message_delete_response.py b/src/cloudflare/types/cloudforce_one/requests/message_delete_response.py index a0d45a64036..f2b13d0b1d9 100644 --- a/src/cloudflare/types/cloudforce_one/requests/message_delete_response.py +++ b/src/cloudflare/types/cloudforce_one/requests/message_delete_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["MessageDeleteResponse"] class MessageDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/cloudforce_one/requests/priority_delete_response.py b/src/cloudflare/types/cloudforce_one/requests/priority_delete_response.py index ee172239bfe..d88cf0c766c 100644 --- a/src/cloudflare/types/cloudforce_one/requests/priority_delete_response.py +++ b/src/cloudflare/types/cloudforce_one/requests/priority_delete_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["PriorityDeleteResponse"] class PriorityDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/custom_certificates/custom_certificate.py b/src/cloudflare/types/custom_certificates/custom_certificate.py index b5579f8a95f..821300d4411 100644 --- a/src/cloudflare/types/custom_certificates/custom_certificate.py +++ b/src/cloudflare/types/custom_certificates/custom_certificate.py @@ -6,7 +6,6 @@ from ..._models import BaseModel from .geo_restrictions import GeoRestrictions -from ..custom_hostnames.bundle_method import BundleMethod from ..keyless_certificates.keyless_certificate import KeylessCertificate __all__ = ["CustomCertificate"] @@ -16,13 +15,7 @@ class CustomCertificate(BaseModel): id: str """Identifier""" - bundle_method: BundleMethod - """ - 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. - """ + bundle_method: object expires_on: datetime """When the certificate from the authority expires.""" diff --git a/src/cloudflare/types/custom_certificates/custom_certificate_create_params.py b/src/cloudflare/types/custom_certificates/custom_certificate_create_params.py index 015cc848ee0..d9ab4013b34 100644 --- a/src/cloudflare/types/custom_certificates/custom_certificate_create_params.py +++ b/src/cloudflare/types/custom_certificates/custom_certificate_create_params.py @@ -5,7 +5,6 @@ from typing_extensions import Literal, Required, TypedDict from .geo_restrictions_param import GeoRestrictionsParam -from ..custom_hostnames.bundle_method import BundleMethod __all__ = ["CustomCertificateCreateParams"] @@ -20,13 +19,7 @@ class CustomCertificateCreateParams(TypedDict, total=False): private_key: Required[str] """The zone's private key.""" - bundle_method: BundleMethod - """ - 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. - """ + bundle_method: object geo_restrictions: GeoRestrictionsParam """ diff --git a/src/cloudflare/types/custom_certificates/custom_certificate_edit_params.py b/src/cloudflare/types/custom_certificates/custom_certificate_edit_params.py index 3fc3b9281b0..26e42248621 100644 --- a/src/cloudflare/types/custom_certificates/custom_certificate_edit_params.py +++ b/src/cloudflare/types/custom_certificates/custom_certificate_edit_params.py @@ -5,7 +5,6 @@ from typing_extensions import Required, TypedDict from .geo_restrictions_param import GeoRestrictionsParam -from ..custom_hostnames.bundle_method import BundleMethod __all__ = ["CustomCertificateEditParams"] @@ -14,13 +13,7 @@ class CustomCertificateEditParams(TypedDict, total=False): zone_id: Required[str] """Identifier""" - bundle_method: BundleMethod - """ - 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. - """ + bundle_method: object certificate: str """The zone's SSL certificate or certificate and the intermediate(s).""" diff --git a/src/cloudflare/types/custom_hostnames/__init__.py b/src/cloudflare/types/custom_hostnames/__init__.py index c6bdf8da108..b01fdacf733 100644 --- a/src/cloudflare/types/custom_hostnames/__init__.py +++ b/src/cloudflare/types/custom_hostnames/__init__.py @@ -2,9 +2,6 @@ from __future__ import annotations -from .dcv_method import DCVMethod as DCVMethod -from .bundle_method import BundleMethod as BundleMethod -from .domain_validation_type import DomainValidationType as DomainValidationType from .custom_hostname_edit_params import CustomHostnameEditParams as CustomHostnameEditParams from .custom_hostname_list_params import CustomHostnameListParams as CustomHostnameListParams from .custom_hostname_get_response import CustomHostnameGetResponse as CustomHostnameGetResponse diff --git a/src/cloudflare/types/custom_hostnames/bundle_method.py b/src/cloudflare/types/custom_hostnames/bundle_method.py deleted file mode 100644 index 56a82b7270b..00000000000 --- a/src/cloudflare/types/custom_hostnames/bundle_method.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["BundleMethod"] - -BundleMethod: TypeAlias = Literal["ubiquitous", "optimal", "force"] diff --git a/src/cloudflare/types/custom_hostnames/certificate_pack/certificate_update_response.py b/src/cloudflare/types/custom_hostnames/certificate_pack/certificate_update_response.py index 925381fec01..34cc66fbbdf 100644 --- a/src/cloudflare/types/custom_hostnames/certificate_pack/certificate_update_response.py +++ b/src/cloudflare/types/custom_hostnames/certificate_pack/certificate_update_response.py @@ -5,10 +5,7 @@ from typing_extensions import Literal from ...._models import BaseModel -from ..dcv_method import DCVMethod -from ..bundle_method import BundleMethod from ...shared.certificate_ca import CertificateCA -from ..domain_validation_type import DomainValidationType __all__ = [ "CertificateUpdateResponse", @@ -79,13 +76,7 @@ class SSL(BaseModel): id: Optional[str] = None """Custom hostname SSL identifier tag.""" - bundle_method: Optional[BundleMethod] = None - """ - 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. - """ + bundle_method: Optional[object] = None certificate_authority: Optional[CertificateCA] = None """The Certificate Authority that will issue the certificate""" @@ -108,8 +99,7 @@ class SSL(BaseModel): issuer: Optional[str] = None """The issuer on a custom uploaded certificate.""" - method: Optional[DCVMethod] = None - """Domain control validation (DCV) method used for this hostname.""" + method: Optional[object] = None serial_number: Optional[str] = None """The serial number on a custom uploaded certificate.""" @@ -146,11 +136,7 @@ class SSL(BaseModel): ] = None """Status of the hostname's SSL certificates.""" - type: Optional[DomainValidationType] = None - """Level of validation to be used for this hostname. - - Domain validation (dv) must be used. - """ + type: Optional[object] = None uploaded_on: Optional[datetime] = None """The time the custom certificate was uploaded.""" diff --git a/src/cloudflare/types/custom_hostnames/custom_hostname_create_params.py b/src/cloudflare/types/custom_hostnames/custom_hostname_create_params.py index d9b23bd760e..96c909ff64b 100644 --- a/src/cloudflare/types/custom_hostnames/custom_hostname_create_params.py +++ b/src/cloudflare/types/custom_hostnames/custom_hostname_create_params.py @@ -5,10 +5,7 @@ from typing import Dict, List, Iterable from typing_extensions import Literal, Required, TypedDict -from .dcv_method import DCVMethod -from .bundle_method import BundleMethod from ..shared.certificate_ca import CertificateCA -from .domain_validation_type import DomainValidationType __all__ = ["CustomHostnameCreateParams", "SSL", "SSLCustomCERTBundle", "SSLSettings"] @@ -59,13 +56,7 @@ class SSLSettings(TypedDict, total=False): class SSL(TypedDict, total=False): - bundle_method: BundleMethod - """ - 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. - """ + bundle_method: object certificate_authority: CertificateCA """The Certificate Authority that will issue the certificate""" @@ -86,17 +77,12 @@ class SSL(TypedDict, total=False): custom_key: str """The key for a custom uploaded certificate.""" - method: DCVMethod - """Domain control validation (DCV) method used for this hostname.""" + method: object settings: SSLSettings """SSL specific settings.""" - type: DomainValidationType - """Level of validation to be used for this hostname. - - Domain validation (dv) must be used. - """ + type: object wildcard: bool """Indicates whether the certificate covers a wildcard.""" diff --git a/src/cloudflare/types/custom_hostnames/custom_hostname_create_response.py b/src/cloudflare/types/custom_hostnames/custom_hostname_create_response.py index 8c80a753b08..ec9ebdd94a2 100644 --- a/src/cloudflare/types/custom_hostnames/custom_hostname_create_response.py +++ b/src/cloudflare/types/custom_hostnames/custom_hostname_create_response.py @@ -5,10 +5,7 @@ from typing_extensions import Literal from ..._models import BaseModel -from .dcv_method import DCVMethod -from .bundle_method import BundleMethod from ..shared.certificate_ca import CertificateCA -from .domain_validation_type import DomainValidationType __all__ = [ "CustomHostnameCreateResponse", @@ -79,13 +76,7 @@ class SSL(BaseModel): id: Optional[str] = None """Custom hostname SSL identifier tag.""" - bundle_method: Optional[BundleMethod] = None - """ - 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. - """ + bundle_method: Optional[object] = None certificate_authority: Optional[CertificateCA] = None """The Certificate Authority that will issue the certificate""" @@ -108,8 +99,7 @@ class SSL(BaseModel): issuer: Optional[str] = None """The issuer on a custom uploaded certificate.""" - method: Optional[DCVMethod] = None - """Domain control validation (DCV) method used for this hostname.""" + method: Optional[object] = None serial_number: Optional[str] = None """The serial number on a custom uploaded certificate.""" @@ -146,11 +136,7 @@ class SSL(BaseModel): ] = None """Status of the hostname's SSL certificates.""" - type: Optional[DomainValidationType] = None - """Level of validation to be used for this hostname. - - Domain validation (dv) must be used. - """ + type: Optional[object] = None uploaded_on: Optional[datetime] = None """The time the custom certificate was uploaded.""" diff --git a/src/cloudflare/types/custom_hostnames/custom_hostname_edit_params.py b/src/cloudflare/types/custom_hostnames/custom_hostname_edit_params.py index 9639155cb15..3ea4e8001b7 100644 --- a/src/cloudflare/types/custom_hostnames/custom_hostname_edit_params.py +++ b/src/cloudflare/types/custom_hostnames/custom_hostname_edit_params.py @@ -5,10 +5,7 @@ from typing import Dict, List, Iterable from typing_extensions import Literal, Required, TypedDict -from .dcv_method import DCVMethod -from .bundle_method import BundleMethod from ..shared.certificate_ca import CertificateCA -from .domain_validation_type import DomainValidationType __all__ = ["CustomHostnameEditParams", "SSL", "SSLCustomCERTBundle", "SSLSettings"] @@ -71,13 +68,7 @@ class SSLSettings(TypedDict, total=False): class SSL(TypedDict, total=False): - bundle_method: BundleMethod - """ - 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. - """ + bundle_method: object certificate_authority: CertificateCA """The Certificate Authority that will issue the certificate""" @@ -98,17 +89,12 @@ class SSL(TypedDict, total=False): custom_key: str """The key for a custom uploaded certificate.""" - method: DCVMethod - """Domain control validation (DCV) method used for this hostname.""" + method: object settings: SSLSettings """SSL specific settings.""" - type: DomainValidationType - """Level of validation to be used for this hostname. - - Domain validation (dv) must be used. - """ + type: object wildcard: bool """Indicates whether the certificate covers a wildcard.""" diff --git a/src/cloudflare/types/custom_hostnames/custom_hostname_edit_response.py b/src/cloudflare/types/custom_hostnames/custom_hostname_edit_response.py index b6e32e511ce..75c4ff0a4fd 100644 --- a/src/cloudflare/types/custom_hostnames/custom_hostname_edit_response.py +++ b/src/cloudflare/types/custom_hostnames/custom_hostname_edit_response.py @@ -5,10 +5,7 @@ from typing_extensions import Literal from ..._models import BaseModel -from .dcv_method import DCVMethod -from .bundle_method import BundleMethod from ..shared.certificate_ca import CertificateCA -from .domain_validation_type import DomainValidationType __all__ = [ "CustomHostnameEditResponse", @@ -79,13 +76,7 @@ class SSL(BaseModel): id: Optional[str] = None """Custom hostname SSL identifier tag.""" - bundle_method: Optional[BundleMethod] = None - """ - 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. - """ + bundle_method: Optional[object] = None certificate_authority: Optional[CertificateCA] = None """The Certificate Authority that will issue the certificate""" @@ -108,8 +99,7 @@ class SSL(BaseModel): issuer: Optional[str] = None """The issuer on a custom uploaded certificate.""" - method: Optional[DCVMethod] = None - """Domain control validation (DCV) method used for this hostname.""" + method: Optional[object] = None serial_number: Optional[str] = None """The serial number on a custom uploaded certificate.""" @@ -146,11 +136,7 @@ class SSL(BaseModel): ] = None """Status of the hostname's SSL certificates.""" - type: Optional[DomainValidationType] = None - """Level of validation to be used for this hostname. - - Domain validation (dv) must be used. - """ + type: Optional[object] = None uploaded_on: Optional[datetime] = None """The time the custom certificate was uploaded.""" diff --git a/src/cloudflare/types/custom_hostnames/custom_hostname_get_response.py b/src/cloudflare/types/custom_hostnames/custom_hostname_get_response.py index 8c1d1fe596d..d313ba0b090 100644 --- a/src/cloudflare/types/custom_hostnames/custom_hostname_get_response.py +++ b/src/cloudflare/types/custom_hostnames/custom_hostname_get_response.py @@ -5,10 +5,7 @@ from typing_extensions import Literal from ..._models import BaseModel -from .dcv_method import DCVMethod -from .bundle_method import BundleMethod from ..shared.certificate_ca import CertificateCA -from .domain_validation_type import DomainValidationType __all__ = [ "CustomHostnameGetResponse", @@ -79,13 +76,7 @@ class SSL(BaseModel): id: Optional[str] = None """Custom hostname SSL identifier tag.""" - bundle_method: Optional[BundleMethod] = None - """ - 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. - """ + bundle_method: Optional[object] = None certificate_authority: Optional[CertificateCA] = None """The Certificate Authority that will issue the certificate""" @@ -108,8 +99,7 @@ class SSL(BaseModel): issuer: Optional[str] = None """The issuer on a custom uploaded certificate.""" - method: Optional[DCVMethod] = None - """Domain control validation (DCV) method used for this hostname.""" + method: Optional[object] = None serial_number: Optional[str] = None """The serial number on a custom uploaded certificate.""" @@ -146,11 +136,7 @@ class SSL(BaseModel): ] = None """Status of the hostname's SSL certificates.""" - type: Optional[DomainValidationType] = None - """Level of validation to be used for this hostname. - - Domain validation (dv) must be used. - """ + type: Optional[object] = None uploaded_on: Optional[datetime] = None """The time the custom certificate was uploaded.""" diff --git a/src/cloudflare/types/custom_hostnames/custom_hostname_list_response.py b/src/cloudflare/types/custom_hostnames/custom_hostname_list_response.py index cadfd96f2b0..54120217115 100644 --- a/src/cloudflare/types/custom_hostnames/custom_hostname_list_response.py +++ b/src/cloudflare/types/custom_hostnames/custom_hostname_list_response.py @@ -5,10 +5,7 @@ from typing_extensions import Literal from ..._models import BaseModel -from .dcv_method import DCVMethod -from .bundle_method import BundleMethod from ..shared.certificate_ca import CertificateCA -from .domain_validation_type import DomainValidationType __all__ = [ "CustomHostnameListResponse", @@ -79,13 +76,7 @@ class SSL(BaseModel): id: Optional[str] = None """Custom hostname SSL identifier tag.""" - bundle_method: Optional[BundleMethod] = None - """ - 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. - """ + bundle_method: Optional[object] = None certificate_authority: Optional[CertificateCA] = None """The Certificate Authority that will issue the certificate""" @@ -108,8 +99,7 @@ class SSL(BaseModel): issuer: Optional[str] = None """The issuer on a custom uploaded certificate.""" - method: Optional[DCVMethod] = None - """Domain control validation (DCV) method used for this hostname.""" + method: Optional[object] = None serial_number: Optional[str] = None """The serial number on a custom uploaded certificate.""" @@ -146,11 +136,7 @@ class SSL(BaseModel): ] = None """Status of the hostname's SSL certificates.""" - type: Optional[DomainValidationType] = None - """Level of validation to be used for this hostname. - - Domain validation (dv) must be used. - """ + type: Optional[object] = None uploaded_on: Optional[datetime] = None """The time the custom certificate was uploaded.""" diff --git a/src/cloudflare/types/custom_hostnames/dcv_method.py b/src/cloudflare/types/custom_hostnames/dcv_method.py deleted file mode 100644 index ebfada34a6e..00000000000 --- a/src/cloudflare/types/custom_hostnames/dcv_method.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["DCVMethod"] - -DCVMethod: TypeAlias = Literal["http", "txt", "email"] diff --git a/src/cloudflare/types/custom_hostnames/domain_validation_type.py b/src/cloudflare/types/custom_hostnames/domain_validation_type.py deleted file mode 100644 index 11e882fa1b1..00000000000 --- a/src/cloudflare/types/custom_hostnames/domain_validation_type.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["DomainValidationType"] - -DomainValidationType: TypeAlias = Literal["dv"] diff --git a/src/cloudflare/types/dns/__init__.py b/src/cloudflare/types/dns/__init__.py index 3009711464f..9782a257cc5 100644 --- a/src/cloudflare/types/dns/__init__.py +++ b/src/cloudflare/types/dns/__init__.py @@ -52,7 +52,6 @@ from .record_list_params import RecordListParams as RecordListParams from .record_scan_params import RecordScanParams as RecordScanParams from .sshfp_record_param import SSHFPRecordParam as SSHFPRecordParam -from .dns_analytics_query import DNSAnalyticsQuery as DNSAnalyticsQuery from .dnskey_record_param import DNSKEYRecordParam as DNSKEYRecordParam from .record_batch_params import RecordBatchParams as RecordBatchParams from .smimea_record_param import SMIMEARecordParam as SMIMEARecordParam @@ -65,4 +64,3 @@ from .record_delete_response import RecordDeleteResponse as RecordDeleteResponse from .record_export_response import RecordExportResponse as RecordExportResponse from .record_import_response import RecordImportResponse as RecordImportResponse -from .dns_analytics_nominal_metric import DNSAnalyticsNominalMetric as DNSAnalyticsNominalMetric diff --git a/src/cloudflare/types/dns/analytics/report.py b/src/cloudflare/types/dns/analytics/report.py index 00314a88ec3..9778dff47fc 100644 --- a/src/cloudflare/types/dns/analytics/report.py +++ b/src/cloudflare/types/dns/analytics/report.py @@ -5,18 +5,7 @@ from ...._models import BaseModel -__all__ = ["Report", "Data", "Query"] - - -class Data(BaseModel): - dimensions: List[str] - """ - Array of dimension values, representing the combination of dimension values - corresponding to this row. - """ - - metrics: List[float] - """Array with one item per requested metric. Each item is a single value.""" +__all__ = ["Report", "Query"] class Query(BaseModel): @@ -46,7 +35,7 @@ class Query(BaseModel): class Report(BaseModel): - data: List[Data] + data: List[object] """Array with one row per combination of dimension values.""" data_lag: float diff --git a/src/cloudflare/types/dns/analytics/reports/by_time.py b/src/cloudflare/types/dns/analytics/reports/by_time.py index 54d6c796c02..4f2557221a0 100644 --- a/src/cloudflare/types/dns/analytics/reports/by_time.py +++ b/src/cloudflare/types/dns/analytics/reports/by_time.py @@ -4,8 +4,6 @@ from datetime import datetime from ....._models import BaseModel -from ...dns_analytics_query import DNSAnalyticsQuery -from ...dns_analytics_nominal_metric import DNSAnalyticsNominalMetric __all__ = ["ByTime", "Data"] @@ -17,7 +15,7 @@ class Data(BaseModel): corresponding to this row. """ - metrics: List[DNSAnalyticsNominalMetric] + metrics: List[object] """Array with one item per requested metric. Each item is an array of values, broken down by time interval. @@ -46,7 +44,7 @@ class ByTime(BaseModel): Currently always an empty object. """ - query: DNSAnalyticsQuery + query: object rows: float """Total number of rows in the result.""" diff --git a/src/cloudflare/types/dns/dns_analytics_nominal_metric.py b/src/cloudflare/types/dns/dns_analytics_nominal_metric.py deleted file mode 100644 index 32708b71c8b..00000000000 --- a/src/cloudflare/types/dns/dns_analytics_nominal_metric.py +++ /dev/null @@ -1,8 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import List -from typing_extensions import TypeAlias - -__all__ = ["DNSAnalyticsNominalMetric"] - -DNSAnalyticsNominalMetric: TypeAlias = List[object] diff --git a/src/cloudflare/types/dns/dns_analytics_query.py b/src/cloudflare/types/dns/dns_analytics_query.py deleted file mode 100644 index b1d886168e6..00000000000 --- a/src/cloudflare/types/dns/dns_analytics_query.py +++ /dev/null @@ -1,38 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import List, Optional -from datetime import datetime -from typing_extensions import Literal - -from ..._models import BaseModel - -__all__ = ["DNSAnalyticsQuery"] - - -class DNSAnalyticsQuery(BaseModel): - dimensions: List[str] - """Array of dimension names.""" - - limit: int - """Limit number of returned metrics.""" - - metrics: List[str] - """Array of metric names.""" - - since: datetime - """Start date and time of requesting data period in ISO 8601 format.""" - - time_delta: Literal["all", "auto", "year", "quarter", "month", "week", "day", "hour", "dekaminute", "minute"] - """Unit of time to group data by.""" - - until: datetime - """End date and time of requesting data period in ISO 8601 format.""" - - filters: Optional[str] = None - """Segmentation filter in 'attribute operator value' format.""" - - sort: Optional[List[str]] = None - """ - Array of dimensions to sort by, where each dimension may be prefixed by - - (descending) or + (ascending). - """ diff --git a/src/cloudflare/types/dns/zone_transfers/__init__.py b/src/cloudflare/types/dns/zone_transfers/__init__.py index 38aa6d40ad7..a79e3eef040 100644 --- a/src/cloudflare/types/dns/zone_transfers/__init__.py +++ b/src/cloudflare/types/dns/zone_transfers/__init__.py @@ -7,7 +7,6 @@ from .tsig import TSIG as TSIG from .force_axfr import ForceAXFR as ForceAXFR from .enable_transfer import EnableTransfer as EnableTransfer -from .outgoing_status import OutgoingStatus as OutgoingStatus from .disable_transfer import DisableTransfer as DisableTransfer from .acl_create_params import ACLCreateParams as ACLCreateParams from .acl_update_params import ACLUpdateParams as ACLUpdateParams diff --git a/src/cloudflare/types/dns/zone_transfers/incoming.py b/src/cloudflare/types/dns/zone_transfers/incoming.py index 726e5e41302..4722a4557ac 100644 --- a/src/cloudflare/types/dns/zone_transfers/incoming.py +++ b/src/cloudflare/types/dns/zone_transfers/incoming.py @@ -1,35 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import List, Optional - -from ...._models import BaseModel +from typing_extensions import TypeAlias __all__ = ["Incoming"] - -class Incoming(BaseModel): - id: Optional[str] = None - - auto_refresh_seconds: Optional[float] = None - """ - How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not - applicable for primary zones. - """ - - checked_time: Optional[str] = None - """The time for a specific event.""" - - created_time: Optional[str] = None - """The time for a specific event.""" - - modified_time: Optional[str] = None - """The time for a specific event.""" - - name: Optional[str] = None - """Zone name.""" - - peers: Optional[List[str]] = None - """A list of peer tags.""" - - soa_serial: Optional[float] = None - """The serial number of the SOA for the given zone.""" +Incoming: TypeAlias = object diff --git a/src/cloudflare/types/dns/zone_transfers/outgoing/outgoing.py b/src/cloudflare/types/dns/zone_transfers/outgoing/outgoing.py index bac651c175d..6ad4092a55f 100644 --- a/src/cloudflare/types/dns/zone_transfers/outgoing/outgoing.py +++ b/src/cloudflare/types/dns/zone_transfers/outgoing/outgoing.py @@ -1,29 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import List, Optional - -from ....._models import BaseModel +from typing_extensions import TypeAlias __all__ = ["Outgoing"] - -class Outgoing(BaseModel): - id: Optional[str] = None - - checked_time: Optional[str] = None - """The time for a specific event.""" - - created_time: Optional[str] = None - """The time for a specific event.""" - - last_transferred_time: Optional[str] = None - """The time for a specific event.""" - - name: Optional[str] = None - """Zone name.""" - - peers: Optional[List[str]] = None - """A list of peer tags.""" - - soa_serial: Optional[float] = None - """The serial number of the SOA for the given zone.""" +Outgoing: TypeAlias = object diff --git a/src/cloudflare/types/dns/zone_transfers/outgoing_status.py b/src/cloudflare/types/dns/zone_transfers/outgoing_status.py deleted file mode 100644 index f119a6242ef..00000000000 --- a/src/cloudflare/types/dns/zone_transfers/outgoing_status.py +++ /dev/null @@ -1,8 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional -from typing_extensions import TypeAlias - -__all__ = ["OutgoingStatus"] - -OutgoingStatus: TypeAlias = Optional[str] diff --git a/src/cloudflare/types/email_routing/dns_get_response.py b/src/cloudflare/types/email_routing/dns_get_response.py index 8abf95fa3cf..9aeec9d0633 100644 --- a/src/cloudflare/types/email_routing/dns_get_response.py +++ b/src/cloudflare/types/email_routing/dns_get_response.py @@ -5,7 +5,6 @@ from ..._models import BaseModel from .dns_record import DNSRecord -from ..shared.response_info import ResponseInfo __all__ = [ "DNSGetResponse", @@ -46,9 +45,9 @@ class EmailEmailRoutingDNSQueryResponseResultInfo(BaseModel): class EmailEmailRoutingDNSQueryResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" @@ -73,9 +72,9 @@ class EmailDNSSettingsResponseCollectionResultInfo(BaseModel): class EmailDNSSettingsResponseCollection(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/firewall/waf/package_get_response.py b/src/cloudflare/types/firewall/waf/package_get_response.py index 6c5fda24087..2c0a626194c 100644 --- a/src/cloudflare/types/firewall/waf/package_get_response.py +++ b/src/cloudflare/types/firewall/waf/package_get_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal, TypeAlias from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["PackageGetResponse", "FirewallAPIResponseSingle", "Result"] class FirewallAPIResponseSingle(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] result: Union[Optional[str], Optional[object]] diff --git a/src/cloudflare/types/firewall/waf/packages/__init__.py b/src/cloudflare/types/firewall/waf/packages/__init__.py index 27d9c57807f..13ef842b9ea 100644 --- a/src/cloudflare/types/firewall/waf/packages/__init__.py +++ b/src/cloudflare/types/firewall/waf/packages/__init__.py @@ -3,7 +3,6 @@ from __future__ import annotations from .group import Group as Group -from .waf_rule_group import WAFRuleGroup as WAFRuleGroup from .rule_edit_params import RuleEditParams as RuleEditParams from .rule_list_params import RuleListParams as RuleListParams from .group_edit_params import GroupEditParams as GroupEditParams diff --git a/src/cloudflare/types/firewall/waf/packages/rule_edit_response.py b/src/cloudflare/types/firewall/waf/packages/rule_edit_response.py index 5c264944220..1bdfb690ab1 100644 --- a/src/cloudflare/types/firewall/waf/packages/rule_edit_response.py +++ b/src/cloudflare/types/firewall/waf/packages/rule_edit_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal, TypeAlias from ....._models import BaseModel -from .waf_rule_group import WAFRuleGroup from .allowed_modes_anomaly import AllowedModesAnomaly __all__ = [ @@ -28,8 +27,7 @@ class WAFManagedRulesAnomalyRule(BaseModel): description: str """The public description of the WAF rule.""" - group: WAFRuleGroup - """The rule group to which the current WAF rule belongs.""" + group: object mode: AllowedModesAnomaly """When set to `on`, the current WAF rule will be used when evaluating the request. @@ -57,8 +55,7 @@ class WAFManagedRulesTraditionalDenyRule(BaseModel): description: str """The public description of the WAF rule.""" - group: WAFRuleGroup - """The rule group to which the current WAF rule belongs.""" + group: object mode: Literal["default", "disable", "simulate", "block", "challenge"] """The action that the current WAF rule will perform when triggered. @@ -83,8 +80,7 @@ class WAFManagedRulesTraditionalAllowRule(BaseModel): description: str """The public description of the WAF rule.""" - group: WAFRuleGroup - """The rule group to which the current WAF rule belongs.""" + group: object mode: Literal["on", "off"] """When set to `on`, the current rule will be used when evaluating the request. diff --git a/src/cloudflare/types/firewall/waf/packages/rule_list_response.py b/src/cloudflare/types/firewall/waf/packages/rule_list_response.py index fee3535524f..d84ca7e5c4c 100644 --- a/src/cloudflare/types/firewall/waf/packages/rule_list_response.py +++ b/src/cloudflare/types/firewall/waf/packages/rule_list_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal, TypeAlias from ....._models import BaseModel -from .waf_rule_group import WAFRuleGroup from .allowed_modes_anomaly import AllowedModesAnomaly __all__ = [ @@ -28,8 +27,7 @@ class WAFManagedRulesAnomalyRule(BaseModel): description: str """The public description of the WAF rule.""" - group: WAFRuleGroup - """The rule group to which the current WAF rule belongs.""" + group: object mode: AllowedModesAnomaly """When set to `on`, the current WAF rule will be used when evaluating the request. @@ -57,8 +55,7 @@ class WAFManagedRulesTraditionalDenyRule(BaseModel): description: str """The public description of the WAF rule.""" - group: WAFRuleGroup - """The rule group to which the current WAF rule belongs.""" + group: object mode: Literal["default", "disable", "simulate", "block", "challenge"] """The action that the current WAF rule will perform when triggered. @@ -83,8 +80,7 @@ class WAFManagedRulesTraditionalAllowRule(BaseModel): description: str """The public description of the WAF rule.""" - group: WAFRuleGroup - """The rule group to which the current WAF rule belongs.""" + group: object mode: Literal["on", "off"] """When set to `on`, the current rule will be used when evaluating the request. diff --git a/src/cloudflare/types/firewall/waf/packages/waf_rule_group.py b/src/cloudflare/types/firewall/waf/packages/waf_rule_group.py deleted file mode 100644 index 2ce0dcabcad..00000000000 --- a/src/cloudflare/types/firewall/waf/packages/waf_rule_group.py +++ /dev/null @@ -1,15 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ....._models import BaseModel - -__all__ = ["WAFRuleGroup"] - - -class WAFRuleGroup(BaseModel): - id: Optional[str] = None - """The unique identifier of the rule group.""" - - name: Optional[str] = None - """The name of the rule group.""" diff --git a/src/cloudflare/types/intel/attack_surface_report/issue_dismiss_response.py b/src/cloudflare/types/intel/attack_surface_report/issue_dismiss_response.py index b34d6246dec..b3da1c9de1d 100644 --- a/src/cloudflare/types/intel/attack_surface_report/issue_dismiss_response.py +++ b/src/cloudflare/types/intel/attack_surface_report/issue_dismiss_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["IssueDismissResponse"] class IssueDismissResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/intel/miscategorization_create_response.py b/src/cloudflare/types/intel/miscategorization_create_response.py index 273ee744016..2fa2cd95e5e 100644 --- a/src/cloudflare/types/intel/miscategorization_create_response.py +++ b/src/cloudflare/types/intel/miscategorization_create_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["MiscategorizationCreateResponse"] class MiscategorizationCreateResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/keyless_certificates/keyless_certificate_create_params.py b/src/cloudflare/types/keyless_certificates/keyless_certificate_create_params.py index eb5ac3a6285..b910097c294 100644 --- a/src/cloudflare/types/keyless_certificates/keyless_certificate_create_params.py +++ b/src/cloudflare/types/keyless_certificates/keyless_certificate_create_params.py @@ -5,7 +5,6 @@ from typing_extensions import Required, TypedDict from .tunnel_param import TunnelParam -from ..custom_hostnames.bundle_method import BundleMethod __all__ = ["KeylessCertificateCreateParams"] @@ -26,13 +25,7 @@ class KeylessCertificateCreateParams(TypedDict, total=False): Keyless SSL server. """ - bundle_method: BundleMethod - """ - 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. - """ + bundle_method: object name: str """The keyless SSL name.""" diff --git a/src/cloudflare/types/logpush/__init__.py b/src/cloudflare/types/logpush/__init__.py index f47e5fbcf8b..e43c3121f61 100644 --- a/src/cloudflare/types/logpush/__init__.py +++ b/src/cloudflare/types/logpush/__init__.py @@ -10,7 +10,6 @@ from .instant_logpush_job import InstantLogpushJob as InstantLogpushJob from .job_delete_response import JobDeleteResponse as JobDeleteResponse from .output_options_param import OutputOptionsParam as OutputOptionsParam -from .ownership_validation import OwnershipValidation as OwnershipValidation from .validate_origin_params import ValidateOriginParams as ValidateOriginParams from .ownership_create_params import OwnershipCreateParams as OwnershipCreateParams from .validate_origin_response import ValidateOriginResponse as ValidateOriginResponse diff --git a/src/cloudflare/types/logpush/ownership_validation.py b/src/cloudflare/types/logpush/ownership_validation.py deleted file mode 100644 index 7cd567a2f45..00000000000 --- a/src/cloudflare/types/logpush/ownership_validation.py +++ /dev/null @@ -1,11 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ..._models import BaseModel - -__all__ = ["OwnershipValidation"] - - -class OwnershipValidation(BaseModel): - valid: Optional[bool] = None diff --git a/src/cloudflare/types/magic_transit/__init__.py b/src/cloudflare/types/magic_transit/__init__.py index 26a12934156..a6d9096d103 100644 --- a/src/cloudflare/types/magic_transit/__init__.py +++ b/src/cloudflare/types/magic_transit/__init__.py @@ -15,8 +15,6 @@ from .app_create_params import AppCreateParams as AppCreateParams from .app_list_response import AppListResponse as AppListResponse from .app_update_params import AppUpdateParams as AppUpdateParams -from .health_check_rate import HealthCheckRate as HealthCheckRate -from .health_check_type import HealthCheckType as HealthCheckType from .pcap_filter_param import PCAPFilterParam as PCAPFilterParam from .pcap_get_response import PCAPGetResponse as PCAPGetResponse from .health_check_param import HealthCheckParam as HealthCheckParam diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_bulk_update_response.py b/src/cloudflare/types/magic_transit/gre_tunnel_bulk_update_response.py index 5ee74bdd932..22e54a86d2d 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_bulk_update_response.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_bulk_update_response.py @@ -5,8 +5,6 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = [ "GRETunnelBulkUpdateResponse", @@ -48,8 +46,7 @@ class ModifiedGRETunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[ModifiedGRETunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -63,8 +60,7 @@ class ModifiedGRETunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None class ModifiedGRETunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_create_response.py b/src/cloudflare/types/magic_transit/gre_tunnel_create_response.py index 18ae90d4d78..869b83cf4dc 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_create_response.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_create_response.py @@ -5,8 +5,6 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = [ "GRETunnelCreateResponse", @@ -48,8 +46,7 @@ class GRETunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[GRETunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -63,8 +60,7 @@ class GRETunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None class GRETunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_delete_response.py b/src/cloudflare/types/magic_transit/gre_tunnel_delete_response.py index 29a925b3e8b..f105f40d90c 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_delete_response.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_delete_response.py @@ -5,8 +5,6 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = [ "GRETunnelDeleteResponse", @@ -48,8 +46,7 @@ class DeletedGRETunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[DeletedGRETunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -63,8 +60,7 @@ class DeletedGRETunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None class DeletedGRETunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_get_response.py b/src/cloudflare/types/magic_transit/gre_tunnel_get_response.py index b24a3914472..95ed71dea08 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_get_response.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_get_response.py @@ -5,8 +5,6 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = [ "GRETunnelGetResponse", @@ -48,8 +46,7 @@ class GRETunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[GRETunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -63,8 +60,7 @@ class GRETunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None class GRETunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_list_response.py b/src/cloudflare/types/magic_transit/gre_tunnel_list_response.py index 3f9875dc4c8..ed95d686983 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_list_response.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_list_response.py @@ -5,8 +5,6 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = [ "GRETunnelListResponse", @@ -48,8 +46,7 @@ class GRETunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[GRETunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -63,8 +60,7 @@ class GRETunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None class GRETunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_update_params.py b/src/cloudflare/types/magic_transit/gre_tunnel_update_params.py index edd75736135..99d8aeb655c 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_update_params.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_update_params.py @@ -6,8 +6,6 @@ from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict from ..._utils import PropertyInfo -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = ["GRETunnelUpdateParams", "HealthCheck", "HealthCheckTarget", "HealthCheckTargetMagicHealthCheckTarget"] @@ -77,8 +75,7 @@ class HealthCheck(TypedDict, total=False): enabled: bool """Determines whether to run healthchecks for a tunnel.""" - rate: HealthCheckRate - """How frequent the health check is run. The default value is `mid`.""" + rate: object target: HealthCheckTarget """The destination address in a request type health check. @@ -92,5 +89,4 @@ class HealthCheck(TypedDict, total=False): x-magic-new-hc-target is absent or set to false. """ - type: HealthCheckType - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: object diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_update_response.py b/src/cloudflare/types/magic_transit/gre_tunnel_update_response.py index 2385e24f5c8..10a6e596cfa 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_update_response.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_update_response.py @@ -5,8 +5,6 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = [ "GRETunnelUpdateResponse", @@ -48,8 +46,7 @@ class ModifiedGRETunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[ModifiedGRETunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -63,8 +60,7 @@ class ModifiedGRETunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None class ModifiedGRETunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/health_check.py b/src/cloudflare/types/magic_transit/health_check.py index 6ee301b8764..deadbd7c13c 100644 --- a/src/cloudflare/types/magic_transit/health_check.py +++ b/src/cloudflare/types/magic_transit/health_check.py @@ -4,8 +4,6 @@ from typing_extensions import TypeAlias from ..._models import BaseModel -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = ["HealthCheck", "Target", "TargetMagicHealthCheckTarget"] @@ -33,8 +31,7 @@ class HealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[Target] = None """The destination address in a request type health check. @@ -48,5 +45,4 @@ class HealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None diff --git a/src/cloudflare/types/magic_transit/health_check_param.py b/src/cloudflare/types/magic_transit/health_check_param.py index 6b84332a674..0835e0988ca 100644 --- a/src/cloudflare/types/magic_transit/health_check_param.py +++ b/src/cloudflare/types/magic_transit/health_check_param.py @@ -5,9 +5,6 @@ from typing import Union from typing_extensions import TypeAlias, TypedDict -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType - __all__ = ["HealthCheckParam", "Target", "TargetMagicHealthCheckTarget"] @@ -27,8 +24,7 @@ class HealthCheckParam(TypedDict, total=False): enabled: bool """Determines whether to run healthchecks for a tunnel.""" - rate: HealthCheckRate - """How frequent the health check is run. The default value is `mid`.""" + rate: object target: Target """The destination address in a request type health check. @@ -42,5 +38,4 @@ class HealthCheckParam(TypedDict, total=False): x-magic-new-hc-target is absent or set to false. """ - type: HealthCheckType - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: object diff --git a/src/cloudflare/types/magic_transit/health_check_rate.py b/src/cloudflare/types/magic_transit/health_check_rate.py deleted file mode 100644 index f774ffc5d70..00000000000 --- a/src/cloudflare/types/magic_transit/health_check_rate.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["HealthCheckRate"] - -HealthCheckRate: TypeAlias = Literal["low", "mid", "high"] diff --git a/src/cloudflare/types/magic_transit/health_check_type.py b/src/cloudflare/types/magic_transit/health_check_type.py deleted file mode 100644 index 27197fa13dc..00000000000 --- a/src/cloudflare/types/magic_transit/health_check_type.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["HealthCheckType"] - -HealthCheckType: TypeAlias = Literal["reply", "request"] diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_bulk_update_response.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_bulk_update_response.py index 107d0ce5fa5..22f85f2cf2a 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_bulk_update_response.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_bulk_update_response.py @@ -6,8 +6,6 @@ from ..._models import BaseModel from .psk_metadata import PSKMetadata -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = [ "IPSECTunnelBulkUpdateResponse", @@ -49,8 +47,7 @@ class ModifiedIPSECTunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[ModifiedIPSECTunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -64,8 +61,7 @@ class ModifiedIPSECTunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None class ModifiedIPSECTunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_create_params.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_create_params.py index d7927be7bb0..fa46b3e4994 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_create_params.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_create_params.py @@ -6,8 +6,6 @@ from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict from ..._utils import PropertyInfo -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = ["IPSECTunnelCreateParams", "HealthCheck", "HealthCheckTarget", "HealthCheckTargetMagicHealthCheckTarget"] @@ -76,8 +74,7 @@ class HealthCheck(TypedDict, total=False): enabled: bool """Determines whether to run healthchecks for a tunnel.""" - rate: HealthCheckRate - """How frequent the health check is run. The default value is `mid`.""" + rate: object target: HealthCheckTarget """The destination address in a request type health check. @@ -91,5 +88,4 @@ class HealthCheck(TypedDict, total=False): x-magic-new-hc-target is absent or set to false. """ - type: HealthCheckType - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: object diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_create_response.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_create_response.py index d440344600e..1cabdceb364 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_create_response.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_create_response.py @@ -6,8 +6,6 @@ from ..._models import BaseModel from .psk_metadata import PSKMetadata -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = [ "IPSECTunnelCreateResponse", @@ -49,8 +47,7 @@ class IPSECTunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[IPSECTunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -64,8 +61,7 @@ class IPSECTunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None class IPSECTunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_delete_response.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_delete_response.py index 0cd970bdc87..aa692cd372e 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_delete_response.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_delete_response.py @@ -6,8 +6,6 @@ from ..._models import BaseModel from .psk_metadata import PSKMetadata -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = [ "IPSECTunnelDeleteResponse", @@ -49,8 +47,7 @@ class DeletedIPSECTunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[DeletedIPSECTunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -64,8 +61,7 @@ class DeletedIPSECTunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None class DeletedIPSECTunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_get_response.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_get_response.py index fc13896b9d7..132930085a3 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_get_response.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_get_response.py @@ -6,8 +6,6 @@ from ..._models import BaseModel from .psk_metadata import PSKMetadata -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = [ "IPSECTunnelGetResponse", @@ -49,8 +47,7 @@ class IPSECTunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[IPSECTunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -64,8 +61,7 @@ class IPSECTunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None class IPSECTunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_list_response.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_list_response.py index cf265a4c810..5a9a02bcab5 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_list_response.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_list_response.py @@ -6,8 +6,6 @@ from ..._models import BaseModel from .psk_metadata import PSKMetadata -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = [ "IPSECTunnelListResponse", @@ -49,8 +47,7 @@ class IPSECTunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[IPSECTunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -64,8 +61,7 @@ class IPSECTunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None class IPSECTunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_update_params.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_update_params.py index ee3fbf9d4ba..7ff6d8fbbe2 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_update_params.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_update_params.py @@ -6,8 +6,6 @@ from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict from ..._utils import PropertyInfo -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = ["IPSECTunnelUpdateParams", "HealthCheck", "HealthCheckTarget", "HealthCheckTargetMagicHealthCheckTarget"] @@ -76,8 +74,7 @@ class HealthCheck(TypedDict, total=False): enabled: bool """Determines whether to run healthchecks for a tunnel.""" - rate: HealthCheckRate - """How frequent the health check is run. The default value is `mid`.""" + rate: object target: HealthCheckTarget """The destination address in a request type health check. @@ -91,5 +88,4 @@ class HealthCheck(TypedDict, total=False): x-magic-new-hc-target is absent or set to false. """ - type: HealthCheckType - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: object diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_update_response.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_update_response.py index ffe42e6143f..e52a5ff48cd 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_update_response.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_update_response.py @@ -6,8 +6,6 @@ from ..._models import BaseModel from .psk_metadata import PSKMetadata -from .health_check_rate import HealthCheckRate -from .health_check_type import HealthCheckType __all__ = [ "IPSECTunnelUpdateResponse", @@ -49,8 +47,7 @@ class ModifiedIPSECTunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[HealthCheckRate] = None - """How frequent the health check is run. The default value is `mid`.""" + rate: Optional[object] = None target: Optional[ModifiedIPSECTunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -64,8 +61,7 @@ class ModifiedIPSECTunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[HealthCheckType] = None - """The type of healthcheck to run, reply or request. The default value is `reply`.""" + type: Optional[object] = None class ModifiedIPSECTunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/sites/__init__.py b/src/cloudflare/types/magic_transit/sites/__init__.py index cdf0ff32712..d739cd7eb83 100644 --- a/src/cloudflare/types/magic_transit/sites/__init__.py +++ b/src/cloudflare/types/magic_transit/sites/__init__.py @@ -14,7 +14,6 @@ from .acl_edit_params import ACLEditParams as ACLEditParams from .lan_edit_params import LANEditParams as LANEditParams from .wan_edit_params import WANEditParams as WANEditParams -from .allowed_protocol import AllowedProtocol as AllowedProtocol from .dhcp_relay_param import DHCPRelayParam as DHCPRelayParam from .acl_configuration import ACLConfiguration as ACLConfiguration from .acl_create_params import ACLCreateParams as ACLCreateParams diff --git a/src/cloudflare/types/magic_transit/sites/acl.py b/src/cloudflare/types/magic_transit/sites/acl.py index 41429544d0f..50f8550fb87 100644 --- a/src/cloudflare/types/magic_transit/sites/acl.py +++ b/src/cloudflare/types/magic_transit/sites/acl.py @@ -3,7 +3,6 @@ from typing import List, Optional from ...._models import BaseModel -from .allowed_protocol import AllowedProtocol from .acl_configuration import ACLConfiguration __all__ = ["ACL"] @@ -31,7 +30,7 @@ class ACL(BaseModel): name: Optional[str] = None """The name of the ACL.""" - protocols: Optional[List[AllowedProtocol]] = None + protocols: Optional[List[object]] = None unidirectional: Optional[bool] = None """The desired traffic direction for this ACL policy. diff --git a/src/cloudflare/types/magic_transit/sites/acl_create_params.py b/src/cloudflare/types/magic_transit/sites/acl_create_params.py index c193c6d556c..30e844cd7f5 100644 --- a/src/cloudflare/types/magic_transit/sites/acl_create_params.py +++ b/src/cloudflare/types/magic_transit/sites/acl_create_params.py @@ -2,10 +2,9 @@ from __future__ import annotations -from typing import List +from typing import Iterable from typing_extensions import Required, TypedDict -from .allowed_protocol import AllowedProtocol from .acl_configuration_param import ACLConfigurationParam __all__ = ["ACLCreateParams"] @@ -33,7 +32,7 @@ class ACLCreateParams(TypedDict, total=False): included in request, will default to false. """ - protocols: List[AllowedProtocol] + protocols: Iterable[object] unidirectional: bool """The desired traffic direction for this ACL policy. diff --git a/src/cloudflare/types/magic_transit/sites/acl_edit_params.py b/src/cloudflare/types/magic_transit/sites/acl_edit_params.py index 3280bbe53b2..d51577abd3c 100644 --- a/src/cloudflare/types/magic_transit/sites/acl_edit_params.py +++ b/src/cloudflare/types/magic_transit/sites/acl_edit_params.py @@ -2,10 +2,9 @@ from __future__ import annotations -from typing import List +from typing import Iterable from typing_extensions import Required, TypedDict -from .allowed_protocol import AllowedProtocol from .acl_configuration_param import ACLConfigurationParam __all__ = ["ACLEditParams"] @@ -36,7 +35,7 @@ class ACLEditParams(TypedDict, total=False): name: str """The name of the ACL.""" - protocols: List[AllowedProtocol] + protocols: Iterable[object] unidirectional: bool """The desired traffic direction for this ACL policy. diff --git a/src/cloudflare/types/magic_transit/sites/acl_update_params.py b/src/cloudflare/types/magic_transit/sites/acl_update_params.py index 250ed85c126..42e7fb3fb35 100644 --- a/src/cloudflare/types/magic_transit/sites/acl_update_params.py +++ b/src/cloudflare/types/magic_transit/sites/acl_update_params.py @@ -2,10 +2,9 @@ from __future__ import annotations -from typing import List +from typing import Iterable from typing_extensions import Required, TypedDict -from .allowed_protocol import AllowedProtocol from .acl_configuration_param import ACLConfigurationParam __all__ = ["ACLUpdateParams"] @@ -36,7 +35,7 @@ class ACLUpdateParams(TypedDict, total=False): name: str """The name of the ACL.""" - protocols: List[AllowedProtocol] + protocols: Iterable[object] unidirectional: bool """The desired traffic direction for this ACL policy. diff --git a/src/cloudflare/types/magic_transit/sites/allowed_protocol.py b/src/cloudflare/types/magic_transit/sites/allowed_protocol.py deleted file mode 100644 index 076a921f069..00000000000 --- a/src/cloudflare/types/magic_transit/sites/allowed_protocol.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["AllowedProtocol"] - -AllowedProtocol: TypeAlias = Literal["tcp", "udp", "icmp"] diff --git a/src/cloudflare/types/origin_post_quantum_encryption/__init__.py b/src/cloudflare/types/origin_post_quantum_encryption/__init__.py index 31525d2b891..0c34922d5b1 100644 --- a/src/cloudflare/types/origin_post_quantum_encryption/__init__.py +++ b/src/cloudflare/types/origin_post_quantum_encryption/__init__.py @@ -2,12 +2,6 @@ from __future__ import annotations -from .origin_post_quantum_encryption_get_response import ( - OriginPostQuantumEncryptionGetResponse as OriginPostQuantumEncryptionGetResponse, -) from .origin_post_quantum_encryption_update_params import ( OriginPostQuantumEncryptionUpdateParams as OriginPostQuantumEncryptionUpdateParams, ) -from .origin_post_quantum_encryption_update_response import ( - OriginPostQuantumEncryptionUpdateResponse as OriginPostQuantumEncryptionUpdateResponse, -) diff --git a/src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_get_response.py b/src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_get_response.py deleted file mode 100644 index 160be05baa8..00000000000 --- a/src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_get_response.py +++ /dev/null @@ -1,23 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional -from datetime import datetime -from typing_extensions import Literal - -from ..._models import BaseModel - -__all__ = ["OriginPostQuantumEncryptionGetResponse"] - - -class OriginPostQuantumEncryptionGetResponse(BaseModel): - id: Literal["origin_pqe"] - """Value of the zone setting.""" - - editable: bool - """Whether the setting is editable""" - - value: Literal["preferred", "supported", "off"] - """The value of the feature""" - - modified_on: Optional[datetime] = None - """Last time this setting was modified.""" diff --git a/src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_update_response.py b/src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_update_response.py deleted file mode 100644 index f2ec8775f16..00000000000 --- a/src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_update_response.py +++ /dev/null @@ -1,23 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional -from datetime import datetime -from typing_extensions import Literal - -from ..._models import BaseModel - -__all__ = ["OriginPostQuantumEncryptionUpdateResponse"] - - -class OriginPostQuantumEncryptionUpdateResponse(BaseModel): - id: Literal["origin_pqe"] - """Value of the zone setting.""" - - editable: bool - """Whether the setting is editable""" - - value: Literal["preferred", "supported", "off"] - """The value of the feature""" - - modified_on: Optional[datetime] = None - """Last time this setting was modified.""" diff --git a/src/cloudflare/types/queues/consumer_delete_response.py b/src/cloudflare/types/queues/consumer_delete_response.py index 7de9b984436..fe659a7521a 100644 --- a/src/cloudflare/types/queues/consumer_delete_response.py +++ b/src/cloudflare/types/queues/consumer_delete_response.py @@ -4,13 +4,12 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["ConsumerDeleteResponse"] class ConsumerDeleteResponse(BaseModel): - errors: Optional[List[ResponseInfo]] = None + errors: Optional[List[object]] = None messages: Optional[List[str]] = None diff --git a/src/cloudflare/types/queues/queue_delete_response.py b/src/cloudflare/types/queues/queue_delete_response.py index 91079074b40..f3d55971ff2 100644 --- a/src/cloudflare/types/queues/queue_delete_response.py +++ b/src/cloudflare/types/queues/queue_delete_response.py @@ -4,13 +4,12 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["QueueDeleteResponse"] class QueueDeleteResponse(BaseModel): - errors: Optional[List[ResponseInfo]] = None + errors: Optional[List[object]] = None messages: Optional[List[str]] = None diff --git a/src/cloudflare/types/r2/buckets/__init__.py b/src/cloudflare/types/r2/buckets/__init__.py index a0dd48f75d5..6601cfcf0f1 100644 --- a/src/cloudflare/types/r2/buckets/__init__.py +++ b/src/cloudflare/types/r2/buckets/__init__.py @@ -3,7 +3,6 @@ from __future__ import annotations from .sippy import Sippy as Sippy -from .provider import Provider as Provider from .cors_get_response import CORSGetResponse as CORSGetResponse from .lock_get_response import LockGetResponse as LockGetResponse from .cors_update_params import CORSUpdateParams as CORSUpdateParams diff --git a/src/cloudflare/types/r2/buckets/provider.py b/src/cloudflare/types/r2/buckets/provider.py deleted file mode 100644 index 45eb13e5c2c..00000000000 --- a/src/cloudflare/types/r2/buckets/provider.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["Provider"] - -Provider: TypeAlias = Literal["r2"] diff --git a/src/cloudflare/types/r2/buckets/sippy.py b/src/cloudflare/types/r2/buckets/sippy.py index 2663810b71e..c0790619517 100644 --- a/src/cloudflare/types/r2/buckets/sippy.py +++ b/src/cloudflare/types/r2/buckets/sippy.py @@ -5,7 +5,6 @@ from pydantic import Field as FieldInfo -from .provider import Provider from ...._models import BaseModel __all__ = ["Sippy", "Destination", "Source"] @@ -20,7 +19,7 @@ class Destination(BaseModel): bucket: Optional[str] = None """Name of the bucket on the provider""" - provider: Optional[Provider] = None + provider: Optional[object] = None class Source(BaseModel): diff --git a/src/cloudflare/types/r2/buckets/sippy_update_params.py b/src/cloudflare/types/r2/buckets/sippy_update_params.py index b260ff4a373..7e55ef798ed 100644 --- a/src/cloudflare/types/r2/buckets/sippy_update_params.py +++ b/src/cloudflare/types/r2/buckets/sippy_update_params.py @@ -5,7 +5,6 @@ from typing import Union from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict -from .provider import Provider from ...._utils import PropertyInfo __all__ = [ @@ -44,7 +43,7 @@ class R2EnableSippyAwsDestination(TypedDict, total=False): this token to the bucket you're enabling Sippy for. """ - provider: Provider + provider: object secret_access_key: Annotated[str, PropertyInfo(alias="secretAccessKey")] """ @@ -98,7 +97,7 @@ class R2EnableSippyGcsDestination(TypedDict, total=False): this token to the bucket you're enabling Sippy for. """ - provider: Provider + provider: object secret_access_key: Annotated[str, PropertyInfo(alias="secretAccessKey")] """ diff --git a/src/cloudflare/types/radar/__init__.py b/src/cloudflare/types/radar/__init__.py index d2ee6584473..3a8ff07c6e0 100644 --- a/src/cloudflare/types/radar/__init__.py +++ b/src/cloudflare/types/radar/__init__.py @@ -3,11 +3,9 @@ from __future__ import annotations from .entity_get_params import EntityGetParams as EntityGetParams -from .radar_email_series import RadarEmailSeries as RadarEmailSeries from .ranking_top_params import RankingTopParams as RankingTopParams from .dataset_list_params import DatasetListParams as DatasetListParams from .entity_get_response import EntityGetResponse as EntityGetResponse -from .radar_email_summary import RadarEmailSummary as RadarEmailSummary from .dataset_get_response import DatasetGetResponse as DatasetGetResponse from .ranking_top_response import RankingTopResponse as RankingTopResponse from .search_global_params import SearchGlobalParams as SearchGlobalParams diff --git a/src/cloudflare/types/radar/ai/bots/summary_user_agent_response.py b/src/cloudflare/types/radar/ai/bots/summary_user_agent_response.py index d47ce220214..453376c23bb 100644 --- a/src/cloudflare/types/radar/ai/bots/summary_user_agent_response.py +++ b/src/cloudflare/types/radar/ai/bots/summary_user_agent_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryUserAgentResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryUserAgentResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/ai/inference/summary_model_response.py b/src/cloudflare/types/radar/ai/inference/summary_model_response.py index 7aa2499b888..5f915581605 100644 --- a/src/cloudflare/types/radar/ai/inference/summary_model_response.py +++ b/src/cloudflare/types/radar/ai/inference/summary_model_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryModelResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryModelResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/ai/inference/summary_task_response.py b/src/cloudflare/types/radar/ai/inference/summary_task_response.py index c8b34b40a03..abcba9c15c9 100644 --- a/src/cloudflare/types/radar/ai/inference/summary_task_response.py +++ b/src/cloudflare/types/radar/ai/inference/summary_task_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryTaskResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryTaskResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_model_response.py b/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_model_response.py index 8dc1979f7db..3a2e16e2140 100644 --- a/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_model_response.py +++ b/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_model_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ......_models import BaseModel -__all__ = ["SummaryModelResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["SummaryModelResponse"] class SummaryModelResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_task_response.py b/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_task_response.py index 0d8ef99e7c8..ee6740b5b45 100644 --- a/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_task_response.py +++ b/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_task_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ......_models import BaseModel -__all__ = ["SummaryTaskResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["SummaryTaskResponse"] class SummaryTaskResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/ai/timeseries_group_user_agent_response.py b/src/cloudflare/types/radar/ai/timeseries_group_user_agent_response.py index e84aab4ab60..f419d4a81b9 100644 --- a/src/cloudflare/types/radar/ai/timeseries_group_user_agent_response.py +++ b/src/cloudflare/types/radar/ai/timeseries_group_user_agent_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupUserAgentResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupUserAgentResponse"] class TimeseriesGroupUserAgentResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/annotation_list_response.py b/src/cloudflare/types/radar/annotation_list_response.py index 859a2a08081..5cb667f63c8 100644 --- a/src/cloudflare/types/radar/annotation_list_response.py +++ b/src/cloudflare/types/radar/annotation_list_response.py @@ -6,20 +6,7 @@ from ..._models import BaseModel -__all__ = [ - "AnnotationListResponse", - "Annotation", - "AnnotationASNsDetail", - "AnnotationASNsDetailLocations", - "AnnotationLocationsDetail", - "AnnotationOutage", -] - - -class AnnotationASNsDetailLocations(BaseModel): - code: str - - name: str +__all__ = ["AnnotationListResponse", "Annotation", "AnnotationASNsDetail", "AnnotationOutage"] class AnnotationASNsDetail(BaseModel): @@ -27,13 +14,7 @@ class AnnotationASNsDetail(BaseModel): name: str - locations: Optional[AnnotationASNsDetailLocations] = None - - -class AnnotationLocationsDetail(BaseModel): - code: str - - name: str + locations: Optional[object] = None class AnnotationOutage(BaseModel): @@ -55,7 +36,7 @@ class Annotation(BaseModel): locations: List[str] - locations_details: List[AnnotationLocationsDetail] = FieldInfo(alias="locationsDetails") + locations_details: List[object] = FieldInfo(alias="locationsDetails") outage: AnnotationOutage diff --git a/src/cloudflare/types/radar/annotations/outage_get_response.py b/src/cloudflare/types/radar/annotations/outage_get_response.py index a849b72fd21..2c0a0a8429e 100644 --- a/src/cloudflare/types/radar/annotations/outage_get_response.py +++ b/src/cloudflare/types/radar/annotations/outage_get_response.py @@ -6,20 +6,7 @@ from ...._models import BaseModel -__all__ = [ - "OutageGetResponse", - "Annotation", - "AnnotationASNsDetail", - "AnnotationASNsDetailLocations", - "AnnotationLocationsDetail", - "AnnotationOutage", -] - - -class AnnotationASNsDetailLocations(BaseModel): - code: str - - name: str +__all__ = ["OutageGetResponse", "Annotation", "AnnotationASNsDetail", "AnnotationOutage"] class AnnotationASNsDetail(BaseModel): @@ -27,13 +14,7 @@ class AnnotationASNsDetail(BaseModel): name: str - locations: Optional[AnnotationASNsDetailLocations] = None - - -class AnnotationLocationsDetail(BaseModel): - code: str - - name: str + locations: Optional[object] = None class AnnotationOutage(BaseModel): @@ -55,7 +36,7 @@ class Annotation(BaseModel): locations: List[str] - locations_details: List[AnnotationLocationsDetail] = FieldInfo(alias="locationsDetails") + locations_details: List[object] = FieldInfo(alias="locationsDetails") outage: AnnotationOutage diff --git a/src/cloudflare/types/radar/annotations/outage_locations_response.py b/src/cloudflare/types/radar/annotations/outage_locations_response.py index b175087e150..edb2fafdfb6 100644 --- a/src/cloudflare/types/radar/annotations/outage_locations_response.py +++ b/src/cloudflare/types/radar/annotations/outage_locations_response.py @@ -2,20 +2,10 @@ from typing import List -from pydantic import Field as FieldInfo - from ...._models import BaseModel -__all__ = ["OutageLocationsResponse", "Annotation"] - - -class Annotation(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str +__all__ = ["OutageLocationsResponse"] class OutageLocationsResponse(BaseModel): - annotations: List[Annotation] + annotations: List[object] diff --git a/src/cloudflare/types/radar/as112/summary_dnssec_response.py b/src/cloudflare/types/radar/as112/summary_dnssec_response.py index b692d28f07f..1ba928032bb 100644 --- a/src/cloudflare/types/radar/as112/summary_dnssec_response.py +++ b/src/cloudflare/types/radar/as112/summary_dnssec_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryDNSSECResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryDNSSECResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/as112/summary_edns_response.py b/src/cloudflare/types/radar/as112/summary_edns_response.py index 48ca7517798..58696afab09 100644 --- a/src/cloudflare/types/radar/as112/summary_edns_response.py +++ b/src/cloudflare/types/radar/as112/summary_edns_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryEdnsResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryEdnsResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/as112/summary_ip_version_response.py b/src/cloudflare/types/radar/as112/summary_ip_version_response.py index 6286c80dc1d..9da143e15ec 100644 --- a/src/cloudflare/types/radar/as112/summary_ip_version_response.py +++ b/src/cloudflare/types/radar/as112/summary_ip_version_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryIPVersionResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryIPVersionResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -57,13 +25,7 @@ class Meta(BaseModel): confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Summary0(BaseModel): - i_pv4: str = FieldInfo(alias="IPv4") - - i_pv6: str = FieldInfo(alias="IPv6") - - class SummaryIPVersionResponse(BaseModel): meta: Meta - summary_0: Summary0 + summary_0: object diff --git a/src/cloudflare/types/radar/as112/summary_protocol_response.py b/src/cloudflare/types/radar/as112/summary_protocol_response.py index b75c6a52eb9..ca33cf63608 100644 --- a/src/cloudflare/types/radar/as112/summary_protocol_response.py +++ b/src/cloudflare/types/radar/as112/summary_protocol_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryProtocolResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryProtocolResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/as112/summary_query_type_response.py b/src/cloudflare/types/radar/as112/summary_query_type_response.py index 87baa9cd63b..ccbbd6b44ce 100644 --- a/src/cloudflare/types/radar/as112/summary_query_type_response.py +++ b/src/cloudflare/types/radar/as112/summary_query_type_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryQueryTypeResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryQueryTypeResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/as112/summary_response_codes_response.py b/src/cloudflare/types/radar/as112/summary_response_codes_response.py index f4e19fe4238..5fedce87d5f 100644 --- a/src/cloudflare/types/radar/as112/summary_response_codes_response.py +++ b/src/cloudflare/types/radar/as112/summary_response_codes_response.py @@ -1,53 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryResponseCodesResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryResponseCodesResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/as112/timeseries_group_query_type_response.py b/src/cloudflare/types/radar/as112/timeseries_group_query_type_response.py index b63a9d54cbb..edc3bd2dee6 100644 --- a/src/cloudflare/types/radar/as112/timeseries_group_query_type_response.py +++ b/src/cloudflare/types/radar/as112/timeseries_group_query_type_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupQueryTypeResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupQueryTypeResponse"] class TimeseriesGroupQueryTypeResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/as112/timeseries_group_response_codes_response.py b/src/cloudflare/types/radar/as112/timeseries_group_response_codes_response.py index 4b8af3b157c..9441858d9df 100644 --- a/src/cloudflare/types/radar/as112/timeseries_group_response_codes_response.py +++ b/src/cloudflare/types/radar/as112/timeseries_group_response_codes_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupResponseCodesResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupResponseCodesResponse"] class TimeseriesGroupResponseCodesResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/as112/top_dnssec_response.py b/src/cloudflare/types/radar/as112/top_dnssec_response.py index a911d0d50b3..b67452d0e40 100644 --- a/src/cloudflare/types/radar/as112/top_dnssec_response.py +++ b/src/cloudflare/types/radar/as112/top_dnssec_response.py @@ -1,62 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopDNSSECResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopDNSSECResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class TopDNSSECResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/as112/top_edns_response.py b/src/cloudflare/types/radar/as112/top_edns_response.py index 208c881c579..45fa3dd42d7 100644 --- a/src/cloudflare/types/radar/as112/top_edns_response.py +++ b/src/cloudflare/types/radar/as112/top_edns_response.py @@ -1,62 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopEdnsResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopEdnsResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class TopEdnsResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/as112/top_ip_version_response.py b/src/cloudflare/types/radar/as112/top_ip_version_response.py index 3b48dfa0ca0..4c58d705315 100644 --- a/src/cloudflare/types/radar/as112/top_ip_version_response.py +++ b/src/cloudflare/types/radar/as112/top_ip_version_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "TopIPVersionResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopIPVersionResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class TopIPVersionResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/as112/top_locations_response.py b/src/cloudflare/types/radar/as112/top_locations_response.py index 671c3284576..bcfbd64a131 100644 --- a/src/cloudflare/types/radar/as112/top_locations_response.py +++ b/src/cloudflare/types/radar/as112/top_locations_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "TopLocationsResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopLocationsResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class TopLocationsResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/as112_timeseries_response.py b/src/cloudflare/types/radar/as112_timeseries_response.py index 3664bedad75..816fd7aaf7d 100644 --- a/src/cloudflare/types/radar/as112_timeseries_response.py +++ b/src/cloudflare/types/radar/as112_timeseries_response.py @@ -7,42 +7,11 @@ from ..._models import BaseModel -__all__ = [ - "AS112TimeseriesResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Serie0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["AS112TimeseriesResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None @@ -50,20 +19,14 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Serie0(BaseModel): - timestamps: List[datetime] - - values: List[str] - - class AS112TimeseriesResponse(BaseModel): meta: Meta - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_bitrate_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_bitrate_response.py index b04e158c215..fe4fafebcd7 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_bitrate_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_bitrate_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummaryBitrateResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryBitrateResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_duration_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_duration_response.py index a08fb88a43b..867dcdc32b8 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_duration_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_duration_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummaryDurationResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryDurationResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_industry_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_industry_response.py index de252763039..6dead61b0ad 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_industry_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_industry_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryIndustryResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryIndustryResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_ip_version_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_ip_version_response.py index e1a3995c7e5..3514893d056 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_ip_version_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_ip_version_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummaryIPVersionResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryIPVersionResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -57,13 +25,7 @@ class Meta(BaseModel): confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Summary0(BaseModel): - i_pv4: str = FieldInfo(alias="IPv4") - - i_pv6: str = FieldInfo(alias="IPv6") - - class SummaryIPVersionResponse(BaseModel): meta: Meta - summary_0: Summary0 + summary_0: object diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_protocol_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_protocol_response.py index 7d749df3a2a..9bc9f8f0642 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_protocol_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_protocol_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummaryProtocolResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryProtocolResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_vector_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_vector_response.py index 7dd4becaf4b..87590e1f0b6 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_vector_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_vector_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryVectorResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryVectorResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_vertical_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_vertical_response.py index d2cdd169f86..ce4b31acfd2 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_vertical_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_vertical_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryVerticalResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryVerticalResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_industry_response.py b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_industry_response.py index 2751b1e138f..7b8a3631f2c 100644 --- a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_industry_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_industry_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupIndustryResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupIndustryResponse"] class TimeseriesGroupIndustryResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_ip_version_response.py b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_ip_version_response.py index 136fc4da363..f4f4f4239e1 100644 --- a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_ip_version_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_ip_version_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import List - -from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TimeseriesGroupIPVersionResponse", "Serie0"] - - -class Serie0(BaseModel): - i_pv4: List[str] = FieldInfo(alias="IPv4") - - i_pv6: List[str] = FieldInfo(alias="IPv6") - - timestamps: List[str] +__all__ = ["TimeseriesGroupIPVersionResponse"] class TimeseriesGroupIPVersionResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vector_response.py b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vector_response.py index 383d68a5182..17268818053 100644 --- a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vector_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vector_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupVectorResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupVectorResponse"] class TimeseriesGroupVectorResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vertical_response.py b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vertical_response.py index 5b185a2edda..7ea651a721b 100644 --- a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vertical_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vertical_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupVerticalResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupVerticalResponse"] class TimeseriesGroupVerticalResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/attacks/layer3/top/location_origin_response.py b/src/cloudflare/types/radar/attacks/layer3/top/location_origin_response.py index 102661bf56a..6b3d80e60a5 100644 --- a/src/cloudflare/types/radar/attacks/layer3/top/location_origin_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/top/location_origin_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ......_models import BaseModel -__all__ = [ - "LocationOriginResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["LocationOriginResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/top/location_target_response.py b/src/cloudflare/types/radar/attacks/layer3/top/location_target_response.py index 4641eb271e6..080874258fc 100644 --- a/src/cloudflare/types/radar/attacks/layer3/top/location_target_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/top/location_target_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ......_models import BaseModel -__all__ = [ - "LocationTargetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["LocationTargetResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/top_attacks_response.py b/src/cloudflare/types/radar/attacks/layer3/top_attacks_response.py index 100bfdc7d49..9190fbff87e 100644 --- a/src/cloudflare/types/radar/attacks/layer3/top_attacks_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/top_attacks_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopAttacksResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopAttacksResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/top_industry_response.py b/src/cloudflare/types/radar/attacks/layer3/top_industry_response.py index 7b8893c1cf0..6450ea52fbb 100644 --- a/src/cloudflare/types/radar/attacks/layer3/top_industry_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/top_industry_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopIndustryResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopIndustryResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/top_vertical_response.py b/src/cloudflare/types/radar/attacks/layer3/top_vertical_response.py index a9b5b23fbf3..2c125e0b596 100644 --- a/src/cloudflare/types/radar/attacks/layer3/top_vertical_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/top_vertical_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopVerticalResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopVerticalResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3_timeseries_response.py b/src/cloudflare/types/radar/attacks/layer3_timeseries_response.py index c83a6af9578..0ffe5325c45 100644 --- a/src/cloudflare/types/radar/attacks/layer3_timeseries_response.py +++ b/src/cloudflare/types/radar/attacks/layer3_timeseries_response.py @@ -1,20 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import List -from datetime import datetime from ...._models import BaseModel -__all__ = ["Layer3TimeseriesResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[datetime] - - values: List[str] +__all__ = ["Layer3TimeseriesResponse"] class Layer3TimeseriesResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_http_method_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_http_method_response.py index 79afadef9b6..8785d375fb3 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_http_method_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_http_method_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryHTTPMethodResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryHTTPMethodResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_http_version_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_http_version_response.py index f78c229daaa..8f0155b4040 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_http_version_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_http_version_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummaryHTTPVersionResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryHTTPVersionResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_industry_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_industry_response.py index de252763039..6dead61b0ad 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_industry_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_industry_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryIndustryResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryIndustryResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_ip_version_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_ip_version_response.py index e1a3995c7e5..3514893d056 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_ip_version_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_ip_version_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummaryIPVersionResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryIPVersionResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -57,13 +25,7 @@ class Meta(BaseModel): confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Summary0(BaseModel): - i_pv4: str = FieldInfo(alias="IPv4") - - i_pv6: str = FieldInfo(alias="IPv6") - - class SummaryIPVersionResponse(BaseModel): meta: Meta - summary_0: Summary0 + summary_0: object diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_managed_rules_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_managed_rules_response.py index d63373ae0c7..de7428c7613 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_managed_rules_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_managed_rules_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryManagedRulesResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryManagedRulesResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_mitigation_product_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_mitigation_product_response.py index eebfb391f20..05035ff55c5 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_mitigation_product_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_mitigation_product_response.py @@ -1,53 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummaryMitigationProductResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryMitigationProductResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_vertical_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_vertical_response.py index d2cdd169f86..ce4b31acfd2 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_vertical_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_vertical_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryVerticalResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryVerticalResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_http_method_response.py b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_http_method_response.py index 45e7a8b8a9f..50b28a674e0 100644 --- a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_http_method_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_http_method_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupHTTPMethodResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupHTTPMethodResponse"] class TimeseriesGroupHTTPMethodResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_industry_response.py b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_industry_response.py index 2751b1e138f..7b8a3631f2c 100644 --- a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_industry_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_industry_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupIndustryResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupIndustryResponse"] class TimeseriesGroupIndustryResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_ip_version_response.py b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_ip_version_response.py index 136fc4da363..f4f4f4239e1 100644 --- a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_ip_version_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_ip_version_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import List - -from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TimeseriesGroupIPVersionResponse", "Serie0"] - - -class Serie0(BaseModel): - i_pv4: List[str] = FieldInfo(alias="IPv4") - - i_pv6: List[str] = FieldInfo(alias="IPv6") - - timestamps: List[str] +__all__ = ["TimeseriesGroupIPVersionResponse"] class TimeseriesGroupIPVersionResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_managed_rules_response.py b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_managed_rules_response.py index 362411fce48..12df2ed800d 100644 --- a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_managed_rules_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_managed_rules_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupManagedRulesResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupManagedRulesResponse"] class TimeseriesGroupManagedRulesResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_mitigation_product_response.py b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_mitigation_product_response.py index b3e88c1e6a0..452ffaaa906 100644 --- a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_mitigation_product_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_mitigation_product_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupMitigationProductResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupMitigationProductResponse"] class TimeseriesGroupMitigationProductResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_vertical_response.py b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_vertical_response.py index 5b185a2edda..7ea651a721b 100644 --- a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_vertical_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_vertical_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupVerticalResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupVerticalResponse"] class TimeseriesGroupVerticalResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/attacks/layer7/top/ase_origin_response.py b/src/cloudflare/types/radar/attacks/layer7/top/ase_origin_response.py index 7c7bdac68f6..bfcda6c337d 100644 --- a/src/cloudflare/types/radar/attacks/layer7/top/ase_origin_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/top/ase_origin_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ......_models import BaseModel -__all__ = ["AseOriginResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["AseOriginResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/top/location_origin_response.py b/src/cloudflare/types/radar/attacks/layer7/top/location_origin_response.py index 102661bf56a..6b3d80e60a5 100644 --- a/src/cloudflare/types/radar/attacks/layer7/top/location_origin_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/top/location_origin_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ......_models import BaseModel -__all__ = [ - "LocationOriginResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["LocationOriginResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/top/location_target_response.py b/src/cloudflare/types/radar/attacks/layer7/top/location_target_response.py index 4641eb271e6..080874258fc 100644 --- a/src/cloudflare/types/radar/attacks/layer7/top/location_target_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/top/location_target_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ......_models import BaseModel -__all__ = [ - "LocationTargetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["LocationTargetResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/top_attacks_response.py b/src/cloudflare/types/radar/attacks/layer7/top_attacks_response.py index 68577c2c62c..6e339ae7d75 100644 --- a/src/cloudflare/types/radar/attacks/layer7/top_attacks_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/top_attacks_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopAttacksResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopAttacksResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/top_industry_response.py b/src/cloudflare/types/radar/attacks/layer7/top_industry_response.py index 7b8893c1cf0..6450ea52fbb 100644 --- a/src/cloudflare/types/radar/attacks/layer7/top_industry_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/top_industry_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopIndustryResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopIndustryResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/top_vertical_response.py b/src/cloudflare/types/radar/attacks/layer7/top_vertical_response.py index a9b5b23fbf3..2c125e0b596 100644 --- a/src/cloudflare/types/radar/attacks/layer7/top_vertical_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/top_vertical_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopVerticalResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopVerticalResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7_timeseries_response.py b/src/cloudflare/types/radar/attacks/layer7_timeseries_response.py index 355696d9df5..ce6e8fb03fc 100644 --- a/src/cloudflare/types/radar/attacks/layer7_timeseries_response.py +++ b/src/cloudflare/types/radar/attacks/layer7_timeseries_response.py @@ -7,42 +7,11 @@ from ...._models import BaseModel -__all__ = [ - "Layer7TimeseriesResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Serie0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["Layer7TimeseriesResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None @@ -50,20 +19,14 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Serie0(BaseModel): - timestamps: List[datetime] - - values: List[str] - - class Layer7TimeseriesResponse(BaseModel): meta: Meta - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/bgp/route_moas_response.py b/src/cloudflare/types/radar/bgp/route_moas_response.py index 13918ba1f33..0166999d431 100644 --- a/src/cloudflare/types/radar/bgp/route_moas_response.py +++ b/src/cloudflare/types/radar/bgp/route_moas_response.py @@ -4,15 +4,7 @@ from ...._models import BaseModel -__all__ = ["RouteMoasResponse", "Meta", "Moa", "MoaOrigin"] - - -class Meta(BaseModel): - data_time: str - - query_time: str - - total_peers: int +__all__ = ["RouteMoasResponse", "Moa", "MoaOrigin"] class MoaOrigin(BaseModel): @@ -30,6 +22,6 @@ class Moa(BaseModel): class RouteMoasResponse(BaseModel): - meta: Meta + meta: object moas: List[Moa] diff --git a/src/cloudflare/types/radar/bgp/route_pfx2as_response.py b/src/cloudflare/types/radar/bgp/route_pfx2as_response.py index 2bcf9de4eb0..ad8543d16b5 100644 --- a/src/cloudflare/types/radar/bgp/route_pfx2as_response.py +++ b/src/cloudflare/types/radar/bgp/route_pfx2as_response.py @@ -4,15 +4,7 @@ from ...._models import BaseModel -__all__ = ["RoutePfx2asResponse", "Meta", "PrefixOrigin"] - - -class Meta(BaseModel): - data_time: str - - query_time: str - - total_peers: int +__all__ = ["RoutePfx2asResponse", "PrefixOrigin"] class PrefixOrigin(BaseModel): @@ -26,6 +18,6 @@ class PrefixOrigin(BaseModel): class RoutePfx2asResponse(BaseModel): - meta: Meta + meta: object prefix_origins: List[PrefixOrigin] diff --git a/src/cloudflare/types/radar/bgp/route_stats_response.py b/src/cloudflare/types/radar/bgp/route_stats_response.py index a410062e4d5..24c0e6e9946 100644 --- a/src/cloudflare/types/radar/bgp/route_stats_response.py +++ b/src/cloudflare/types/radar/bgp/route_stats_response.py @@ -3,15 +3,7 @@ from ...._models import BaseModel -__all__ = ["RouteStatsResponse", "Meta", "Stats"] - - -class Meta(BaseModel): - data_time: str - - query_time: str - - total_peers: int +__all__ = ["RouteStatsResponse", "Stats"] class Stats(BaseModel): @@ -53,6 +45,6 @@ class Stats(BaseModel): class RouteStatsResponse(BaseModel): - meta: Meta + meta: object stats: Stats diff --git a/src/cloudflare/types/radar/bgp/top/ase_get_response.py b/src/cloudflare/types/radar/bgp/top/ase_get_response.py index e891e99cefa..ebba8e89e21 100644 --- a/src/cloudflare/types/radar/bgp/top/ase_get_response.py +++ b/src/cloudflare/types/radar/bgp/top/ase_get_response.py @@ -1,25 +1,16 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["AseGetResponse", "Meta", "MetaDateRange", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" +__all__ = ["AseGetResponse", "Meta", "Top0"] class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") class Top0(BaseModel): diff --git a/src/cloudflare/types/radar/bgp/top/ase_prefixes_response.py b/src/cloudflare/types/radar/bgp/top/ase_prefixes_response.py index e0a853b09a6..ae4521ae28f 100644 --- a/src/cloudflare/types/radar/bgp/top/ase_prefixes_response.py +++ b/src/cloudflare/types/radar/bgp/top/ase_prefixes_response.py @@ -4,7 +4,7 @@ from ....._models import BaseModel -__all__ = ["AsePrefixesResponse", "ASN", "Meta"] +__all__ = ["AsePrefixesResponse", "ASN"] class ASN(BaseModel): @@ -17,15 +17,7 @@ class ASN(BaseModel): pfxs_count: int -class Meta(BaseModel): - data_time: str - - query_time: str - - total_peers: int - - class AsePrefixesResponse(BaseModel): asns: List[ASN] - meta: Meta + meta: object diff --git a/src/cloudflare/types/radar/bgp/top_prefixes_response.py b/src/cloudflare/types/radar/bgp/top_prefixes_response.py index 9f5e92716b7..480d8f6bd4e 100644 --- a/src/cloudflare/types/radar/bgp/top_prefixes_response.py +++ b/src/cloudflare/types/radar/bgp/top_prefixes_response.py @@ -1,25 +1,16 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopPrefixesResponse", "Meta", "MetaDateRange", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" +__all__ = ["TopPrefixesResponse", "Meta", "Top0"] class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") class Top0(BaseModel): diff --git a/src/cloudflare/types/radar/bgp_timeseries_response.py b/src/cloudflare/types/radar/bgp_timeseries_response.py index b3ca270daa5..aa95ce9e503 100644 --- a/src/cloudflare/types/radar/bgp_timeseries_response.py +++ b/src/cloudflare/types/radar/bgp_timeseries_response.py @@ -7,42 +7,11 @@ from ..._models import BaseModel -__all__ = [ - "BGPTimeseriesResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Serie0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["BGPTimeseriesResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None @@ -50,20 +19,14 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Serie0(BaseModel): - timestamps: List[datetime] - - values: List[str] - - class BGPTimeseriesResponse(BaseModel): meta: Meta - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/dns/summary_cache_hit_response.py b/src/cloudflare/types/radar/dns/summary_cache_hit_response.py index eac77027ab9..c089a837e80 100644 --- a/src/cloudflare/types/radar/dns/summary_cache_hit_response.py +++ b/src/cloudflare/types/radar/dns/summary_cache_hit_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryCacheHitResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryCacheHitResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_dnssec_aware_response.py b/src/cloudflare/types/radar/dns/summary_dnssec_aware_response.py index d31274b80f9..be187d86900 100644 --- a/src/cloudflare/types/radar/dns/summary_dnssec_aware_response.py +++ b/src/cloudflare/types/radar/dns/summary_dnssec_aware_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryDNSSECAwareResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryDNSSECAwareResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_dnssec_e2e_response.py b/src/cloudflare/types/radar/dns/summary_dnssec_e2e_response.py index 09b86fac10c..0f169a0546b 100644 --- a/src/cloudflare/types/radar/dns/summary_dnssec_e2e_response.py +++ b/src/cloudflare/types/radar/dns/summary_dnssec_e2e_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryDNSSECE2EResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryDNSSECE2EResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_dnssec_response.py b/src/cloudflare/types/radar/dns/summary_dnssec_response.py index a4f7393ab7f..a615d97849a 100644 --- a/src/cloudflare/types/radar/dns/summary_dnssec_response.py +++ b/src/cloudflare/types/radar/dns/summary_dnssec_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryDNSSECResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryDNSSECResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_ip_version_response.py b/src/cloudflare/types/radar/dns/summary_ip_version_response.py index 6286c80dc1d..9da143e15ec 100644 --- a/src/cloudflare/types/radar/dns/summary_ip_version_response.py +++ b/src/cloudflare/types/radar/dns/summary_ip_version_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryIPVersionResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryIPVersionResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -57,13 +25,7 @@ class Meta(BaseModel): confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Summary0(BaseModel): - i_pv4: str = FieldInfo(alias="IPv4") - - i_pv6: str = FieldInfo(alias="IPv6") - - class SummaryIPVersionResponse(BaseModel): meta: Meta - summary_0: Summary0 + summary_0: object diff --git a/src/cloudflare/types/radar/dns/summary_matching_answer_response.py b/src/cloudflare/types/radar/dns/summary_matching_answer_response.py index b232290ab60..67f6d7c829f 100644 --- a/src/cloudflare/types/radar/dns/summary_matching_answer_response.py +++ b/src/cloudflare/types/radar/dns/summary_matching_answer_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryMatchingAnswerResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryMatchingAnswerResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_protocol_response.py b/src/cloudflare/types/radar/dns/summary_protocol_response.py index b75c6a52eb9..ca33cf63608 100644 --- a/src/cloudflare/types/radar/dns/summary_protocol_response.py +++ b/src/cloudflare/types/radar/dns/summary_protocol_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryProtocolResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryProtocolResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_query_type_response.py b/src/cloudflare/types/radar/dns/summary_query_type_response.py index 87baa9cd63b..ccbbd6b44ce 100644 --- a/src/cloudflare/types/radar/dns/summary_query_type_response.py +++ b/src/cloudflare/types/radar/dns/summary_query_type_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryQueryTypeResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryQueryTypeResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_response_code_response.py b/src/cloudflare/types/radar/dns/summary_response_code_response.py index 01764dfda55..cb60949d0ed 100644 --- a/src/cloudflare/types/radar/dns/summary_response_code_response.py +++ b/src/cloudflare/types/radar/dns/summary_response_code_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryResponseCodeResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryResponseCodeResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_response_ttl_response.py b/src/cloudflare/types/radar/dns/summary_response_ttl_response.py index 8c3259e1ec4..608d9792e15 100644 --- a/src/cloudflare/types/radar/dns/summary_response_ttl_response.py +++ b/src/cloudflare/types/radar/dns/summary_response_ttl_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryResponseTTLResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryResponseTTLResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/timeseries_group_query_type_response.py b/src/cloudflare/types/radar/dns/timeseries_group_query_type_response.py index b63a9d54cbb..edc3bd2dee6 100644 --- a/src/cloudflare/types/radar/dns/timeseries_group_query_type_response.py +++ b/src/cloudflare/types/radar/dns/timeseries_group_query_type_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupQueryTypeResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupQueryTypeResponse"] class TimeseriesGroupQueryTypeResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/dns/timeseries_group_response_code_response.py b/src/cloudflare/types/radar/dns/timeseries_group_response_code_response.py index b5d3c5a39b7..ae264b84d26 100644 --- a/src/cloudflare/types/radar/dns/timeseries_group_response_code_response.py +++ b/src/cloudflare/types/radar/dns/timeseries_group_response_code_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupResponseCodeResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupResponseCodeResponse"] class TimeseriesGroupResponseCodeResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/dns/top_ases_response.py b/src/cloudflare/types/radar/dns/top_ases_response.py index e87c9d659f0..b2f0ce1f250 100644 --- a/src/cloudflare/types/radar/dns/top_ases_response.py +++ b/src/cloudflare/types/radar/dns/top_ases_response.py @@ -1,60 +1,27 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopAsesResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopAsesResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_asn: int = FieldInfo(alias="clientASN") - - client_as_name: str = FieldInfo(alias="clientASName") - - value: str - - class TopAsesResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/dns/top_locations_response.py b/src/cloudflare/types/radar/dns/top_locations_response.py index 4be71f2a029..5ee50088973 100644 --- a/src/cloudflare/types/radar/dns/top_locations_response.py +++ b/src/cloudflare/types/radar/dns/top_locations_response.py @@ -1,67 +1,27 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "TopLocationsResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopLocationsResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class TopLocationsResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/dns_timeseries_response.py b/src/cloudflare/types/radar/dns_timeseries_response.py index 1d17716bd40..e0238d515a4 100644 --- a/src/cloudflare/types/radar/dns_timeseries_response.py +++ b/src/cloudflare/types/radar/dns_timeseries_response.py @@ -7,42 +7,11 @@ from ..._models import BaseModel -__all__ = [ - "DNSTimeseriesResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Serie0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["DNSTimeseriesResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None @@ -50,20 +19,14 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Serie0(BaseModel): - timestamps: List[datetime] - - values: List[str] - - class DNSTimeseriesResponse(BaseModel): meta: Meta - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/email/routing/summary_arc_response.py b/src/cloudflare/types/radar/email/routing/summary_arc_response.py index 274e9a535ba..0e84d364ba3 100644 --- a/src/cloudflare/types/radar/email/routing/summary_arc_response.py +++ b/src/cloudflare/types/radar/email/routing/summary_arc_response.py @@ -1,48 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummaryARCResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryARCResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -54,4 +28,4 @@ class Meta(BaseModel): class SummaryARCResponse(BaseModel): meta: Meta - summary_0: RadarEmailSummary + summary_0: object diff --git a/src/cloudflare/types/radar/email/routing/summary_dkim_response.py b/src/cloudflare/types/radar/email/routing/summary_dkim_response.py index df8a79048cd..74411739b96 100644 --- a/src/cloudflare/types/radar/email/routing/summary_dkim_response.py +++ b/src/cloudflare/types/radar/email/routing/summary_dkim_response.py @@ -1,48 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummaryDKIMResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryDKIMResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -54,4 +28,4 @@ class Meta(BaseModel): class SummaryDKIMResponse(BaseModel): meta: Meta - summary_0: RadarEmailSummary + summary_0: object diff --git a/src/cloudflare/types/radar/email/routing/summary_dmarc_response.py b/src/cloudflare/types/radar/email/routing/summary_dmarc_response.py index 0563a742286..57264ed4c7f 100644 --- a/src/cloudflare/types/radar/email/routing/summary_dmarc_response.py +++ b/src/cloudflare/types/radar/email/routing/summary_dmarc_response.py @@ -1,48 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummaryDMARCResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryDMARCResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -54,4 +28,4 @@ class Meta(BaseModel): class SummaryDMARCResponse(BaseModel): meta: Meta - summary_0: RadarEmailSummary + summary_0: object diff --git a/src/cloudflare/types/radar/email/routing/summary_encrypted_response.py b/src/cloudflare/types/radar/email/routing/summary_encrypted_response.py index 5461181d3de..6bbb0ae86fa 100644 --- a/src/cloudflare/types/radar/email/routing/summary_encrypted_response.py +++ b/src/cloudflare/types/radar/email/routing/summary_encrypted_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummaryEncryptedResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryEncryptedResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/routing/summary_ip_version_response.py b/src/cloudflare/types/radar/email/routing/summary_ip_version_response.py index e1a3995c7e5..3514893d056 100644 --- a/src/cloudflare/types/radar/email/routing/summary_ip_version_response.py +++ b/src/cloudflare/types/radar/email/routing/summary_ip_version_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummaryIPVersionResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryIPVersionResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -57,13 +25,7 @@ class Meta(BaseModel): confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Summary0(BaseModel): - i_pv4: str = FieldInfo(alias="IPv4") - - i_pv6: str = FieldInfo(alias="IPv6") - - class SummaryIPVersionResponse(BaseModel): meta: Meta - summary_0: Summary0 + summary_0: object diff --git a/src/cloudflare/types/radar/email/routing/summary_spf_response.py b/src/cloudflare/types/radar/email/routing/summary_spf_response.py index 9cd062e392f..bf8f2f7b38b 100644 --- a/src/cloudflare/types/radar/email/routing/summary_spf_response.py +++ b/src/cloudflare/types/radar/email/routing/summary_spf_response.py @@ -1,48 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummarySPFResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummarySPFResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -54,4 +28,4 @@ class Meta(BaseModel): class SummarySPFResponse(BaseModel): meta: Meta - summary_0: RadarEmailSummary + summary_0: object diff --git a/src/cloudflare/types/radar/email/routing/timeseries_group_arc_response.py b/src/cloudflare/types/radar/email/routing/timeseries_group_arc_response.py index d3f31f162dd..879c5971b77 100644 --- a/src/cloudflare/types/radar/email/routing/timeseries_group_arc_response.py +++ b/src/cloudflare/types/radar/email/routing/timeseries_group_arc_response.py @@ -2,7 +2,6 @@ from ....._models import BaseModel -from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupARCResponse"] @@ -10,4 +9,4 @@ class TimeseriesGroupARCResponse(BaseModel): meta: object - serie_0: RadarEmailSeries + serie_0: object diff --git a/src/cloudflare/types/radar/email/routing/timeseries_group_dkim_response.py b/src/cloudflare/types/radar/email/routing/timeseries_group_dkim_response.py index 7326ae59341..ef85b3aeb73 100644 --- a/src/cloudflare/types/radar/email/routing/timeseries_group_dkim_response.py +++ b/src/cloudflare/types/radar/email/routing/timeseries_group_dkim_response.py @@ -2,7 +2,6 @@ from ....._models import BaseModel -from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupDKIMResponse"] @@ -10,4 +9,4 @@ class TimeseriesGroupDKIMResponse(BaseModel): meta: object - serie_0: RadarEmailSeries + serie_0: object diff --git a/src/cloudflare/types/radar/email/routing/timeseries_group_dmarc_response.py b/src/cloudflare/types/radar/email/routing/timeseries_group_dmarc_response.py index a27240408df..703ca9600e9 100644 --- a/src/cloudflare/types/radar/email/routing/timeseries_group_dmarc_response.py +++ b/src/cloudflare/types/radar/email/routing/timeseries_group_dmarc_response.py @@ -2,7 +2,6 @@ from ....._models import BaseModel -from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupDMARCResponse"] @@ -10,4 +9,4 @@ class TimeseriesGroupDMARCResponse(BaseModel): meta: object - serie_0: RadarEmailSeries + serie_0: object diff --git a/src/cloudflare/types/radar/email/routing/timeseries_group_spf_response.py b/src/cloudflare/types/radar/email/routing/timeseries_group_spf_response.py index 4e520fda2fa..851ecf9418d 100644 --- a/src/cloudflare/types/radar/email/routing/timeseries_group_spf_response.py +++ b/src/cloudflare/types/radar/email/routing/timeseries_group_spf_response.py @@ -2,7 +2,6 @@ from ....._models import BaseModel -from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupSPFResponse"] @@ -10,4 +9,4 @@ class TimeseriesGroupSPFResponse(BaseModel): meta: object - serie_0: RadarEmailSeries + serie_0: object diff --git a/src/cloudflare/types/radar/email/security/summary_arc_response.py b/src/cloudflare/types/radar/email/security/summary_arc_response.py index 274e9a535ba..0e84d364ba3 100644 --- a/src/cloudflare/types/radar/email/security/summary_arc_response.py +++ b/src/cloudflare/types/radar/email/security/summary_arc_response.py @@ -1,48 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummaryARCResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryARCResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -54,4 +28,4 @@ class Meta(BaseModel): class SummaryARCResponse(BaseModel): meta: Meta - summary_0: RadarEmailSummary + summary_0: object diff --git a/src/cloudflare/types/radar/email/security/summary_dkim_response.py b/src/cloudflare/types/radar/email/security/summary_dkim_response.py index df8a79048cd..74411739b96 100644 --- a/src/cloudflare/types/radar/email/security/summary_dkim_response.py +++ b/src/cloudflare/types/radar/email/security/summary_dkim_response.py @@ -1,48 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummaryDKIMResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryDKIMResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -54,4 +28,4 @@ class Meta(BaseModel): class SummaryDKIMResponse(BaseModel): meta: Meta - summary_0: RadarEmailSummary + summary_0: object diff --git a/src/cloudflare/types/radar/email/security/summary_dmarc_response.py b/src/cloudflare/types/radar/email/security/summary_dmarc_response.py index 0563a742286..57264ed4c7f 100644 --- a/src/cloudflare/types/radar/email/security/summary_dmarc_response.py +++ b/src/cloudflare/types/radar/email/security/summary_dmarc_response.py @@ -1,48 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummaryDMARCResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryDMARCResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -54,4 +28,4 @@ class Meta(BaseModel): class SummaryDMARCResponse(BaseModel): meta: Meta - summary_0: RadarEmailSummary + summary_0: object diff --git a/src/cloudflare/types/radar/email/security/summary_malicious_response.py b/src/cloudflare/types/radar/email/security/summary_malicious_response.py index 44426a6e84e..f30aaf140c0 100644 --- a/src/cloudflare/types/radar/email/security/summary_malicious_response.py +++ b/src/cloudflare/types/radar/email/security/summary_malicious_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummaryMaliciousResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryMaliciousResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/summary_spam_response.py b/src/cloudflare/types/radar/email/security/summary_spam_response.py index 4fe4f3c5172..2fa99464515 100644 --- a/src/cloudflare/types/radar/email/security/summary_spam_response.py +++ b/src/cloudflare/types/radar/email/security/summary_spam_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummarySpamResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummarySpamResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/summary_spf_response.py b/src/cloudflare/types/radar/email/security/summary_spf_response.py index 9cd062e392f..bf8f2f7b38b 100644 --- a/src/cloudflare/types/radar/email/security/summary_spf_response.py +++ b/src/cloudflare/types/radar/email/security/summary_spf_response.py @@ -1,48 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummarySPFResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummarySPFResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -54,4 +28,4 @@ class Meta(BaseModel): class SummarySPFResponse(BaseModel): meta: Meta - summary_0: RadarEmailSummary + summary_0: object diff --git a/src/cloudflare/types/radar/email/security/summary_spoof_response.py b/src/cloudflare/types/radar/email/security/summary_spoof_response.py index b9e738ea0e1..1422617ded7 100644 --- a/src/cloudflare/types/radar/email/security/summary_spoof_response.py +++ b/src/cloudflare/types/radar/email/security/summary_spoof_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummarySpoofResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummarySpoofResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/summary_threat_category_response.py b/src/cloudflare/types/radar/email/security/summary_threat_category_response.py index 36e2d29bbdf..04f6ef42c00 100644 --- a/src/cloudflare/types/radar/email/security/summary_threat_category_response.py +++ b/src/cloudflare/types/radar/email/security/summary_threat_category_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummaryThreatCategoryResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryThreatCategoryResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/summary_tls_version_response.py b/src/cloudflare/types/radar/email/security/summary_tls_version_response.py index f9ea5ad0711..87e69685dff 100644 --- a/src/cloudflare/types/radar/email/security/summary_tls_version_response.py +++ b/src/cloudflare/types/radar/email/security/summary_tls_version_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "SummaryTLSVersionResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryTLSVersionResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/timeseries_group_arc_response.py b/src/cloudflare/types/radar/email/security/timeseries_group_arc_response.py index d3f31f162dd..879c5971b77 100644 --- a/src/cloudflare/types/radar/email/security/timeseries_group_arc_response.py +++ b/src/cloudflare/types/radar/email/security/timeseries_group_arc_response.py @@ -2,7 +2,6 @@ from ....._models import BaseModel -from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupARCResponse"] @@ -10,4 +9,4 @@ class TimeseriesGroupARCResponse(BaseModel): meta: object - serie_0: RadarEmailSeries + serie_0: object diff --git a/src/cloudflare/types/radar/email/security/timeseries_group_dkim_response.py b/src/cloudflare/types/radar/email/security/timeseries_group_dkim_response.py index 7326ae59341..ef85b3aeb73 100644 --- a/src/cloudflare/types/radar/email/security/timeseries_group_dkim_response.py +++ b/src/cloudflare/types/radar/email/security/timeseries_group_dkim_response.py @@ -2,7 +2,6 @@ from ....._models import BaseModel -from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupDKIMResponse"] @@ -10,4 +9,4 @@ class TimeseriesGroupDKIMResponse(BaseModel): meta: object - serie_0: RadarEmailSeries + serie_0: object diff --git a/src/cloudflare/types/radar/email/security/timeseries_group_dmarc_response.py b/src/cloudflare/types/radar/email/security/timeseries_group_dmarc_response.py index a27240408df..703ca9600e9 100644 --- a/src/cloudflare/types/radar/email/security/timeseries_group_dmarc_response.py +++ b/src/cloudflare/types/radar/email/security/timeseries_group_dmarc_response.py @@ -2,7 +2,6 @@ from ....._models import BaseModel -from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupDMARCResponse"] @@ -10,4 +9,4 @@ class TimeseriesGroupDMARCResponse(BaseModel): meta: object - serie_0: RadarEmailSeries + serie_0: object diff --git a/src/cloudflare/types/radar/email/security/timeseries_group_spf_response.py b/src/cloudflare/types/radar/email/security/timeseries_group_spf_response.py index 4e520fda2fa..851ecf9418d 100644 --- a/src/cloudflare/types/radar/email/security/timeseries_group_spf_response.py +++ b/src/cloudflare/types/radar/email/security/timeseries_group_spf_response.py @@ -2,7 +2,6 @@ from ....._models import BaseModel -from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupSPFResponse"] @@ -10,4 +9,4 @@ class TimeseriesGroupSPFResponse(BaseModel): meta: object - serie_0: RadarEmailSeries + serie_0: object diff --git a/src/cloudflare/types/radar/email/security/top/tld_get_response.py b/src/cloudflare/types/radar/email/security/top/tld_get_response.py index 49aa4d04c3f..eaa6277a1a3 100644 --- a/src/cloudflare/types/radar/email/security/top/tld_get_response.py +++ b/src/cloudflare/types/radar/email/security/top/tld_get_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ......_models import BaseModel -__all__ = ["TldGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TldGetResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/top/tlds/malicious_get_response.py b/src/cloudflare/types/radar/email/security/top/tlds/malicious_get_response.py index 48be3d39b00..19567d10a23 100644 --- a/src/cloudflare/types/radar/email/security/top/tlds/malicious_get_response.py +++ b/src/cloudflare/types/radar/email/security/top/tlds/malicious_get_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ......._models import BaseModel -__all__ = [ - "MaliciousGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["MaliciousGetResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/top/tlds/spam_get_response.py b/src/cloudflare/types/radar/email/security/top/tlds/spam_get_response.py index f4114b96787..4f1b2d5ddfe 100644 --- a/src/cloudflare/types/radar/email/security/top/tlds/spam_get_response.py +++ b/src/cloudflare/types/radar/email/security/top/tlds/spam_get_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ......._models import BaseModel -__all__ = ["SpamGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SpamGetResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/top/tlds/spoof_get_response.py b/src/cloudflare/types/radar/email/security/top/tlds/spoof_get_response.py index 212026d457a..08b66ff3441 100644 --- a/src/cloudflare/types/radar/email/security/top/tlds/spoof_get_response.py +++ b/src/cloudflare/types/radar/email/security/top/tlds/spoof_get_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ......._models import BaseModel -__all__ = ["SpoofGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SpoofGetResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/entities/asn_rel_response.py b/src/cloudflare/types/radar/entities/asn_rel_response.py index f6c855e3438..68962c6cfd3 100644 --- a/src/cloudflare/types/radar/entities/asn_rel_response.py +++ b/src/cloudflare/types/radar/entities/asn_rel_response.py @@ -4,15 +4,7 @@ from ...._models import BaseModel -__all__ = ["ASNRelResponse", "Meta", "Rel"] - - -class Meta(BaseModel): - data_time: str - - query_time: str - - total_peers: int +__all__ = ["ASNRelResponse", "Rel"] class Rel(BaseModel): @@ -32,6 +24,6 @@ class Rel(BaseModel): class ASNRelResponse(BaseModel): - meta: Meta + meta: object rels: List[Rel] diff --git a/src/cloudflare/types/radar/http/ase_get_response.py b/src/cloudflare/types/radar/http/ase_get_response.py index a606c25f81c..641f692313f 100644 --- a/src/cloudflare/types/radar/http/ase_get_response.py +++ b/src/cloudflare/types/radar/http/ase_get_response.py @@ -1,62 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["AseGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["AseGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_asn: int = FieldInfo(alias="clientASN") - - client_as_name: str = FieldInfo(alias="clientASName") - - value: str - - class AseGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/ases/bot_class_get_response.py b/src/cloudflare/types/radar/http/ases/bot_class_get_response.py index c48362beaed..6e0d85a4e45 100644 --- a/src/cloudflare/types/radar/http/ases/bot_class_get_response.py +++ b/src/cloudflare/types/radar/http/ases/bot_class_get_response.py @@ -1,62 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["BotClassGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["BotClassGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_asn: int = FieldInfo(alias="clientASN") - - client_as_name: str = FieldInfo(alias="clientASName") - - value: str - - class BotClassGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/ases/browser_family_get_response.py b/src/cloudflare/types/radar/http/ases/browser_family_get_response.py index f4d2f1fc2be..b2d60bebdde 100644 --- a/src/cloudflare/types/radar/http/ases/browser_family_get_response.py +++ b/src/cloudflare/types/radar/http/ases/browser_family_get_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "BrowserFamilyGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["BrowserFamilyGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_asn: int = FieldInfo(alias="clientASN") - - client_as_name: str = FieldInfo(alias="clientASName") - - value: str - - class BrowserFamilyGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/ases/device_type_get_response.py b/src/cloudflare/types/radar/http/ases/device_type_get_response.py index a619785971d..c3b7d3726ba 100644 --- a/src/cloudflare/types/radar/http/ases/device_type_get_response.py +++ b/src/cloudflare/types/radar/http/ases/device_type_get_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "DeviceTypeGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["DeviceTypeGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_asn: int = FieldInfo(alias="clientASN") - - client_as_name: str = FieldInfo(alias="clientASName") - - value: str - - class DeviceTypeGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/ases/http_method_get_response.py b/src/cloudflare/types/radar/http/ases/http_method_get_response.py index d4e4622fe36..84865d9b79e 100644 --- a/src/cloudflare/types/radar/http/ases/http_method_get_response.py +++ b/src/cloudflare/types/radar/http/ases/http_method_get_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "HTTPMethodGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["HTTPMethodGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_asn: int = FieldInfo(alias="clientASN") - - client_as_name: str = FieldInfo(alias="clientASName") - - value: str - - class HTTPMethodGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/ases/http_protocol_get_response.py b/src/cloudflare/types/radar/http/ases/http_protocol_get_response.py index 3552fc7cad0..14e05d84595 100644 --- a/src/cloudflare/types/radar/http/ases/http_protocol_get_response.py +++ b/src/cloudflare/types/radar/http/ases/http_protocol_get_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "HTTPProtocolGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["HTTPProtocolGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_asn: int = FieldInfo(alias="clientASN") - - client_as_name: str = FieldInfo(alias="clientASName") - - value: str - - class HTTPProtocolGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/ases/ip_version_get_response.py b/src/cloudflare/types/radar/http/ases/ip_version_get_response.py index cb714fbcdf2..43c46b09315 100644 --- a/src/cloudflare/types/radar/http/ases/ip_version_get_response.py +++ b/src/cloudflare/types/radar/http/ases/ip_version_get_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "IPVersionGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["IPVersionGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_asn: int = FieldInfo(alias="clientASN") - - client_as_name: str = FieldInfo(alias="clientASName") - - value: str - - class IPVersionGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/ases/os_get_response.py b/src/cloudflare/types/radar/http/ases/os_get_response.py index a8777949f24..622ecc36d37 100644 --- a/src/cloudflare/types/radar/http/ases/os_get_response.py +++ b/src/cloudflare/types/radar/http/ases/os_get_response.py @@ -1,62 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["OSGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["OSGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_asn: int = FieldInfo(alias="clientASN") - - client_as_name: str = FieldInfo(alias="clientASName") - - value: str - - class OSGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/ases/tls_version_get_response.py b/src/cloudflare/types/radar/http/ases/tls_version_get_response.py index 1ffc7b6c327..bd3a1952d53 100644 --- a/src/cloudflare/types/radar/http/ases/tls_version_get_response.py +++ b/src/cloudflare/types/radar/http/ases/tls_version_get_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "TLSVersionGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TLSVersionGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_asn: int = FieldInfo(alias="clientASN") - - client_as_name: str = FieldInfo(alias="clientASName") - - value: str - - class TLSVersionGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/location_get_response.py b/src/cloudflare/types/radar/http/location_get_response.py index 95a4c526fe3..a64afe2acae 100644 --- a/src/cloudflare/types/radar/http/location_get_response.py +++ b/src/cloudflare/types/radar/http/location_get_response.py @@ -1,62 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["LocationGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["LocationGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class LocationGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/locations/bot_class_get_response.py b/src/cloudflare/types/radar/http/locations/bot_class_get_response.py index 9b7d9f6c23d..6e0d85a4e45 100644 --- a/src/cloudflare/types/radar/http/locations/bot_class_get_response.py +++ b/src/cloudflare/types/radar/http/locations/bot_class_get_response.py @@ -1,62 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["BotClassGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["BotClassGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class BotClassGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/locations/browser_family_get_response.py b/src/cloudflare/types/radar/http/locations/browser_family_get_response.py index 5f161c3903e..b2d60bebdde 100644 --- a/src/cloudflare/types/radar/http/locations/browser_family_get_response.py +++ b/src/cloudflare/types/radar/http/locations/browser_family_get_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "BrowserFamilyGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["BrowserFamilyGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class BrowserFamilyGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/locations/device_type_get_response.py b/src/cloudflare/types/radar/http/locations/device_type_get_response.py index ed2f568faad..c3b7d3726ba 100644 --- a/src/cloudflare/types/radar/http/locations/device_type_get_response.py +++ b/src/cloudflare/types/radar/http/locations/device_type_get_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "DeviceTypeGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["DeviceTypeGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class DeviceTypeGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/locations/http_method_get_response.py b/src/cloudflare/types/radar/http/locations/http_method_get_response.py index ed56bfd057f..84865d9b79e 100644 --- a/src/cloudflare/types/radar/http/locations/http_method_get_response.py +++ b/src/cloudflare/types/radar/http/locations/http_method_get_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "HTTPMethodGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["HTTPMethodGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class HTTPMethodGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/locations/http_protocol_get_response.py b/src/cloudflare/types/radar/http/locations/http_protocol_get_response.py index 6d9b31aad62..14e05d84595 100644 --- a/src/cloudflare/types/radar/http/locations/http_protocol_get_response.py +++ b/src/cloudflare/types/radar/http/locations/http_protocol_get_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "HTTPProtocolGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["HTTPProtocolGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class HTTPProtocolGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/locations/ip_version_get_response.py b/src/cloudflare/types/radar/http/locations/ip_version_get_response.py index bb30d89b81e..43c46b09315 100644 --- a/src/cloudflare/types/radar/http/locations/ip_version_get_response.py +++ b/src/cloudflare/types/radar/http/locations/ip_version_get_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "IPVersionGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["IPVersionGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class IPVersionGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/locations/os_get_response.py b/src/cloudflare/types/radar/http/locations/os_get_response.py index 31e24633774..622ecc36d37 100644 --- a/src/cloudflare/types/radar/http/locations/os_get_response.py +++ b/src/cloudflare/types/radar/http/locations/os_get_response.py @@ -1,62 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["OSGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["OSGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class OSGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/locations/tls_version_get_response.py b/src/cloudflare/types/radar/http/locations/tls_version_get_response.py index 82d4b85eec7..bd3a1952d53 100644 --- a/src/cloudflare/types/radar/http/locations/tls_version_get_response.py +++ b/src/cloudflare/types/radar/http/locations/tls_version_get_response.py @@ -1,69 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "TLSVersionGetResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TLSVersionGetResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Top0(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str - - class TLSVersionGetResponse(BaseModel): meta: Meta - top_0: List[Top0] + top_0: List[object] diff --git a/src/cloudflare/types/radar/http/summary_bot_class_response.py b/src/cloudflare/types/radar/http/summary_bot_class_response.py index d4c5847ae8d..59e51d44143 100644 --- a/src/cloudflare/types/radar/http/summary_bot_class_response.py +++ b/src/cloudflare/types/radar/http/summary_bot_class_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryBotClassResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryBotClassResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/summary_device_type_response.py b/src/cloudflare/types/radar/http/summary_device_type_response.py index 7aa1bbd9fd7..8750f93a6b3 100644 --- a/src/cloudflare/types/radar/http/summary_device_type_response.py +++ b/src/cloudflare/types/radar/http/summary_device_type_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryDeviceTypeResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryDeviceTypeResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/summary_http_protocol_response.py b/src/cloudflare/types/radar/http/summary_http_protocol_response.py index 3ee6ffef02f..68f9d27ac15 100644 --- a/src/cloudflare/types/radar/http/summary_http_protocol_response.py +++ b/src/cloudflare/types/radar/http/summary_http_protocol_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryHTTPProtocolResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryHTTPProtocolResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/summary_http_version_response.py b/src/cloudflare/types/radar/http/summary_http_version_response.py index 7c3c97a3d57..63887a07b0d 100644 --- a/src/cloudflare/types/radar/http/summary_http_version_response.py +++ b/src/cloudflare/types/radar/http/summary_http_version_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryHTTPVersionResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryHTTPVersionResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/summary_ip_version_response.py b/src/cloudflare/types/radar/http/summary_ip_version_response.py index 6286c80dc1d..9da143e15ec 100644 --- a/src/cloudflare/types/radar/http/summary_ip_version_response.py +++ b/src/cloudflare/types/radar/http/summary_ip_version_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryIPVersionResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryIPVersionResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -57,13 +25,7 @@ class Meta(BaseModel): confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Summary0(BaseModel): - i_pv4: str = FieldInfo(alias="IPv4") - - i_pv6: str = FieldInfo(alias="IPv6") - - class SummaryIPVersionResponse(BaseModel): meta: Meta - summary_0: Summary0 + summary_0: object diff --git a/src/cloudflare/types/radar/http/summary_os_response.py b/src/cloudflare/types/radar/http/summary_os_response.py index b9737a2dcf9..c5ecd31656a 100644 --- a/src/cloudflare/types/radar/http/summary_os_response.py +++ b/src/cloudflare/types/radar/http/summary_os_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryOSResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryOSResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/summary_post_quantum_response.py b/src/cloudflare/types/radar/http/summary_post_quantum_response.py index f244b9910b7..344580555a6 100644 --- a/src/cloudflare/types/radar/http/summary_post_quantum_response.py +++ b/src/cloudflare/types/radar/http/summary_post_quantum_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryPostQuantumResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryPostQuantumResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/summary_tls_version_response.py b/src/cloudflare/types/radar/http/summary_tls_version_response.py index 1a8ffeb3e19..4d50fd8444a 100644 --- a/src/cloudflare/types/radar/http/summary_tls_version_response.py +++ b/src/cloudflare/types/radar/http/summary_tls_version_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryTLSVersionResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryTLSVersionResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/timeseries_group_browser_family_response.py b/src/cloudflare/types/radar/http/timeseries_group_browser_family_response.py index 8f14d62efd1..85d98704cd7 100644 --- a/src/cloudflare/types/radar/http/timeseries_group_browser_family_response.py +++ b/src/cloudflare/types/radar/http/timeseries_group_browser_family_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupBrowserFamilyResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupBrowserFamilyResponse"] class TimeseriesGroupBrowserFamilyResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/http/timeseries_group_browser_response.py b/src/cloudflare/types/radar/http/timeseries_group_browser_response.py index 329563a8ca3..eafc45ac810 100644 --- a/src/cloudflare/types/radar/http/timeseries_group_browser_response.py +++ b/src/cloudflare/types/radar/http/timeseries_group_browser_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupBrowserResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupBrowserResponse"] class TimeseriesGroupBrowserResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/http/timeseries_group_ip_version_response.py b/src/cloudflare/types/radar/http/timeseries_group_ip_version_response.py index 560271c2fd8..d0387d61803 100644 --- a/src/cloudflare/types/radar/http/timeseries_group_ip_version_response.py +++ b/src/cloudflare/types/radar/http/timeseries_group_ip_version_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import List - -from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TimeseriesGroupIPVersionResponse", "Serie0"] - - -class Serie0(BaseModel): - i_pv4: List[str] = FieldInfo(alias="IPv4") - - i_pv6: List[str] = FieldInfo(alias="IPv6") - - timestamps: List[str] +__all__ = ["TimeseriesGroupIPVersionResponse"] class TimeseriesGroupIPVersionResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/http/timeseries_group_os_response.py b/src/cloudflare/types/radar/http/timeseries_group_os_response.py index 717cffd93ea..d74af550f34 100644 --- a/src/cloudflare/types/radar/http/timeseries_group_os_response.py +++ b/src/cloudflare/types/radar/http/timeseries_group_os_response.py @@ -1,23 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupOSResponse", "Serie0"] - - -class Serie0(BaseModel): - timestamps: List[str] - - if TYPE_CHECKING: - # Stub to indicate that arbitrary properties are accepted. - # To access properties that are not valid identifiers you can use `getattr`, e.g. - # `getattr(obj, '$type')` - def __getattr__(self, attr: str) -> List[str]: ... +__all__ = ["TimeseriesGroupOSResponse"] class TimeseriesGroupOSResponse(BaseModel): meta: object - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/http/top_browser_family_response.py b/src/cloudflare/types/radar/http/top_browser_family_response.py index 07776d8e47d..d2098e4f8cb 100644 --- a/src/cloudflare/types/radar/http/top_browser_family_response.py +++ b/src/cloudflare/types/radar/http/top_browser_family_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "TopBrowserFamilyResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopBrowserFamilyResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/top_browser_response.py b/src/cloudflare/types/radar/http/top_browser_response.py index 6499e5ba955..48787b437dd 100644 --- a/src/cloudflare/types/radar/http/top_browser_response.py +++ b/src/cloudflare/types/radar/http/top_browser_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopBrowserResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopBrowserResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http_timeseries_response.py b/src/cloudflare/types/radar/http_timeseries_response.py index 6b45e4c117c..1f0a0d3626d 100644 --- a/src/cloudflare/types/radar/http_timeseries_response.py +++ b/src/cloudflare/types/radar/http_timeseries_response.py @@ -7,42 +7,11 @@ from ..._models import BaseModel -__all__ = [ - "HTTPTimeseriesResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Serie0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["HTTPTimeseriesResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None @@ -50,20 +19,14 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Serie0(BaseModel): - timestamps: List[datetime] - - values: List[str] - - class HTTPTimeseriesResponse(BaseModel): meta: Meta - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/leaked_credentials/summary_bot_class_response.py b/src/cloudflare/types/radar/leaked_credentials/summary_bot_class_response.py index d4c5847ae8d..59e51d44143 100644 --- a/src/cloudflare/types/radar/leaked_credentials/summary_bot_class_response.py +++ b/src/cloudflare/types/radar/leaked_credentials/summary_bot_class_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryBotClassResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryBotClassResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/leaked_credentials/summary_compromised_response.py b/src/cloudflare/types/radar/leaked_credentials/summary_compromised_response.py index 5e7f527a3ab..17180b1e540 100644 --- a/src/cloudflare/types/radar/leaked_credentials/summary_compromised_response.py +++ b/src/cloudflare/types/radar/leaked_credentials/summary_compromised_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SummaryCompromisedResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SummaryCompromisedResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/netflow_summary_response.py b/src/cloudflare/types/radar/netflow_summary_response.py index bfaf0077229..1ab4b2c9a35 100644 --- a/src/cloudflare/types/radar/netflow_summary_response.py +++ b/src/cloudflare/types/radar/netflow_summary_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ..._models import BaseModel -__all__ = [ - "NetflowSummaryResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["NetflowSummaryResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) diff --git a/src/cloudflare/types/radar/netflow_timeseries_response.py b/src/cloudflare/types/radar/netflow_timeseries_response.py index 99701458c4d..4f85792cd24 100644 --- a/src/cloudflare/types/radar/netflow_timeseries_response.py +++ b/src/cloudflare/types/radar/netflow_timeseries_response.py @@ -7,42 +7,11 @@ from ..._models import BaseModel -__all__ = [ - "NetflowTimeseriesResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Serie0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["NetflowTimeseriesResponse", "Meta", "MetaConfidenceInfo"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None @@ -50,20 +19,14 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) -class Serie0(BaseModel): - timestamps: List[datetime] - - values: List[str] - - class NetflowTimeseriesResponse(BaseModel): meta: Meta - serie_0: Serie0 + serie_0: object diff --git a/src/cloudflare/types/radar/quality/iqi_summary_response.py b/src/cloudflare/types/radar/quality/iqi_summary_response.py index 3e241c1ed90..9d77b0a9190 100644 --- a/src/cloudflare/types/radar/quality/iqi_summary_response.py +++ b/src/cloudflare/types/radar/quality/iqi_summary_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "IQISummaryResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["IQISummaryResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/quality/speed/top_ases_response.py b/src/cloudflare/types/radar/quality/speed/top_ases_response.py index a67ff9d1ba8..b555b0e2ea6 100644 --- a/src/cloudflare/types/radar/quality/speed/top_ases_response.py +++ b/src/cloudflare/types/radar/quality/speed/top_ases_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopAsesResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopAsesResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/quality/speed/top_locations_response.py b/src/cloudflare/types/radar/quality/speed/top_locations_response.py index 37420438e16..7fb112fdf9a 100644 --- a/src/cloudflare/types/radar/quality/speed/top_locations_response.py +++ b/src/cloudflare/types/radar/quality/speed/top_locations_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "TopLocationsResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopLocationsResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/quality/speed_summary_response.py b/src/cloudflare/types/radar/quality/speed_summary_response.py index af59a84fb16..cfbff8e8bc7 100644 --- a/src/cloudflare/types/radar/quality/speed_summary_response.py +++ b/src/cloudflare/types/radar/quality/speed_summary_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "SpeedSummaryResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["SpeedSummaryResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/radar_email_series.py b/src/cloudflare/types/radar/radar_email_series.py deleted file mode 100644 index dbe15ff3c54..00000000000 --- a/src/cloudflare/types/radar/radar_email_series.py +++ /dev/null @@ -1,17 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import List - -from pydantic import Field as FieldInfo - -from ..._models import BaseModel - -__all__ = ["RadarEmailSeries"] - - -class RadarEmailSeries(BaseModel): - fail: List[str] = FieldInfo(alias="FAIL") - - none: List[str] = FieldInfo(alias="NONE") - - pass_: List[str] = FieldInfo(alias="PASS") diff --git a/src/cloudflare/types/radar/radar_email_summary.py b/src/cloudflare/types/radar/radar_email_summary.py deleted file mode 100644 index d98b19527cb..00000000000 --- a/src/cloudflare/types/radar/radar_email_summary.py +++ /dev/null @@ -1,16 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - - -from pydantic import Field as FieldInfo - -from ..._models import BaseModel - -__all__ = ["RadarEmailSummary"] - - -class RadarEmailSummary(BaseModel): - fail: str = FieldInfo(alias="FAIL") - - none: str = FieldInfo(alias="NONE") - - pass_: str = FieldInfo(alias="PASS") diff --git a/src/cloudflare/types/radar/ranking/domain_get_response.py b/src/cloudflare/types/radar/ranking/domain_get_response.py index c577ec3c1d3..9b5951752a6 100644 --- a/src/cloudflare/types/radar/ranking/domain_get_response.py +++ b/src/cloudflare/types/radar/ranking/domain_get_response.py @@ -1,13 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["DomainGetResponse", "Details0", "Details0Category", "Details0TopLocation", "Meta", "MetaDateRange"] +__all__ = ["DomainGetResponse", "Details0", "Details0Category", "Details0TopLocation", "Meta"] class Details0Category(BaseModel): @@ -37,16 +36,8 @@ class Details0(BaseModel): top_locations: Optional[List[Details0TopLocation]] = None -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") class DomainGetResponse(BaseModel): diff --git a/src/cloudflare/types/radar/ranking/internet_service_timeseries_groups_response.py b/src/cloudflare/types/radar/ranking/internet_service_timeseries_groups_response.py index 76ac2a31de8..2755417be5d 100644 --- a/src/cloudflare/types/radar/ranking/internet_service_timeseries_groups_response.py +++ b/src/cloudflare/types/radar/ranking/internet_service_timeseries_groups_response.py @@ -1,25 +1,16 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import TYPE_CHECKING, List, Union -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["InternetServiceTimeseriesGroupsResponse", "Meta", "MetaDateRange", "Serie0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" +__all__ = ["InternetServiceTimeseriesGroupsResponse", "Meta", "Serie0"] class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") class Serie0(BaseModel): diff --git a/src/cloudflare/types/radar/ranking_timeseries_groups_response.py b/src/cloudflare/types/radar/ranking_timeseries_groups_response.py index 804dbdab1cb..7f356af4f35 100644 --- a/src/cloudflare/types/radar/ranking_timeseries_groups_response.py +++ b/src/cloudflare/types/radar/ranking_timeseries_groups_response.py @@ -1,25 +1,16 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import TYPE_CHECKING, List, Union -from datetime import datetime from pydantic import Field as FieldInfo from ..._models import BaseModel -__all__ = ["RankingTimeseriesGroupsResponse", "Meta", "MetaDateRange", "Serie0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" +__all__ = ["RankingTimeseriesGroupsResponse", "Meta", "Serie0"] class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") class Serie0(BaseModel): diff --git a/src/cloudflare/types/radar/robots_txt/top/user_agent_directive_response.py b/src/cloudflare/types/radar/robots_txt/top/user_agent_directive_response.py index 945a2b60827..87d3af6b4ae 100644 --- a/src/cloudflare/types/radar/robots_txt/top/user_agent_directive_response.py +++ b/src/cloudflare/types/radar/robots_txt/top/user_agent_directive_response.py @@ -1,49 +1,16 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = [ - "UserAgentDirectiveResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "MetaUnit", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["UserAgentDirectiveResponse", "Meta", "MetaConfidenceInfo", "MetaUnit", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None @@ -55,7 +22,7 @@ class MetaUnit(BaseModel): class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/robots_txt/top_domain_categories_response.py b/src/cloudflare/types/radar/robots_txt/top_domain_categories_response.py index 10e1d0c48ba..fba44f958f8 100644 --- a/src/cloudflare/types/radar/robots_txt/top_domain_categories_response.py +++ b/src/cloudflare/types/radar/robots_txt/top_domain_categories_response.py @@ -1,49 +1,16 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "TopDomainCategoriesResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "MetaUnit", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopDomainCategoriesResponse", "Meta", "MetaConfidenceInfo", "MetaUnit", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None @@ -55,7 +22,7 @@ class MetaUnit(BaseModel): class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/tcp_resets_timeout_summary_response.py b/src/cloudflare/types/radar/tcp_resets_timeout_summary_response.py index f38a9c7df46..04928396bdb 100644 --- a/src/cloudflare/types/radar/tcp_resets_timeout_summary_response.py +++ b/src/cloudflare/types/radar/tcp_resets_timeout_summary_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ..._models import BaseModel -__all__ = [ - "TCPResetsTimeoutSummaryResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Summary0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TCPResetsTimeoutSummaryResponse", "Meta", "MetaConfidenceInfo", "Summary0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) diff --git a/src/cloudflare/types/radar/tcp_resets_timeout_timeseries_groups_response.py b/src/cloudflare/types/radar/tcp_resets_timeout_timeseries_groups_response.py index b6ab06c0b94..3353b7eaf42 100644 --- a/src/cloudflare/types/radar/tcp_resets_timeout_timeseries_groups_response.py +++ b/src/cloudflare/types/radar/tcp_resets_timeout_timeseries_groups_response.py @@ -7,42 +7,11 @@ from ..._models import BaseModel -__all__ = [ - "TCPResetsTimeoutTimeseriesGroupsResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Serie0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TCPResetsTimeoutTimeseriesGroupsResponse", "Meta", "MetaConfidenceInfo", "Serie0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None @@ -50,7 +19,7 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/traffic_anomalies/location_get_response.py b/src/cloudflare/types/radar/traffic_anomalies/location_get_response.py index 3cf6ca01da7..3935bd22ad5 100644 --- a/src/cloudflare/types/radar/traffic_anomalies/location_get_response.py +++ b/src/cloudflare/types/radar/traffic_anomalies/location_get_response.py @@ -6,16 +6,8 @@ from ...._models import BaseModel -__all__ = ["LocationGetResponse", "TrafficAnomaly"] - - -class TrafficAnomaly(BaseModel): - client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") - - client_country_name: str = FieldInfo(alias="clientCountryName") - - value: str +__all__ = ["LocationGetResponse"] class LocationGetResponse(BaseModel): - traffic_anomalies: List[TrafficAnomaly] = FieldInfo(alias="trafficAnomalies") + traffic_anomalies: List[object] = FieldInfo(alias="trafficAnomalies") diff --git a/src/cloudflare/types/radar/traffic_anomaly_get_response.py b/src/cloudflare/types/radar/traffic_anomaly_get_response.py index ba231bfa22c..04522cb703c 100644 --- a/src/cloudflare/types/radar/traffic_anomaly_get_response.py +++ b/src/cloudflare/types/radar/traffic_anomaly_get_response.py @@ -6,19 +6,7 @@ from ..._models import BaseModel -__all__ = [ - "TrafficAnomalyGetResponse", - "TrafficAnomaly", - "TrafficAnomalyASNDetails", - "TrafficAnomalyASNDetailsLocations", - "TrafficAnomalyLocationDetails", -] - - -class TrafficAnomalyASNDetailsLocations(BaseModel): - code: str - - name: str +__all__ = ["TrafficAnomalyGetResponse", "TrafficAnomaly", "TrafficAnomalyASNDetails"] class TrafficAnomalyASNDetails(BaseModel): @@ -26,13 +14,7 @@ class TrafficAnomalyASNDetails(BaseModel): name: str - locations: Optional[TrafficAnomalyASNDetailsLocations] = None - - -class TrafficAnomalyLocationDetails(BaseModel): - code: str - - name: str + locations: Optional[object] = None class TrafficAnomaly(BaseModel): @@ -48,7 +30,7 @@ class TrafficAnomaly(BaseModel): end_date: Optional[str] = FieldInfo(alias="endDate", default=None) - location_details: Optional[TrafficAnomalyLocationDetails] = FieldInfo(alias="locationDetails", default=None) + location_details: Optional[object] = FieldInfo(alias="locationDetails", default=None) visible_in_data_sources: Optional[List[str]] = FieldInfo(alias="visibleInDataSources", default=None) diff --git a/src/cloudflare/types/radar/verified_bots/top_bots_response.py b/src/cloudflare/types/radar/verified_bots/top_bots_response.py index 2e3ffc6a653..1f226fe04cf 100644 --- a/src/cloudflare/types/radar/verified_bots/top_bots_response.py +++ b/src/cloudflare/types/radar/verified_bots/top_bots_response.py @@ -1,47 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopBotsResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopBotsResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) diff --git a/src/cloudflare/types/radar/verified_bots/top_categories_response.py b/src/cloudflare/types/radar/verified_bots/top_categories_response.py index 46260e454ca..83c6ae4220e 100644 --- a/src/cloudflare/types/radar/verified_bots/top_categories_response.py +++ b/src/cloudflare/types/radar/verified_bots/top_categories_response.py @@ -1,54 +1,22 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional -from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = [ - "TopCategoriesResponse", - "Meta", - "MetaDateRange", - "MetaConfidenceInfo", - "MetaConfidenceInfoAnnotation", - "Top0", -] - - -class MetaDateRange(BaseModel): - end_time: datetime = FieldInfo(alias="endTime") - """Adjusted end of date range.""" - - start_time: datetime = FieldInfo(alias="startTime") - """Adjusted start of date range.""" - - -class MetaConfidenceInfoAnnotation(BaseModel): - data_source: str = FieldInfo(alias="dataSource") - - description: str - - event_type: str = FieldInfo(alias="eventType") - - is_instantaneous: bool = FieldInfo(alias="isInstantaneous") - - end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) - - linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) - - start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) +__all__ = ["TopCategoriesResponse", "Meta", "MetaConfidenceInfo", "Top0"] class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None + annotations: Optional[List[object]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") + date_range: List[object] = FieldInfo(alias="dateRange") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) diff --git a/src/cloudflare/types/rules/lists/__init__.py b/src/cloudflare/types/rules/lists/__init__.py index 8cde7ce9c5c..f168e92414b 100644 --- a/src/cloudflare/types/rules/lists/__init__.py +++ b/src/cloudflare/types/rules/lists/__init__.py @@ -2,9 +2,7 @@ from __future__ import annotations -from .list_cursor import ListCursor as ListCursor from .item_list_params import ItemListParams as ItemListParams -from .operation_status import OperationStatus as OperationStatus from .item_get_response import ItemGetResponse as ItemGetResponse from .item_create_params import ItemCreateParams as ItemCreateParams from .item_list_response import ItemListResponse as ItemListResponse diff --git a/src/cloudflare/types/rules/lists/bulk_operation_get_response.py b/src/cloudflare/types/rules/lists/bulk_operation_get_response.py index 9234bdeb693..25aca45e5ad 100644 --- a/src/cloudflare/types/rules/lists/bulk_operation_get_response.py +++ b/src/cloudflare/types/rules/lists/bulk_operation_get_response.py @@ -3,7 +3,6 @@ from typing import Optional from ...._models import BaseModel -from .operation_status import OperationStatus __all__ = ["BulkOperationGetResponse"] @@ -12,8 +11,7 @@ class BulkOperationGetResponse(BaseModel): id: str """The unique operation ID of the asynchronous action.""" - status: OperationStatus - """The current status of the asynchronous operation.""" + status: object completed: Optional[str] = None """The RFC 3339 timestamp of when the operation was completed.""" diff --git a/src/cloudflare/types/rules/lists/list_cursor.py b/src/cloudflare/types/rules/lists/list_cursor.py deleted file mode 100644 index 2757b8af132..00000000000 --- a/src/cloudflare/types/rules/lists/list_cursor.py +++ /dev/null @@ -1,13 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ...._models import BaseModel - -__all__ = ["ListCursor"] - - -class ListCursor(BaseModel): - after: Optional[str] = None - - before: Optional[str] = None diff --git a/src/cloudflare/types/rules/lists/operation_status.py b/src/cloudflare/types/rules/lists/operation_status.py deleted file mode 100644 index 4d5a1520f69..00000000000 --- a/src/cloudflare/types/rules/lists/operation_status.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["OperationStatus"] - -OperationStatus: TypeAlias = Literal["pending", "running", "completed", "failed"] diff --git a/src/cloudflare/types/rulesets/__init__.py b/src/cloudflare/types/rulesets/__init__.py index 24d5f8e30d0..1267f564021 100644 --- a/src/cloudflare/types/rulesets/__init__.py +++ b/src/cloudflare/types/rulesets/__init__.py @@ -4,7 +4,6 @@ from .kind import Kind as Kind from .phase import Phase as Phase -from .logging import Logging as Logging from .log_rule import LogRule as LogRule from .skip_rule import SkipRule as SkipRule from .block_rule import BlockRule as BlockRule @@ -12,7 +11,6 @@ from .score_rule import ScoreRule as ScoreRule from .execute_rule import ExecuteRule as ExecuteRule from .rewrite_rule import RewriteRule as RewriteRule -from .logging_param import LoggingParam as LoggingParam from .redirect_rule import RedirectRule as RedirectRule from .log_rule_param import LogRuleParam as LogRuleParam from .set_config_rule import SetConfigRule as SetConfigRule diff --git a/src/cloudflare/types/rulesets/block_rule.py b/src/cloudflare/types/rulesets/block_rule.py index 9cdf57de894..ae82570e734 100644 --- a/src/cloudflare/types/rulesets/block_rule.py +++ b/src/cloudflare/types/rulesets/block_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal -from .logging import Logging from ..._models import BaseModel __all__ = ["BlockRule", "ActionParameters", "ActionParametersResponse", "ExposedCredentialCheck", "Ratelimit"] @@ -109,8 +108,7 @@ class BlockRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/block_rule_param.py b/src/cloudflare/types/rulesets/block_rule_param.py index bda8d9f51d1..03faeaf69cb 100644 --- a/src/cloudflare/types/rulesets/block_rule_param.py +++ b/src/cloudflare/types/rulesets/block_rule_param.py @@ -5,8 +5,6 @@ from typing import List from typing_extensions import Literal, Required, TypedDict -from .logging_param import LoggingParam - __all__ = ["BlockRuleParam", "ActionParameters", "ActionParametersResponse", "ExposedCredentialCheck", "Ratelimit"] @@ -100,8 +98,7 @@ class BlockRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/compress_response_rule.py b/src/cloudflare/types/rulesets/compress_response_rule.py index 201c9b16655..c5688523c59 100644 --- a/src/cloudflare/types/rulesets/compress_response_rule.py +++ b/src/cloudflare/types/rulesets/compress_response_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal -from .logging import Logging from ..._models import BaseModel __all__ = [ @@ -109,8 +108,7 @@ class CompressResponseRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/compress_response_rule_param.py b/src/cloudflare/types/rulesets/compress_response_rule_param.py index 9381ecbcb2a..4b61ae514b2 100644 --- a/src/cloudflare/types/rulesets/compress_response_rule_param.py +++ b/src/cloudflare/types/rulesets/compress_response_rule_param.py @@ -5,8 +5,6 @@ from typing import List, Iterable from typing_extensions import Literal, Required, TypedDict -from .logging_param import LoggingParam - __all__ = [ "CompressResponseRuleParam", "ActionParameters", @@ -100,8 +98,7 @@ class CompressResponseRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ddos_dynamic_rule.py b/src/cloudflare/types/rulesets/ddos_dynamic_rule.py index c00f20cec05..b52393fbd17 100644 --- a/src/cloudflare/types/rulesets/ddos_dynamic_rule.py +++ b/src/cloudflare/types/rulesets/ddos_dynamic_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal -from .logging import Logging from ..._models import BaseModel __all__ = ["DDoSDynamicRule", "ExposedCredentialCheck", "Ratelimit"] @@ -93,8 +92,7 @@ class DDoSDynamicRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ddos_dynamic_rule_param.py b/src/cloudflare/types/rulesets/ddos_dynamic_rule_param.py index 174fa07a079..141bfa3be95 100644 --- a/src/cloudflare/types/rulesets/ddos_dynamic_rule_param.py +++ b/src/cloudflare/types/rulesets/ddos_dynamic_rule_param.py @@ -5,8 +5,6 @@ from typing import List from typing_extensions import Literal, Required, TypedDict -from .logging_param import LoggingParam - __all__ = ["DDoSDynamicRuleParam", "ExposedCredentialCheck", "Ratelimit"] @@ -84,8 +82,7 @@ class DDoSDynamicRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/execute_rule.py b/src/cloudflare/types/rulesets/execute_rule.py index a6d9158a50b..d52d434072a 100644 --- a/src/cloudflare/types/rulesets/execute_rule.py +++ b/src/cloudflare/types/rulesets/execute_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal -from .logging import Logging from ..._models import BaseModel __all__ = [ @@ -179,8 +178,7 @@ class ExecuteRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/execute_rule_param.py b/src/cloudflare/types/rulesets/execute_rule_param.py index ac8f481a99d..5080058bdb1 100644 --- a/src/cloudflare/types/rulesets/execute_rule_param.py +++ b/src/cloudflare/types/rulesets/execute_rule_param.py @@ -5,8 +5,6 @@ from typing import List, Iterable from typing_extensions import Literal, Required, TypedDict -from .logging_param import LoggingParam - __all__ = [ "ExecuteRuleParam", "ActionParameters", @@ -170,8 +168,7 @@ class ExecuteRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/force_connection_close_rule.py b/src/cloudflare/types/rulesets/force_connection_close_rule.py index c77ae8927d3..701d998e85a 100644 --- a/src/cloudflare/types/rulesets/force_connection_close_rule.py +++ b/src/cloudflare/types/rulesets/force_connection_close_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal -from .logging import Logging from ..._models import BaseModel __all__ = ["ForceConnectionCloseRule", "ExposedCredentialCheck", "Ratelimit"] @@ -93,8 +92,7 @@ class ForceConnectionCloseRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/force_connection_close_rule_param.py b/src/cloudflare/types/rulesets/force_connection_close_rule_param.py index 34639806546..3bb55845cf6 100644 --- a/src/cloudflare/types/rulesets/force_connection_close_rule_param.py +++ b/src/cloudflare/types/rulesets/force_connection_close_rule_param.py @@ -5,8 +5,6 @@ from typing import List from typing_extensions import Literal, Required, TypedDict -from .logging_param import LoggingParam - __all__ = ["ForceConnectionCloseRuleParam", "ExposedCredentialCheck", "Ratelimit"] @@ -84,8 +82,7 @@ class ForceConnectionCloseRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/log_custom_field_rule.py b/src/cloudflare/types/rulesets/log_custom_field_rule.py index d73b1a856cf..8e0e1ddbb31 100644 --- a/src/cloudflare/types/rulesets/log_custom_field_rule.py +++ b/src/cloudflare/types/rulesets/log_custom_field_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal -from .logging import Logging from ..._models import BaseModel __all__ = [ @@ -151,8 +150,7 @@ class LogCustomFieldRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/log_custom_field_rule_param.py b/src/cloudflare/types/rulesets/log_custom_field_rule_param.py index a2103644fee..360ae98bad3 100644 --- a/src/cloudflare/types/rulesets/log_custom_field_rule_param.py +++ b/src/cloudflare/types/rulesets/log_custom_field_rule_param.py @@ -5,8 +5,6 @@ from typing import List, Iterable from typing_extensions import Literal, Required, TypedDict -from .logging_param import LoggingParam - __all__ = [ "LogCustomFieldRuleParam", "ActionParameters", @@ -142,8 +140,7 @@ class LogCustomFieldRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/log_rule.py b/src/cloudflare/types/rulesets/log_rule.py index ffd9057a1ec..5915cb293c8 100644 --- a/src/cloudflare/types/rulesets/log_rule.py +++ b/src/cloudflare/types/rulesets/log_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal -from .logging import Logging from ..._models import BaseModel __all__ = ["LogRule", "ExposedCredentialCheck", "Ratelimit"] @@ -93,8 +92,7 @@ class LogRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/log_rule_param.py b/src/cloudflare/types/rulesets/log_rule_param.py index f17d0680d85..e59f41502f4 100644 --- a/src/cloudflare/types/rulesets/log_rule_param.py +++ b/src/cloudflare/types/rulesets/log_rule_param.py @@ -5,8 +5,6 @@ from typing import List from typing_extensions import Literal, Required, TypedDict -from .logging_param import LoggingParam - __all__ = ["LogRuleParam", "ExposedCredentialCheck", "Ratelimit"] @@ -84,8 +82,7 @@ class LogRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/logging.py b/src/cloudflare/types/rulesets/logging.py deleted file mode 100644 index 30288f7c3a9..00000000000 --- a/src/cloudflare/types/rulesets/logging.py +++ /dev/null @@ -1,11 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - - -from ..._models import BaseModel - -__all__ = ["Logging"] - - -class Logging(BaseModel): - enabled: bool - """Whether to generate a log when the rule matches.""" diff --git a/src/cloudflare/types/rulesets/logging_param.py b/src/cloudflare/types/rulesets/logging_param.py deleted file mode 100644 index 7ffdd5a2f4d..00000000000 --- a/src/cloudflare/types/rulesets/logging_param.py +++ /dev/null @@ -1,12 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import Required, TypedDict - -__all__ = ["LoggingParam"] - - -class LoggingParam(TypedDict, total=False): - enabled: Required[bool] - """Whether to generate a log when the rule matches.""" diff --git a/src/cloudflare/types/rulesets/managed_challenge_rule.py b/src/cloudflare/types/rulesets/managed_challenge_rule.py index 1a4e19eb835..f10cb4f7c40 100644 --- a/src/cloudflare/types/rulesets/managed_challenge_rule.py +++ b/src/cloudflare/types/rulesets/managed_challenge_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal -from .logging import Logging from ..._models import BaseModel __all__ = ["ManagedChallengeRule", "ExposedCredentialCheck", "Ratelimit"] @@ -93,8 +92,7 @@ class ManagedChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/managed_challenge_rule_param.py b/src/cloudflare/types/rulesets/managed_challenge_rule_param.py index e2817122871..d5de1a30525 100644 --- a/src/cloudflare/types/rulesets/managed_challenge_rule_param.py +++ b/src/cloudflare/types/rulesets/managed_challenge_rule_param.py @@ -5,8 +5,6 @@ from typing import List from typing_extensions import Literal, Required, TypedDict -from .logging_param import LoggingParam - __all__ = ["ManagedChallengeRuleParam", "ExposedCredentialCheck", "Ratelimit"] @@ -84,8 +82,7 @@ class ManagedChallengeRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/phase_get_response.py b/src/cloudflare/types/rulesets/phase_get_response.py index f50305b6b28..596eda8e972 100644 --- a/src/cloudflare/types/rulesets/phase_get_response.py +++ b/src/cloudflare/types/rulesets/phase_get_response.py @@ -6,7 +6,6 @@ from .kind import Kind from .phase import Phase -from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -121,8 +120,7 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -214,8 +212,7 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/phase_update_params.py b/src/cloudflare/types/rulesets/phase_update_params.py index bd12793e965..7ee9163d3e6 100644 --- a/src/cloudflare/types/rulesets/phase_update_params.py +++ b/src/cloudflare/types/rulesets/phase_update_params.py @@ -5,7 +5,6 @@ from typing import List, Union, Iterable from typing_extensions import Literal, Required, TypeAlias, TypedDict -from .logging_param import LoggingParam from .log_rule_param import LogRuleParam from .skip_rule_param import SkipRuleParam from .block_rule_param import BlockRuleParam @@ -126,8 +125,7 @@ class RuleRulesetsChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: RuleRulesetsChallengeRuleRatelimit """An object configuring the rule's ratelimit behavior.""" @@ -210,8 +208,7 @@ class RuleRulesetsJSChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: RuleRulesetsJSChallengeRuleRatelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/phase_update_response.py b/src/cloudflare/types/rulesets/phase_update_response.py index e772aa4251d..681341787be 100644 --- a/src/cloudflare/types/rulesets/phase_update_response.py +++ b/src/cloudflare/types/rulesets/phase_update_response.py @@ -6,7 +6,6 @@ from .kind import Kind from .phase import Phase -from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -121,8 +120,7 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -214,8 +212,7 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/phases/version_get_response.py b/src/cloudflare/types/rulesets/phases/version_get_response.py index 090d33dd65d..bb7da6b2f3f 100644 --- a/src/cloudflare/types/rulesets/phases/version_get_response.py +++ b/src/cloudflare/types/rulesets/phases/version_get_response.py @@ -6,7 +6,6 @@ from ..kind import Kind from ..phase import Phase -from ..logging import Logging from ...._utils import PropertyInfo from ..log_rule import LogRule from ...._models import BaseModel @@ -121,8 +120,7 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -214,8 +212,7 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/redirect_rule.py b/src/cloudflare/types/rulesets/redirect_rule.py index 0ec41cc31ef..7dbbb6142f7 100644 --- a/src/cloudflare/types/rulesets/redirect_rule.py +++ b/src/cloudflare/types/rulesets/redirect_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal, TypeAlias -from .logging import Logging from ..._models import BaseModel __all__ = [ @@ -145,8 +144,7 @@ class RedirectRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/redirect_rule_param.py b/src/cloudflare/types/rulesets/redirect_rule_param.py index 5059f165f30..28c04d4a4f7 100644 --- a/src/cloudflare/types/rulesets/redirect_rule_param.py +++ b/src/cloudflare/types/rulesets/redirect_rule_param.py @@ -5,8 +5,6 @@ from typing import List, Union from typing_extensions import Literal, Required, TypeAlias, TypedDict -from .logging_param import LoggingParam - __all__ = [ "RedirectRuleParam", "ActionParameters", @@ -136,8 +134,7 @@ class RedirectRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/rewrite_rule.py b/src/cloudflare/types/rulesets/rewrite_rule.py index 67e364d678c..2ed55b7d01d 100644 --- a/src/cloudflare/types/rulesets/rewrite_rule.py +++ b/src/cloudflare/types/rulesets/rewrite_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal, TypeAlias -from .logging import Logging from ..._models import BaseModel from .rewrite_uri_part import RewriteURIPart @@ -143,8 +142,7 @@ class RewriteRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/rewrite_rule_param.py b/src/cloudflare/types/rulesets/rewrite_rule_param.py index 0b247904202..9a584749263 100644 --- a/src/cloudflare/types/rulesets/rewrite_rule_param.py +++ b/src/cloudflare/types/rulesets/rewrite_rule_param.py @@ -5,7 +5,6 @@ from typing import Dict, List, Union from typing_extensions import Literal, Required, TypeAlias, TypedDict -from .logging_param import LoggingParam from .rewrite_uri_part_param import RewriteURIPartParam __all__ = [ @@ -134,8 +133,7 @@ class RewriteRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/route_rule.py b/src/cloudflare/types/rulesets/route_rule.py index e0d5e192a60..f223e34dc7c 100644 --- a/src/cloudflare/types/rulesets/route_rule.py +++ b/src/cloudflare/types/rulesets/route_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal -from .logging import Logging from ..._models import BaseModel __all__ = [ @@ -124,8 +123,7 @@ class RouteRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/route_rule_param.py b/src/cloudflare/types/rulesets/route_rule_param.py index c1c1f8e6ab0..07dd6d89de6 100644 --- a/src/cloudflare/types/rulesets/route_rule_param.py +++ b/src/cloudflare/types/rulesets/route_rule_param.py @@ -5,8 +5,6 @@ from typing import List from typing_extensions import Literal, Required, TypedDict -from .logging_param import LoggingParam - __all__ = [ "RouteRuleParam", "ActionParameters", @@ -115,8 +113,7 @@ class RouteRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/rule_create_params.py b/src/cloudflare/types/rulesets/rule_create_params.py index 942013f6902..16c82bd78f7 100644 --- a/src/cloudflare/types/rulesets/rule_create_params.py +++ b/src/cloudflare/types/rulesets/rule_create_params.py @@ -6,7 +6,6 @@ from typing_extensions import Literal, Required, TypeAlias, TypedDict from .phase import Phase -from .logging_param import LoggingParam from .rewrite_uri_part_param import RewriteURIPartParam __all__ = [ @@ -225,8 +224,7 @@ class BlockRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: BlockRulePosition """An object configuring where the rule will be placed.""" @@ -360,8 +358,7 @@ class ChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: ChallengeRulePosition """An object configuring where the rule will be placed.""" @@ -479,8 +476,7 @@ class CompressionRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: CompressionRulePosition """An object configuring where the rule will be placed.""" @@ -608,8 +604,7 @@ class ExecuteRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: ExecuteRulePosition """An object configuring where the rule will be placed.""" @@ -804,8 +799,7 @@ class JavascriptChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: JavascriptChallengeRulePosition """An object configuring where the rule will be placed.""" @@ -925,8 +919,7 @@ class LogRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: LogRulePosition """An object configuring where the rule will be placed.""" @@ -1044,8 +1037,7 @@ class ManagedChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: ManagedChallengeRulePosition """An object configuring where the rule will be placed.""" @@ -1165,8 +1157,7 @@ class RedirectRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: RedirectRulePosition """An object configuring where the rule will be placed.""" @@ -1327,8 +1318,7 @@ class RewriteRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: RewriteRulePosition """An object configuring where the rule will be placed.""" @@ -1487,8 +1477,7 @@ class OriginRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: OriginRulePosition """An object configuring where the rule will be placed.""" @@ -1630,8 +1619,7 @@ class ScoreRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: ScoreRulePosition """An object configuring where the rule will be placed.""" @@ -1757,8 +1745,7 @@ class ServeErrorRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: ServeErrorRulePosition """An object configuring where the rule will be placed.""" @@ -1887,8 +1874,7 @@ class SetConfigRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: SetConfigRulePosition """An object configuring where the rule will be placed.""" @@ -2070,8 +2056,7 @@ class SkipRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: SkipRulePosition """An object configuring where the rule will be placed.""" @@ -2218,8 +2203,7 @@ class SetCacheSettingsRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: SetCacheSettingsRulePosition """An object configuring where the rule will be placed.""" @@ -2637,8 +2621,7 @@ class LogCustomFieldRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: LogCustomFieldRulePosition """An object configuring where the rule will be placed.""" @@ -2806,8 +2789,7 @@ class DDoSDynamicRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: DDoSDynamicRulePosition """An object configuring where the rule will be placed.""" @@ -2925,8 +2907,7 @@ class ForceConnectionCloseRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: ForceConnectionCloseRulePosition """An object configuring where the rule will be placed.""" diff --git a/src/cloudflare/types/rulesets/rule_create_response.py b/src/cloudflare/types/rulesets/rule_create_response.py index 3f748a65553..f975b84e908 100644 --- a/src/cloudflare/types/rulesets/rule_create_response.py +++ b/src/cloudflare/types/rulesets/rule_create_response.py @@ -6,7 +6,6 @@ from .kind import Kind from .phase import Phase -from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -121,8 +120,7 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -214,8 +212,7 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/rule_delete_response.py b/src/cloudflare/types/rulesets/rule_delete_response.py index 09f823678f6..bc4b06a0a9c 100644 --- a/src/cloudflare/types/rulesets/rule_delete_response.py +++ b/src/cloudflare/types/rulesets/rule_delete_response.py @@ -6,7 +6,6 @@ from .kind import Kind from .phase import Phase -from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -121,8 +120,7 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -214,8 +212,7 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/rule_edit_params.py b/src/cloudflare/types/rulesets/rule_edit_params.py index beca5b3766e..b17c51ba3e6 100644 --- a/src/cloudflare/types/rulesets/rule_edit_params.py +++ b/src/cloudflare/types/rulesets/rule_edit_params.py @@ -6,7 +6,6 @@ from typing_extensions import Literal, Required, TypeAlias, TypedDict from .phase import Phase -from .logging_param import LoggingParam from .rewrite_uri_part_param import RewriteURIPartParam __all__ = [ @@ -228,8 +227,7 @@ class BlockRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: BlockRulePosition """An object configuring where the rule will be placed.""" @@ -366,8 +364,7 @@ class ChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: ChallengeRulePosition """An object configuring where the rule will be placed.""" @@ -488,8 +485,7 @@ class CompressionRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: CompressionRulePosition """An object configuring where the rule will be placed.""" @@ -620,8 +616,7 @@ class ExecuteRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: ExecuteRulePosition """An object configuring where the rule will be placed.""" @@ -819,8 +814,7 @@ class JavascriptChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: JavascriptChallengeRulePosition """An object configuring where the rule will be placed.""" @@ -943,8 +937,7 @@ class LogRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: LogRulePosition """An object configuring where the rule will be placed.""" @@ -1065,8 +1058,7 @@ class ManagedChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: ManagedChallengeRulePosition """An object configuring where the rule will be placed.""" @@ -1189,8 +1181,7 @@ class RedirectRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: RedirectRulePosition """An object configuring where the rule will be placed.""" @@ -1354,8 +1345,7 @@ class RewriteRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: RewriteRulePosition """An object configuring where the rule will be placed.""" @@ -1517,8 +1507,7 @@ class OriginRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: OriginRulePosition """An object configuring where the rule will be placed.""" @@ -1663,8 +1652,7 @@ class ScoreRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: ScoreRulePosition """An object configuring where the rule will be placed.""" @@ -1793,8 +1781,7 @@ class ServeErrorRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: ServeErrorRulePosition """An object configuring where the rule will be placed.""" @@ -1926,8 +1913,7 @@ class SetConfigRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: SetConfigRulePosition """An object configuring where the rule will be placed.""" @@ -2112,8 +2098,7 @@ class SkipRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: SkipRulePosition """An object configuring where the rule will be placed.""" @@ -2263,8 +2248,7 @@ class SetCacheSettingsRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: SetCacheSettingsRulePosition """An object configuring where the rule will be placed.""" @@ -2685,8 +2669,7 @@ class LogCustomFieldRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: LogCustomFieldRulePosition """An object configuring where the rule will be placed.""" @@ -2857,8 +2840,7 @@ class DDoSDynamicRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: DDoSDynamicRulePosition """An object configuring where the rule will be placed.""" @@ -2979,8 +2961,7 @@ class ForceConnectionCloseRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object position: ForceConnectionCloseRulePosition """An object configuring where the rule will be placed.""" diff --git a/src/cloudflare/types/rulesets/rule_edit_response.py b/src/cloudflare/types/rulesets/rule_edit_response.py index 15e1ec09144..649fb76619e 100644 --- a/src/cloudflare/types/rulesets/rule_edit_response.py +++ b/src/cloudflare/types/rulesets/rule_edit_response.py @@ -6,7 +6,6 @@ from .kind import Kind from .phase import Phase -from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -121,8 +120,7 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -214,8 +212,7 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ruleset_create_params.py b/src/cloudflare/types/rulesets/ruleset_create_params.py index c1792db3ba4..765fb234c97 100644 --- a/src/cloudflare/types/rulesets/ruleset_create_params.py +++ b/src/cloudflare/types/rulesets/ruleset_create_params.py @@ -7,7 +7,6 @@ from .kind import Kind from .phase import Phase -from .logging_param import LoggingParam from .log_rule_param import LogRuleParam from .skip_rule_param import SkipRuleParam from .block_rule_param import BlockRuleParam @@ -134,8 +133,7 @@ class RuleRulesetsChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: RuleRulesetsChallengeRuleRatelimit """An object configuring the rule's ratelimit behavior.""" @@ -218,8 +216,7 @@ class RuleRulesetsJSChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: RuleRulesetsJSChallengeRuleRatelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ruleset_create_response.py b/src/cloudflare/types/rulesets/ruleset_create_response.py index 179486bcc68..021adaccf32 100644 --- a/src/cloudflare/types/rulesets/ruleset_create_response.py +++ b/src/cloudflare/types/rulesets/ruleset_create_response.py @@ -6,7 +6,6 @@ from .kind import Kind from .phase import Phase -from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -121,8 +120,7 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -214,8 +212,7 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ruleset_get_response.py b/src/cloudflare/types/rulesets/ruleset_get_response.py index 12c80e5dc57..d54e0ff6906 100644 --- a/src/cloudflare/types/rulesets/ruleset_get_response.py +++ b/src/cloudflare/types/rulesets/ruleset_get_response.py @@ -6,7 +6,6 @@ from .kind import Kind from .phase import Phase -from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -121,8 +120,7 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -214,8 +212,7 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ruleset_update_params.py b/src/cloudflare/types/rulesets/ruleset_update_params.py index 46291acc0ec..08aa7108f74 100644 --- a/src/cloudflare/types/rulesets/ruleset_update_params.py +++ b/src/cloudflare/types/rulesets/ruleset_update_params.py @@ -7,7 +7,6 @@ from .kind import Kind from .phase import Phase -from .logging_param import LoggingParam from .log_rule_param import LogRuleParam from .skip_rule_param import SkipRuleParam from .block_rule_param import BlockRuleParam @@ -134,8 +133,7 @@ class RuleRulesetsChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: RuleRulesetsChallengeRuleRatelimit """An object configuring the rule's ratelimit behavior.""" @@ -218,8 +216,7 @@ class RuleRulesetsJSChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: RuleRulesetsJSChallengeRuleRatelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ruleset_update_response.py b/src/cloudflare/types/rulesets/ruleset_update_response.py index 76fe26fbdde..285790efc20 100644 --- a/src/cloudflare/types/rulesets/ruleset_update_response.py +++ b/src/cloudflare/types/rulesets/ruleset_update_response.py @@ -6,7 +6,6 @@ from .kind import Kind from .phase import Phase -from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -121,8 +120,7 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -214,8 +212,7 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/score_rule.py b/src/cloudflare/types/rulesets/score_rule.py index 7a40ab5419e..f5a4e6d16c9 100644 --- a/src/cloudflare/types/rulesets/score_rule.py +++ b/src/cloudflare/types/rulesets/score_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal -from .logging import Logging from ..._models import BaseModel __all__ = ["ScoreRule", "ActionParameters", "ExposedCredentialCheck", "Ratelimit"] @@ -101,8 +100,7 @@ class ScoreRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/score_rule_param.py b/src/cloudflare/types/rulesets/score_rule_param.py index db415ebfbd8..5a15d1d7b18 100644 --- a/src/cloudflare/types/rulesets/score_rule_param.py +++ b/src/cloudflare/types/rulesets/score_rule_param.py @@ -5,8 +5,6 @@ from typing import List from typing_extensions import Literal, Required, TypedDict -from .logging_param import LoggingParam - __all__ = ["ScoreRuleParam", "ActionParameters", "ExposedCredentialCheck", "Ratelimit"] @@ -92,8 +90,7 @@ class ScoreRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/serve_error_rule.py b/src/cloudflare/types/rulesets/serve_error_rule.py index 9e2e6652121..4470e8ca87a 100644 --- a/src/cloudflare/types/rulesets/serve_error_rule.py +++ b/src/cloudflare/types/rulesets/serve_error_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal -from .logging import Logging from ..._models import BaseModel __all__ = ["ServeErrorRule", "ActionParameters", "ExposedCredentialCheck", "Ratelimit"] @@ -104,8 +103,7 @@ class ServeErrorRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/serve_error_rule_param.py b/src/cloudflare/types/rulesets/serve_error_rule_param.py index e014f36c799..bed9a8eadbf 100644 --- a/src/cloudflare/types/rulesets/serve_error_rule_param.py +++ b/src/cloudflare/types/rulesets/serve_error_rule_param.py @@ -5,8 +5,6 @@ from typing import List from typing_extensions import Literal, Required, TypedDict -from .logging_param import LoggingParam - __all__ = ["ServeErrorRuleParam", "ActionParameters", "ExposedCredentialCheck", "Ratelimit"] @@ -95,8 +93,7 @@ class ServeErrorRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/set_cache_settings_rule.py b/src/cloudflare/types/rulesets/set_cache_settings_rule.py index e88114d9f66..aa10e746c41 100644 --- a/src/cloudflare/types/rulesets/set_cache_settings_rule.py +++ b/src/cloudflare/types/rulesets/set_cache_settings_rule.py @@ -6,7 +6,6 @@ from pydantic import Field as FieldInfo -from .logging import Logging from ..._models import BaseModel __all__ = [ @@ -407,8 +406,7 @@ class SetCacheSettingsRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/set_cache_settings_rule_param.py b/src/cloudflare/types/rulesets/set_cache_settings_rule_param.py index ed6d9f5818e..f96480366a8 100644 --- a/src/cloudflare/types/rulesets/set_cache_settings_rule_param.py +++ b/src/cloudflare/types/rulesets/set_cache_settings_rule_param.py @@ -5,8 +5,6 @@ from typing import Dict, List, Union, Iterable from typing_extensions import Literal, Required, TypeAlias, TypedDict -from .logging_param import LoggingParam - __all__ = [ "SetCacheSettingsRuleParam", "ActionParameters", @@ -404,8 +402,7 @@ class SetCacheSettingsRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/set_config_rule.py b/src/cloudflare/types/rulesets/set_config_rule.py index 0645abd5550..af0b53f51d0 100644 --- a/src/cloudflare/types/rulesets/set_config_rule.py +++ b/src/cloudflare/types/rulesets/set_config_rule.py @@ -4,7 +4,6 @@ from datetime import datetime from typing_extensions import Literal -from .logging import Logging from ..._models import BaseModel __all__ = ["SetConfigRule", "ActionParameters", "ActionParametersAutominify", "ExposedCredentialCheck", "Ratelimit"] @@ -157,8 +156,7 @@ class SetConfigRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/set_config_rule_param.py b/src/cloudflare/types/rulesets/set_config_rule_param.py index f82826b3b18..e5a290f8bea 100644 --- a/src/cloudflare/types/rulesets/set_config_rule_param.py +++ b/src/cloudflare/types/rulesets/set_config_rule_param.py @@ -5,8 +5,6 @@ from typing import List from typing_extensions import Literal, Required, TypedDict -from .logging_param import LoggingParam - __all__ = [ "SetConfigRuleParam", "ActionParameters", @@ -154,8 +152,7 @@ class SetConfigRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/skip_rule.py b/src/cloudflare/types/rulesets/skip_rule.py index 58f2f24c00d..c516286b4ff 100644 --- a/src/cloudflare/types/rulesets/skip_rule.py +++ b/src/cloudflare/types/rulesets/skip_rule.py @@ -5,7 +5,6 @@ from typing_extensions import Literal from .phase import Phase -from .logging import Logging from ..._models import BaseModel __all__ = ["SkipRule", "ActionParameters", "ExposedCredentialCheck", "Ratelimit"] @@ -125,8 +124,7 @@ class SkipRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/skip_rule_param.py b/src/cloudflare/types/rulesets/skip_rule_param.py index 3b6d0bfbab2..297536fa96d 100644 --- a/src/cloudflare/types/rulesets/skip_rule_param.py +++ b/src/cloudflare/types/rulesets/skip_rule_param.py @@ -6,7 +6,6 @@ from typing_extensions import Literal, Required, TypedDict from .phase import Phase -from .logging_param import LoggingParam __all__ = ["SkipRuleParam", "ActionParameters", "ExposedCredentialCheck", "Ratelimit"] @@ -114,8 +113,7 @@ class SkipRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: LoggingParam - """An object configuring the rule's logging behavior.""" + logging: object ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/version_get_response.py b/src/cloudflare/types/rulesets/version_get_response.py index ab7339e6809..f84c2272be5 100644 --- a/src/cloudflare/types/rulesets/version_get_response.py +++ b/src/cloudflare/types/rulesets/version_get_response.py @@ -6,7 +6,6 @@ from .kind import Kind from .phase import Phase -from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -121,8 +120,7 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -214,8 +212,7 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[Logging] = None - """An object configuring the rule's logging behavior.""" + logging: Optional[object] = None ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/security_center/insight_dismiss_response.py b/src/cloudflare/types/security_center/insight_dismiss_response.py index 520ec45bb74..2ea43fc8bc1 100644 --- a/src/cloudflare/types/security_center/insight_dismiss_response.py +++ b/src/cloudflare/types/security_center/insight_dismiss_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["InsightDismissResponse"] class InsightDismissResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/security_txt/security_txt_delete_response.py b/src/cloudflare/types/security_txt/security_txt_delete_response.py index 69da51814d2..b955f59cac4 100644 --- a/src/cloudflare/types/security_txt/security_txt_delete_response.py +++ b/src/cloudflare/types/security_txt/security_txt_delete_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["SecurityTXTDeleteResponse"] class SecurityTXTDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/security_txt/security_txt_update_response.py b/src/cloudflare/types/security_txt/security_txt_update_response.py index 743a0510ecf..4268c571ede 100644 --- a/src/cloudflare/types/security_txt/security_txt_update_response.py +++ b/src/cloudflare/types/security_txt/security_txt_update_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["SecurityTXTUpdateResponse"] class SecurityTXTUpdateResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/shared/identifier.py b/src/cloudflare/types/shared/identifier.py index f45e7984c3f..e97d720e10a 100644 --- a/src/cloudflare/types/shared/identifier.py +++ b/src/cloudflare/types/shared/identifier.py @@ -1,12 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import Optional - -from ..._models import BaseModel +from typing_extensions import TypeAlias __all__ = ["Identifier"] - -class Identifier(BaseModel): - id: Optional[str] = None - """Identifier""" +Identifier: TypeAlias = object diff --git a/src/cloudflare/types/shared/load_balancer_preview.py b/src/cloudflare/types/shared/load_balancer_preview.py index e57784aa9b5..1a2553ae678 100644 --- a/src/cloudflare/types/shared/load_balancer_preview.py +++ b/src/cloudflare/types/shared/load_balancer_preview.py @@ -1,14 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import Dict, Optional - -from ..._models import BaseModel +from typing_extensions import TypeAlias __all__ = ["LoadBalancerPreview"] - -class LoadBalancerPreview(BaseModel): - pools: Optional[Dict[str, str]] = None - """Monitored pool IDs mapped to their respective names.""" - - preview_id: Optional[str] = None +LoadBalancerPreview: TypeAlias = object diff --git a/src/cloudflare/types/shared/response_info.py b/src/cloudflare/types/shared/response_info.py index 2124a5abb4d..05370d0d068 100644 --- a/src/cloudflare/types/shared/response_info.py +++ b/src/cloudflare/types/shared/response_info.py @@ -1,12 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from ..._models import BaseModel +from typing_extensions import TypeAlias __all__ = ["ResponseInfo"] - -class ResponseInfo(BaseModel): - code: int - - message: str +ResponseInfo: TypeAlias = object diff --git a/src/cloudflare/types/shared/result.py b/src/cloudflare/types/shared/result.py index 0e67a79f24a..78c3502d2d5 100644 --- a/src/cloudflare/types/shared/result.py +++ b/src/cloudflare/types/shared/result.py @@ -1,32 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import List, Union, Optional -from typing_extensions import Literal, TypeAlias +from typing_extensions import TypeAlias -from ..._models import BaseModel -from .audit_log import AuditLog -from .response_info import ResponseInfo +__all__ = ["Result"] -__all__ = ["Result", "UnionMember0", "AaaAPIResponseCommon"] - - -class UnionMember0(BaseModel): - errors: Optional[List[ResponseInfo]] = None - - messages: Optional[List[ResponseInfo]] = None - - result: Optional[List[AuditLog]] = None - - success: Optional[bool] = None - - -class AaaAPIResponseCommon(BaseModel): - errors: List[ResponseInfo] - - messages: List[ResponseInfo] - - success: Literal[True] - """Whether the API call was successful""" - - -Result: TypeAlias = Union[UnionMember0, AaaAPIResponseCommon] +Result: TypeAlias = object diff --git a/src/cloudflare/types/snippets/rule_delete_response.py b/src/cloudflare/types/snippets/rule_delete_response.py index 4e1765a3121..fdc9441cbfc 100644 --- a/src/cloudflare/types/snippets/rule_delete_response.py +++ b/src/cloudflare/types/snippets/rule_delete_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["RuleDeleteResponse"] class RuleDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/snippets/snippet_delete_response.py b/src/cloudflare/types/snippets/snippet_delete_response.py index 6a1b4806d1b..21e107128c1 100644 --- a/src/cloudflare/types/snippets/snippet_delete_response.py +++ b/src/cloudflare/types/snippets/snippet_delete_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["SnippetDeleteResponse"] class SnippetDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/ssl/analyze_create_params.py b/src/cloudflare/types/ssl/analyze_create_params.py index eb06d135711..77bace72e7e 100644 --- a/src/cloudflare/types/ssl/analyze_create_params.py +++ b/src/cloudflare/types/ssl/analyze_create_params.py @@ -4,8 +4,6 @@ from typing_extensions import Required, TypedDict -from ..custom_hostnames.bundle_method import BundleMethod - __all__ = ["AnalyzeCreateParams"] @@ -13,13 +11,7 @@ class AnalyzeCreateParams(TypedDict, total=False): zone_id: Required[str] """Identifier""" - bundle_method: BundleMethod - """ - 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. - """ + bundle_method: object certificate: str """The zone's SSL certificate or certificate and the intermediate(s).""" diff --git a/src/cloudflare/types/workers/__init__.py b/src/cloudflare/types/workers/__init__.py index 201450ef852..ebb6f1e496e 100644 --- a/src/cloudflare/types/workers/__init__.py +++ b/src/cloudflare/types/workers/__init__.py @@ -20,7 +20,6 @@ from .route_delete_response import RouteDeleteResponse as RouteDeleteResponse from .route_update_response import RouteUpdateResponse as RouteUpdateResponse from .single_step_migration import SingleStepMigration as SingleStepMigration -from .worker_metadata_param import WorkerMetadataParam as WorkerMetadataParam from .script_update_response import ScriptUpdateResponse as ScriptUpdateResponse from .subdomain_get_response import SubdomainGetResponse as SubdomainGetResponse from .subdomain_update_params import SubdomainUpdateParams as SubdomainUpdateParams diff --git a/src/cloudflare/types/workers/route_create_response.py b/src/cloudflare/types/workers/route_create_response.py index 9e27967d480..b162a8c7761 100644 --- a/src/cloudflare/types/workers/route_create_response.py +++ b/src/cloudflare/types/workers/route_create_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["RouteCreateResponse"] class RouteCreateResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/workers/route_delete_response.py b/src/cloudflare/types/workers/route_delete_response.py index df25ccce223..fdb6e75a215 100644 --- a/src/cloudflare/types/workers/route_delete_response.py +++ b/src/cloudflare/types/workers/route_delete_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["RouteDeleteResponse"] class RouteDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/workers/scripts/__init__.py b/src/cloudflare/types/workers/scripts/__init__.py index 581c056d222..41d85e9a570 100644 --- a/src/cloudflare/types/workers/scripts/__init__.py +++ b/src/cloudflare/types/workers/scripts/__init__.py @@ -2,11 +2,7 @@ from __future__ import annotations -from .schedule import Schedule as Schedule -from .deployment import Deployment as Deployment -from .schedule_param import ScheduleParam as ScheduleParam from .consumer_script import ConsumerScript as ConsumerScript -from .deployment_param import DeploymentParam as DeploymentParam from .tail_get_response import TailGetResponse as TailGetResponse from .tail_create_params import TailCreateParams as TailCreateParams from .secret_get_response import SecretGetResponse as SecretGetResponse diff --git a/src/cloudflare/types/workers/scripts/content_update_params.py b/src/cloudflare/types/workers/scripts/content_update_params.py index 4228706762e..4684577aeaa 100644 --- a/src/cloudflare/types/workers/scripts/content_update_params.py +++ b/src/cloudflare/types/workers/scripts/content_update_params.py @@ -5,7 +5,6 @@ from typing_extensions import Required, Annotated, TypedDict from ...._utils import PropertyInfo -from ..worker_metadata_param import WorkerMetadataParam __all__ = ["ContentUpdateParams"] @@ -14,8 +13,7 @@ class ContentUpdateParams(TypedDict, total=False): account_id: Required[str] """Identifier""" - metadata: Required[WorkerMetadataParam] - """JSON encoded metadata about the uploaded parts and Worker configuration.""" + metadata: Required[object] cf_worker_body_part: Annotated[str, PropertyInfo(alias="CF-WORKER-BODY-PART")] diff --git a/src/cloudflare/types/workers/scripts/deployment.py b/src/cloudflare/types/workers/scripts/deployment.py deleted file mode 100644 index 5de4c8e53c5..00000000000 --- a/src/cloudflare/types/workers/scripts/deployment.py +++ /dev/null @@ -1,14 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from pydantic import Field as FieldInfo - -from ...._models import BaseModel - -__all__ = ["Deployment"] - - -class Deployment(BaseModel): - workers_message: Optional[str] = FieldInfo(alias="workers/message", default=None) - """Human-readable message about the deployment. Truncated to 100 bytes.""" diff --git a/src/cloudflare/types/workers/scripts/deployment_create_params.py b/src/cloudflare/types/workers/scripts/deployment_create_params.py index cb8530539c8..50a02b3b740 100644 --- a/src/cloudflare/types/workers/scripts/deployment_create_params.py +++ b/src/cloudflare/types/workers/scripts/deployment_create_params.py @@ -5,8 +5,6 @@ from typing import Iterable from typing_extensions import Literal, Required, TypedDict -from .deployment_param import DeploymentParam - __all__ = ["DeploymentCreateParams", "Version"] @@ -24,7 +22,7 @@ class DeploymentCreateParams(TypedDict, total=False): something such rolling back to an older version when a secret has changed. """ - annotations: DeploymentParam + annotations: object class Version(TypedDict, total=False): diff --git a/src/cloudflare/types/workers/scripts/deployment_create_response.py b/src/cloudflare/types/workers/scripts/deployment_create_response.py index 89f71d76378..59ef379c732 100644 --- a/src/cloudflare/types/workers/scripts/deployment_create_response.py +++ b/src/cloudflare/types/workers/scripts/deployment_create_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ...._models import BaseModel -from .deployment import Deployment __all__ = ["DeploymentCreateResponse", "Version"] @@ -22,7 +21,7 @@ class DeploymentCreateResponse(BaseModel): id: Optional[str] = None - annotations: Optional[Deployment] = None + annotations: Optional[object] = None author_email: Optional[str] = None diff --git a/src/cloudflare/types/workers/scripts/deployment_get_response.py b/src/cloudflare/types/workers/scripts/deployment_get_response.py index ac49947bfe5..7f2cbeb92e4 100644 --- a/src/cloudflare/types/workers/scripts/deployment_get_response.py +++ b/src/cloudflare/types/workers/scripts/deployment_get_response.py @@ -3,7 +3,6 @@ from typing import List, Optional from typing_extensions import Literal -from . import deployment from ...._models import BaseModel __all__ = ["DeploymentGetResponse", "Deployment", "DeploymentVersion"] @@ -22,7 +21,7 @@ class Deployment(BaseModel): id: Optional[str] = None - annotations: Optional[deployment.Deployment] = None + annotations: Optional[object] = None author_email: Optional[str] = None diff --git a/src/cloudflare/types/workers/scripts/deployment_param.py b/src/cloudflare/types/workers/scripts/deployment_param.py deleted file mode 100644 index caee9701c51..00000000000 --- a/src/cloudflare/types/workers/scripts/deployment_param.py +++ /dev/null @@ -1,14 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import Annotated, TypedDict - -from ...._utils import PropertyInfo - -__all__ = ["DeploymentParam"] - - -class DeploymentParam(TypedDict, total=False): - workers_message: Annotated[str, PropertyInfo(alias="workers/message")] - """Human-readable message about the deployment. Truncated to 100 bytes.""" diff --git a/src/cloudflare/types/workers/scripts/schedule.py b/src/cloudflare/types/workers/scripts/schedule.py deleted file mode 100644 index 08c504bddf7..00000000000 --- a/src/cloudflare/types/workers/scripts/schedule.py +++ /dev/null @@ -1,15 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ...._models import BaseModel - -__all__ = ["Schedule"] - - -class Schedule(BaseModel): - created_on: Optional[str] = None - - cron: Optional[str] = None - - modified_on: Optional[str] = None diff --git a/src/cloudflare/types/workers/scripts/schedule_get_response.py b/src/cloudflare/types/workers/scripts/schedule_get_response.py index 5d430c7ce85..f8c45d659a5 100644 --- a/src/cloudflare/types/workers/scripts/schedule_get_response.py +++ b/src/cloudflare/types/workers/scripts/schedule_get_response.py @@ -2,11 +2,10 @@ from typing import List, Optional -from .schedule import Schedule from ...._models import BaseModel __all__ = ["ScheduleGetResponse"] class ScheduleGetResponse(BaseModel): - schedules: Optional[List[Schedule]] = None + schedules: Optional[List[object]] = None diff --git a/src/cloudflare/types/workers/scripts/schedule_param.py b/src/cloudflare/types/workers/scripts/schedule_param.py deleted file mode 100644 index da020bb12ea..00000000000 --- a/src/cloudflare/types/workers/scripts/schedule_param.py +++ /dev/null @@ -1,11 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -__all__ = ["ScheduleParam"] - - -class ScheduleParam(TypedDict, total=False): - cron: str diff --git a/src/cloudflare/types/workers/scripts/schedule_update_params.py b/src/cloudflare/types/workers/scripts/schedule_update_params.py index a02d0be5611..adf6cd16fbb 100644 --- a/src/cloudflare/types/workers/scripts/schedule_update_params.py +++ b/src/cloudflare/types/workers/scripts/schedule_update_params.py @@ -5,8 +5,6 @@ from typing import Iterable from typing_extensions import Required, TypedDict -from .schedule_param import ScheduleParam - __all__ = ["ScheduleUpdateParams"] @@ -14,4 +12,4 @@ class ScheduleUpdateParams(TypedDict, total=False): account_id: Required[str] """Identifier""" - body: Required[Iterable[ScheduleParam]] + body: Required[Iterable[object]] diff --git a/src/cloudflare/types/workers/scripts/schedule_update_response.py b/src/cloudflare/types/workers/scripts/schedule_update_response.py index 0024bf49131..200f804bc1e 100644 --- a/src/cloudflare/types/workers/scripts/schedule_update_response.py +++ b/src/cloudflare/types/workers/scripts/schedule_update_response.py @@ -2,11 +2,10 @@ from typing import List, Optional -from .schedule import Schedule from ...._models import BaseModel __all__ = ["ScheduleUpdateResponse"] class ScheduleUpdateResponse(BaseModel): - schedules: Optional[List[Schedule]] = None + schedules: Optional[List[object]] = None diff --git a/src/cloudflare/types/workers/scripts/tail_delete_response.py b/src/cloudflare/types/workers/scripts/tail_delete_response.py index a1947aaa697..8b92b55d872 100644 --- a/src/cloudflare/types/workers/scripts/tail_delete_response.py +++ b/src/cloudflare/types/workers/scripts/tail_delete_response.py @@ -4,15 +4,14 @@ from typing_extensions import Literal from ...._models import BaseModel -from ...shared.response_info import ResponseInfo __all__ = ["TailDeleteResponse"] class TailDeleteResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/workers/worker_metadata_param.py b/src/cloudflare/types/workers/worker_metadata_param.py deleted file mode 100644 index dbfae3cd26d..00000000000 --- a/src/cloudflare/types/workers/worker_metadata_param.py +++ /dev/null @@ -1,22 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -__all__ = ["WorkerMetadataParam"] - - -class WorkerMetadataParam(TypedDict, total=False): - body_part: str - """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. - """ - - main_module: str - """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. - """ diff --git a/src/cloudflare/types/workers_for_platforms/dispatch/namespaces/scripts/content_update_params.py b/src/cloudflare/types/workers_for_platforms/dispatch/namespaces/scripts/content_update_params.py index 84e1916a5ef..f64195cd300 100644 --- a/src/cloudflare/types/workers_for_platforms/dispatch/namespaces/scripts/content_update_params.py +++ b/src/cloudflare/types/workers_for_platforms/dispatch/namespaces/scripts/content_update_params.py @@ -5,7 +5,6 @@ from typing_extensions import Required, Annotated, TypedDict from ......_utils import PropertyInfo -from .....workers.worker_metadata_param import WorkerMetadataParam __all__ = ["ContentUpdateParams"] @@ -17,8 +16,7 @@ class ContentUpdateParams(TypedDict, total=False): dispatch_namespace: Required[str] """Name of the Workers for Platforms dispatch namespace.""" - metadata: Required[WorkerMetadataParam] - """JSON encoded metadata about the uploaded parts and Worker configuration.""" + metadata: Required[object] cf_worker_body_part: Annotated[str, PropertyInfo(alias="CF-WORKER-BODY-PART")] diff --git a/src/cloudflare/types/zaraz/__init__.py b/src/cloudflare/types/zaraz/__init__.py index 7d3831e23ce..fb0d9c59768 100644 --- a/src/cloudflare/types/zaraz/__init__.py +++ b/src/cloudflare/types/zaraz/__init__.py @@ -3,15 +3,11 @@ from __future__ import annotations from .workflow import Workflow as Workflow -from .neo_event import NeoEvent as NeoEvent from .configuration import Configuration as Configuration -from .neo_event_param import NeoEventParam as NeoEventParam from .history_list_params import HistoryListParams as HistoryListParams from .zaraz_update_params import ZarazUpdateParams as ZarazUpdateParams from .config_update_params import ConfigUpdateParams as ConfigUpdateParams from .history_list_response import HistoryListResponse as HistoryListResponse from .history_update_params import HistoryUpdateParams as HistoryUpdateParams from .publish_create_params import PublishCreateParams as PublishCreateParams -from .button_text_translation import ButtonTextTranslation as ButtonTextTranslation from .publish_create_response import PublishCreateResponse as PublishCreateResponse -from .button_text_translation_param import ButtonTextTranslationParam as ButtonTextTranslationParam diff --git a/src/cloudflare/types/zaraz/button_text_translation.py b/src/cloudflare/types/zaraz/button_text_translation.py deleted file mode 100644 index 975accd91f8..00000000000 --- a/src/cloudflare/types/zaraz/button_text_translation.py +++ /dev/null @@ -1,18 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Dict - -from ..._models import BaseModel - -__all__ = ["ButtonTextTranslation"] - - -class ButtonTextTranslation(BaseModel): - accept_all: Dict[str, str] - """Object where keys are language codes""" - - confirm_my_choices: Dict[str, str] - """Object where keys are language codes""" - - reject_all: Dict[str, str] - """Object where keys are language codes""" diff --git a/src/cloudflare/types/zaraz/button_text_translation_param.py b/src/cloudflare/types/zaraz/button_text_translation_param.py deleted file mode 100644 index 5458fbecd65..00000000000 --- a/src/cloudflare/types/zaraz/button_text_translation_param.py +++ /dev/null @@ -1,19 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Dict -from typing_extensions import Required, TypedDict - -__all__ = ["ButtonTextTranslationParam"] - - -class ButtonTextTranslationParam(TypedDict, total=False): - accept_all: Required[Dict[str, str]] - """Object where keys are language codes""" - - confirm_my_choices: Required[Dict[str, str]] - """Object where keys are language codes""" - - reject_all: Required[Dict[str, str]] - """Object where keys are language codes""" diff --git a/src/cloudflare/types/zaraz/config_update_params.py b/src/cloudflare/types/zaraz/config_update_params.py index c230e12d56e..00cb5a72f5f 100644 --- a/src/cloudflare/types/zaraz/config_update_params.py +++ b/src/cloudflare/types/zaraz/config_update_params.py @@ -6,8 +6,6 @@ from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict from ..._utils import PropertyInfo -from .neo_event_param import NeoEventParam -from .button_text_translation_param import ButtonTextTranslationParam __all__ = [ "ConfigUpdateParams", @@ -177,13 +175,13 @@ class ToolsZarazManagedComponent(TypedDict, total=False): type: Required[Literal["component"]] - actions: Dict[str, NeoEventParam] + actions: object """Actions configured on a tool. Either this or neoEvents field is required.""" default_purpose: Annotated[str, PropertyInfo(alias="defaultPurpose")] """Default consent purpose ID""" - neo_events: Annotated[Iterable[NeoEventParam], PropertyInfo(alias="neoEvents")] + neo_events: Annotated[Iterable[object], PropertyInfo(alias="neoEvents")] """DEPRECATED - List of actions configured on a tool. Either this or actions field is required. If both are present, actions field @@ -236,13 +234,13 @@ class ToolsWorker(TypedDict, total=False): worker: Required[ToolsWorkerWorker] """Cloudflare worker that acts as a managed component""" - actions: Dict[str, NeoEventParam] + actions: object """Actions configured on a tool. Either this or neoEvents field is required.""" default_purpose: Annotated[str, PropertyInfo(alias="defaultPurpose")] """Default consent purpose ID""" - neo_events: Annotated[Iterable[NeoEventParam], PropertyInfo(alias="neoEvents")] + neo_events: Annotated[Iterable[object], PropertyInfo(alias="neoEvents")] """DEPRECATED - List of actions configured on a tool. Either this or actions field is required. If both are present, actions field @@ -576,7 +574,7 @@ class ConsentPurposesWithTranslations(TypedDict, total=False): class Consent(TypedDict, total=False): enabled: Required[bool] - button_text_translations: Annotated[ButtonTextTranslationParam, PropertyInfo(alias="buttonTextTranslations")] + button_text_translations: Annotated[object, PropertyInfo(alias="buttonTextTranslations")] company_email: Annotated[str, PropertyInfo(alias="companyEmail")] diff --git a/src/cloudflare/types/zaraz/configuration.py b/src/cloudflare/types/zaraz/configuration.py index 43ef343bd6c..d36e0c36ef8 100644 --- a/src/cloudflare/types/zaraz/configuration.py +++ b/src/cloudflare/types/zaraz/configuration.py @@ -7,8 +7,6 @@ from ..._utils import PropertyInfo from ..._models import BaseModel -from .neo_event import NeoEvent -from .button_text_translation import ButtonTextTranslation __all__ = [ "Configuration", @@ -133,13 +131,13 @@ class ToolsZarazManagedComponent(BaseModel): type: Literal["component"] - actions: Optional[Dict[str, NeoEvent]] = None + actions: Optional[object] = None """Actions configured on a tool. Either this or neoEvents field is required.""" default_purpose: Optional[str] = FieldInfo(alias="defaultPurpose", default=None) """Default consent purpose ID""" - neo_events: Optional[List[NeoEvent]] = FieldInfo(alias="neoEvents", default=None) + neo_events: Optional[List[object]] = FieldInfo(alias="neoEvents", default=None) """DEPRECATED - List of actions configured on a tool. Either this or actions field is required. If both are present, actions field @@ -192,13 +190,13 @@ class ToolsWorker(BaseModel): worker: ToolsWorkerWorker """Cloudflare worker that acts as a managed component""" - actions: Optional[Dict[str, NeoEvent]] = None + actions: Optional[object] = None """Actions configured on a tool. Either this or neoEvents field is required.""" default_purpose: Optional[str] = FieldInfo(alias="defaultPurpose", default=None) """Default consent purpose ID""" - neo_events: Optional[List[NeoEvent]] = FieldInfo(alias="neoEvents", default=None) + neo_events: Optional[List[object]] = FieldInfo(alias="neoEvents", default=None) """DEPRECATED - List of actions configured on a tool. Either this or actions field is required. If both are present, actions field @@ -531,7 +529,7 @@ class ConsentPurposesWithTranslations(BaseModel): class Consent(BaseModel): enabled: bool - button_text_translations: Optional[ButtonTextTranslation] = FieldInfo(alias="buttonTextTranslations", default=None) + button_text_translations: Optional[object] = FieldInfo(alias="buttonTextTranslations", default=None) company_email: Optional[str] = FieldInfo(alias="companyEmail", default=None) diff --git a/src/cloudflare/types/zaraz/neo_event.py b/src/cloudflare/types/zaraz/neo_event.py deleted file mode 100644 index deef96e304d..00000000000 --- a/src/cloudflare/types/zaraz/neo_event.py +++ /dev/null @@ -1,23 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import List - -from pydantic import Field as FieldInfo - -from ..._models import BaseModel - -__all__ = ["NeoEvent"] - - -class NeoEvent(BaseModel): - action_type: str = FieldInfo(alias="actionType") - """Tool event type""" - - blocking_triggers: List[str] = FieldInfo(alias="blockingTriggers") - """List of blocking triggers IDs""" - - data: object - """Event payload""" - - firing_triggers: List[str] = FieldInfo(alias="firingTriggers") - """List of firing triggers IDs""" diff --git a/src/cloudflare/types/zaraz/neo_event_param.py b/src/cloudflare/types/zaraz/neo_event_param.py deleted file mode 100644 index e154520b973..00000000000 --- a/src/cloudflare/types/zaraz/neo_event_param.py +++ /dev/null @@ -1,24 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import List -from typing_extensions import Required, Annotated, TypedDict - -from ..._utils import PropertyInfo - -__all__ = ["NeoEventParam"] - - -class NeoEventParam(TypedDict, total=False): - action_type: Required[Annotated[str, PropertyInfo(alias="actionType")]] - """Tool event type""" - - blocking_triggers: Required[Annotated[List[str], PropertyInfo(alias="blockingTriggers")]] - """List of blocking triggers IDs""" - - data: Required[object] - """Event payload""" - - firing_triggers: Required[Annotated[List[str], PropertyInfo(alias="firingTriggers")]] - """List of firing triggers IDs""" diff --git a/src/cloudflare/types/zero_trust/__init__.py b/src/cloudflare/types/zero_trust/__init__.py index d273fdf3bb4..04b611ecebb 100644 --- a/src/cloudflare/types/zero_trust/__init__.py +++ b/src/cloudflare/types/zero_trust/__init__.py @@ -19,16 +19,13 @@ from .tunnel_list_response import TunnelListResponse as TunnelListResponse from .gateway_list_response import GatewayListResponse as GatewayListResponse from .network_path_response import NetworkPathResponse as NetworkPathResponse -from .identity_provider_type import IdentityProviderType as IdentityProviderType from .gateway_create_response import GatewayCreateResponse as GatewayCreateResponse from .identity_provider_param import IdentityProviderParam as IdentityProviderParam from .risk_scoring_get_response import RiskScoringGetResponse as RiskScoringGetResponse -from .digital_experience_monitor import DigitalExperienceMonitor as DigitalExperienceMonitor from .generic_oauth_config_param import GenericOAuthConfigParam as GenericOAuthConfigParam from .organization_create_params import OrganizationCreateParams as OrganizationCreateParams from .organization_update_params import OrganizationUpdateParams as OrganizationUpdateParams from .identity_provider_list_params import IdentityProviderListParams as IdentityProviderListParams -from .identity_provider_scim_config import IdentityProviderSCIMConfig as IdentityProviderSCIMConfig from .identity_provider_create_params import IdentityProviderCreateParams as IdentityProviderCreateParams from .identity_provider_list_response import IdentityProviderListResponse as IdentityProviderListResponse from .identity_provider_update_params import IdentityProviderUpdateParams as IdentityProviderUpdateParams @@ -38,4 +35,3 @@ from .identity_provider_delete_response import IdentityProviderDeleteResponse as IdentityProviderDeleteResponse from .connectivity_setting_edit_response import ConnectivitySettingEditResponse as ConnectivitySettingEditResponse from .organization_revoke_users_response import OrganizationRevokeUsersResponse as OrganizationRevokeUsersResponse -from .identity_provider_scim_config_param import IdentityProviderSCIMConfigParam as IdentityProviderSCIMConfigParam diff --git a/src/cloudflare/types/zero_trust/access/__init__.py b/src/cloudflare/types/zero_trust/access/__init__.py index 65e59f6df8c..13b79229497 100644 --- a/src/cloudflare/types/zero_trust/access/__init__.py +++ b/src/cloudflare/types/zero_trust/access/__init__.py @@ -55,7 +55,6 @@ from .policy_delete_response import PolicyDeleteResponse as PolicyDeleteResponse from .policy_update_response import PolicyUpdateResponse as PolicyUpdateResponse from .application_list_params import ApplicationListParams as ApplicationListParams -from .saas_app_name_id_format import SaaSAppNameIDFormat as SaaSAppNameIDFormat from .application_get_response import ApplicationGetResponse as ApplicationGetResponse from .bookmark_delete_response import BookmarkDeleteResponse as BookmarkDeleteResponse from .custom_page_without_html import CustomPageWithoutHTML as CustomPageWithoutHTML diff --git a/src/cloudflare/types/zero_trust/access/applications/__init__.py b/src/cloudflare/types/zero_trust/access/applications/__init__.py index 4d592f30ff5..7b6b258ac24 100644 --- a/src/cloudflare/types/zero_trust/access/applications/__init__.py +++ b/src/cloudflare/types/zero_trust/access/applications/__init__.py @@ -34,7 +34,6 @@ from .email_list_rule_param import EmailListRuleParam as EmailListRuleParam from .okta_group_rule_param import OktaGroupRuleParam as OktaGroupRuleParam from .saml_group_rule_param import SAMLGroupRuleParam as SAMLGroupRuleParam -from .user_policy_check_geo import UserPolicyCheckGeo as UserPolicyCheckGeo from .azure_group_rule_param import AzureGroupRuleParam as AzureGroupRuleParam from .certificate_rule_param import CertificateRuleParam as CertificateRuleParam from .policy_create_response import PolicyCreateResponse as PolicyCreateResponse diff --git a/src/cloudflare/types/zero_trust/access/applications/user_policy_check_geo.py b/src/cloudflare/types/zero_trust/access/applications/user_policy_check_geo.py deleted file mode 100644 index b99d468ab06..00000000000 --- a/src/cloudflare/types/zero_trust/access/applications/user_policy_check_geo.py +++ /dev/null @@ -1,11 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ....._models import BaseModel - -__all__ = ["UserPolicyCheckGeo"] - - -class UserPolicyCheckGeo(BaseModel): - country: Optional[str] = None diff --git a/src/cloudflare/types/zero_trust/access/applications/user_policy_check_list_response.py b/src/cloudflare/types/zero_trust/access/applications/user_policy_check_list_response.py index 3622477b98e..d15abacaee5 100644 --- a/src/cloudflare/types/zero_trust/access/applications/user_policy_check_list_response.py +++ b/src/cloudflare/types/zero_trust/access/applications/user_policy_check_list_response.py @@ -3,7 +3,6 @@ from typing import List, Optional from ....._models import BaseModel -from .user_policy_check_geo import UserPolicyCheckGeo __all__ = ["UserPolicyCheckListResponse", "AppState", "UserIdentity"] @@ -32,7 +31,7 @@ class UserIdentity(BaseModel): email: Optional[str] = None - geo: Optional[UserPolicyCheckGeo] = None + geo: Optional[object] = None iat: Optional[int] = None diff --git a/src/cloudflare/types/zero_trust/access/saas_app_name_id_format.py b/src/cloudflare/types/zero_trust/access/saas_app_name_id_format.py deleted file mode 100644 index e527a9d8c7e..00000000000 --- a/src/cloudflare/types/zero_trust/access/saas_app_name_id_format.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["SaaSAppNameIDFormat"] - -SaaSAppNameIDFormat: TypeAlias = Literal["id", "email"] diff --git a/src/cloudflare/types/zero_trust/access/saml_saas_app.py b/src/cloudflare/types/zero_trust/access/saml_saas_app.py index bbddbc0a4e7..c329d334cc2 100644 --- a/src/cloudflare/types/zero_trust/access/saml_saas_app.py +++ b/src/cloudflare/types/zero_trust/access/saml_saas_app.py @@ -5,7 +5,6 @@ from typing_extensions import Literal from ...._models import BaseModel -from .saas_app_name_id_format import SaaSAppNameIDFormat __all__ = ["SAMLSaaSApp", "CustomAttribute", "CustomAttributeSource", "CustomAttributeSourceNameByIdP"] @@ -75,8 +74,7 @@ class SAMLSaaSApp(BaseModel): idp_entity_id: Optional[str] = None """The unique identifier for your SaaS application.""" - name_id_format: Optional[SaaSAppNameIDFormat] = None - """The format of the name identifier sent to the SaaS application.""" + name_id_format: Optional[object] = None name_id_transform_jsonata: Optional[str] = None """ diff --git a/src/cloudflare/types/zero_trust/access/saml_saas_app_param.py b/src/cloudflare/types/zero_trust/access/saml_saas_app_param.py index 41c8bf72677..29d479e3d05 100644 --- a/src/cloudflare/types/zero_trust/access/saml_saas_app_param.py +++ b/src/cloudflare/types/zero_trust/access/saml_saas_app_param.py @@ -5,8 +5,6 @@ from typing import Iterable from typing_extensions import Literal, TypedDict -from .saas_app_name_id_format import SaaSAppNameIDFormat - __all__ = ["SAMLSaaSAppParam", "CustomAttribute", "CustomAttributeSource", "CustomAttributeSourceNameByIdP"] @@ -71,8 +69,7 @@ class SAMLSaaSAppParam(TypedDict, total=False): idp_entity_id: str """The unique identifier for your SaaS application.""" - name_id_format: SaaSAppNameIDFormat - """The format of the name identifier sent to the SaaS application.""" + name_id_format: object name_id_transform_jsonata: str """ diff --git a/src/cloudflare/types/zero_trust/access/users/active_session_get_response.py b/src/cloudflare/types/zero_trust/access/users/active_session_get_response.py index 2414f09a55c..affcc728dad 100644 --- a/src/cloudflare/types/zero_trust/access/users/active_session_get_response.py +++ b/src/cloudflare/types/zero_trust/access/users/active_session_get_response.py @@ -5,7 +5,6 @@ from pydantic import Field as FieldInfo from ....._models import BaseModel -from ..applications.user_policy_check_geo import UserPolicyCheckGeo __all__ = ["ActiveSessionGetResponse", "DeviceSessions", "DevicePosture", "DevicePostureCheck", "IdP", "MTLSAuth"] @@ -73,7 +72,7 @@ class ActiveSessionGetResponse(BaseModel): email: Optional[str] = None - geo: Optional[UserPolicyCheckGeo] = None + geo: Optional[object] = None iat: Optional[float] = None diff --git a/src/cloudflare/types/zero_trust/access/users/identity.py b/src/cloudflare/types/zero_trust/access/users/identity.py index 52f27fee6c2..b8f667663ee 100644 --- a/src/cloudflare/types/zero_trust/access/users/identity.py +++ b/src/cloudflare/types/zero_trust/access/users/identity.py @@ -5,7 +5,6 @@ from pydantic import Field as FieldInfo from ....._models import BaseModel -from ..applications.user_policy_check_geo import UserPolicyCheckGeo __all__ = ["Identity", "DeviceSessions", "DevicePosture", "DevicePostureCheck", "IdP", "MTLSAuth"] @@ -73,7 +72,7 @@ class Identity(BaseModel): email: Optional[str] = None - geo: Optional[UserPolicyCheckGeo] = None + geo: Optional[object] = None iat: Optional[float] = None diff --git a/src/cloudflare/types/zero_trust/azure_ad.py b/src/cloudflare/types/zero_trust/azure_ad.py index 359f8564164..5467acec585 100644 --- a/src/cloudflare/types/zero_trust/azure_ad.py +++ b/src/cloudflare/types/zero_trust/azure_ad.py @@ -4,8 +4,6 @@ from typing_extensions import Literal from ..._models import BaseModel -from .identity_provider_type import IdentityProviderType -from .identity_provider_scim_config import IdentityProviderSCIMConfig __all__ = ["AzureAD", "Config"] @@ -57,18 +55,9 @@ class AzureAD(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None diff --git a/src/cloudflare/types/zero_trust/azure_ad_param.py b/src/cloudflare/types/zero_trust/azure_ad_param.py index 78d3d67019e..cd455fd9a86 100644 --- a/src/cloudflare/types/zero_trust/azure_ad_param.py +++ b/src/cloudflare/types/zero_trust/azure_ad_param.py @@ -5,9 +5,6 @@ from typing import List from typing_extensions import Literal, Required, TypedDict -from .identity_provider_type import IdentityProviderType -from .identity_provider_scim_config_param import IdentityProviderSCIMConfigParam - __all__ = ["AzureADParam", "Config"] @@ -58,15 +55,6 @@ class AzureADParam(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object diff --git a/src/cloudflare/types/zero_trust/devices/crowdstrike_input.py b/src/cloudflare/types/zero_trust/devices/crowdstrike_input.py index b46afbf4142..d134b498731 100644 --- a/src/cloudflare/types/zero_trust/devices/crowdstrike_input.py +++ b/src/cloudflare/types/zero_trust/devices/crowdstrike_input.py @@ -17,8 +17,7 @@ class CrowdstrikeInput(BaseModel): last_seen: Optional[str] = None """For more details on last seen, please refer to the Crowdstrike documentation.""" - operator: Optional[Literal["<", "<=", ">", ">=", "=="]] = None - """operator""" + operator: Optional[object] = None os: Optional[str] = None """Os Version""" diff --git a/src/cloudflare/types/zero_trust/devices/crowdstrike_input_param.py b/src/cloudflare/types/zero_trust/devices/crowdstrike_input_param.py index 7cc4fc7e593..0aab52d62bd 100644 --- a/src/cloudflare/types/zero_trust/devices/crowdstrike_input_param.py +++ b/src/cloudflare/types/zero_trust/devices/crowdstrike_input_param.py @@ -16,8 +16,7 @@ class CrowdstrikeInputParam(TypedDict, total=False): last_seen: str """For more details on last seen, please refer to the Crowdstrike documentation.""" - operator: Literal["<", "<=", ">", ">=", "=="] - """operator""" + operator: object os: str """Os Version""" diff --git a/src/cloudflare/types/zero_trust/devices/device_input.py b/src/cloudflare/types/zero_trust/devices/device_input.py index c72344321f8..322618c16be 100644 --- a/src/cloudflare/types/zero_trust/devices/device_input.py +++ b/src/cloudflare/types/zero_trust/devices/device_input.py @@ -30,8 +30,7 @@ class TeamsDevicesCarbonblackInputRequest(BaseModel): - operating_system: Literal["windows", "linux", "mac"] - """Operating system""" + operating_system: object path: str """File path.""" @@ -44,8 +43,7 @@ class TeamsDevicesCarbonblackInputRequest(BaseModel): class TeamsDevicesApplicationInputRequest(BaseModel): - operating_system: Literal["windows", "linux", "mac"] - """Operating system""" + operating_system: object path: str """Path for the application.""" @@ -76,8 +74,7 @@ class TeamsDevicesClientCertificateV2InputRequest(BaseModel): private key. """ - operating_system: Literal["windows", "linux", "mac"] - """Operating system""" + operating_system: object cn: Optional[str] = None """Common Name that is protected by the client certificate. @@ -99,8 +96,7 @@ class TeamsDevicesCustomS2sInputRequest(BaseModel): connection_id: str """Posture Integration ID.""" - operator: Literal["<", "<=", ">", ">=", "=="] - """operator""" + operator: object score: float """ diff --git a/src/cloudflare/types/zero_trust/devices/device_input_param.py b/src/cloudflare/types/zero_trust/devices/device_input_param.py index 6dccd49bcb9..d1840f7b3ac 100644 --- a/src/cloudflare/types/zero_trust/devices/device_input_param.py +++ b/src/cloudflare/types/zero_trust/devices/device_input_param.py @@ -31,8 +31,7 @@ class TeamsDevicesCarbonblackInputRequest(TypedDict, total=False): - operating_system: Required[Literal["windows", "linux", "mac"]] - """Operating system""" + operating_system: Required[object] path: Required[str] """File path.""" @@ -45,8 +44,7 @@ class TeamsDevicesCarbonblackInputRequest(TypedDict, total=False): class TeamsDevicesApplicationInputRequest(TypedDict, total=False): - operating_system: Required[Literal["windows", "linux", "mac"]] - """Operating system""" + operating_system: Required[object] path: Required[str] """Path for the application.""" @@ -77,8 +75,7 @@ class TeamsDevicesClientCertificateV2InputRequest(TypedDict, total=False): private key. """ - operating_system: Required[Literal["windows", "linux", "mac"]] - """Operating system""" + operating_system: Required[object] cn: str """Common Name that is protected by the client certificate. @@ -100,8 +97,7 @@ class TeamsDevicesCustomS2sInputRequest(TypedDict, total=False): connection_id: Required[str] """Posture Integration ID.""" - operator: Required[Literal["<", "<=", ">", ">=", "=="]] - """operator""" + operator: Required[object] score: Required[float] """ diff --git a/src/cloudflare/types/zero_trust/devices/file_input.py b/src/cloudflare/types/zero_trust/devices/file_input.py index 214bf876ee0..ac84b0db7d6 100644 --- a/src/cloudflare/types/zero_trust/devices/file_input.py +++ b/src/cloudflare/types/zero_trust/devices/file_input.py @@ -1,7 +1,6 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Optional -from typing_extensions import Literal from ...._models import BaseModel @@ -9,8 +8,7 @@ class FileInput(BaseModel): - operating_system: Literal["windows", "linux", "mac"] - """Operating system""" + operating_system: object path: str """File path.""" diff --git a/src/cloudflare/types/zero_trust/devices/file_input_param.py b/src/cloudflare/types/zero_trust/devices/file_input_param.py index d50a8f505d4..e9a41620b0b 100644 --- a/src/cloudflare/types/zero_trust/devices/file_input_param.py +++ b/src/cloudflare/types/zero_trust/devices/file_input_param.py @@ -2,14 +2,13 @@ from __future__ import annotations -from typing_extensions import Literal, Required, TypedDict +from typing_extensions import Required, TypedDict __all__ = ["FileInputParam"] class FileInputParam(TypedDict, total=False): - operating_system: Required[Literal["windows", "linux", "mac"]] - """Operating system""" + operating_system: Required[object] path: Required[str] """File path.""" diff --git a/src/cloudflare/types/zero_trust/devices/os_version_input.py b/src/cloudflare/types/zero_trust/devices/os_version_input.py index 0017278a572..6f570eb4436 100644 --- a/src/cloudflare/types/zero_trust/devices/os_version_input.py +++ b/src/cloudflare/types/zero_trust/devices/os_version_input.py @@ -12,8 +12,7 @@ class OSVersionInput(BaseModel): operating_system: Literal["windows"] """Operating System""" - operator: Literal["<", "<=", ">", ">=", "=="] - """operator""" + operator: object version: str """Version of OS""" diff --git a/src/cloudflare/types/zero_trust/devices/os_version_input_param.py b/src/cloudflare/types/zero_trust/devices/os_version_input_param.py index 446cad2e5d7..657158edec5 100644 --- a/src/cloudflare/types/zero_trust/devices/os_version_input_param.py +++ b/src/cloudflare/types/zero_trust/devices/os_version_input_param.py @@ -11,8 +11,7 @@ class OSVersionInputParam(TypedDict, total=False): operating_system: Required[Literal["windows"]] """Operating System""" - operator: Required[Literal["<", "<=", ">", ">=", "=="]] - """operator""" + operator: Required[object] version: Required[str] """Version of OS""" diff --git a/src/cloudflare/types/zero_trust/devices/sentinelone_input.py b/src/cloudflare/types/zero_trust/devices/sentinelone_input.py index cfe6b020f91..665d003f772 100644 --- a/src/cloudflare/types/zero_trust/devices/sentinelone_input.py +++ b/src/cloudflare/types/zero_trust/devices/sentinelone_input.py @@ -1,7 +1,6 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Optional -from typing_extensions import Literal from ...._models import BaseModel @@ -9,8 +8,7 @@ class SentineloneInput(BaseModel): - operating_system: Literal["windows", "linux", "mac"] - """Operating system""" + operating_system: object path: str """File path.""" diff --git a/src/cloudflare/types/zero_trust/devices/sentinelone_input_param.py b/src/cloudflare/types/zero_trust/devices/sentinelone_input_param.py index 062c2a5206d..67ac6eb68fc 100644 --- a/src/cloudflare/types/zero_trust/devices/sentinelone_input_param.py +++ b/src/cloudflare/types/zero_trust/devices/sentinelone_input_param.py @@ -2,14 +2,13 @@ from __future__ import annotations -from typing_extensions import Literal, Required, TypedDict +from typing_extensions import Required, TypedDict __all__ = ["SentineloneInputParam"] class SentineloneInputParam(TypedDict, total=False): - operating_system: Required[Literal["windows", "linux", "mac"]] - """Operating system""" + operating_system: Required[object] path: Required[str] """File path.""" diff --git a/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input.py b/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input.py index 1c9e4fa8d06..b7446bfda28 100644 --- a/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input.py +++ b/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input.py @@ -37,5 +37,4 @@ class SentineloneS2sInput(BaseModel): ] = None """Agent operational state.""" - operator: Optional[Literal["<", "<=", ">", ">=", "=="]] = None - """operator""" + operator: Optional[object] = None diff --git a/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input_param.py b/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input_param.py index 706b9ccde01..c2c75b24437 100644 --- a/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input_param.py +++ b/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input_param.py @@ -34,5 +34,4 @@ class SentineloneS2sInputParam(TypedDict, total=False): ] """Agent operational state.""" - operator: Literal["<", "<=", ">", ">=", "=="] - """operator""" + operator: object diff --git a/src/cloudflare/types/zero_trust/dex/http_details.py b/src/cloudflare/types/zero_trust/dex/http_details.py index ab4c28b811b..eb8df326875 100644 --- a/src/cloudflare/types/zero_trust/dex/http_details.py +++ b/src/cloudflare/types/zero_trust/dex/http_details.py @@ -6,7 +6,6 @@ from pydantic import Field as FieldInfo from ...._models import BaseModel -from ..digital_experience_monitor import DigitalExperienceMonitor from .http_tests.test_stat_over_time import TestStatOverTime __all__ = [ @@ -135,6 +134,6 @@ class HTTPDetails(BaseModel): name: Optional[str] = None """The name of the HTTP synthetic application test""" - target_policies: Optional[List[DigitalExperienceMonitor]] = None + target_policies: Optional[List[object]] = None targeted: Optional[bool] = None diff --git a/src/cloudflare/types/zero_trust/dex/tests/tests.py b/src/cloudflare/types/zero_trust/dex/tests/tests.py index 6e2a9b09e49..549421ed662 100644 --- a/src/cloudflare/types/zero_trust/dex/tests/tests.py +++ b/src/cloudflare/types/zero_trust/dex/tests/tests.py @@ -7,7 +7,6 @@ from ....._models import BaseModel from ..aggregate_time_period import AggregateTimePeriod -from ...digital_experience_monitor import DigitalExperienceMonitor __all__ = [ "Tests", @@ -238,7 +237,7 @@ class Test(BaseModel): method: Optional[str] = None """for HTTP, the method to use when running the test""" - target_policies: Optional[List[DigitalExperienceMonitor]] = None + target_policies: Optional[List[object]] = None targeted: Optional[bool] = None diff --git a/src/cloudflare/types/zero_trust/dex/traceroute.py b/src/cloudflare/types/zero_trust/dex/traceroute.py index 536fd47bc6f..6faf082b505 100644 --- a/src/cloudflare/types/zero_trust/dex/traceroute.py +++ b/src/cloudflare/types/zero_trust/dex/traceroute.py @@ -6,7 +6,6 @@ from pydantic import Field as FieldInfo from ...._models import BaseModel -from ..digital_experience_monitor import DigitalExperienceMonitor from .http_tests.test_stat_over_time import TestStatOverTime __all__ = [ @@ -140,7 +139,7 @@ class Traceroute(BaseModel): name: str """The name of the Traceroute synthetic application test""" - target_policies: Optional[List[DigitalExperienceMonitor]] = None + target_policies: Optional[List[object]] = None targeted: Optional[bool] = None diff --git a/src/cloudflare/types/zero_trust/digital_experience_monitor.py b/src/cloudflare/types/zero_trust/digital_experience_monitor.py deleted file mode 100644 index 8f4848c5fc3..00000000000 --- a/src/cloudflare/types/zero_trust/digital_experience_monitor.py +++ /dev/null @@ -1,15 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - - -from ..._models import BaseModel - -__all__ = ["DigitalExperienceMonitor"] - - -class DigitalExperienceMonitor(BaseModel): - id: str - - default: bool - """Whether the policy is the default for the account""" - - name: str diff --git a/src/cloudflare/types/zero_trust/gateway/__init__.py b/src/cloudflare/types/zero_trust/gateway/__init__.py index 3493d5e0603..e384326e8e9 100644 --- a/src/cloudflare/types/zero_trust/gateway/__init__.py +++ b/src/cloudflare/types/zero_trust/gateway/__init__.py @@ -16,8 +16,6 @@ from .gateway_rule import GatewayRule as GatewayRule from .ipv6_network import IPV6Network as IPV6Network from .rule_setting import RuleSetting as RuleSetting -from .tls_settings import TLSSettings as TLSSettings -from .fips_settings import FipsSettings as FipsSettings from .ipv4_endpoint import IPV4Endpoint as IPV4Endpoint from .ipv6_endpoint import IPV6Endpoint as IPV6Endpoint from .endpoint_param import EndpointParam as EndpointParam @@ -35,55 +33,34 @@ from .ipv6_network_param import IPV6NetworkParam as IPV6NetworkParam from .list_create_params import ListCreateParams as ListCreateParams from .list_update_params import ListUpdateParams as ListUpdateParams -from .protocol_detection import ProtocolDetection as ProtocolDetection from .rule_create_params import RuleCreateParams as RuleCreateParams from .rule_setting_param import RuleSettingParam as RuleSettingParam from .rule_update_params import RuleUpdateParams as RuleUpdateParams -from .tls_settings_param import TLSSettingsParam as TLSSettingsParam -from .anti_virus_settings import AntiVirusSettings as AntiVirusSettings -from .block_page_settings import BlockPageSettings as BlockPageSettings -from .fips_settings_param import FipsSettingsParam as FipsSettingsParam from .ipv4_endpoint_param import IPV4EndpointParam as IPV4EndpointParam from .ipv6_endpoint_param import IPV6EndpointParam as IPV6EndpointParam from .list_create_response import ListCreateResponse as ListCreateResponse -from .activity_log_settings import ActivityLogSettings as ActivityLogSettings from .logging_update_params import LoggingUpdateParams as LoggingUpdateParams -from .notification_settings import NotificationSettings as NotificationSettings -from .body_scanning_settings import BodyScanningSettings as BodyScanningSettings from .location_create_params import LocationCreateParams as LocationCreateParams from .location_update_params import LocationUpdateParams as LocationUpdateParams -from .extended_email_matching import ExtendedEmailMatching as ExtendedEmailMatching from .certificate_get_response import CertificateGetResponse as CertificateGetResponse from .dns_resolver_settings_v4 import DNSResolverSettingsV4 as DNSResolverSettingsV4 from .dns_resolver_settings_v6 import DNSResolverSettingsV6 as DNSResolverSettingsV6 -from .protocol_detection_param import ProtocolDetectionParam as ProtocolDetectionParam -from .anti_virus_settings_param import AntiVirusSettingsParam as AntiVirusSettingsParam -from .block_page_settings_param import BlockPageSettingsParam as BlockPageSettingsParam from .certificate_create_params import CertificateCreateParams as CertificateCreateParams from .certificate_list_response import CertificateListResponse as CertificateListResponse from .configuration_edit_params import ConfigurationEditParams as ConfigurationEditParams -from .browser_isolation_settings import BrowserIsolationSettings as BrowserIsolationSettings from .configuration_get_response import ConfigurationGetResponse as ConfigurationGetResponse from .proxy_endpoint_edit_params import ProxyEndpointEditParams as ProxyEndpointEditParams -from .activity_log_settings_param import ActivityLogSettingsParam as ActivityLogSettingsParam from .certificate_activate_params import CertificateActivateParams as CertificateActivateParams from .certificate_create_response import CertificateCreateResponse as CertificateCreateResponse from .certificate_delete_response import CertificateDeleteResponse as CertificateDeleteResponse from .configuration_edit_response import ConfigurationEditResponse as ConfigurationEditResponse from .configuration_update_params import ConfigurationUpdateParams as ConfigurationUpdateParams from .custom_certificate_settings import CustomCertificateSettings as CustomCertificateSettings -from .notification_settings_param import NotificationSettingsParam as NotificationSettingsParam -from .body_scanning_settings_param import BodyScanningSettingsParam as BodyScanningSettingsParam from .proxy_endpoint_create_params import ProxyEndpointCreateParams as ProxyEndpointCreateParams from .certificate_activate_response import CertificateActivateResponse as CertificateActivateResponse from .certificate_deactivate_params import CertificateDeactivateParams as CertificateDeactivateParams from .configuration_update_response import ConfigurationUpdateResponse as ConfigurationUpdateResponse -from .extended_email_matching_param import ExtendedEmailMatchingParam as ExtendedEmailMatchingParam from .dns_resolver_settings_v4_param import DNSResolverSettingsV4Param as DNSResolverSettingsV4Param from .dns_resolver_settings_v6_param import DNSResolverSettingsV6Param as DNSResolverSettingsV6Param -from .gateway_configuration_settings import GatewayConfigurationSettings as GatewayConfigurationSettings from .audit_ssh_setting_update_params import AuditSSHSettingUpdateParams as AuditSSHSettingUpdateParams from .certificate_deactivate_response import CertificateDeactivateResponse as CertificateDeactivateResponse -from .browser_isolation_settings_param import BrowserIsolationSettingsParam as BrowserIsolationSettingsParam -from .custom_certificate_settings_param import CustomCertificateSettingsParam as CustomCertificateSettingsParam -from .gateway_configuration_settings_param import GatewayConfigurationSettingsParam as GatewayConfigurationSettingsParam diff --git a/src/cloudflare/types/zero_trust/gateway/activity_log_settings.py b/src/cloudflare/types/zero_trust/gateway/activity_log_settings.py deleted file mode 100644 index d17f765af7e..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/activity_log_settings.py +++ /dev/null @@ -1,12 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ...._models import BaseModel - -__all__ = ["ActivityLogSettings"] - - -class ActivityLogSettings(BaseModel): - enabled: Optional[bool] = None - """Enable activity logging.""" diff --git a/src/cloudflare/types/zero_trust/gateway/activity_log_settings_param.py b/src/cloudflare/types/zero_trust/gateway/activity_log_settings_param.py deleted file mode 100644 index 5dcdd0e03b6..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/activity_log_settings_param.py +++ /dev/null @@ -1,12 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -__all__ = ["ActivityLogSettingsParam"] - - -class ActivityLogSettingsParam(TypedDict, total=False): - enabled: bool - """Enable activity logging.""" diff --git a/src/cloudflare/types/zero_trust/gateway/anti_virus_settings.py b/src/cloudflare/types/zero_trust/gateway/anti_virus_settings.py deleted file mode 100644 index 85cf41948ef..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/anti_virus_settings.py +++ /dev/null @@ -1,25 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ...._models import BaseModel -from .notification_settings import NotificationSettings - -__all__ = ["AntiVirusSettings"] - - -class AntiVirusSettings(BaseModel): - enabled_download_phase: Optional[bool] = None - """Enable anti-virus scanning on downloads.""" - - enabled_upload_phase: Optional[bool] = None - """Enable anti-virus scanning on uploads.""" - - fail_closed: Optional[bool] = None - """Block requests for files that cannot be scanned.""" - - notification_settings: Optional[NotificationSettings] = None - """ - Configure a message to display on the user's device when an antivirus search is - performed. - """ diff --git a/src/cloudflare/types/zero_trust/gateway/anti_virus_settings_param.py b/src/cloudflare/types/zero_trust/gateway/anti_virus_settings_param.py deleted file mode 100644 index ee88b2f890e..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/anti_virus_settings_param.py +++ /dev/null @@ -1,26 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -from .notification_settings_param import NotificationSettingsParam - -__all__ = ["AntiVirusSettingsParam"] - - -class AntiVirusSettingsParam(TypedDict, total=False): - enabled_download_phase: bool - """Enable anti-virus scanning on downloads.""" - - enabled_upload_phase: bool - """Enable anti-virus scanning on uploads.""" - - fail_closed: bool - """Block requests for files that cannot be scanned.""" - - notification_settings: NotificationSettingsParam - """ - Configure a message to display on the user's device when an antivirus search is - performed. - """ diff --git a/src/cloudflare/types/zero_trust/gateway/block_page_settings.py b/src/cloudflare/types/zero_trust/gateway/block_page_settings.py deleted file mode 100644 index 2b587764cff..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/block_page_settings.py +++ /dev/null @@ -1,60 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional -from typing_extensions import Literal - -from ...._models import BaseModel - -__all__ = ["BlockPageSettings"] - - -class BlockPageSettings(BaseModel): - background_color: Optional[str] = None - """ - If mode is customized_block_page: block page background color in #rrggbb format. - """ - - enabled: Optional[bool] = None - """Enable only cipher suites and TLS versions compliant with FIPS 140-2.""" - - footer_text: Optional[str] = None - """If mode is customized_block_page: block page footer text.""" - - header_text: Optional[str] = None - """If mode is customized_block_page: block page header text.""" - - include_context: Optional[bool] = None - """ - If mode is redirect_uri: when enabled, context will be appended to target_uri as - query parameters. - """ - - logo_path: Optional[str] = None - """If mode is customized_block_page: full URL to the logo file.""" - - mailto_address: Optional[str] = None - """If mode is customized_block_page: admin email for users to contact.""" - - mailto_subject: Optional[str] = None - """ - If mode is customized_block_page: subject line for emails created from block - page. - """ - - mode: Optional[Literal["customized_block_page", "redirect_uri"]] = None - """ - Controls whether the user is redirected to a Cloudflare-hosted block page or to - a customer-provided URI. - """ - - name: Optional[str] = None - """If mode is customized_block_page: block page title.""" - - suppress_footer: Optional[bool] = None - """ - If mode is customized_block_page: suppress detailed info at the bottom of the - block page. - """ - - target_uri: Optional[str] = None - """If mode is redirect_uri: URI to which the user should be redirected.""" diff --git a/src/cloudflare/types/zero_trust/gateway/block_page_settings_param.py b/src/cloudflare/types/zero_trust/gateway/block_page_settings_param.py deleted file mode 100644 index 669f363e311..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/block_page_settings_param.py +++ /dev/null @@ -1,59 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import Literal, TypedDict - -__all__ = ["BlockPageSettingsParam"] - - -class BlockPageSettingsParam(TypedDict, total=False): - background_color: str - """ - If mode is customized_block_page: block page background color in #rrggbb format. - """ - - enabled: bool - """Enable only cipher suites and TLS versions compliant with FIPS 140-2.""" - - footer_text: str - """If mode is customized_block_page: block page footer text.""" - - header_text: str - """If mode is customized_block_page: block page header text.""" - - include_context: bool - """ - If mode is redirect_uri: when enabled, context will be appended to target_uri as - query parameters. - """ - - logo_path: str - """If mode is customized_block_page: full URL to the logo file.""" - - mailto_address: str - """If mode is customized_block_page: admin email for users to contact.""" - - mailto_subject: str - """ - If mode is customized_block_page: subject line for emails created from block - page. - """ - - mode: Literal["customized_block_page", "redirect_uri"] - """ - Controls whether the user is redirected to a Cloudflare-hosted block page or to - a customer-provided URI. - """ - - name: str - """If mode is customized_block_page: block page title.""" - - suppress_footer: bool - """ - If mode is customized_block_page: suppress detailed info at the bottom of the - block page. - """ - - target_uri: str - """If mode is redirect_uri: URI to which the user should be redirected.""" diff --git a/src/cloudflare/types/zero_trust/gateway/body_scanning_settings.py b/src/cloudflare/types/zero_trust/gateway/body_scanning_settings.py deleted file mode 100644 index 4d21ed246a6..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/body_scanning_settings.py +++ /dev/null @@ -1,12 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ...._models import BaseModel - -__all__ = ["BodyScanningSettings"] - - -class BodyScanningSettings(BaseModel): - inspection_mode: Optional[str] = None - """Set the inspection mode to either `deep` or `shallow`.""" diff --git a/src/cloudflare/types/zero_trust/gateway/body_scanning_settings_param.py b/src/cloudflare/types/zero_trust/gateway/body_scanning_settings_param.py deleted file mode 100644 index 3ffd6f9037e..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/body_scanning_settings_param.py +++ /dev/null @@ -1,12 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -__all__ = ["BodyScanningSettingsParam"] - - -class BodyScanningSettingsParam(TypedDict, total=False): - inspection_mode: str - """Set the inspection mode to either `deep` or `shallow`.""" diff --git a/src/cloudflare/types/zero_trust/gateway/browser_isolation_settings.py b/src/cloudflare/types/zero_trust/gateway/browser_isolation_settings.py deleted file mode 100644 index e55ca6ff780..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/browser_isolation_settings.py +++ /dev/null @@ -1,15 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ...._models import BaseModel - -__all__ = ["BrowserIsolationSettings"] - - -class BrowserIsolationSettings(BaseModel): - non_identity_enabled: Optional[bool] = None - """Enable non-identity onramp support for Browser Isolation.""" - - url_browser_isolation_enabled: Optional[bool] = None - """Enable Clientless Browser Isolation.""" diff --git a/src/cloudflare/types/zero_trust/gateway/browser_isolation_settings_param.py b/src/cloudflare/types/zero_trust/gateway/browser_isolation_settings_param.py deleted file mode 100644 index 3b43b6df009..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/browser_isolation_settings_param.py +++ /dev/null @@ -1,15 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -__all__ = ["BrowserIsolationSettingsParam"] - - -class BrowserIsolationSettingsParam(TypedDict, total=False): - non_identity_enabled: bool - """Enable non-identity onramp support for Browser Isolation.""" - - url_browser_isolation_enabled: bool - """Enable Clientless Browser Isolation.""" diff --git a/src/cloudflare/types/zero_trust/gateway/configuration_edit_params.py b/src/cloudflare/types/zero_trust/gateway/configuration_edit_params.py index e2a203f8dd8..06bb06d9eaf 100644 --- a/src/cloudflare/types/zero_trust/gateway/configuration_edit_params.py +++ b/src/cloudflare/types/zero_trust/gateway/configuration_edit_params.py @@ -4,13 +4,10 @@ from typing_extensions import Required, TypedDict -from .gateway_configuration_settings_param import GatewayConfigurationSettingsParam - __all__ = ["ConfigurationEditParams"] class ConfigurationEditParams(TypedDict, total=False): account_id: Required[str] - settings: GatewayConfigurationSettingsParam - """Account settings""" + settings: object diff --git a/src/cloudflare/types/zero_trust/gateway/configuration_edit_response.py b/src/cloudflare/types/zero_trust/gateway/configuration_edit_response.py index 13a39732b9b..4f583b02dab 100644 --- a/src/cloudflare/types/zero_trust/gateway/configuration_edit_response.py +++ b/src/cloudflare/types/zero_trust/gateway/configuration_edit_response.py @@ -4,7 +4,6 @@ from datetime import datetime from ...._models import BaseModel -from .gateway_configuration_settings import GatewayConfigurationSettings __all__ = ["ConfigurationEditResponse"] @@ -12,7 +11,6 @@ class ConfigurationEditResponse(BaseModel): created_at: Optional[datetime] = None - settings: Optional[GatewayConfigurationSettings] = None - """Account settings""" + settings: Optional[object] = None updated_at: Optional[datetime] = None diff --git a/src/cloudflare/types/zero_trust/gateway/configuration_get_response.py b/src/cloudflare/types/zero_trust/gateway/configuration_get_response.py index 63636f9ea17..eb97b8d1d2e 100644 --- a/src/cloudflare/types/zero_trust/gateway/configuration_get_response.py +++ b/src/cloudflare/types/zero_trust/gateway/configuration_get_response.py @@ -4,7 +4,6 @@ from datetime import datetime from ...._models import BaseModel -from .gateway_configuration_settings import GatewayConfigurationSettings __all__ = ["ConfigurationGetResponse"] @@ -12,7 +11,6 @@ class ConfigurationGetResponse(BaseModel): created_at: Optional[datetime] = None - settings: Optional[GatewayConfigurationSettings] = None - """Account settings""" + settings: Optional[object] = None updated_at: Optional[datetime] = None diff --git a/src/cloudflare/types/zero_trust/gateway/configuration_update_params.py b/src/cloudflare/types/zero_trust/gateway/configuration_update_params.py index 8dc9dece583..d19b4d6ff05 100644 --- a/src/cloudflare/types/zero_trust/gateway/configuration_update_params.py +++ b/src/cloudflare/types/zero_trust/gateway/configuration_update_params.py @@ -4,13 +4,10 @@ from typing_extensions import Required, TypedDict -from .gateway_configuration_settings_param import GatewayConfigurationSettingsParam - __all__ = ["ConfigurationUpdateParams"] class ConfigurationUpdateParams(TypedDict, total=False): account_id: Required[str] - settings: GatewayConfigurationSettingsParam - """Account settings""" + settings: object diff --git a/src/cloudflare/types/zero_trust/gateway/configuration_update_response.py b/src/cloudflare/types/zero_trust/gateway/configuration_update_response.py index 17c9c505bf3..f31427bae32 100644 --- a/src/cloudflare/types/zero_trust/gateway/configuration_update_response.py +++ b/src/cloudflare/types/zero_trust/gateway/configuration_update_response.py @@ -4,7 +4,6 @@ from datetime import datetime from ...._models import BaseModel -from .gateway_configuration_settings import GatewayConfigurationSettings __all__ = ["ConfigurationUpdateResponse"] @@ -12,7 +11,6 @@ class ConfigurationUpdateResponse(BaseModel): created_at: Optional[datetime] = None - settings: Optional[GatewayConfigurationSettings] = None - """Account settings""" + settings: Optional[object] = None updated_at: Optional[datetime] = None diff --git a/src/cloudflare/types/zero_trust/gateway/custom_certificate_settings_param.py b/src/cloudflare/types/zero_trust/gateway/custom_certificate_settings_param.py deleted file mode 100644 index 60627d47117..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/custom_certificate_settings_param.py +++ /dev/null @@ -1,15 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import Required, TypedDict - -__all__ = ["CustomCertificateSettingsParam"] - - -class CustomCertificateSettingsParam(TypedDict, total=False): - enabled: Required[bool] - """Enable use of custom certificate authority for signing Gateway traffic.""" - - id: str - """UUID of certificate (ID from MTLS certificate store).""" diff --git a/src/cloudflare/types/zero_trust/gateway/extended_email_matching.py b/src/cloudflare/types/zero_trust/gateway/extended_email_matching.py deleted file mode 100644 index ff34962235c..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/extended_email_matching.py +++ /dev/null @@ -1,15 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ...._models import BaseModel - -__all__ = ["ExtendedEmailMatching"] - - -class ExtendedEmailMatching(BaseModel): - enabled: Optional[bool] = None - """Enable matching all variants of user emails (with + or . - - modifiers) used as criteria in Firewall policies. - """ diff --git a/src/cloudflare/types/zero_trust/gateway/extended_email_matching_param.py b/src/cloudflare/types/zero_trust/gateway/extended_email_matching_param.py deleted file mode 100644 index cdf65749933..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/extended_email_matching_param.py +++ /dev/null @@ -1,15 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -__all__ = ["ExtendedEmailMatchingParam"] - - -class ExtendedEmailMatchingParam(TypedDict, total=False): - enabled: bool - """Enable matching all variants of user emails (with + or . - - modifiers) used as criteria in Firewall policies. - """ diff --git a/src/cloudflare/types/zero_trust/gateway/fips_settings.py b/src/cloudflare/types/zero_trust/gateway/fips_settings.py deleted file mode 100644 index 357e4b5c704..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/fips_settings.py +++ /dev/null @@ -1,12 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ...._models import BaseModel - -__all__ = ["FipsSettings"] - - -class FipsSettings(BaseModel): - tls: Optional[bool] = None - """Enable only cipher suites and TLS versions compliant with FIPS 140-2.""" diff --git a/src/cloudflare/types/zero_trust/gateway/fips_settings_param.py b/src/cloudflare/types/zero_trust/gateway/fips_settings_param.py deleted file mode 100644 index 4c344325f56..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/fips_settings_param.py +++ /dev/null @@ -1,12 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -__all__ = ["FipsSettingsParam"] - - -class FipsSettingsParam(TypedDict, total=False): - tls: bool - """Enable only cipher suites and TLS versions compliant with FIPS 140-2.""" diff --git a/src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings.py b/src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings.py deleted file mode 100644 index 2b040e89014..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings.py +++ /dev/null @@ -1,79 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional -from typing_extensions import Literal - -from ...._models import BaseModel -from .tls_settings import TLSSettings -from .fips_settings import FipsSettings -from .protocol_detection import ProtocolDetection -from .anti_virus_settings import AntiVirusSettings -from .block_page_settings import BlockPageSettings -from .activity_log_settings import ActivityLogSettings -from .body_scanning_settings import BodyScanningSettings -from .extended_email_matching import ExtendedEmailMatching -from .browser_isolation_settings import BrowserIsolationSettings -from .custom_certificate_settings import CustomCertificateSettings - -__all__ = ["GatewayConfigurationSettings", "Certificate", "Sandbox"] - - -class Certificate(BaseModel): - id: str - """UUID of certificate to be used for interception. - - Certificate must be available (previously called 'active') on the edge. A nil - UUID will indicate the Cloudflare Root CA should be used. - """ - - -class Sandbox(BaseModel): - enabled: Optional[bool] = None - """Enable sandbox.""" - - fallback_action: Optional[Literal["allow", "block"]] = None - """Action to take when the file cannot be scanned.""" - - -class GatewayConfigurationSettings(BaseModel): - activity_log: Optional[ActivityLogSettings] = None - """Activity log settings.""" - - antivirus: Optional[AntiVirusSettings] = None - """Anti-virus settings.""" - - block_page: Optional[BlockPageSettings] = None - """Block page layout settings.""" - - body_scanning: Optional[BodyScanningSettings] = None - """DLP body scanning settings.""" - - browser_isolation: Optional[BrowserIsolationSettings] = None - """Browser isolation settings.""" - - certificate: Optional[Certificate] = None - """Certificate settings for Gateway TLS interception. - - If not specified, the Cloudflare Root CA will be used. - """ - - custom_certificate: Optional[CustomCertificateSettings] = None - """Custom certificate settings for BYO-PKI. - - (deprecated and replaced by `certificate`) - """ - - extended_email_matching: Optional[ExtendedEmailMatching] = None - """Extended e-mail matching settings.""" - - fips: Optional[FipsSettings] = None - """FIPS settings.""" - - protocol_detection: Optional[ProtocolDetection] = None - """Protocol Detection settings.""" - - sandbox: Optional[Sandbox] = None - """Sandbox settings.""" - - tls_decrypt: Optional[TLSSettings] = None - """TLS interception settings.""" diff --git a/src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings_param.py b/src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings_param.py deleted file mode 100644 index c5bfcfb237d..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings_param.py +++ /dev/null @@ -1,79 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import Literal, Required, TypedDict - -from .tls_settings_param import TLSSettingsParam -from .fips_settings_param import FipsSettingsParam -from .protocol_detection_param import ProtocolDetectionParam -from .anti_virus_settings_param import AntiVirusSettingsParam -from .block_page_settings_param import BlockPageSettingsParam -from .activity_log_settings_param import ActivityLogSettingsParam -from .body_scanning_settings_param import BodyScanningSettingsParam -from .extended_email_matching_param import ExtendedEmailMatchingParam -from .browser_isolation_settings_param import BrowserIsolationSettingsParam -from .custom_certificate_settings_param import CustomCertificateSettingsParam - -__all__ = ["GatewayConfigurationSettingsParam", "Certificate", "Sandbox"] - - -class Certificate(TypedDict, total=False): - id: Required[str] - """UUID of certificate to be used for interception. - - Certificate must be available (previously called 'active') on the edge. A nil - UUID will indicate the Cloudflare Root CA should be used. - """ - - -class Sandbox(TypedDict, total=False): - enabled: bool - """Enable sandbox.""" - - fallback_action: Literal["allow", "block"] - """Action to take when the file cannot be scanned.""" - - -class GatewayConfigurationSettingsParam(TypedDict, total=False): - activity_log: ActivityLogSettingsParam - """Activity log settings.""" - - antivirus: AntiVirusSettingsParam - """Anti-virus settings.""" - - block_page: BlockPageSettingsParam - """Block page layout settings.""" - - body_scanning: BodyScanningSettingsParam - """DLP body scanning settings.""" - - browser_isolation: BrowserIsolationSettingsParam - """Browser isolation settings.""" - - certificate: Certificate - """Certificate settings for Gateway TLS interception. - - If not specified, the Cloudflare Root CA will be used. - """ - - custom_certificate: CustomCertificateSettingsParam - """Custom certificate settings for BYO-PKI. - - (deprecated and replaced by `certificate`) - """ - - extended_email_matching: ExtendedEmailMatchingParam - """Extended e-mail matching settings.""" - - fips: FipsSettingsParam - """FIPS settings.""" - - protocol_detection: ProtocolDetectionParam - """Protocol Detection settings.""" - - sandbox: Sandbox - """Sandbox settings.""" - - tls_decrypt: TLSSettingsParam - """TLS interception settings.""" diff --git a/src/cloudflare/types/zero_trust/gateway/logging_setting.py b/src/cloudflare/types/zero_trust/gateway/logging_setting.py index 7fd32c437a6..eca1a539358 100644 --- a/src/cloudflare/types/zero_trust/gateway/logging_setting.py +++ b/src/cloudflare/types/zero_trust/gateway/logging_setting.py @@ -4,18 +4,7 @@ from ...._models import BaseModel -__all__ = ["LoggingSetting", "SettingsByRuleType"] - - -class SettingsByRuleType(BaseModel): - dns: Optional[object] = None - """Logging settings for DNS firewall.""" - - http: Optional[object] = None - """Logging settings for HTTP/HTTPS firewall.""" - - l4: Optional[object] = None - """Logging settings for Network firewall.""" +__all__ = ["LoggingSetting"] class LoggingSetting(BaseModel): @@ -25,5 +14,4 @@ class LoggingSetting(BaseModel): are: source IP, user email, user ID, device ID, URL, referrer, user agent). """ - settings_by_rule_type: Optional[SettingsByRuleType] = None - """Logging settings by rule type.""" + settings_by_rule_type: Optional[object] = None diff --git a/src/cloudflare/types/zero_trust/gateway/logging_update_params.py b/src/cloudflare/types/zero_trust/gateway/logging_update_params.py index de1cb4dfeb6..ba784adf8bd 100644 --- a/src/cloudflare/types/zero_trust/gateway/logging_update_params.py +++ b/src/cloudflare/types/zero_trust/gateway/logging_update_params.py @@ -4,7 +4,7 @@ from typing_extensions import Required, TypedDict -__all__ = ["LoggingUpdateParams", "SettingsByRuleType"] +__all__ = ["LoggingUpdateParams"] class LoggingUpdateParams(TypedDict, total=False): @@ -16,16 +16,4 @@ class LoggingUpdateParams(TypedDict, total=False): are: source IP, user email, user ID, device ID, URL, referrer, user agent). """ - settings_by_rule_type: SettingsByRuleType - """Logging settings by rule type.""" - - -class SettingsByRuleType(TypedDict, total=False): - dns: object - """Logging settings for DNS firewall.""" - - http: object - """Logging settings for HTTP/HTTPS firewall.""" - - l4: object - """Logging settings for Network firewall.""" + settings_by_rule_type: object diff --git a/src/cloudflare/types/zero_trust/gateway/notification_settings.py b/src/cloudflare/types/zero_trust/gateway/notification_settings.py deleted file mode 100644 index 0a1be707f81..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/notification_settings.py +++ /dev/null @@ -1,21 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ...._models import BaseModel - -__all__ = ["NotificationSettings"] - - -class NotificationSettings(BaseModel): - enabled: Optional[bool] = None - """Set notification on""" - - msg: Optional[str] = None - """Customize the message shown in the notification.""" - - support_url: Optional[str] = None - """Optional URL to direct users to additional information. - - If not set, the notification will open a block page. - """ diff --git a/src/cloudflare/types/zero_trust/gateway/notification_settings_param.py b/src/cloudflare/types/zero_trust/gateway/notification_settings_param.py deleted file mode 100644 index 96db4b9f3c9..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/notification_settings_param.py +++ /dev/null @@ -1,21 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -__all__ = ["NotificationSettingsParam"] - - -class NotificationSettingsParam(TypedDict, total=False): - enabled: bool - """Set notification on""" - - msg: str - """Customize the message shown in the notification.""" - - support_url: str - """Optional URL to direct users to additional information. - - If not set, the notification will open a block page. - """ diff --git a/src/cloudflare/types/zero_trust/gateway/protocol_detection.py b/src/cloudflare/types/zero_trust/gateway/protocol_detection.py deleted file mode 100644 index 7d082eb6c2c..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/protocol_detection.py +++ /dev/null @@ -1,12 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ...._models import BaseModel - -__all__ = ["ProtocolDetection"] - - -class ProtocolDetection(BaseModel): - enabled: Optional[bool] = None - """Enable detecting protocol on initial bytes of client traffic.""" diff --git a/src/cloudflare/types/zero_trust/gateway/protocol_detection_param.py b/src/cloudflare/types/zero_trust/gateway/protocol_detection_param.py deleted file mode 100644 index faece993406..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/protocol_detection_param.py +++ /dev/null @@ -1,12 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -__all__ = ["ProtocolDetectionParam"] - - -class ProtocolDetectionParam(TypedDict, total=False): - enabled: bool - """Enable detecting protocol on initial bytes of client traffic.""" diff --git a/src/cloudflare/types/zero_trust/gateway/tls_settings.py b/src/cloudflare/types/zero_trust/gateway/tls_settings.py deleted file mode 100644 index e0a3fae4b5d..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/tls_settings.py +++ /dev/null @@ -1,12 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ...._models import BaseModel - -__all__ = ["TLSSettings"] - - -class TLSSettings(BaseModel): - enabled: Optional[bool] = None - """Enable inspecting encrypted HTTP traffic.""" diff --git a/src/cloudflare/types/zero_trust/gateway/tls_settings_param.py b/src/cloudflare/types/zero_trust/gateway/tls_settings_param.py deleted file mode 100644 index ed0a04116aa..00000000000 --- a/src/cloudflare/types/zero_trust/gateway/tls_settings_param.py +++ /dev/null @@ -1,12 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -__all__ = ["TLSSettingsParam"] - - -class TLSSettingsParam(TypedDict, total=False): - enabled: bool - """Enable inspecting encrypted HTTP traffic.""" diff --git a/src/cloudflare/types/zero_trust/identity_provider.py b/src/cloudflare/types/zero_trust/identity_provider.py index 49e7beaa96c..310ed57e240 100644 --- a/src/cloudflare/types/zero_trust/identity_provider.py +++ b/src/cloudflare/types/zero_trust/identity_provider.py @@ -6,8 +6,6 @@ from .azure_ad import AzureAD from ..._models import BaseModel from .generic_oauth_config import GenericOAuthConfig -from .identity_provider_type import IdentityProviderType -from .identity_provider_scim_config import IdentityProviderSCIMConfig __all__ = [ "IdentityProvider", @@ -68,21 +66,12 @@ class AccessCentrify(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessFacebook(BaseModel): @@ -96,21 +85,12 @@ class AccessFacebook(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessGitHub(BaseModel): @@ -124,21 +104,12 @@ class AccessGitHub(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessGoogleConfig(BaseModel): @@ -166,21 +137,12 @@ class AccessGoogle(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessGoogleAppsConfig(BaseModel): @@ -211,21 +173,12 @@ class AccessGoogleApps(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessLinkedin(BaseModel): @@ -239,21 +192,12 @@ class AccessLinkedin(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessOIDCConfig(BaseModel): @@ -296,21 +240,12 @@ class AccessOIDC(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessOktaConfig(BaseModel): @@ -344,21 +279,12 @@ class AccessOkta(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessOneloginConfig(BaseModel): @@ -389,21 +315,12 @@ class AccessOnelogin(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessPingoneConfig(BaseModel): @@ -434,21 +351,12 @@ class AccessPingone(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessSAMLConfigHeaderAttribute(BaseModel): @@ -502,21 +410,12 @@ class AccessSAML(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessYandex(BaseModel): @@ -530,21 +429,12 @@ class AccessYandex(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessOnetimepinConfig(BaseModel): @@ -562,21 +452,12 @@ class AccessOnetimepin(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None IdentityProvider: TypeAlias = Union[ diff --git a/src/cloudflare/types/zero_trust/identity_provider_create_params.py b/src/cloudflare/types/zero_trust/identity_provider_create_params.py index 3e36765f32b..e17fa130e53 100644 --- a/src/cloudflare/types/zero_trust/identity_provider_create_params.py +++ b/src/cloudflare/types/zero_trust/identity_provider_create_params.py @@ -5,9 +5,7 @@ from typing import List, Union, Iterable from typing_extensions import Literal, Required, TypeAlias, TypedDict -from .identity_provider_type import IdentityProviderType from .generic_oauth_config_param import GenericOAuthConfigParam -from .identity_provider_scim_config_param import IdentityProviderSCIMConfigParam __all__ = [ "IdentityProviderCreateParams", @@ -50,12 +48,7 @@ class AzureAD(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -63,11 +56,7 @@ class AzureAD(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AzureADConfig(TypedDict, total=False): @@ -117,12 +106,7 @@ class AccessCentrify(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -130,11 +114,7 @@ class AccessCentrify(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessCentrifyConfig(TypedDict, total=False): @@ -168,12 +148,7 @@ class AccessFacebook(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -181,11 +156,7 @@ class AccessFacebook(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessGitHub(TypedDict, total=False): @@ -199,12 +170,7 @@ class AccessGitHub(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -212,11 +178,7 @@ class AccessGitHub(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessGoogle(TypedDict, total=False): @@ -230,12 +192,7 @@ class AccessGoogle(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -243,11 +200,7 @@ class AccessGoogle(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessGoogleConfig(TypedDict, total=False): @@ -275,12 +228,7 @@ class AccessGoogleApps(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -288,11 +236,7 @@ class AccessGoogleApps(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessGoogleAppsConfig(TypedDict, total=False): @@ -323,12 +267,7 @@ class AccessLinkedin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -336,11 +275,7 @@ class AccessLinkedin(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOIDC(TypedDict, total=False): @@ -354,12 +289,7 @@ class AccessOIDC(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -367,11 +297,7 @@ class AccessOIDC(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOIDCConfig(TypedDict, total=False): @@ -414,12 +340,7 @@ class AccessOkta(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -427,11 +348,7 @@ class AccessOkta(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOktaConfig(TypedDict, total=False): @@ -465,12 +382,7 @@ class AccessOnelogin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -478,11 +390,7 @@ class AccessOnelogin(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOneloginConfig(TypedDict, total=False): @@ -513,12 +421,7 @@ class AccessPingone(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -526,11 +429,7 @@ class AccessPingone(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessPingoneConfig(TypedDict, total=False): @@ -561,12 +460,7 @@ class AccessSAML(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -574,11 +468,7 @@ class AccessSAML(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessSAMLConfigHeaderAttribute(TypedDict, total=False): @@ -632,12 +522,7 @@ class AccessYandex(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -645,11 +530,7 @@ class AccessYandex(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOnetimepin(TypedDict, total=False): @@ -663,12 +544,7 @@ class AccessOnetimepin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -676,11 +552,7 @@ class AccessOnetimepin(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOnetimepinConfig(TypedDict, total=False): diff --git a/src/cloudflare/types/zero_trust/identity_provider_list_response.py b/src/cloudflare/types/zero_trust/identity_provider_list_response.py index 9aea2c16ce8..122dbfd696f 100644 --- a/src/cloudflare/types/zero_trust/identity_provider_list_response.py +++ b/src/cloudflare/types/zero_trust/identity_provider_list_response.py @@ -6,8 +6,6 @@ from .azure_ad import AzureAD from ..._models import BaseModel from .generic_oauth_config import GenericOAuthConfig -from .identity_provider_type import IdentityProviderType -from .identity_provider_scim_config import IdentityProviderSCIMConfig __all__ = [ "IdentityProviderListResponse", @@ -66,21 +64,12 @@ class AccessCentrify(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessFacebook(BaseModel): @@ -94,21 +83,12 @@ class AccessFacebook(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessGitHub(BaseModel): @@ -122,21 +102,12 @@ class AccessGitHub(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessGoogleConfig(BaseModel): @@ -164,21 +135,12 @@ class AccessGoogle(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessGoogleAppsConfig(BaseModel): @@ -209,21 +171,12 @@ class AccessGoogleApps(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessLinkedin(BaseModel): @@ -237,21 +190,12 @@ class AccessLinkedin(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessOIDCConfig(BaseModel): @@ -294,21 +238,12 @@ class AccessOIDC(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessOktaConfig(BaseModel): @@ -342,21 +277,12 @@ class AccessOkta(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessOneloginConfig(BaseModel): @@ -387,21 +313,12 @@ class AccessOnelogin(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessPingoneConfig(BaseModel): @@ -432,21 +349,12 @@ class AccessPingone(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessSAMLConfigHeaderAttribute(BaseModel): @@ -500,21 +408,12 @@ class AccessSAML(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None class AccessYandex(BaseModel): @@ -528,21 +427,12 @@ class AccessYandex(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: IdentityProviderType - """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/). - """ + type: object id: Optional[str] = None """UUID""" - scim_config: Optional[IdentityProviderSCIMConfig] = None - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: Optional[object] = None IdentityProviderListResponse: TypeAlias = Union[ diff --git a/src/cloudflare/types/zero_trust/identity_provider_param.py b/src/cloudflare/types/zero_trust/identity_provider_param.py index c65e8409b57..7125ec5cb48 100644 --- a/src/cloudflare/types/zero_trust/identity_provider_param.py +++ b/src/cloudflare/types/zero_trust/identity_provider_param.py @@ -6,9 +6,7 @@ from typing_extensions import Required, TypeAlias, TypedDict from .azure_ad_param import AzureADParam -from .identity_provider_type import IdentityProviderType from .generic_oauth_config_param import GenericOAuthConfigParam -from .identity_provider_scim_config_param import IdentityProviderSCIMConfigParam __all__ = [ "IdentityProviderParam", @@ -69,18 +67,9 @@ class AccessCentrify(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """The type of identity provider. + type: Required[object] - To determine the value for a specific provider, refer to our - [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). - """ - - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessFacebook(TypedDict, total=False): @@ -94,18 +83,9 @@ class AccessFacebook(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """The type of identity provider. + type: Required[object] - To determine the value for a specific provider, refer to our - [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). - """ - - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessGitHub(TypedDict, total=False): @@ -119,18 +99,9 @@ class AccessGitHub(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessGoogleConfig(TypedDict, total=False): @@ -158,18 +129,9 @@ class AccessGoogle(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """The type of identity provider. + type: Required[object] - To determine the value for a specific provider, refer to our - [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). - """ - - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessGoogleAppsConfig(TypedDict, total=False): @@ -200,18 +162,9 @@ class AccessGoogleApps(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessLinkedin(TypedDict, total=False): @@ -225,18 +178,9 @@ class AccessLinkedin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """The type of identity provider. + type: Required[object] - To determine the value for a specific provider, refer to our - [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). - """ - - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOIDCConfig(TypedDict, total=False): @@ -279,18 +223,9 @@ class AccessOIDC(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """The type of identity provider. + type: Required[object] - To determine the value for a specific provider, refer to our - [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). - """ - - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOktaConfig(TypedDict, total=False): @@ -324,18 +259,9 @@ class AccessOkta(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOneloginConfig(TypedDict, total=False): @@ -366,18 +292,9 @@ class AccessOnelogin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessPingoneConfig(TypedDict, total=False): @@ -408,18 +325,9 @@ class AccessPingone(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """The type of identity provider. + type: Required[object] - To determine the value for a specific provider, refer to our - [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). - """ - - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessSAMLConfigHeaderAttribute(TypedDict, total=False): @@ -473,18 +381,9 @@ class AccessSAML(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessYandex(TypedDict, total=False): @@ -498,18 +397,9 @@ class AccessYandex(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOnetimepinConfig(TypedDict, total=False): @@ -527,18 +417,9 @@ class AccessOnetimepin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object IdentityProviderParam: TypeAlias = Union[ diff --git a/src/cloudflare/types/zero_trust/identity_provider_scim_config.py b/src/cloudflare/types/zero_trust/identity_provider_scim_config.py deleted file mode 100644 index aa4b9fecffe..00000000000 --- a/src/cloudflare/types/zero_trust/identity_provider_scim_config.py +++ /dev/null @@ -1,47 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional -from typing_extensions import Literal - -from ..._models import BaseModel - -__all__ = ["IdentityProviderSCIMConfig"] - - -class IdentityProviderSCIMConfig(BaseModel): - enabled: Optional[bool] = None - """A flag to enable or disable SCIM for the identity provider.""" - - identity_update_behavior: Optional[Literal["automatic", "reauth", "no_action"]] = None - """Indicates how a SCIM event updates a user identity used for policy evaluation. - - Use "automatic" to automatically update a user's identity and augment it with - fields from the SCIM user resource. Use "reauth" to force re-authentication on - group membership updates, user identity update will only occur after successful - re-authentication. With "reauth" identities will not contain fields from the - SCIM user resource. With "no_action" identities will not be changed by SCIM - updates in any way and users will not be prompted to reauthenticate. - """ - - scim_base_url: Optional[str] = None - """The base URL of Cloudflare's SCIM V2.0 API endpoint.""" - - seat_deprovision: Optional[bool] = None - """ - 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. - """ - - secret: Optional[str] = None - """ - 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 at /access/identity_providers/:idpID/refresh_scim_secret. - """ - - user_deprovision: Optional[bool] = None - """ - A flag to enable revoking a user's session in Access and Gateway when they have - been deprovisioned in the Identity Provider. - """ diff --git a/src/cloudflare/types/zero_trust/identity_provider_scim_config_param.py b/src/cloudflare/types/zero_trust/identity_provider_scim_config_param.py deleted file mode 100644 index c3e5e064ded..00000000000 --- a/src/cloudflare/types/zero_trust/identity_provider_scim_config_param.py +++ /dev/null @@ -1,36 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import Literal, TypedDict - -__all__ = ["IdentityProviderSCIMConfigParam"] - - -class IdentityProviderSCIMConfigParam(TypedDict, total=False): - enabled: bool - """A flag to enable or disable SCIM for the identity provider.""" - - identity_update_behavior: Literal["automatic", "reauth", "no_action"] - """Indicates how a SCIM event updates a user identity used for policy evaluation. - - Use "automatic" to automatically update a user's identity and augment it with - fields from the SCIM user resource. Use "reauth" to force re-authentication on - group membership updates, user identity update will only occur after successful - re-authentication. With "reauth" identities will not contain fields from the - SCIM user resource. With "no_action" identities will not be changed by SCIM - updates in any way and users will not be prompted to reauthenticate. - """ - - seat_deprovision: bool - """ - 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. - """ - - user_deprovision: bool - """ - A flag to enable revoking a user's session in Access and Gateway when they have - been deprovisioned in the Identity Provider. - """ diff --git a/src/cloudflare/types/zero_trust/identity_provider_type.py b/src/cloudflare/types/zero_trust/identity_provider_type.py deleted file mode 100644 index 13dba5ce2c5..00000000000 --- a/src/cloudflare/types/zero_trust/identity_provider_type.py +++ /dev/null @@ -1,22 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["IdentityProviderType"] - -IdentityProviderType: TypeAlias = Literal[ - "onetimepin", - "azureAD", - "saml", - "centrify", - "facebook", - "github", - "google-apps", - "google", - "linkedin", - "oidc", - "okta", - "onelogin", - "pingone", - "yandex", -] diff --git a/src/cloudflare/types/zero_trust/identity_provider_update_params.py b/src/cloudflare/types/zero_trust/identity_provider_update_params.py index 1cc1369ad54..8d4051ca23c 100644 --- a/src/cloudflare/types/zero_trust/identity_provider_update_params.py +++ b/src/cloudflare/types/zero_trust/identity_provider_update_params.py @@ -5,9 +5,7 @@ from typing import List, Union, Iterable from typing_extensions import Literal, Required, TypeAlias, TypedDict -from .identity_provider_type import IdentityProviderType from .generic_oauth_config_param import GenericOAuthConfigParam -from .identity_provider_scim_config_param import IdentityProviderSCIMConfigParam __all__ = [ "IdentityProviderUpdateParams", @@ -50,12 +48,7 @@ class AzureAD(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -63,11 +56,7 @@ class AzureAD(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AzureADConfig(TypedDict, total=False): @@ -117,12 +106,7 @@ class AccessCentrify(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -130,11 +114,7 @@ class AccessCentrify(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessCentrifyConfig(TypedDict, total=False): @@ -168,12 +148,7 @@ class AccessFacebook(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -181,11 +156,7 @@ class AccessFacebook(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessGitHub(TypedDict, total=False): @@ -199,12 +170,7 @@ class AccessGitHub(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -212,11 +178,7 @@ class AccessGitHub(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessGoogle(TypedDict, total=False): @@ -230,12 +192,7 @@ class AccessGoogle(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -243,11 +200,7 @@ class AccessGoogle(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessGoogleConfig(TypedDict, total=False): @@ -275,12 +228,7 @@ class AccessGoogleApps(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -288,11 +236,7 @@ class AccessGoogleApps(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessGoogleAppsConfig(TypedDict, total=False): @@ -323,12 +267,7 @@ class AccessLinkedin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -336,11 +275,7 @@ class AccessLinkedin(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOIDC(TypedDict, total=False): @@ -354,12 +289,7 @@ class AccessOIDC(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -367,11 +297,7 @@ class AccessOIDC(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOIDCConfig(TypedDict, total=False): @@ -414,12 +340,7 @@ class AccessOkta(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -427,11 +348,7 @@ class AccessOkta(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOktaConfig(TypedDict, total=False): @@ -465,12 +382,7 @@ class AccessOnelogin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -478,11 +390,7 @@ class AccessOnelogin(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOneloginConfig(TypedDict, total=False): @@ -513,12 +421,7 @@ class AccessPingone(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -526,11 +429,7 @@ class AccessPingone(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessPingoneConfig(TypedDict, total=False): @@ -561,12 +460,7 @@ class AccessSAML(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -574,11 +468,7 @@ class AccessSAML(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessSAMLConfigHeaderAttribute(TypedDict, total=False): @@ -632,12 +522,7 @@ class AccessYandex(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -645,11 +530,7 @@ class AccessYandex(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOnetimepin(TypedDict, total=False): @@ -663,12 +544,7 @@ class AccessOnetimepin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[IdentityProviderType] - """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/). - """ + type: Required[object] account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -676,11 +552,7 @@ class AccessOnetimepin(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: IdentityProviderSCIMConfigParam - """ - The configuration settings for enabling a System for Cross-Domain Identity - Management (SCIM) with the identity provider. - """ + scim_config: object class AccessOnetimepinConfig(TypedDict, total=False): diff --git a/src/cloudflare/types/zones/__init__.py b/src/cloudflare/types/zones/__init__.py index 5b7501b8935..a4fab6f3e1f 100644 --- a/src/cloudflare/types/zones/__init__.py +++ b/src/cloudflare/types/zones/__init__.py @@ -21,7 +21,6 @@ from .ssl_param import SSLParam as SSLParam from .waf_param import WAFParam as WAFParam from .websocket import Websocket as Websocket -from .zone_hold import ZoneHold as ZoneHold from .ipv6_param import IPV6Param as IPV6Param from .webp_param import WebPParam as WebPParam from .cache_level import CacheLevel as CacheLevel diff --git a/src/cloudflare/types/zones/custom_nameserver_get_response.py b/src/cloudflare/types/zones/custom_nameserver_get_response.py index aacb6acd0de..5cd29997cf2 100644 --- a/src/cloudflare/types/zones/custom_nameserver_get_response.py +++ b/src/cloudflare/types/zones/custom_nameserver_get_response.py @@ -4,7 +4,6 @@ from typing_extensions import Literal from ..._models import BaseModel -from ..shared.response_info import ResponseInfo __all__ = ["CustomNameserverGetResponse", "ResultInfo"] @@ -24,9 +23,9 @@ class ResultInfo(BaseModel): class CustomNameserverGetResponse(BaseModel): - errors: List[ResponseInfo] + errors: List[object] - messages: List[ResponseInfo] + messages: List[object] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/zones/zone_hold.py b/src/cloudflare/types/zones/zone_hold.py deleted file mode 100644 index d56375bbb94..00000000000 --- a/src/cloudflare/types/zones/zone_hold.py +++ /dev/null @@ -1,15 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from ..._models import BaseModel - -__all__ = ["ZoneHold"] - - -class ZoneHold(BaseModel): - hold: Optional[bool] = None - - hold_after: Optional[str] = None - - include_subdomains: Optional[str] = None diff --git a/tests/api_resources/logpush/test_ownership.py b/tests/api_resources/logpush/test_ownership.py index 4ad4830713f..aeddb65c62d 100644 --- a/tests/api_resources/logpush/test_ownership.py +++ b/tests/api_resources/logpush/test_ownership.py @@ -9,10 +9,7 @@ from cloudflare import Cloudflare, AsyncCloudflare from tests.utils import assert_matches_type -from cloudflare.types.logpush import ( - OwnershipValidation, - OwnershipCreateResponse, -) +from cloudflare.types.logpush import OwnershipCreateResponse base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -89,7 +86,7 @@ def test_method_validate(self, client: Cloudflare) -> None: ownership_challenge="00000000000000000000", account_id="account_id", ) - assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) + assert_matches_type(object, ownership, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -99,7 +96,7 @@ def test_method_validate_with_all_params(self, client: Cloudflare) -> None: ownership_challenge="00000000000000000000", account_id="account_id", ) - assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) + assert_matches_type(object, ownership, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -113,7 +110,7 @@ def test_raw_response_validate(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" ownership = response.parse() - assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) + assert_matches_type(object, ownership, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -127,7 +124,7 @@ def test_streaming_response_validate(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" ownership = response.parse() - assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) + assert_matches_type(object, ownership, path=["response"]) assert cast(Any, response.is_closed) is True @@ -221,7 +218,7 @@ async def test_method_validate(self, async_client: AsyncCloudflare) -> None: ownership_challenge="00000000000000000000", account_id="account_id", ) - assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) + assert_matches_type(object, ownership, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -231,7 +228,7 @@ async def test_method_validate_with_all_params(self, async_client: AsyncCloudfla ownership_challenge="00000000000000000000", account_id="account_id", ) - assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) + assert_matches_type(object, ownership, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -245,7 +242,7 @@ async def test_raw_response_validate(self, async_client: AsyncCloudflare) -> Non assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" ownership = await response.parse() - assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) + assert_matches_type(object, ownership, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -259,7 +256,7 @@ async def test_streaming_response_validate(self, async_client: AsyncCloudflare) assert response.http_request.headers.get("X-Stainless-Lang") == "python" ownership = await response.parse() - assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) + assert_matches_type(object, ownership, path=["response"]) assert cast(Any, response.is_closed) is True diff --git a/tests/api_resources/magic_transit/sites/test_acls.py b/tests/api_resources/magic_transit/sites/test_acls.py index d6c31f71bc6..86f9f45e25d 100644 --- a/tests/api_resources/magic_transit/sites/test_acls.py +++ b/tests/api_resources/magic_transit/sites/test_acls.py @@ -53,7 +53,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: name="PIN Pad - Cash Register", description="Allows local traffic between PIN pads and cash register.", forward_locally=True, - protocols=["tcp"], + protocols=[{}], unidirectional=True, ) assert_matches_type(ACL, acl, path=["response"]) @@ -142,7 +142,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: "subnets": ["192.0.2.1"], }, name="PIN Pad - Cash Register", - protocols=["tcp"], + protocols=[{}], unidirectional=True, ) assert_matches_type(ACL, acl, path=["response"]) @@ -338,7 +338,7 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: "subnets": ["192.0.2.1"], }, name="PIN Pad - Cash Register", - protocols=["tcp"], + protocols=[{}], unidirectional=True, ) assert_matches_type(ACL, acl, path=["response"]) @@ -491,7 +491,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare name="PIN Pad - Cash Register", description="Allows local traffic between PIN pads and cash register.", forward_locally=True, - protocols=["tcp"], + protocols=[{}], unidirectional=True, ) assert_matches_type(ACL, acl, path=["response"]) @@ -580,7 +580,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare "subnets": ["192.0.2.1"], }, name="PIN Pad - Cash Register", - protocols=["tcp"], + protocols=[{}], unidirectional=True, ) assert_matches_type(ACL, acl, path=["response"]) @@ -776,7 +776,7 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) "subnets": ["192.0.2.1"], }, name="PIN Pad - Cash Register", - protocols=["tcp"], + protocols=[{}], unidirectional=True, ) assert_matches_type(ACL, acl, path=["response"]) diff --git a/tests/api_resources/magic_transit/test_cf_interconnects.py b/tests/api_resources/magic_transit/test_cf_interconnects.py index 625b31ae55a..9c9c8b0c8a3 100644 --- a/tests/api_resources/magic_transit/test_cf_interconnects.py +++ b/tests/api_resources/magic_transit/test_cf_interconnects.py @@ -41,9 +41,9 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: gre={"cloudflare_endpoint": "203.0.113.1"}, health_check={ "enabled": True, - "rate": "low", + "rate": {}, "target": {"saved": "203.0.113.1"}, - "type": "reply", + "type": {}, }, interface_address="192.0.2.0/31", mtu=0, @@ -276,9 +276,9 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare gre={"cloudflare_endpoint": "203.0.113.1"}, health_check={ "enabled": True, - "rate": "low", + "rate": {}, "target": {"saved": "203.0.113.1"}, - "type": "reply", + "type": {}, }, interface_address="192.0.2.0/31", mtu=0, diff --git a/tests/api_resources/magic_transit/test_gre_tunnels.py b/tests/api_resources/magic_transit/test_gre_tunnels.py index a596d06ab27..6480fab7e0c 100644 --- a/tests/api_resources/magic_transit/test_gre_tunnels.py +++ b/tests/api_resources/magic_transit/test_gre_tunnels.py @@ -107,9 +107,9 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: health_check={ "direction": "unidirectional", "enabled": True, - "rate": "low", + "rate": {}, "target": {"saved": "203.0.113.1"}, - "type": "reply", + "type": {}, }, mtu=0, ttl=0, @@ -479,9 +479,9 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare health_check={ "direction": "unidirectional", "enabled": True, - "rate": "low", + "rate": {}, "target": {"saved": "203.0.113.1"}, - "type": "reply", + "type": {}, }, mtu=0, ttl=0, diff --git a/tests/api_resources/magic_transit/test_ipsec_tunnels.py b/tests/api_resources/magic_transit/test_ipsec_tunnels.py index 0ceb238e920..d308822a124 100644 --- a/tests/api_resources/magic_transit/test_ipsec_tunnels.py +++ b/tests/api_resources/magic_transit/test_ipsec_tunnels.py @@ -47,9 +47,9 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: health_check={ "direction": "unidirectional", "enabled": True, - "rate": "low", + "rate": {}, "target": {"saved": "203.0.113.1"}, - "type": "reply", + "type": {}, }, psk="O3bwKSjnaoCxDoUxjcq4Rk8ZKkezQUiy", replay_protection=False, @@ -123,9 +123,9 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: health_check={ "direction": "unidirectional", "enabled": True, - "rate": "low", + "rate": {}, "target": {"saved": "203.0.113.1"}, - "type": "reply", + "type": {}, }, psk="O3bwKSjnaoCxDoUxjcq4Rk8ZKkezQUiy", replay_protection=False, @@ -483,9 +483,9 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare health_check={ "direction": "unidirectional", "enabled": True, - "rate": "low", + "rate": {}, "target": {"saved": "203.0.113.1"}, - "type": "reply", + "type": {}, }, psk="O3bwKSjnaoCxDoUxjcq4Rk8ZKkezQUiy", replay_protection=False, @@ -559,9 +559,9 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare health_check={ "direction": "unidirectional", "enabled": True, - "rate": "low", + "rate": {}, "target": {"saved": "203.0.113.1"}, - "type": "reply", + "type": {}, }, psk="O3bwKSjnaoCxDoUxjcq4Rk8ZKkezQUiy", replay_protection=False, diff --git a/tests/api_resources/r2/buckets/test_sippy.py b/tests/api_resources/r2/buckets/test_sippy.py index 6e67aca418d..8aeff128a35 100644 --- a/tests/api_resources/r2/buckets/test_sippy.py +++ b/tests/api_resources/r2/buckets/test_sippy.py @@ -34,7 +34,7 @@ def test_method_update_with_all_params_overload_1(self, client: Cloudflare) -> N account_id="023e105f4ecef8ad9ca31a8372d0c353", destination={ "access_key_id": "accessKeyId", - "provider": "r2", + "provider": {}, "secret_access_key": "secretAccessKey", }, source={ @@ -108,7 +108,7 @@ def test_method_update_with_all_params_overload_2(self, client: Cloudflare) -> N account_id="023e105f4ecef8ad9ca31a8372d0c353", destination={ "access_key_id": "accessKeyId", - "provider": "r2", + "provider": {}, "secret_access_key": "secretAccessKey", }, source={ @@ -309,7 +309,7 @@ async def test_method_update_with_all_params_overload_1(self, async_client: Asyn account_id="023e105f4ecef8ad9ca31a8372d0c353", destination={ "access_key_id": "accessKeyId", - "provider": "r2", + "provider": {}, "secret_access_key": "secretAccessKey", }, source={ @@ -383,7 +383,7 @@ async def test_method_update_with_all_params_overload_2(self, async_client: Asyn account_id="023e105f4ecef8ad9ca31a8372d0c353", destination={ "access_key_id": "accessKeyId", - "provider": "r2", + "provider": {}, "secret_access_key": "secretAccessKey", }, source={ diff --git a/tests/api_resources/rulesets/test_phases.py b/tests/api_resources/rulesets/test_phases.py index cc3f3d4d9a9..b1813463236 100644 --- a/tests/api_resources/rulesets/test_phases.py +++ b/tests/api_resources/rulesets/test_phases.py @@ -52,7 +52,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, "expression": "ip.src ne 1.1.1.1", - "logging": {"enabled": True}, + "logging": {}, "ratelimit": { "characteristics": ["ip.src"], "period": 10, @@ -212,7 +212,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, "expression": "ip.src ne 1.1.1.1", - "logging": {"enabled": True}, + "logging": {}, "ratelimit": { "characteristics": ["ip.src"], "period": 10, diff --git a/tests/api_resources/rulesets/test_rules.py b/tests/api_resources/rulesets/test_rules.py index 5a1acdb5ea9..1b173266779 100644 --- a/tests/api_resources/rulesets/test_rules.py +++ b/tests/api_resources/rulesets/test_rules.py @@ -52,7 +52,7 @@ def test_method_create_with_all_params_overload_1(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -142,7 +142,7 @@ def test_method_create_with_all_params_overload_2(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -232,7 +232,7 @@ def test_method_create_with_all_params_overload_3(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -347,7 +347,7 @@ def test_method_create_with_all_params_overload_4(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -437,7 +437,7 @@ def test_method_create_with_all_params_overload_5(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -527,7 +527,7 @@ def test_method_create_with_all_params_overload_6(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -617,7 +617,7 @@ def test_method_create_with_all_params_overload_7(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -717,7 +717,7 @@ def test_method_create_with_all_params_overload_8(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -818,7 +818,7 @@ def test_method_create_with_all_params_overload_9(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -915,7 +915,7 @@ def test_method_create_with_all_params_overload_10(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1005,7 +1005,7 @@ def test_method_create_with_all_params_overload_11(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1099,7 +1099,7 @@ def test_method_create_with_all_params_overload_12(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1211,7 +1211,7 @@ def test_method_create_with_all_params_overload_13(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1307,7 +1307,7 @@ def test_method_create_with_all_params_overload_14(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1451,7 +1451,7 @@ def test_method_create_with_all_params_overload_15(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1557,7 +1557,7 @@ def test_method_create_with_all_params_overload_16(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1647,7 +1647,7 @@ def test_method_create_with_all_params_overload_17(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1737,7 +1737,7 @@ def test_method_create_with_all_params_overload_18(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1916,7 +1916,7 @@ def test_method_edit_with_all_params_overload_1(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2020,7 +2020,7 @@ def test_method_edit_with_all_params_overload_2(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2124,7 +2124,7 @@ def test_method_edit_with_all_params_overload_3(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2253,7 +2253,7 @@ def test_method_edit_with_all_params_overload_4(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2357,7 +2357,7 @@ def test_method_edit_with_all_params_overload_5(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2461,7 +2461,7 @@ def test_method_edit_with_all_params_overload_6(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2565,7 +2565,7 @@ def test_method_edit_with_all_params_overload_7(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2679,7 +2679,7 @@ def test_method_edit_with_all_params_overload_8(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2794,7 +2794,7 @@ def test_method_edit_with_all_params_overload_9(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2905,7 +2905,7 @@ def test_method_edit_with_all_params_overload_10(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3009,7 +3009,7 @@ def test_method_edit_with_all_params_overload_11(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3117,7 +3117,7 @@ def test_method_edit_with_all_params_overload_12(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3243,7 +3243,7 @@ def test_method_edit_with_all_params_overload_13(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3353,7 +3353,7 @@ def test_method_edit_with_all_params_overload_14(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3511,7 +3511,7 @@ def test_method_edit_with_all_params_overload_15(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3631,7 +3631,7 @@ def test_method_edit_with_all_params_overload_16(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3735,7 +3735,7 @@ def test_method_edit_with_all_params_overload_17(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3839,7 +3839,7 @@ def test_method_edit_with_all_params_overload_18(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3951,7 +3951,7 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4041,7 +4041,7 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4131,7 +4131,7 @@ async def test_method_create_with_all_params_overload_3(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4246,7 +4246,7 @@ async def test_method_create_with_all_params_overload_4(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4336,7 +4336,7 @@ async def test_method_create_with_all_params_overload_5(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4426,7 +4426,7 @@ async def test_method_create_with_all_params_overload_6(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4516,7 +4516,7 @@ async def test_method_create_with_all_params_overload_7(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4616,7 +4616,7 @@ async def test_method_create_with_all_params_overload_8(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4717,7 +4717,7 @@ async def test_method_create_with_all_params_overload_9(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4814,7 +4814,7 @@ async def test_method_create_with_all_params_overload_10(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4904,7 +4904,7 @@ async def test_method_create_with_all_params_overload_11(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4998,7 +4998,7 @@ async def test_method_create_with_all_params_overload_12(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5110,7 +5110,7 @@ async def test_method_create_with_all_params_overload_13(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5206,7 +5206,7 @@ async def test_method_create_with_all_params_overload_14(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5350,7 +5350,7 @@ async def test_method_create_with_all_params_overload_15(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5456,7 +5456,7 @@ async def test_method_create_with_all_params_overload_16(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5546,7 +5546,7 @@ async def test_method_create_with_all_params_overload_17(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5636,7 +5636,7 @@ async def test_method_create_with_all_params_overload_18(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5815,7 +5815,7 @@ async def test_method_edit_with_all_params_overload_1(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5919,7 +5919,7 @@ async def test_method_edit_with_all_params_overload_2(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6023,7 +6023,7 @@ async def test_method_edit_with_all_params_overload_3(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6152,7 +6152,7 @@ async def test_method_edit_with_all_params_overload_4(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6256,7 +6256,7 @@ async def test_method_edit_with_all_params_overload_5(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6360,7 +6360,7 @@ async def test_method_edit_with_all_params_overload_6(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6464,7 +6464,7 @@ async def test_method_edit_with_all_params_overload_7(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6578,7 +6578,7 @@ async def test_method_edit_with_all_params_overload_8(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6693,7 +6693,7 @@ async def test_method_edit_with_all_params_overload_9(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6804,7 +6804,7 @@ async def test_method_edit_with_all_params_overload_10(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6908,7 +6908,7 @@ async def test_method_edit_with_all_params_overload_11(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7016,7 +7016,7 @@ async def test_method_edit_with_all_params_overload_12(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7142,7 +7142,7 @@ async def test_method_edit_with_all_params_overload_13(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7252,7 +7252,7 @@ async def test_method_edit_with_all_params_overload_14(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7410,7 +7410,7 @@ async def test_method_edit_with_all_params_overload_15(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7530,7 +7530,7 @@ async def test_method_edit_with_all_params_overload_16(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7634,7 +7634,7 @@ async def test_method_edit_with_all_params_overload_17(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7738,7 +7738,7 @@ async def test_method_edit_with_all_params_overload_18(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={"enabled": True}, + logging={}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], diff --git a/tests/api_resources/ssl/test_analyze.py b/tests/api_resources/ssl/test_analyze.py index 3a1e6c43744..8e38037b1ad 100644 --- a/tests/api_resources/ssl/test_analyze.py +++ b/tests/api_resources/ssl/test_analyze.py @@ -27,7 +27,7 @@ def test_method_create(self, client: Cloudflare) -> None: def test_method_create_with_all_params(self, client: Cloudflare) -> None: analyze = client.ssl.analyze.create( zone_id="023e105f4ecef8ad9ca31a8372d0c353", - bundle_method="ubiquitous", + bundle_method={}, certificate="-----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", ) assert_matches_type(object, analyze, path=["response"]) @@ -78,7 +78,7 @@ async def test_method_create(self, async_client: AsyncCloudflare) -> None: async def test_method_create_with_all_params(self, async_client: AsyncCloudflare) -> None: analyze = await async_client.ssl.analyze.create( zone_id="023e105f4ecef8ad9ca31a8372d0c353", - bundle_method="ubiquitous", + bundle_method={}, certificate="-----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", ) assert_matches_type(object, analyze, path=["response"]) diff --git a/tests/api_resources/test_custom_certificates.py b/tests/api_resources/test_custom_certificates.py index a46b9f4e412..7f7a7396190 100644 --- a/tests/api_resources/test_custom_certificates.py +++ b/tests/api_resources/test_custom_certificates.py @@ -36,7 +36,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: zone_id="023e105f4ecef8ad9ca31a8372d0c353", certificate="-----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", private_key="-----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", - bundle_method="ubiquitous", + bundle_method={}, geo_restrictions={"label": "us"}, policy="(country: US) or (region: EU)", type="legacy_custom", @@ -190,7 +190,7 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: custom_certificate = client.custom_certificates.edit( custom_certificate_id="023e105f4ecef8ad9ca31a8372d0c353", zone_id="023e105f4ecef8ad9ca31a8372d0c353", - bundle_method="ubiquitous", + bundle_method={}, certificate="-----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", geo_restrictions={"label": "us"}, policy="(country: US) or (region: EU)", @@ -305,7 +305,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare zone_id="023e105f4ecef8ad9ca31a8372d0c353", certificate="-----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", private_key="-----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", - bundle_method="ubiquitous", + bundle_method={}, geo_restrictions={"label": "us"}, policy="(country: US) or (region: EU)", type="legacy_custom", @@ -459,7 +459,7 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) custom_certificate = await async_client.custom_certificates.edit( custom_certificate_id="023e105f4ecef8ad9ca31a8372d0c353", zone_id="023e105f4ecef8ad9ca31a8372d0c353", - bundle_method="ubiquitous", + bundle_method={}, certificate="-----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", geo_restrictions={"label": "us"}, policy="(country: US) or (region: EU)", diff --git a/tests/api_resources/test_custom_hostnames.py b/tests/api_resources/test_custom_hostnames.py index 04a6877e5f4..fd479a20b50 100644 --- a/tests/api_resources/test_custom_hostnames.py +++ b/tests/api_resources/test_custom_hostnames.py @@ -39,7 +39,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: zone_id="023e105f4ecef8ad9ca31a8372d0c353", hostname="app.example.com", ssl={ - "bundle_method": "ubiquitous", + "bundle_method": {}, "certificate_authority": "digicert", "cloudflare_branding": False, "custom_cert_bundle": [ @@ -50,7 +50,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: ], "custom_certificate": "-----BEGIN CERTIFICATE-----\\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\\n-----END CERTIFICATE-----\\n", "custom_key": "-----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", - "method": "http", + "method": {}, "settings": { "ciphers": ["ECDHE-RSA-AES128-GCM-SHA256", "AES128-SHA"], "early_hints": "on", @@ -58,7 +58,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: "min_tls_version": "1.0", "tls_1_3": "on", }, - "type": "dv", + "type": {}, "wildcard": False, }, custom_metadata={"foo": "string"}, @@ -221,7 +221,7 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: custom_origin_server="origin2.example.com", custom_origin_sni="sni.example.com", ssl={ - "bundle_method": "ubiquitous", + "bundle_method": {}, "certificate_authority": "digicert", "cloudflare_branding": False, "custom_cert_bundle": [ @@ -232,7 +232,7 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: ], "custom_certificate": "-----BEGIN CERTIFICATE-----\\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\\n-----END CERTIFICATE-----\\n", "custom_key": "-----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", - "method": "http", + "method": {}, "settings": { "ciphers": ["ECDHE-RSA-AES128-GCM-SHA256", "AES128-SHA"], "early_hints": "on", @@ -240,7 +240,7 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: "min_tls_version": "1.0", "tls_1_3": "on", }, - "type": "dv", + "type": {}, "wildcard": False, }, ) @@ -353,7 +353,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare zone_id="023e105f4ecef8ad9ca31a8372d0c353", hostname="app.example.com", ssl={ - "bundle_method": "ubiquitous", + "bundle_method": {}, "certificate_authority": "digicert", "cloudflare_branding": False, "custom_cert_bundle": [ @@ -364,7 +364,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare ], "custom_certificate": "-----BEGIN CERTIFICATE-----\\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\\n-----END CERTIFICATE-----\\n", "custom_key": "-----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", - "method": "http", + "method": {}, "settings": { "ciphers": ["ECDHE-RSA-AES128-GCM-SHA256", "AES128-SHA"], "early_hints": "on", @@ -372,7 +372,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare "min_tls_version": "1.0", "tls_1_3": "on", }, - "type": "dv", + "type": {}, "wildcard": False, }, custom_metadata={"foo": "string"}, @@ -535,7 +535,7 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) custom_origin_server="origin2.example.com", custom_origin_sni="sni.example.com", ssl={ - "bundle_method": "ubiquitous", + "bundle_method": {}, "certificate_authority": "digicert", "cloudflare_branding": False, "custom_cert_bundle": [ @@ -546,7 +546,7 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) ], "custom_certificate": "-----BEGIN CERTIFICATE-----\\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\\n-----END CERTIFICATE-----\\n", "custom_key": "-----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", - "method": "http", + "method": {}, "settings": { "ciphers": ["ECDHE-RSA-AES128-GCM-SHA256", "AES128-SHA"], "early_hints": "on", @@ -554,7 +554,7 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) "min_tls_version": "1.0", "tls_1_3": "on", }, - "type": "dv", + "type": {}, "wildcard": False, }, ) diff --git a/tests/api_resources/test_keyless_certificates.py b/tests/api_resources/test_keyless_certificates.py index 0dae2518fe2..55f2db18c66 100644 --- a/tests/api_resources/test_keyless_certificates.py +++ b/tests/api_resources/test_keyless_certificates.py @@ -38,7 +38,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: certificate="-----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-----", host="example.com", port=24008, - bundle_method="ubiquitous", + bundle_method={}, name="example.com Keyless SSL", tunnel={ "private_ip": "10.0.0.1", @@ -312,7 +312,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare certificate="-----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-----", host="example.com", port=24008, - bundle_method="ubiquitous", + bundle_method={}, name="example.com Keyless SSL", tunnel={ "private_ip": "10.0.0.1", diff --git a/tests/api_resources/test_origin_post_quantum_encryption.py b/tests/api_resources/test_origin_post_quantum_encryption.py index 5be62d7556c..bfe684e3849 100644 --- a/tests/api_resources/test_origin_post_quantum_encryption.py +++ b/tests/api_resources/test_origin_post_quantum_encryption.py @@ -3,16 +3,12 @@ from __future__ import annotations import os -from typing import Any, Optional, cast +from typing import Any, cast import pytest from cloudflare import Cloudflare, AsyncCloudflare from tests.utils import assert_matches_type -from cloudflare.types.origin_post_quantum_encryption import ( - OriginPostQuantumEncryptionGetResponse, - OriginPostQuantumEncryptionUpdateResponse, -) base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -27,9 +23,7 @@ def test_method_update(self, client: Cloudflare) -> None: zone_id="023e105f4ecef8ad9ca31a8372d0c353", value="preferred", ) - assert_matches_type( - Optional[OriginPostQuantumEncryptionUpdateResponse], origin_post_quantum_encryption, path=["response"] - ) + assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -42,9 +36,7 @@ def test_raw_response_update(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = response.parse() - assert_matches_type( - Optional[OriginPostQuantumEncryptionUpdateResponse], origin_post_quantum_encryption, path=["response"] - ) + assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -57,9 +49,7 @@ def test_streaming_response_update(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = response.parse() - assert_matches_type( - Optional[OriginPostQuantumEncryptionUpdateResponse], origin_post_quantum_encryption, path=["response"] - ) + assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) assert cast(Any, response.is_closed) is True @@ -78,9 +68,7 @@ def test_method_get(self, client: Cloudflare) -> None: origin_post_quantum_encryption = client.origin_post_quantum_encryption.get( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type( - Optional[OriginPostQuantumEncryptionGetResponse], origin_post_quantum_encryption, path=["response"] - ) + assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -92,9 +80,7 @@ def test_raw_response_get(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = response.parse() - assert_matches_type( - Optional[OriginPostQuantumEncryptionGetResponse], origin_post_quantum_encryption, path=["response"] - ) + assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -106,9 +92,7 @@ def test_streaming_response_get(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = response.parse() - assert_matches_type( - Optional[OriginPostQuantumEncryptionGetResponse], origin_post_quantum_encryption, path=["response"] - ) + assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) assert cast(Any, response.is_closed) is True @@ -131,9 +115,7 @@ async def test_method_update(self, async_client: AsyncCloudflare) -> None: zone_id="023e105f4ecef8ad9ca31a8372d0c353", value="preferred", ) - assert_matches_type( - Optional[OriginPostQuantumEncryptionUpdateResponse], origin_post_quantum_encryption, path=["response"] - ) + assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -146,9 +128,7 @@ async def test_raw_response_update(self, async_client: AsyncCloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = await response.parse() - assert_matches_type( - Optional[OriginPostQuantumEncryptionUpdateResponse], origin_post_quantum_encryption, path=["response"] - ) + assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -161,9 +141,7 @@ async def test_streaming_response_update(self, async_client: AsyncCloudflare) -> assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = await response.parse() - assert_matches_type( - Optional[OriginPostQuantumEncryptionUpdateResponse], origin_post_quantum_encryption, path=["response"] - ) + assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) assert cast(Any, response.is_closed) is True @@ -182,9 +160,7 @@ async def test_method_get(self, async_client: AsyncCloudflare) -> None: origin_post_quantum_encryption = await async_client.origin_post_quantum_encryption.get( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type( - Optional[OriginPostQuantumEncryptionGetResponse], origin_post_quantum_encryption, path=["response"] - ) + assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -196,9 +172,7 @@ async def test_raw_response_get(self, async_client: AsyncCloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = await response.parse() - assert_matches_type( - Optional[OriginPostQuantumEncryptionGetResponse], origin_post_quantum_encryption, path=["response"] - ) + assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -210,9 +184,7 @@ async def test_streaming_response_get(self, async_client: AsyncCloudflare) -> No assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = await response.parse() - assert_matches_type( - Optional[OriginPostQuantumEncryptionGetResponse], origin_post_quantum_encryption, path=["response"] - ) + assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) assert cast(Any, response.is_closed) is True diff --git a/tests/api_resources/test_rulesets.py b/tests/api_resources/test_rulesets.py index e6d105de5c9..c38998ae6f8 100644 --- a/tests/api_resources/test_rulesets.py +++ b/tests/api_resources/test_rulesets.py @@ -61,7 +61,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, "expression": "ip.src ne 1.1.1.1", - "logging": {"enabled": True}, + "logging": {}, "ratelimit": { "characteristics": ["ip.src"], "period": 10, @@ -166,7 +166,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, "expression": "ip.src ne 1.1.1.1", - "logging": {"enabled": True}, + "logging": {}, "ratelimit": { "characteristics": ["ip.src"], "period": 10, @@ -465,7 +465,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, "expression": "ip.src ne 1.1.1.1", - "logging": {"enabled": True}, + "logging": {}, "ratelimit": { "characteristics": ["ip.src"], "period": 10, @@ -570,7 +570,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, "expression": "ip.src ne 1.1.1.1", - "logging": {"enabled": True}, + "logging": {}, "ratelimit": { "characteristics": ["ip.src"], "period": 10, diff --git a/tests/api_resources/workers/scripts/test_content.py b/tests/api_resources/workers/scripts/test_content.py index 9f7629d9227..6188600c698 100644 --- a/tests/api_resources/workers/scripts/test_content.py +++ b/tests/api_resources/workers/scripts/test_content.py @@ -41,10 +41,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: content = client.workers.scripts.content.update( script_name="this-is_my_script-01", account_id="023e105f4ecef8ad9ca31a8372d0c353", - metadata={ - "body_part": "worker.js", - "main_module": "worker.js", - }, + metadata={}, cf_worker_body_part="CF-WORKER-BODY-PART", cf_worker_main_module_part="CF-WORKER-MAIN-MODULE-PART", ) @@ -183,10 +180,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare content = await async_client.workers.scripts.content.update( script_name="this-is_my_script-01", account_id="023e105f4ecef8ad9ca31a8372d0c353", - metadata={ - "body_part": "worker.js", - "main_module": "worker.js", - }, + metadata={}, cf_worker_body_part="CF-WORKER-BODY-PART", cf_worker_main_module_part="CF-WORKER-MAIN-MODULE-PART", ) diff --git a/tests/api_resources/workers/scripts/test_deployments.py b/tests/api_resources/workers/scripts/test_deployments.py index 45203082efa..41d2acd9aa9 100644 --- a/tests/api_resources/workers/scripts/test_deployments.py +++ b/tests/api_resources/workers/scripts/test_deployments.py @@ -9,10 +9,7 @@ from cloudflare import Cloudflare, AsyncCloudflare from tests.utils import assert_matches_type -from cloudflare.types.workers.scripts import ( - DeploymentGetResponse, - DeploymentCreateResponse, -) +from cloudflare.types.workers.scripts import DeploymentGetResponse, DeploymentCreateResponse base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -48,7 +45,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: } ], force=True, - annotations={"workers_message": "Deploy bug fix."}, + annotations={}, ) assert_matches_type(Optional[DeploymentCreateResponse], deployment, path=["response"]) @@ -200,7 +197,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare } ], force=True, - annotations={"workers_message": "Deploy bug fix."}, + annotations={}, ) assert_matches_type(Optional[DeploymentCreateResponse], deployment, path=["response"]) diff --git a/tests/api_resources/workers_for_platforms/dispatch/namespaces/scripts/test_content.py b/tests/api_resources/workers_for_platforms/dispatch/namespaces/scripts/test_content.py index fb5fb964885..c5ebe011840 100644 --- a/tests/api_resources/workers_for_platforms/dispatch/namespaces/scripts/test_content.py +++ b/tests/api_resources/workers_for_platforms/dispatch/namespaces/scripts/test_content.py @@ -43,10 +43,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: script_name="this-is_my_script-01", account_id="023e105f4ecef8ad9ca31a8372d0c353", dispatch_namespace="my-dispatch-namespace", - metadata={ - "body_part": "worker.js", - "main_module": "worker.js", - }, + metadata={}, cf_worker_body_part="CF-WORKER-BODY-PART", cf_worker_main_module_part="CF-WORKER-MAIN-MODULE-PART", ) @@ -211,10 +208,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare script_name="this-is_my_script-01", account_id="023e105f4ecef8ad9ca31a8372d0c353", dispatch_namespace="my-dispatch-namespace", - metadata={ - "body_part": "worker.js", - "main_module": "worker.js", - }, + metadata={}, cf_worker_body_part="CF-WORKER-BODY-PART", cf_worker_main_module_part="CF-WORKER-MAIN-MODULE-PART", ) diff --git a/tests/api_resources/zaraz/test_config.py b/tests/api_resources/zaraz/test_config.py index 15a39c60cac..510848d1158 100644 --- a/tests/api_resources/zaraz/test_config.py +++ b/tests/api_resources/zaraz/test_config.py @@ -103,23 +103,9 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: "permissions": ["string"], "settings": {"foo": "string"}, "type": "component", - "actions": { - "foo": { - "action_type": "actionType", - "blocking_triggers": ["string"], - "data": {}, - "firing_triggers": ["string"], - } - }, + "actions": {}, "default_purpose": "defaultPurpose", - "neo_events": [ - { - "action_type": "actionType", - "blocking_triggers": ["string"], - "data": {}, - "firing_triggers": ["string"], - } - ], + "neo_events": [{}], "vendor_name": "vendorName", "vendor_policy_url": "vendorPolicyUrl", } @@ -162,11 +148,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: }, consent={ "enabled": True, - "button_text_translations": { - "accept_all": {"foo": "string"}, - "confirm_my_choices": {"foo": "string"}, - "reject_all": {"foo": "string"}, - }, + "button_text_translations": {}, "company_email": "companyEmail", "company_name": "companyName", "company_street_address": "companyStreetAddress", @@ -487,23 +469,9 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare "permissions": ["string"], "settings": {"foo": "string"}, "type": "component", - "actions": { - "foo": { - "action_type": "actionType", - "blocking_triggers": ["string"], - "data": {}, - "firing_triggers": ["string"], - } - }, + "actions": {}, "default_purpose": "defaultPurpose", - "neo_events": [ - { - "action_type": "actionType", - "blocking_triggers": ["string"], - "data": {}, - "firing_triggers": ["string"], - } - ], + "neo_events": [{}], "vendor_name": "vendorName", "vendor_policy_url": "vendorPolicyUrl", } @@ -546,11 +514,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare }, consent={ "enabled": True, - "button_text_translations": { - "accept_all": {"foo": "string"}, - "confirm_my_choices": {"foo": "string"}, - "reject_all": {"foo": "string"}, - }, + "button_text_translations": {}, "company_email": "companyEmail", "company_name": "companyName", "company_street_address": "companyStreetAddress", diff --git a/tests/api_resources/zero_trust/access/test_applications.py b/tests/api_resources/zero_trust/access/test_applications.py index 7f6ea79f332..11d8fbb7c9b 100644 --- a/tests/api_resources/zero_trust/access/test_applications.py +++ b/tests/api_resources/zero_trust/access/test_applications.py @@ -233,7 +233,7 @@ def test_method_create_with_all_params_overload_2(self, client: Cloudflare) -> N ], "default_relay_state": "https://example.com", "idp_entity_id": "https://example.cloudflareaccess.com", - "name_id_format": "id", + "name_id_format": {}, "name_id_transform_jsonata": "$substringBefore(email, '@') & '+sandbox@' & $substringAfter(email, '@')", "public_key": "example unique name", "saml_attribute_transform_jsonata": "$ ~>| groups | {'group_name': name} |", @@ -1603,7 +1603,7 @@ def test_method_update_with_all_params_overload_2(self, client: Cloudflare) -> N ], "default_relay_state": "https://example.com", "idp_entity_id": "https://example.cloudflareaccess.com", - "name_id_format": "id", + "name_id_format": {}, "name_id_transform_jsonata": "$substringBefore(email, '@') & '+sandbox@' & $substringAfter(email, '@')", "public_key": "example unique name", "saml_attribute_transform_jsonata": "$ ~>| groups | {'group_name': name} |", @@ -3351,7 +3351,7 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn ], "default_relay_state": "https://example.com", "idp_entity_id": "https://example.cloudflareaccess.com", - "name_id_format": "id", + "name_id_format": {}, "name_id_transform_jsonata": "$substringBefore(email, '@') & '+sandbox@' & $substringAfter(email, '@')", "public_key": "example unique name", "saml_attribute_transform_jsonata": "$ ~>| groups | {'group_name': name} |", @@ -4721,7 +4721,7 @@ async def test_method_update_with_all_params_overload_2(self, async_client: Asyn ], "default_relay_state": "https://example.com", "idp_entity_id": "https://example.cloudflareaccess.com", - "name_id_format": "id", + "name_id_format": {}, "name_id_transform_jsonata": "$substringBefore(email, '@') & '+sandbox@' & $substringAfter(email, '@')", "public_key": "example unique name", "saml_attribute_transform_jsonata": "$ ~>| groups | {'group_name': name} |", diff --git a/tests/api_resources/zero_trust/devices/test_posture.py b/tests/api_resources/zero_trust/devices/test_posture.py index dfd84e15205..0a3d257eeef 100644 --- a/tests/api_resources/zero_trust/devices/test_posture.py +++ b/tests/api_resources/zero_trust/devices/test_posture.py @@ -39,7 +39,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: description="The rule for admin serial numbers", expiration="1h", input={ - "operating_system": "windows", + "operating_system": {}, "path": "/bin/cat", "exists": True, "sha256": "https://api.us-2.crowdstrike.com", @@ -107,7 +107,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: description="The rule for admin serial numbers", expiration="1h", input={ - "operating_system": "windows", + "operating_system": {}, "path": "/bin/cat", "exists": True, "sha256": "https://api.us-2.crowdstrike.com", @@ -322,7 +322,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare description="The rule for admin serial numbers", expiration="1h", input={ - "operating_system": "windows", + "operating_system": {}, "path": "/bin/cat", "exists": True, "sha256": "https://api.us-2.crowdstrike.com", @@ -390,7 +390,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare description="The rule for admin serial numbers", expiration="1h", input={ - "operating_system": "windows", + "operating_system": {}, "path": "/bin/cat", "exists": True, "sha256": "https://api.us-2.crowdstrike.com", diff --git a/tests/api_resources/zero_trust/gateway/test_configurations.py b/tests/api_resources/zero_trust/gateway/test_configurations.py index 20db0e2f65a..ed1067a6058 100644 --- a/tests/api_resources/zero_trust/gateway/test_configurations.py +++ b/tests/api_resources/zero_trust/gateway/test_configurations.py @@ -32,51 +32,7 @@ def test_method_update(self, client: Cloudflare) -> None: def test_method_update_with_all_params(self, client: Cloudflare) -> None: configuration = client.zero_trust.gateway.configurations.update( account_id="699d98642c564d2e855e9661899b7252", - settings={ - "activity_log": {"enabled": True}, - "antivirus": { - "enabled_download_phase": False, - "enabled_upload_phase": False, - "fail_closed": False, - "notification_settings": { - "enabled": True, - "msg": "msg", - "support_url": "support_url", - }, - }, - "block_page": { - "background_color": "background_color", - "enabled": True, - "footer_text": "--footer--", - "header_text": "--header--", - "include_context": True, - "logo_path": "https://logos.com/a.png", - "mailto_address": "admin@example.com", - "mailto_subject": "Blocked User Inquiry", - "mode": "customized_block_page", - "name": "Cloudflare", - "suppress_footer": False, - "target_uri": "https://example.com", - }, - "body_scanning": {"inspection_mode": "deep"}, - "browser_isolation": { - "non_identity_enabled": True, - "url_browser_isolation_enabled": True, - }, - "certificate": {"id": "d1b364c5-1311-466e-a194-f0e943e0799f"}, - "custom_certificate": { - "enabled": True, - "id": "d1b364c5-1311-466e-a194-f0e943e0799f", - }, - "extended_email_matching": {"enabled": True}, - "fips": {"tls": True}, - "protocol_detection": {"enabled": True}, - "sandbox": { - "enabled": True, - "fallback_action": "allow", - }, - "tls_decrypt": {"enabled": True}, - }, + settings={}, ) assert_matches_type(Optional[ConfigurationUpdateResponse], configuration, path=["response"]) @@ -122,51 +78,7 @@ def test_method_edit(self, client: Cloudflare) -> None: def test_method_edit_with_all_params(self, client: Cloudflare) -> None: configuration = client.zero_trust.gateway.configurations.edit( account_id="699d98642c564d2e855e9661899b7252", - settings={ - "activity_log": {"enabled": True}, - "antivirus": { - "enabled_download_phase": False, - "enabled_upload_phase": False, - "fail_closed": False, - "notification_settings": { - "enabled": True, - "msg": "msg", - "support_url": "support_url", - }, - }, - "block_page": { - "background_color": "background_color", - "enabled": True, - "footer_text": "--footer--", - "header_text": "--header--", - "include_context": True, - "logo_path": "https://logos.com/a.png", - "mailto_address": "admin@example.com", - "mailto_subject": "Blocked User Inquiry", - "mode": "customized_block_page", - "name": "Cloudflare", - "suppress_footer": False, - "target_uri": "https://example.com", - }, - "body_scanning": {"inspection_mode": "deep"}, - "browser_isolation": { - "non_identity_enabled": True, - "url_browser_isolation_enabled": True, - }, - "certificate": {"id": "d1b364c5-1311-466e-a194-f0e943e0799f"}, - "custom_certificate": { - "enabled": True, - "id": "d1b364c5-1311-466e-a194-f0e943e0799f", - }, - "extended_email_matching": {"enabled": True}, - "fips": {"tls": True}, - "protocol_detection": {"enabled": True}, - "sandbox": { - "enabled": True, - "fallback_action": "allow", - }, - "tls_decrypt": {"enabled": True}, - }, + settings={}, ) assert_matches_type(Optional[ConfigurationEditResponse], configuration, path=["response"]) @@ -254,51 +166,7 @@ async def test_method_update(self, async_client: AsyncCloudflare) -> None: async def test_method_update_with_all_params(self, async_client: AsyncCloudflare) -> None: configuration = await async_client.zero_trust.gateway.configurations.update( account_id="699d98642c564d2e855e9661899b7252", - settings={ - "activity_log": {"enabled": True}, - "antivirus": { - "enabled_download_phase": False, - "enabled_upload_phase": False, - "fail_closed": False, - "notification_settings": { - "enabled": True, - "msg": "msg", - "support_url": "support_url", - }, - }, - "block_page": { - "background_color": "background_color", - "enabled": True, - "footer_text": "--footer--", - "header_text": "--header--", - "include_context": True, - "logo_path": "https://logos.com/a.png", - "mailto_address": "admin@example.com", - "mailto_subject": "Blocked User Inquiry", - "mode": "customized_block_page", - "name": "Cloudflare", - "suppress_footer": False, - "target_uri": "https://example.com", - }, - "body_scanning": {"inspection_mode": "deep"}, - "browser_isolation": { - "non_identity_enabled": True, - "url_browser_isolation_enabled": True, - }, - "certificate": {"id": "d1b364c5-1311-466e-a194-f0e943e0799f"}, - "custom_certificate": { - "enabled": True, - "id": "d1b364c5-1311-466e-a194-f0e943e0799f", - }, - "extended_email_matching": {"enabled": True}, - "fips": {"tls": True}, - "protocol_detection": {"enabled": True}, - "sandbox": { - "enabled": True, - "fallback_action": "allow", - }, - "tls_decrypt": {"enabled": True}, - }, + settings={}, ) assert_matches_type(Optional[ConfigurationUpdateResponse], configuration, path=["response"]) @@ -344,51 +212,7 @@ async def test_method_edit(self, async_client: AsyncCloudflare) -> None: async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) -> None: configuration = await async_client.zero_trust.gateway.configurations.edit( account_id="699d98642c564d2e855e9661899b7252", - settings={ - "activity_log": {"enabled": True}, - "antivirus": { - "enabled_download_phase": False, - "enabled_upload_phase": False, - "fail_closed": False, - "notification_settings": { - "enabled": True, - "msg": "msg", - "support_url": "support_url", - }, - }, - "block_page": { - "background_color": "background_color", - "enabled": True, - "footer_text": "--footer--", - "header_text": "--header--", - "include_context": True, - "logo_path": "https://logos.com/a.png", - "mailto_address": "admin@example.com", - "mailto_subject": "Blocked User Inquiry", - "mode": "customized_block_page", - "name": "Cloudflare", - "suppress_footer": False, - "target_uri": "https://example.com", - }, - "body_scanning": {"inspection_mode": "deep"}, - "browser_isolation": { - "non_identity_enabled": True, - "url_browser_isolation_enabled": True, - }, - "certificate": {"id": "d1b364c5-1311-466e-a194-f0e943e0799f"}, - "custom_certificate": { - "enabled": True, - "id": "d1b364c5-1311-466e-a194-f0e943e0799f", - }, - "extended_email_matching": {"enabled": True}, - "fips": {"tls": True}, - "protocol_detection": {"enabled": True}, - "sandbox": { - "enabled": True, - "fallback_action": "allow", - }, - "tls_decrypt": {"enabled": True}, - }, + settings={}, ) assert_matches_type(Optional[ConfigurationEditResponse], configuration, path=["response"]) diff --git a/tests/api_resources/zero_trust/gateway/test_logging.py b/tests/api_resources/zero_trust/gateway/test_logging.py index a157696ec07..2153e100e15 100644 --- a/tests/api_resources/zero_trust/gateway/test_logging.py +++ b/tests/api_resources/zero_trust/gateway/test_logging.py @@ -29,11 +29,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: logging = client.zero_trust.gateway.logging.update( account_id="699d98642c564d2e855e9661899b7252", redact_pii=True, - settings_by_rule_type={ - "dns": {}, - "http": {}, - "l4": {}, - }, + settings_by_rule_type={}, ) assert_matches_type(Optional[LoggingSetting], logging, path=["response"]) @@ -122,11 +118,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare logging = await async_client.zero_trust.gateway.logging.update( account_id="699d98642c564d2e855e9661899b7252", redact_pii=True, - settings_by_rule_type={ - "dns": {}, - "http": {}, - "l4": {}, - }, + settings_by_rule_type={}, ) assert_matches_type(Optional[LoggingSetting], logging, path=["response"]) diff --git a/tests/api_resources/zero_trust/test_identity_providers.py b/tests/api_resources/zero_trust/test_identity_providers.py index fc69af496c7..eccd3d83ba2 100644 --- a/tests/api_resources/zero_trust/test_identity_providers.py +++ b/tests/api_resources/zero_trust/test_identity_providers.py @@ -28,7 +28,7 @@ def test_method_create_overload_1(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -48,14 +48,9 @@ def test_method_create_with_all_params_overload_1(self, client: Cloudflare) -> N "support_groups": True, }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -65,7 +60,7 @@ def test_raw_response_create_overload_1(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -80,7 +75,7 @@ def test_streaming_response_create_overload_1(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -98,7 +93,7 @@ def test_path_params_create_overload_1(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -106,7 +101,7 @@ def test_path_params_create_overload_1(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -116,7 +111,7 @@ def test_method_create_overload_2(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -134,14 +129,9 @@ def test_method_create_with_all_params_overload_2(self, client: Cloudflare) -> N "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -151,7 +141,7 @@ def test_raw_response_create_overload_2(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -166,7 +156,7 @@ def test_streaming_response_create_overload_2(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -184,7 +174,7 @@ def test_path_params_create_overload_2(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -192,7 +182,7 @@ def test_path_params_create_overload_2(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -202,7 +192,7 @@ def test_method_create_overload_3(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -216,14 +206,9 @@ def test_method_create_with_all_params_overload_3(self, client: Cloudflare) -> N "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -233,7 +218,7 @@ def test_raw_response_create_overload_3(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -248,7 +233,7 @@ def test_streaming_response_create_overload_3(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -266,7 +251,7 @@ def test_path_params_create_overload_3(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -274,7 +259,7 @@ def test_path_params_create_overload_3(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -284,7 +269,7 @@ def test_method_create_overload_4(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -298,14 +283,9 @@ def test_method_create_with_all_params_overload_4(self, client: Cloudflare) -> N "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -315,7 +295,7 @@ def test_raw_response_create_overload_4(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -330,7 +310,7 @@ def test_streaming_response_create_overload_4(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -348,7 +328,7 @@ def test_path_params_create_overload_4(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -356,7 +336,7 @@ def test_path_params_create_overload_4(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -366,7 +346,7 @@ def test_method_create_overload_5(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -382,14 +362,9 @@ def test_method_create_with_all_params_overload_5(self, client: Cloudflare) -> N "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -399,7 +374,7 @@ def test_raw_response_create_overload_5(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -414,7 +389,7 @@ def test_streaming_response_create_overload_5(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -432,7 +407,7 @@ def test_path_params_create_overload_5(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -440,7 +415,7 @@ def test_path_params_create_overload_5(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -450,7 +425,7 @@ def test_method_create_overload_6(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -467,14 +442,9 @@ def test_method_create_with_all_params_overload_6(self, client: Cloudflare) -> N "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -484,7 +454,7 @@ def test_raw_response_create_overload_6(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -499,7 +469,7 @@ def test_streaming_response_create_overload_6(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -517,7 +487,7 @@ def test_path_params_create_overload_6(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -525,7 +495,7 @@ def test_path_params_create_overload_6(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -535,7 +505,7 @@ def test_method_create_overload_7(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -549,14 +519,9 @@ def test_method_create_with_all_params_overload_7(self, client: Cloudflare) -> N "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -566,7 +531,7 @@ def test_raw_response_create_overload_7(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -581,7 +546,7 @@ def test_streaming_response_create_overload_7(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -599,7 +564,7 @@ def test_path_params_create_overload_7(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -607,7 +572,7 @@ def test_path_params_create_overload_7(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -617,7 +582,7 @@ def test_method_create_overload_8(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -638,14 +603,9 @@ def test_method_create_with_all_params_overload_8(self, client: Cloudflare) -> N "token_url": "https://accounts.google.com/o/oauth2/token", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -655,7 +615,7 @@ def test_raw_response_create_overload_8(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -670,7 +630,7 @@ def test_streaming_response_create_overload_8(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -688,7 +648,7 @@ def test_path_params_create_overload_8(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -696,7 +656,7 @@ def test_path_params_create_overload_8(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -706,7 +666,7 @@ def test_method_create_overload_9(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -724,14 +684,9 @@ def test_method_create_with_all_params_overload_9(self, client: Cloudflare) -> N "okta_account": "https://dev-abc123.oktapreview.com", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -741,7 +696,7 @@ def test_raw_response_create_overload_9(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -756,7 +711,7 @@ def test_streaming_response_create_overload_9(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -774,7 +729,7 @@ def test_path_params_create_overload_9(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -782,7 +737,7 @@ def test_path_params_create_overload_9(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -792,7 +747,7 @@ def test_method_create_overload_10(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -809,14 +764,9 @@ def test_method_create_with_all_params_overload_10(self, client: Cloudflare) -> "onelogin_account": "https://mycompany.onelogin.com", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -826,7 +776,7 @@ def test_raw_response_create_overload_10(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -841,7 +791,7 @@ def test_streaming_response_create_overload_10(self, client: Cloudflare) -> None with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -859,7 +809,7 @@ def test_path_params_create_overload_10(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -867,7 +817,7 @@ def test_path_params_create_overload_10(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -877,7 +827,7 @@ def test_method_create_overload_11(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -894,14 +844,9 @@ def test_method_create_with_all_params_overload_11(self, client: Cloudflare) -> "ping_env_id": "342b5660-0c32-4936-a5a4-ce21fae57b0a", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -911,7 +856,7 @@ def test_raw_response_create_overload_11(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -926,7 +871,7 @@ def test_streaming_response_create_overload_11(self, client: Cloudflare) -> None with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -944,7 +889,7 @@ def test_path_params_create_overload_11(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -952,7 +897,7 @@ def test_path_params_create_overload_11(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -962,7 +907,7 @@ def test_method_create_overload_12(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -986,14 +931,9 @@ def test_method_create_with_all_params_overload_12(self, client: Cloudflare) -> "sso_target_url": "https://edgeaccess.org/idp/saml/login", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1003,7 +943,7 @@ def test_raw_response_create_overload_12(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1018,7 +958,7 @@ def test_streaming_response_create_overload_12(self, client: Cloudflare) -> None with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -1036,7 +976,7 @@ def test_path_params_create_overload_12(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -1044,7 +984,7 @@ def test_path_params_create_overload_12(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1054,7 +994,7 @@ def test_method_create_overload_13(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1068,14 +1008,9 @@ def test_method_create_with_all_params_overload_13(self, client: Cloudflare) -> "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1085,7 +1020,7 @@ def test_raw_response_create_overload_13(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1100,7 +1035,7 @@ def test_streaming_response_create_overload_13(self, client: Cloudflare) -> None with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -1118,7 +1053,7 @@ def test_path_params_create_overload_13(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -1126,7 +1061,7 @@ def test_path_params_create_overload_13(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1136,7 +1071,7 @@ def test_method_create_overload_14(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1147,14 +1082,9 @@ def test_method_create_with_all_params_overload_14(self, client: Cloudflare) -> identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1164,7 +1094,7 @@ def test_raw_response_create_overload_14(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1179,7 +1109,7 @@ def test_streaming_response_create_overload_14(self, client: Cloudflare) -> None with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -1197,7 +1127,7 @@ def test_path_params_create_overload_14(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -1205,7 +1135,7 @@ def test_path_params_create_overload_14(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1216,7 +1146,7 @@ def test_method_update_overload_1(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1237,14 +1167,9 @@ def test_method_update_with_all_params_overload_1(self, client: Cloudflare) -> N "support_groups": True, }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1255,7 +1180,7 @@ def test_raw_response_update_overload_1(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1271,7 +1196,7 @@ def test_streaming_response_update_overload_1(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -1290,7 +1215,7 @@ def test_path_params_update_overload_1(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1299,7 +1224,7 @@ def test_path_params_update_overload_1(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -1308,7 +1233,7 @@ def test_path_params_update_overload_1(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1319,7 +1244,7 @@ def test_method_update_overload_2(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1338,14 +1263,9 @@ def test_method_update_with_all_params_overload_2(self, client: Cloudflare) -> N "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1356,7 +1276,7 @@ def test_raw_response_update_overload_2(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1372,7 +1292,7 @@ def test_streaming_response_update_overload_2(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -1391,7 +1311,7 @@ def test_path_params_update_overload_2(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1400,7 +1320,7 @@ def test_path_params_update_overload_2(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -1409,7 +1329,7 @@ def test_path_params_update_overload_2(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1420,7 +1340,7 @@ def test_method_update_overload_3(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1435,14 +1355,9 @@ def test_method_update_with_all_params_overload_3(self, client: Cloudflare) -> N "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1453,7 +1368,7 @@ def test_raw_response_update_overload_3(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1469,7 +1384,7 @@ def test_streaming_response_update_overload_3(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -1488,7 +1403,7 @@ def test_path_params_update_overload_3(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1497,7 +1412,7 @@ def test_path_params_update_overload_3(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -1506,7 +1421,7 @@ def test_path_params_update_overload_3(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1517,7 +1432,7 @@ def test_method_update_overload_4(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1532,14 +1447,9 @@ def test_method_update_with_all_params_overload_4(self, client: Cloudflare) -> N "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1550,7 +1460,7 @@ def test_raw_response_update_overload_4(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1566,7 +1476,7 @@ def test_streaming_response_update_overload_4(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -1585,7 +1495,7 @@ def test_path_params_update_overload_4(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1594,7 +1504,7 @@ def test_path_params_update_overload_4(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -1603,7 +1513,7 @@ def test_path_params_update_overload_4(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1614,7 +1524,7 @@ def test_method_update_overload_5(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1631,14 +1541,9 @@ def test_method_update_with_all_params_overload_5(self, client: Cloudflare) -> N "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1649,7 +1554,7 @@ def test_raw_response_update_overload_5(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1665,7 +1570,7 @@ def test_streaming_response_update_overload_5(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -1684,7 +1589,7 @@ def test_path_params_update_overload_5(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1693,7 +1598,7 @@ def test_path_params_update_overload_5(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -1702,7 +1607,7 @@ def test_path_params_update_overload_5(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1713,7 +1618,7 @@ def test_method_update_overload_6(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1731,14 +1636,9 @@ def test_method_update_with_all_params_overload_6(self, client: Cloudflare) -> N "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1749,7 +1649,7 @@ def test_raw_response_update_overload_6(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1765,7 +1665,7 @@ def test_streaming_response_update_overload_6(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -1784,7 +1684,7 @@ def test_path_params_update_overload_6(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1793,7 +1693,7 @@ def test_path_params_update_overload_6(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -1802,7 +1702,7 @@ def test_path_params_update_overload_6(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1813,7 +1713,7 @@ def test_method_update_overload_7(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1828,14 +1728,9 @@ def test_method_update_with_all_params_overload_7(self, client: Cloudflare) -> N "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1846,7 +1741,7 @@ def test_raw_response_update_overload_7(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1862,7 +1757,7 @@ def test_streaming_response_update_overload_7(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -1881,7 +1776,7 @@ def test_path_params_update_overload_7(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1890,7 +1785,7 @@ def test_path_params_update_overload_7(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -1899,7 +1794,7 @@ def test_path_params_update_overload_7(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1910,7 +1805,7 @@ def test_method_update_overload_8(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1932,14 +1827,9 @@ def test_method_update_with_all_params_overload_8(self, client: Cloudflare) -> N "token_url": "https://accounts.google.com/o/oauth2/token", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1950,7 +1840,7 @@ def test_raw_response_update_overload_8(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1966,7 +1856,7 @@ def test_streaming_response_update_overload_8(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -1985,7 +1875,7 @@ def test_path_params_update_overload_8(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -1994,7 +1884,7 @@ def test_path_params_update_overload_8(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -2003,7 +1893,7 @@ def test_path_params_update_overload_8(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2014,7 +1904,7 @@ def test_method_update_overload_9(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2033,14 +1923,9 @@ def test_method_update_with_all_params_overload_9(self, client: Cloudflare) -> N "okta_account": "https://dev-abc123.oktapreview.com", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2051,7 +1936,7 @@ def test_raw_response_update_overload_9(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2067,7 +1952,7 @@ def test_streaming_response_update_overload_9(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -2086,7 +1971,7 @@ def test_path_params_update_overload_9(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2095,7 +1980,7 @@ def test_path_params_update_overload_9(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -2104,7 +1989,7 @@ def test_path_params_update_overload_9(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2115,7 +2000,7 @@ def test_method_update_overload_10(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2133,14 +2018,9 @@ def test_method_update_with_all_params_overload_10(self, client: Cloudflare) -> "onelogin_account": "https://mycompany.onelogin.com", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2151,7 +2031,7 @@ def test_raw_response_update_overload_10(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2167,7 +2047,7 @@ def test_streaming_response_update_overload_10(self, client: Cloudflare) -> None identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -2186,7 +2066,7 @@ def test_path_params_update_overload_10(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2195,7 +2075,7 @@ def test_path_params_update_overload_10(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -2204,7 +2084,7 @@ def test_path_params_update_overload_10(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2215,7 +2095,7 @@ def test_method_update_overload_11(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2233,14 +2113,9 @@ def test_method_update_with_all_params_overload_11(self, client: Cloudflare) -> "ping_env_id": "342b5660-0c32-4936-a5a4-ce21fae57b0a", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2251,7 +2126,7 @@ def test_raw_response_update_overload_11(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2267,7 +2142,7 @@ def test_streaming_response_update_overload_11(self, client: Cloudflare) -> None identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -2286,7 +2161,7 @@ def test_path_params_update_overload_11(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2295,7 +2170,7 @@ def test_path_params_update_overload_11(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -2304,7 +2179,7 @@ def test_path_params_update_overload_11(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2315,7 +2190,7 @@ def test_method_update_overload_12(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2340,14 +2215,9 @@ def test_method_update_with_all_params_overload_12(self, client: Cloudflare) -> "sso_target_url": "https://edgeaccess.org/idp/saml/login", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2358,7 +2228,7 @@ def test_raw_response_update_overload_12(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2374,7 +2244,7 @@ def test_streaming_response_update_overload_12(self, client: Cloudflare) -> None identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -2393,7 +2263,7 @@ def test_path_params_update_overload_12(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2402,7 +2272,7 @@ def test_path_params_update_overload_12(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -2411,7 +2281,7 @@ def test_path_params_update_overload_12(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2422,7 +2292,7 @@ def test_method_update_overload_13(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2437,14 +2307,9 @@ def test_method_update_with_all_params_overload_13(self, client: Cloudflare) -> "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2455,7 +2320,7 @@ def test_raw_response_update_overload_13(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2471,7 +2336,7 @@ def test_streaming_response_update_overload_13(self, client: Cloudflare) -> None identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -2490,7 +2355,7 @@ def test_path_params_update_overload_13(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2499,7 +2364,7 @@ def test_path_params_update_overload_13(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -2508,7 +2373,7 @@ def test_path_params_update_overload_13(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2519,7 +2384,7 @@ def test_method_update_overload_14(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2531,14 +2396,9 @@ def test_method_update_with_all_params_overload_14(self, client: Cloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2549,7 +2409,7 @@ def test_raw_response_update_overload_14(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2565,7 +2425,7 @@ def test_streaming_response_update_overload_14(self, client: Cloudflare) -> None identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -2584,7 +2444,7 @@ def test_path_params_update_overload_14(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2593,7 +2453,7 @@ def test_path_params_update_overload_14(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -2602,7 +2462,7 @@ def test_path_params_update_overload_14(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2806,7 +2666,7 @@ async def test_method_create_overload_1(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2826,14 +2686,9 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn "support_groups": True, }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2843,7 +2698,7 @@ async def test_raw_response_create_overload_1(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2858,7 +2713,7 @@ async def test_streaming_response_create_overload_1(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -2876,7 +2731,7 @@ async def test_path_params_create_overload_1(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -2884,7 +2739,7 @@ async def test_path_params_create_overload_1(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2894,7 +2749,7 @@ async def test_method_create_overload_2(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2912,14 +2767,9 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2929,7 +2779,7 @@ async def test_raw_response_create_overload_2(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2944,7 +2794,7 @@ async def test_streaming_response_create_overload_2(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -2962,7 +2812,7 @@ async def test_path_params_create_overload_2(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -2970,7 +2820,7 @@ async def test_path_params_create_overload_2(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -2980,7 +2830,7 @@ async def test_method_create_overload_3(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2994,14 +2844,9 @@ async def test_method_create_with_all_params_overload_3(self, async_client: Asyn "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3011,7 +2856,7 @@ async def test_raw_response_create_overload_3(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3026,7 +2871,7 @@ async def test_streaming_response_create_overload_3(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -3044,7 +2889,7 @@ async def test_path_params_create_overload_3(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -3052,7 +2897,7 @@ async def test_path_params_create_overload_3(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3062,7 +2907,7 @@ async def test_method_create_overload_4(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3076,14 +2921,9 @@ async def test_method_create_with_all_params_overload_4(self, async_client: Asyn "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3093,7 +2933,7 @@ async def test_raw_response_create_overload_4(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3108,7 +2948,7 @@ async def test_streaming_response_create_overload_4(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -3126,7 +2966,7 @@ async def test_path_params_create_overload_4(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -3134,7 +2974,7 @@ async def test_path_params_create_overload_4(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3144,7 +2984,7 @@ async def test_method_create_overload_5(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3160,14 +3000,9 @@ async def test_method_create_with_all_params_overload_5(self, async_client: Asyn "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3177,7 +3012,7 @@ async def test_raw_response_create_overload_5(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3192,7 +3027,7 @@ async def test_streaming_response_create_overload_5(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -3210,7 +3045,7 @@ async def test_path_params_create_overload_5(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -3218,7 +3053,7 @@ async def test_path_params_create_overload_5(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3228,7 +3063,7 @@ async def test_method_create_overload_6(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3245,14 +3080,9 @@ async def test_method_create_with_all_params_overload_6(self, async_client: Asyn "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3262,7 +3092,7 @@ async def test_raw_response_create_overload_6(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3277,7 +3107,7 @@ async def test_streaming_response_create_overload_6(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -3295,7 +3125,7 @@ async def test_path_params_create_overload_6(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -3303,7 +3133,7 @@ async def test_path_params_create_overload_6(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3313,7 +3143,7 @@ async def test_method_create_overload_7(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3327,14 +3157,9 @@ async def test_method_create_with_all_params_overload_7(self, async_client: Asyn "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3344,7 +3169,7 @@ async def test_raw_response_create_overload_7(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3359,7 +3184,7 @@ async def test_streaming_response_create_overload_7(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -3377,7 +3202,7 @@ async def test_path_params_create_overload_7(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -3385,7 +3210,7 @@ async def test_path_params_create_overload_7(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3395,7 +3220,7 @@ async def test_method_create_overload_8(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3416,14 +3241,9 @@ async def test_method_create_with_all_params_overload_8(self, async_client: Asyn "token_url": "https://accounts.google.com/o/oauth2/token", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3433,7 +3253,7 @@ async def test_raw_response_create_overload_8(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3448,7 +3268,7 @@ async def test_streaming_response_create_overload_8(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -3466,7 +3286,7 @@ async def test_path_params_create_overload_8(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -3474,7 +3294,7 @@ async def test_path_params_create_overload_8(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3484,7 +3304,7 @@ async def test_method_create_overload_9(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3502,14 +3322,9 @@ async def test_method_create_with_all_params_overload_9(self, async_client: Asyn "okta_account": "https://dev-abc123.oktapreview.com", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3519,7 +3334,7 @@ async def test_raw_response_create_overload_9(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3534,7 +3349,7 @@ async def test_streaming_response_create_overload_9(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -3552,7 +3367,7 @@ async def test_path_params_create_overload_9(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -3560,7 +3375,7 @@ async def test_path_params_create_overload_9(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3570,7 +3385,7 @@ async def test_method_create_overload_10(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3587,14 +3402,9 @@ async def test_method_create_with_all_params_overload_10(self, async_client: Asy "onelogin_account": "https://mycompany.onelogin.com", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3604,7 +3414,7 @@ async def test_raw_response_create_overload_10(self, async_client: AsyncCloudfla response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3619,7 +3429,7 @@ async def test_streaming_response_create_overload_10(self, async_client: AsyncCl async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -3637,7 +3447,7 @@ async def test_path_params_create_overload_10(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -3645,7 +3455,7 @@ async def test_path_params_create_overload_10(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3655,7 +3465,7 @@ async def test_method_create_overload_11(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3672,14 +3482,9 @@ async def test_method_create_with_all_params_overload_11(self, async_client: Asy "ping_env_id": "342b5660-0c32-4936-a5a4-ce21fae57b0a", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3689,7 +3494,7 @@ async def test_raw_response_create_overload_11(self, async_client: AsyncCloudfla response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3704,7 +3509,7 @@ async def test_streaming_response_create_overload_11(self, async_client: AsyncCl async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -3722,7 +3527,7 @@ async def test_path_params_create_overload_11(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -3730,7 +3535,7 @@ async def test_path_params_create_overload_11(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3740,7 +3545,7 @@ async def test_method_create_overload_12(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3764,14 +3569,9 @@ async def test_method_create_with_all_params_overload_12(self, async_client: Asy "sso_target_url": "https://edgeaccess.org/idp/saml/login", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3781,7 +3581,7 @@ async def test_raw_response_create_overload_12(self, async_client: AsyncCloudfla response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3796,7 +3596,7 @@ async def test_streaming_response_create_overload_12(self, async_client: AsyncCl async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -3814,7 +3614,7 @@ async def test_path_params_create_overload_12(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -3822,7 +3622,7 @@ async def test_path_params_create_overload_12(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3832,7 +3632,7 @@ async def test_method_create_overload_13(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3846,14 +3646,9 @@ async def test_method_create_with_all_params_overload_13(self, async_client: Asy "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3863,7 +3658,7 @@ async def test_raw_response_create_overload_13(self, async_client: AsyncCloudfla response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3878,7 +3673,7 @@ async def test_streaming_response_create_overload_13(self, async_client: AsyncCl async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -3896,7 +3691,7 @@ async def test_path_params_create_overload_13(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -3904,7 +3699,7 @@ async def test_path_params_create_overload_13(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3914,7 +3709,7 @@ async def test_method_create_overload_14(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3925,14 +3720,9 @@ async def test_method_create_with_all_params_overload_14(self, async_client: Asy identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3942,7 +3732,7 @@ async def test_raw_response_create_overload_14(self, async_client: AsyncCloudfla response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3957,7 +3747,7 @@ async def test_streaming_response_create_overload_14(self, async_client: AsyncCl async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -3975,7 +3765,7 @@ async def test_path_params_create_overload_14(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -3983,7 +3773,7 @@ async def test_path_params_create_overload_14(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -3994,7 +3784,7 @@ async def test_method_update_overload_1(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4015,14 +3805,9 @@ async def test_method_update_with_all_params_overload_1(self, async_client: Asyn "support_groups": True, }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4033,7 +3818,7 @@ async def test_raw_response_update_overload_1(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4049,7 +3834,7 @@ async def test_streaming_response_update_overload_1(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -4068,7 +3853,7 @@ async def test_path_params_update_overload_1(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4077,7 +3862,7 @@ async def test_path_params_update_overload_1(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -4086,7 +3871,7 @@ async def test_path_params_update_overload_1(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4097,7 +3882,7 @@ async def test_method_update_overload_2(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4116,14 +3901,9 @@ async def test_method_update_with_all_params_overload_2(self, async_client: Asyn "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4134,7 +3914,7 @@ async def test_raw_response_update_overload_2(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4150,7 +3930,7 @@ async def test_streaming_response_update_overload_2(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -4169,7 +3949,7 @@ async def test_path_params_update_overload_2(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4178,7 +3958,7 @@ async def test_path_params_update_overload_2(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -4187,7 +3967,7 @@ async def test_path_params_update_overload_2(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4198,7 +3978,7 @@ async def test_method_update_overload_3(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4213,14 +3993,9 @@ async def test_method_update_with_all_params_overload_3(self, async_client: Asyn "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4231,7 +4006,7 @@ async def test_raw_response_update_overload_3(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4247,7 +4022,7 @@ async def test_streaming_response_update_overload_3(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -4266,7 +4041,7 @@ async def test_path_params_update_overload_3(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4275,7 +4050,7 @@ async def test_path_params_update_overload_3(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -4284,7 +4059,7 @@ async def test_path_params_update_overload_3(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4295,7 +4070,7 @@ async def test_method_update_overload_4(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4310,14 +4085,9 @@ async def test_method_update_with_all_params_overload_4(self, async_client: Asyn "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4328,7 +4098,7 @@ async def test_raw_response_update_overload_4(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4344,7 +4114,7 @@ async def test_streaming_response_update_overload_4(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -4363,7 +4133,7 @@ async def test_path_params_update_overload_4(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4372,7 +4142,7 @@ async def test_path_params_update_overload_4(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -4381,7 +4151,7 @@ async def test_path_params_update_overload_4(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4392,7 +4162,7 @@ async def test_method_update_overload_5(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4409,14 +4179,9 @@ async def test_method_update_with_all_params_overload_5(self, async_client: Asyn "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4427,7 +4192,7 @@ async def test_raw_response_update_overload_5(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4443,7 +4208,7 @@ async def test_streaming_response_update_overload_5(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -4462,7 +4227,7 @@ async def test_path_params_update_overload_5(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4471,7 +4236,7 @@ async def test_path_params_update_overload_5(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -4480,7 +4245,7 @@ async def test_path_params_update_overload_5(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4491,7 +4256,7 @@ async def test_method_update_overload_6(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4509,14 +4274,9 @@ async def test_method_update_with_all_params_overload_6(self, async_client: Asyn "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4527,7 +4287,7 @@ async def test_raw_response_update_overload_6(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4543,7 +4303,7 @@ async def test_streaming_response_update_overload_6(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -4562,7 +4322,7 @@ async def test_path_params_update_overload_6(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4571,7 +4331,7 @@ async def test_path_params_update_overload_6(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -4580,7 +4340,7 @@ async def test_path_params_update_overload_6(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4591,7 +4351,7 @@ async def test_method_update_overload_7(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4606,14 +4366,9 @@ async def test_method_update_with_all_params_overload_7(self, async_client: Asyn "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4624,7 +4379,7 @@ async def test_raw_response_update_overload_7(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4640,7 +4395,7 @@ async def test_streaming_response_update_overload_7(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -4659,7 +4414,7 @@ async def test_path_params_update_overload_7(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4668,7 +4423,7 @@ async def test_path_params_update_overload_7(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -4677,7 +4432,7 @@ async def test_path_params_update_overload_7(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4688,7 +4443,7 @@ async def test_method_update_overload_8(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4710,14 +4465,9 @@ async def test_method_update_with_all_params_overload_8(self, async_client: Asyn "token_url": "https://accounts.google.com/o/oauth2/token", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4728,7 +4478,7 @@ async def test_raw_response_update_overload_8(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4744,7 +4494,7 @@ async def test_streaming_response_update_overload_8(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -4763,7 +4513,7 @@ async def test_path_params_update_overload_8(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4772,7 +4522,7 @@ async def test_path_params_update_overload_8(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -4781,7 +4531,7 @@ async def test_path_params_update_overload_8(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4792,7 +4542,7 @@ async def test_method_update_overload_9(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4811,14 +4561,9 @@ async def test_method_update_with_all_params_overload_9(self, async_client: Asyn "okta_account": "https://dev-abc123.oktapreview.com", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4829,7 +4574,7 @@ async def test_raw_response_update_overload_9(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4845,7 +4590,7 @@ async def test_streaming_response_update_overload_9(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -4864,7 +4609,7 @@ async def test_path_params_update_overload_9(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4873,7 +4618,7 @@ async def test_path_params_update_overload_9(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -4882,7 +4627,7 @@ async def test_path_params_update_overload_9(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4893,7 +4638,7 @@ async def test_method_update_overload_10(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4911,14 +4656,9 @@ async def test_method_update_with_all_params_overload_10(self, async_client: Asy "onelogin_account": "https://mycompany.onelogin.com", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4929,7 +4669,7 @@ async def test_raw_response_update_overload_10(self, async_client: AsyncCloudfla identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4945,7 +4685,7 @@ async def test_streaming_response_update_overload_10(self, async_client: AsyncCl identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -4964,7 +4704,7 @@ async def test_path_params_update_overload_10(self, async_client: AsyncCloudflar identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4973,7 +4713,7 @@ async def test_path_params_update_overload_10(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -4982,7 +4722,7 @@ async def test_path_params_update_overload_10(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -4993,7 +4733,7 @@ async def test_method_update_overload_11(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -5011,14 +4751,9 @@ async def test_method_update_with_all_params_overload_11(self, async_client: Asy "ping_env_id": "342b5660-0c32-4936-a5a4-ce21fae57b0a", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -5029,7 +4764,7 @@ async def test_raw_response_update_overload_11(self, async_client: AsyncCloudfla identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -5045,7 +4780,7 @@ async def test_streaming_response_update_overload_11(self, async_client: AsyncCl identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -5064,7 +4799,7 @@ async def test_path_params_update_overload_11(self, async_client: AsyncCloudflar identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -5073,7 +4808,7 @@ async def test_path_params_update_overload_11(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -5082,7 +4817,7 @@ async def test_path_params_update_overload_11(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -5093,7 +4828,7 @@ async def test_method_update_overload_12(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -5118,14 +4853,9 @@ async def test_method_update_with_all_params_overload_12(self, async_client: Asy "sso_target_url": "https://edgeaccess.org/idp/saml/login", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -5136,7 +4866,7 @@ async def test_raw_response_update_overload_12(self, async_client: AsyncCloudfla identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -5152,7 +4882,7 @@ async def test_streaming_response_update_overload_12(self, async_client: AsyncCl identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -5171,7 +4901,7 @@ async def test_path_params_update_overload_12(self, async_client: AsyncCloudflar identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -5180,7 +4910,7 @@ async def test_path_params_update_overload_12(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -5189,7 +4919,7 @@ async def test_path_params_update_overload_12(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -5200,7 +4930,7 @@ async def test_method_update_overload_13(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -5215,14 +4945,9 @@ async def test_method_update_with_all_params_overload_13(self, async_client: Asy "client_secret": "", }, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -5233,7 +4958,7 @@ async def test_raw_response_update_overload_13(self, async_client: AsyncCloudfla identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -5249,7 +4974,7 @@ async def test_streaming_response_update_overload_13(self, async_client: AsyncCl identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -5268,7 +4993,7 @@ async def test_path_params_update_overload_13(self, async_client: AsyncCloudflar identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -5277,7 +5002,7 @@ async def test_path_params_update_overload_13(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -5286,7 +5011,7 @@ async def test_path_params_update_overload_13(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -5297,7 +5022,7 @@ async def test_method_update_overload_14(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -5309,14 +5034,9 @@ async def test_method_update_with_all_params_overload_14(self, async_client: Asy identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", - scim_config={ - "enabled": True, - "identity_update_behavior": "automatic", - "seat_deprovision": True, - "user_deprovision": True, - }, + scim_config={}, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -5327,7 +5047,7 @@ async def test_raw_response_update_overload_14(self, async_client: AsyncCloudfla identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -5343,7 +5063,7 @@ async def test_streaming_response_update_overload_14(self, async_client: AsyncCl identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) as response: assert not response.is_closed @@ -5362,7 +5082,7 @@ async def test_path_params_update_overload_14(self, async_client: AsyncCloudflar identity_provider_id="", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) @@ -5371,7 +5091,7 @@ async def test_path_params_update_overload_14(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="", ) @@ -5380,7 +5100,7 @@ async def test_path_params_update_overload_14(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type="onetimepin", + type={}, account_id="account_id", ) diff --git a/tests/api_resources/zones/test_holds.py b/tests/api_resources/zones/test_holds.py index b34e5066342..95aa58b2720 100644 --- a/tests/api_resources/zones/test_holds.py +++ b/tests/api_resources/zones/test_holds.py @@ -9,7 +9,6 @@ from cloudflare import Cloudflare, AsyncCloudflare from tests.utils import assert_matches_type -from cloudflare.types.zones import ZoneHold base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -22,7 +21,7 @@ def test_method_create(self, client: Cloudflare) -> None: hold = client.zones.holds.create( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize def test_method_create_with_all_params(self, client: Cloudflare) -> None: @@ -30,7 +29,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: zone_id="023e105f4ecef8ad9ca31a8372d0c353", include_subdomains=True, ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize def test_raw_response_create(self, client: Cloudflare) -> None: @@ -41,7 +40,7 @@ def test_raw_response_create(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize def test_streaming_response_create(self, client: Cloudflare) -> None: @@ -52,7 +51,7 @@ def test_streaming_response_create(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -68,7 +67,7 @@ def test_method_delete(self, client: Cloudflare) -> None: hold = client.zones.holds.delete( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize def test_method_delete_with_all_params(self, client: Cloudflare) -> None: @@ -76,7 +75,7 @@ def test_method_delete_with_all_params(self, client: Cloudflare) -> None: zone_id="023e105f4ecef8ad9ca31a8372d0c353", hold_after="hold_after", ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize def test_raw_response_delete(self, client: Cloudflare) -> None: @@ -87,7 +86,7 @@ def test_raw_response_delete(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize def test_streaming_response_delete(self, client: Cloudflare) -> None: @@ -98,7 +97,7 @@ def test_streaming_response_delete(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -114,7 +113,7 @@ def test_method_edit(self, client: Cloudflare) -> None: hold = client.zones.holds.edit( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize def test_method_edit_with_all_params(self, client: Cloudflare) -> None: @@ -123,7 +122,7 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: hold_after="2023-01-31T15:56:36+00:00", include_subdomains=True, ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize def test_raw_response_edit(self, client: Cloudflare) -> None: @@ -134,7 +133,7 @@ def test_raw_response_edit(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize def test_streaming_response_edit(self, client: Cloudflare) -> None: @@ -145,7 +144,7 @@ def test_streaming_response_edit(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -161,7 +160,7 @@ def test_method_get(self, client: Cloudflare) -> None: hold = client.zones.holds.get( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize def test_raw_response_get(self, client: Cloudflare) -> None: @@ -172,7 +171,7 @@ def test_raw_response_get(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize def test_streaming_response_get(self, client: Cloudflare) -> None: @@ -183,7 +182,7 @@ def test_streaming_response_get(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -203,7 +202,7 @@ async def test_method_create(self, async_client: AsyncCloudflare) -> None: hold = await async_client.zones.holds.create( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize async def test_method_create_with_all_params(self, async_client: AsyncCloudflare) -> None: @@ -211,7 +210,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare zone_id="023e105f4ecef8ad9ca31a8372d0c353", include_subdomains=True, ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize async def test_raw_response_create(self, async_client: AsyncCloudflare) -> None: @@ -222,7 +221,7 @@ async def test_raw_response_create(self, async_client: AsyncCloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize async def test_streaming_response_create(self, async_client: AsyncCloudflare) -> None: @@ -233,7 +232,7 @@ async def test_streaming_response_create(self, async_client: AsyncCloudflare) -> assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -249,7 +248,7 @@ async def test_method_delete(self, async_client: AsyncCloudflare) -> None: hold = await async_client.zones.holds.delete( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize async def test_method_delete_with_all_params(self, async_client: AsyncCloudflare) -> None: @@ -257,7 +256,7 @@ async def test_method_delete_with_all_params(self, async_client: AsyncCloudflare zone_id="023e105f4ecef8ad9ca31a8372d0c353", hold_after="hold_after", ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize async def test_raw_response_delete(self, async_client: AsyncCloudflare) -> None: @@ -268,7 +267,7 @@ async def test_raw_response_delete(self, async_client: AsyncCloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize async def test_streaming_response_delete(self, async_client: AsyncCloudflare) -> None: @@ -279,7 +278,7 @@ async def test_streaming_response_delete(self, async_client: AsyncCloudflare) -> assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -295,7 +294,7 @@ async def test_method_edit(self, async_client: AsyncCloudflare) -> None: hold = await async_client.zones.holds.edit( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) -> None: @@ -304,7 +303,7 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) hold_after="2023-01-31T15:56:36+00:00", include_subdomains=True, ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize async def test_raw_response_edit(self, async_client: AsyncCloudflare) -> None: @@ -315,7 +314,7 @@ async def test_raw_response_edit(self, async_client: AsyncCloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize async def test_streaming_response_edit(self, async_client: AsyncCloudflare) -> None: @@ -326,7 +325,7 @@ async def test_streaming_response_edit(self, async_client: AsyncCloudflare) -> N assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -342,7 +341,7 @@ async def test_method_get(self, async_client: AsyncCloudflare) -> None: hold = await async_client.zones.holds.get( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize async def test_raw_response_get(self, async_client: AsyncCloudflare) -> None: @@ -353,7 +352,7 @@ async def test_raw_response_get(self, async_client: AsyncCloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) @parametrize async def test_streaming_response_get(self, async_client: AsyncCloudflare) -> None: @@ -364,7 +363,7 @@ async def test_streaming_response_get(self, async_client: AsyncCloudflare) -> No assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(ZoneHold, hold, path=["response"]) + assert_matches_type(object, hold, path=["response"]) assert cast(Any, response.is_closed) is True From d61d6514aa7c9977e03befdeaa9e7b1903b4570c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:06 -0400 Subject: [PATCH 148/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 4320e5905bc..1b6f422a785 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d60e8882189e2204ae91aeeadf9fe7a298f602085585332811afaf1786f86917.yml -openapi_spec_hash: 19ac633268a644b849d24b4797bb0c29 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ba301aeaf435995f9c9017c9d9ef11b470e023e66ff3aa70d3e471ea452b937b.yml +openapi_spec_hash: df115451d779efa43c4358a6eeecd4ad config_hash: f19070938c38d2589d482763642f37a1 From 22d6f6a545add64bdfe062d36117b45b87ca8132 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:06 -0400 Subject: [PATCH 149/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 1b6f422a785..4a1d002e833 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ba301aeaf435995f9c9017c9d9ef11b470e023e66ff3aa70d3e471ea452b937b.yml openapi_spec_hash: df115451d779efa43c4358a6eeecd4ad -config_hash: f19070938c38d2589d482763642f37a1 +config_hash: f01b56f70c651f15e93a85ce451aa063 From d467b552d4008a2bd11d7cb7a16f7e9156faae65 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:06 -0400 Subject: [PATCH 150/849] feat(api): api update (#2583) --- .stats.yml | 4 +- api.md | 28 +- .../custom_certificates.py | 30 +- .../resources/keyless_certificates.py | 16 +- src/cloudflare/resources/logpush/ownership.py | 13 +- .../resources/magic_transit/sites/acls.py | 15 +- .../origin_post_quantum_encryption.py | 42 +- src/cloudflare/resources/rulesets/rules.py | 297 +++-- src/cloudflare/resources/ssl/analyze.py | 16 +- .../resources/workers/scripts/content.py | 9 +- .../resources/workers/scripts/deployments.py | 5 +- .../resources/workers/scripts/schedules.py | 9 +- .../dispatch/namespaces/scripts/content.py | 9 +- .../gateway/configurations/configurations.py | 22 +- .../resources/zero_trust/gateway/logging.py | 8 +- .../identity_providers/identity_providers.py | 635 ++++++++-- src/cloudflare/resources/zones/holds.py | 49 +- .../addressing/address_map_delete_response.py | 5 +- .../address_maps/account_delete_response.py | 5 +- .../address_maps/account_update_response.py | 5 +- .../address_maps/ip_delete_response.py | 5 +- .../address_maps/ip_update_response.py | 5 +- .../address_maps/zone_delete_response.py | 5 +- .../address_maps/zone_update_response.py | 5 +- .../addressing/prefix_delete_response.py | 5 +- .../service_binding_delete_response.py | 5 +- .../regional_hostname_delete_response.py | 5 +- .../destinations/pagerduty_delete_response.py | 5 +- .../destinations/webhook_delete_response.py | 5 +- .../types/alerting/policy_delete_response.py | 5 +- src/cloudflare/types/api_gateway/message.py | 4 +- .../types/brand_protection/__init__.py | 3 + src/cloudflare/types/brand_protection/info.py | 22 +- .../types/brand_protection/rule_match.py | 21 + .../types/brand_protection/scan_status.py | 21 + .../types/brand_protection/submit.py | 29 +- .../url_info_model_results.py | 17 + src/cloudflare/types/cache/__init__.py | 3 + src/cloudflare/types/cache/cache_reserve.py | 4 +- .../types/cache/cache_reserve_clear.py | 7 + .../cache/cache_reserve_clear_response.py | 4 +- .../cache/cache_reserve_edit_response.py | 4 +- .../types/cache/cache_reserve_get_response.py | 4 +- .../cache/cache_reserve_status_response.py | 4 +- .../types/cache/regional_tiered_cache.py | 4 +- .../regional_tiered_cache_edit_response.py | 4 +- .../regional_tiered_cache_get_response.py | 4 +- .../types/cache/variant_delete_response.py | 4 +- .../types/cache/variant_edit_response.py | 4 +- .../types/cache/variant_get_response.py | 4 +- .../cloudforce_one/request_delete_response.py | 5 +- .../requests/asset_delete_response.py | 5 +- .../requests/message_delete_response.py | 5 +- .../requests/priority_delete_response.py | 5 +- .../custom_certificates/custom_certificate.py | 9 +- .../custom_certificate_create_params.py | 9 +- .../custom_certificate_edit_params.py | 9 +- .../types/custom_hostnames/__init__.py | 3 + .../types/custom_hostnames/bundle_method.py | 7 + .../certificate_update_response.py | 20 +- .../custom_hostname_create_params.py | 20 +- .../custom_hostname_create_response.py | 20 +- .../custom_hostname_edit_params.py | 20 +- .../custom_hostname_edit_response.py | 20 +- .../custom_hostname_get_response.py | 20 +- .../custom_hostname_list_response.py | 20 +- .../types/custom_hostnames/dcv_method.py | 7 + .../domain_validation_type.py | 7 + src/cloudflare/types/dns/__init__.py | 2 + src/cloudflare/types/dns/analytics/report.py | 15 +- .../types/dns/analytics/reports/by_time.py | 6 +- .../types/dns/dns_analytics_nominal_metric.py | 8 + .../types/dns/dns_analytics_query.py | 38 + .../types/dns/zone_transfers/__init__.py | 1 + .../types/dns/zone_transfers/incoming.py | 32 +- .../dns/zone_transfers/outgoing/outgoing.py | 26 +- .../dns/zone_transfers/outgoing_status.py | 8 + .../types/email_routing/dns_get_response.py | 9 +- .../firewall/waf/package_get_response.py | 5 +- .../types/firewall/waf/packages/__init__.py | 1 + .../waf/packages/rule_edit_response.py | 10 +- .../waf/packages/rule_list_response.py | 10 +- .../firewall/waf/packages/waf_rule_group.py | 15 + .../issue_dismiss_response.py | 5 +- .../miscategorization_create_response.py | 5 +- .../keyless_certificate_create_params.py | 9 +- src/cloudflare/types/logpush/__init__.py | 1 + .../types/logpush/ownership_validation.py | 11 + .../types/magic_transit/__init__.py | 2 + .../gre_tunnel_bulk_update_response.py | 8 +- .../gre_tunnel_create_response.py | 8 +- .../gre_tunnel_delete_response.py | 8 +- .../magic_transit/gre_tunnel_get_response.py | 8 +- .../magic_transit/gre_tunnel_list_response.py | 8 +- .../magic_transit/gre_tunnel_update_params.py | 8 +- .../gre_tunnel_update_response.py | 8 +- .../types/magic_transit/health_check.py | 8 +- .../types/magic_transit/health_check_param.py | 9 +- .../types/magic_transit/health_check_rate.py | 7 + .../types/magic_transit/health_check_type.py | 7 + .../ipsec_tunnel_bulk_update_response.py | 8 +- .../ipsec_tunnel_create_params.py | 8 +- .../ipsec_tunnel_create_response.py | 8 +- .../ipsec_tunnel_delete_response.py | 8 +- .../ipsec_tunnel_get_response.py | 8 +- .../ipsec_tunnel_list_response.py | 8 +- .../ipsec_tunnel_update_params.py | 8 +- .../ipsec_tunnel_update_response.py | 8 +- .../types/magic_transit/sites/__init__.py | 1 + .../types/magic_transit/sites/acl.py | 3 +- .../magic_transit/sites/acl_create_params.py | 5 +- .../magic_transit/sites/acl_edit_params.py | 5 +- .../magic_transit/sites/acl_update_params.py | 5 +- .../magic_transit/sites/allowed_protocol.py | 7 + .../__init__.py | 6 + ...in_post_quantum_encryption_get_response.py | 23 + ...post_quantum_encryption_update_response.py | 23 + .../types/queues/consumer_delete_response.py | 3 +- .../types/queues/queue_delete_response.py | 3 +- src/cloudflare/types/r2/buckets/__init__.py | 1 + src/cloudflare/types/r2/buckets/provider.py | 7 + src/cloudflare/types/r2/buckets/sippy.py | 3 +- .../types/r2/buckets/sippy_update_params.py | 5 +- src/cloudflare/types/radar/__init__.py | 2 + .../ai/bots/summary_user_agent_response.py | 31 +- .../ai/inference/summary_model_response.py | 31 +- .../ai/inference/summary_task_response.py | 31 +- .../summary_model_response.py | 15 +- .../summary_task_response.py | 15 +- .../timeseries_group_user_agent_response.py | 15 +- .../types/radar/annotation_list_response.py | 25 +- .../radar/annotations/outage_get_response.py | 25 +- .../annotations/outage_locations_response.py | 14 +- .../radar/as112/summary_dnssec_response.py | 38 +- .../radar/as112/summary_edns_response.py | 38 +- .../as112/summary_ip_version_response.py | 46 +- .../radar/as112/summary_protocol_response.py | 38 +- .../as112/summary_query_type_response.py | 31 +- .../as112/summary_response_codes_response.py | 37 +- .../timeseries_group_query_type_response.py | 15 +- ...imeseries_group_response_codes_response.py | 15 +- .../types/radar/as112/top_dnssec_response.py | 41 +- .../types/radar/as112/top_edns_response.py | 41 +- .../radar/as112/top_ip_version_response.py | 48 +- .../radar/as112/top_locations_response.py | 48 +- .../types/radar/as112_timeseries_response.py | 45 +- .../layer3/summary_bitrate_response.py | 38 +- .../layer3/summary_duration_response.py | 38 +- .../layer3/summary_industry_response.py | 31 +- .../layer3/summary_ip_version_response.py | 46 +- .../layer3/summary_protocol_response.py | 38 +- .../attacks/layer3/summary_vector_response.py | 31 +- .../layer3/summary_vertical_response.py | 31 +- .../timeseries_group_industry_response.py | 15 +- .../timeseries_group_ip_version_response.py | 15 +- .../timeseries_group_vector_response.py | 15 +- .../timeseries_group_vertical_response.py | 15 +- .../layer3/top/location_origin_response.py | 38 +- .../layer3/top/location_target_response.py | 38 +- .../attacks/layer3/top_attacks_response.py | 31 +- .../attacks/layer3/top_industry_response.py | 31 +- .../attacks/layer3/top_vertical_response.py | 31 +- .../attacks/layer3_timeseries_response.py | 12 +- .../layer7/summary_http_method_response.py | 31 +- .../layer7/summary_http_version_response.py | 38 +- .../layer7/summary_industry_response.py | 31 +- .../layer7/summary_ip_version_response.py | 46 +- .../layer7/summary_managed_rules_response.py | 31 +- .../summary_mitigation_product_response.py | 37 +- .../layer7/summary_vertical_response.py | 31 +- .../timeseries_group_http_method_response.py | 15 +- .../timeseries_group_industry_response.py | 15 +- .../timeseries_group_ip_version_response.py | 15 +- ...timeseries_group_managed_rules_response.py | 15 +- ...eries_group_mitigation_product_response.py | 15 +- .../timeseries_group_vertical_response.py | 15 +- .../attacks/layer7/top/ase_origin_response.py | 31 +- .../layer7/top/location_origin_response.py | 38 +- .../layer7/top/location_target_response.py | 38 +- .../attacks/layer7/top_attacks_response.py | 31 +- .../attacks/layer7/top_industry_response.py | 31 +- .../attacks/layer7/top_vertical_response.py | 31 +- .../attacks/layer7_timeseries_response.py | 45 +- .../types/radar/bgp/route_moas_response.py | 12 +- .../types/radar/bgp/route_pfx2as_response.py | 12 +- .../types/radar/bgp/route_stats_response.py | 12 +- .../types/radar/bgp/top/ase_get_response.py | 13 +- .../radar/bgp/top/ase_prefixes_response.py | 12 +- .../types/radar/bgp/top_prefixes_response.py | 13 +- .../types/radar/bgp_timeseries_response.py | 45 +- .../radar/dns/summary_cache_hit_response.py | 38 +- .../dns/summary_dnssec_aware_response.py | 38 +- .../radar/dns/summary_dnssec_e2e_response.py | 38 +- .../radar/dns/summary_dnssec_response.py | 38 +- .../radar/dns/summary_ip_version_response.py | 46 +- .../dns/summary_matching_answer_response.py | 38 +- .../radar/dns/summary_protocol_response.py | 38 +- .../radar/dns/summary_query_type_response.py | 31 +- .../dns/summary_response_code_response.py | 31 +- .../dns/summary_response_ttl_response.py | 38 +- .../timeseries_group_query_type_response.py | 15 +- ...timeseries_group_response_code_response.py | 15 +- .../types/radar/dns/top_ases_response.py | 41 +- .../types/radar/dns/top_locations_response.py | 48 +- .../types/radar/dns_timeseries_response.py | 45 +- .../email/routing/summary_arc_response.py | 34 +- .../email/routing/summary_dkim_response.py | 34 +- .../email/routing/summary_dmarc_response.py | 34 +- .../routing/summary_encrypted_response.py | 38 +- .../routing/summary_ip_version_response.py | 46 +- .../email/routing/summary_spf_response.py | 34 +- .../routing/timeseries_group_arc_response.py | 3 +- .../routing/timeseries_group_dkim_response.py | 3 +- .../timeseries_group_dmarc_response.py | 3 +- .../routing/timeseries_group_spf_response.py | 3 +- .../email/security/summary_arc_response.py | 34 +- .../email/security/summary_dkim_response.py | 34 +- .../email/security/summary_dmarc_response.py | 34 +- .../security/summary_malicious_response.py | 38 +- .../email/security/summary_spam_response.py | 38 +- .../email/security/summary_spf_response.py | 34 +- .../email/security/summary_spoof_response.py | 38 +- .../summary_threat_category_response.py | 38 +- .../security/summary_tls_version_response.py | 38 +- .../security/timeseries_group_arc_response.py | 3 +- .../timeseries_group_dkim_response.py | 3 +- .../timeseries_group_dmarc_response.py | 3 +- .../security/timeseries_group_spf_response.py | 3 +- .../email/security/top/tld_get_response.py | 31 +- .../top/tlds/malicious_get_response.py | 38 +- .../security/top/tlds/spam_get_response.py | 31 +- .../security/top/tlds/spoof_get_response.py | 31 +- .../types/radar/entities/asn_rel_response.py | 12 +- .../types/radar/http/ase_get_response.py | 41 +- .../radar/http/ases/bot_class_get_response.py | 41 +- .../http/ases/browser_family_get_response.py | 48 +- .../http/ases/device_type_get_response.py | 48 +- .../http/ases/http_method_get_response.py | 48 +- .../http/ases/http_protocol_get_response.py | 48 +- .../http/ases/ip_version_get_response.py | 48 +- .../types/radar/http/ases/os_get_response.py | 41 +- .../http/ases/tls_version_get_response.py | 48 +- .../types/radar/http/location_get_response.py | 41 +- .../http/locations/bot_class_get_response.py | 41 +- .../locations/browser_family_get_response.py | 48 +- .../locations/device_type_get_response.py | 48 +- .../locations/http_method_get_response.py | 48 +- .../locations/http_protocol_get_response.py | 48 +- .../http/locations/ip_version_get_response.py | 48 +- .../radar/http/locations/os_get_response.py | 41 +- .../locations/tls_version_get_response.py | 48 +- .../radar/http/summary_bot_class_response.py | 38 +- .../http/summary_device_type_response.py | 38 +- .../http/summary_http_protocol_response.py | 38 +- .../http/summary_http_version_response.py | 38 +- .../radar/http/summary_ip_version_response.py | 46 +- .../types/radar/http/summary_os_response.py | 38 +- .../http/summary_post_quantum_response.py | 38 +- .../http/summary_tls_version_response.py | 38 +- ...imeseries_group_browser_family_response.py | 15 +- .../http/timeseries_group_browser_response.py | 15 +- .../timeseries_group_ip_version_response.py | 15 +- .../http/timeseries_group_os_response.py | 15 +- .../radar/http/top_browser_family_response.py | 38 +- .../types/radar/http/top_browser_response.py | 31 +- .../types/radar/http_timeseries_response.py | 45 +- .../summary_bot_class_response.py | 38 +- .../summary_compromised_response.py | 38 +- .../types/radar/netflow_summary_response.py | 38 +- .../radar/netflow_timeseries_response.py | 45 +- .../radar/quality/iqi_summary_response.py | 38 +- .../radar/quality/speed/top_ases_response.py | 31 +- .../quality/speed/top_locations_response.py | 38 +- .../radar/quality/speed_summary_response.py | 38 +- .../types/radar/radar_email_series.py | 17 + .../types/radar/radar_email_summary.py | 16 + .../radar/ranking/domain_get_response.py | 13 +- ...rnet_service_timeseries_groups_response.py | 13 +- .../ranking_timeseries_groups_response.py | 13 +- .../top/user_agent_directive_response.py | 39 +- .../top_domain_categories_response.py | 39 +- .../tcp_resets_timeout_summary_response.py | 38 +- ...sets_timeout_timeseries_groups_response.py | 37 +- .../location_get_response.py | 12 +- .../radar/traffic_anomaly_get_response.py | 24 +- .../radar/verified_bots/top_bots_response.py | 31 +- .../verified_bots/top_categories_response.py | 38 +- src/cloudflare/types/rules/lists/__init__.py | 2 + .../lists/bulk_operation_get_response.py | 4 +- .../types/rules/lists/list_cursor.py | 13 + .../types/rules/lists/operation_status.py | 7 + src/cloudflare/types/rulesets/__init__.py | 2 + src/cloudflare/types/rulesets/block_rule.py | 4 +- .../types/rulesets/block_rule_param.py | 5 +- .../types/rulesets/compress_response_rule.py | 4 +- .../rulesets/compress_response_rule_param.py | 5 +- .../types/rulesets/ddos_dynamic_rule.py | 4 +- .../types/rulesets/ddos_dynamic_rule_param.py | 5 +- src/cloudflare/types/rulesets/execute_rule.py | 4 +- .../types/rulesets/execute_rule_param.py | 5 +- .../rulesets/force_connection_close_rule.py | 4 +- .../force_connection_close_rule_param.py | 5 +- .../types/rulesets/log_custom_field_rule.py | 4 +- .../rulesets/log_custom_field_rule_param.py | 5 +- src/cloudflare/types/rulesets/log_rule.py | 4 +- .../types/rulesets/log_rule_param.py | 5 +- src/cloudflare/types/rulesets/logging.py | 11 + .../types/rulesets/logging_param.py | 12 + .../types/rulesets/managed_challenge_rule.py | 4 +- .../rulesets/managed_challenge_rule_param.py | 5 +- .../types/rulesets/phase_get_response.py | 7 +- .../types/rulesets/phase_update_params.py | 7 +- .../types/rulesets/phase_update_response.py | 7 +- .../rulesets/phases/version_get_response.py | 7 +- .../types/rulesets/redirect_rule.py | 4 +- .../types/rulesets/redirect_rule_param.py | 5 +- src/cloudflare/types/rulesets/rewrite_rule.py | 4 +- .../types/rulesets/rewrite_rule_param.py | 4 +- src/cloudflare/types/rulesets/route_rule.py | 4 +- .../types/rulesets/route_rule_param.py | 5 +- .../types/rulesets/rule_create_params.py | 55 +- .../types/rulesets/rule_create_response.py | 7 +- .../types/rulesets/rule_delete_response.py | 7 +- .../types/rulesets/rule_edit_params.py | 55 +- .../types/rulesets/rule_edit_response.py | 7 +- .../types/rulesets/ruleset_create_params.py | 7 +- .../types/rulesets/ruleset_create_response.py | 7 +- .../types/rulesets/ruleset_get_response.py | 7 +- .../types/rulesets/ruleset_update_params.py | 7 +- .../types/rulesets/ruleset_update_response.py | 7 +- src/cloudflare/types/rulesets/score_rule.py | 4 +- .../types/rulesets/score_rule_param.py | 5 +- .../types/rulesets/serve_error_rule.py | 4 +- .../types/rulesets/serve_error_rule_param.py | 5 +- .../types/rulesets/set_cache_settings_rule.py | 4 +- .../rulesets/set_cache_settings_rule_param.py | 5 +- .../types/rulesets/set_config_rule.py | 4 +- .../types/rulesets/set_config_rule_param.py | 5 +- src/cloudflare/types/rulesets/skip_rule.py | 4 +- .../types/rulesets/skip_rule_param.py | 4 +- .../types/rulesets/version_get_response.py | 7 +- .../insight_dismiss_response.py | 5 +- .../security_txt_delete_response.py | 5 +- .../security_txt_update_response.py | 5 +- src/cloudflare/types/shared/identifier.py | 9 +- .../types/shared/load_balancer_preview.py | 11 +- src/cloudflare/types/shared/response_info.py | 9 +- src/cloudflare/types/shared/result.py | 31 +- .../types/snippets/rule_delete_response.py | 5 +- .../types/snippets/snippet_delete_response.py | 5 +- .../types/ssl/analyze_create_params.py | 10 +- src/cloudflare/types/workers/__init__.py | 1 + .../types/workers/route_create_response.py | 5 +- .../types/workers/route_delete_response.py | 5 +- .../types/workers/scripts/__init__.py | 4 + .../workers/scripts/content_update_params.py | 4 +- .../types/workers/scripts/deployment.py | 14 + .../scripts/deployment_create_params.py | 4 +- .../scripts/deployment_create_response.py | 3 +- .../scripts/deployment_get_response.py | 3 +- .../types/workers/scripts/deployment_param.py | 14 + .../types/workers/scripts/schedule.py | 15 + .../workers/scripts/schedule_get_response.py | 3 +- .../types/workers/scripts/schedule_param.py | 11 + .../workers/scripts/schedule_update_params.py | 4 +- .../scripts/schedule_update_response.py | 3 +- .../workers/scripts/tail_delete_response.py | 5 +- .../types/workers/worker_metadata_param.py | 22 + .../scripts/content_update_params.py | 4 +- src/cloudflare/types/zaraz/__init__.py | 4 + .../types/zaraz/button_text_translation.py | 18 + .../zaraz/button_text_translation_param.py | 19 + .../types/zaraz/config_update_params.py | 12 +- src/cloudflare/types/zaraz/configuration.py | 12 +- src/cloudflare/types/zaraz/neo_event.py | 23 + src/cloudflare/types/zaraz/neo_event_param.py | 24 + src/cloudflare/types/zero_trust/__init__.py | 4 + .../types/zero_trust/access/__init__.py | 1 + .../access/applications/__init__.py | 1 + .../applications/user_policy_check_geo.py | 11 + .../user_policy_check_list_response.py | 3 +- .../access/saas_app_name_id_format.py | 7 + .../types/zero_trust/access/saml_saas_app.py | 4 +- .../zero_trust/access/saml_saas_app_param.py | 5 +- .../users/active_session_get_response.py | 3 +- .../types/zero_trust/access/users/identity.py | 3 +- src/cloudflare/types/zero_trust/azure_ad.py | 15 +- .../types/zero_trust/azure_ad_param.py | 16 +- .../zero_trust/devices/crowdstrike_input.py | 3 +- .../devices/crowdstrike_input_param.py | 3 +- .../types/zero_trust/devices/device_input.py | 12 +- .../zero_trust/devices/device_input_param.py | 12 +- .../types/zero_trust/devices/file_input.py | 4 +- .../zero_trust/devices/file_input_param.py | 5 +- .../zero_trust/devices/os_version_input.py | 3 +- .../devices/os_version_input_param.py | 3 +- .../zero_trust/devices/sentinelone_input.py | 4 +- .../devices/sentinelone_input_param.py | 5 +- .../devices/sentinelone_s2s_input.py | 3 +- .../devices/sentinelone_s2s_input_param.py | 3 +- .../types/zero_trust/dex/http_details.py | 3 +- .../types/zero_trust/dex/tests/tests.py | 3 +- .../types/zero_trust/dex/traceroute.py | 3 +- .../zero_trust/digital_experience_monitor.py | 15 + .../types/zero_trust/gateway/__init__.py | 23 + .../gateway/activity_log_settings.py | 12 + .../gateway/activity_log_settings_param.py | 12 + .../zero_trust/gateway/anti_virus_settings.py | 25 + .../gateway/anti_virus_settings_param.py | 26 + .../zero_trust/gateway/block_page_settings.py | 60 + .../gateway/block_page_settings_param.py | 59 + .../gateway/body_scanning_settings.py | 12 + .../gateway/body_scanning_settings_param.py | 12 + .../gateway/browser_isolation_settings.py | 15 + .../browser_isolation_settings_param.py | 15 + .../gateway/configuration_edit_params.py | 5 +- .../gateway/configuration_edit_response.py | 4 +- .../gateway/configuration_get_response.py | 4 +- .../gateway/configuration_update_params.py | 5 +- .../gateway/configuration_update_response.py | 4 +- .../custom_certificate_settings_param.py | 15 + .../gateway/extended_email_matching.py | 15 + .../gateway/extended_email_matching_param.py | 15 + .../types/zero_trust/gateway/fips_settings.py | 12 + .../zero_trust/gateway/fips_settings_param.py | 12 + .../gateway/gateway_configuration_settings.py | 79 ++ .../gateway_configuration_settings_param.py | 79 ++ .../zero_trust/gateway/logging_setting.py | 16 +- .../gateway/logging_update_params.py | 16 +- .../gateway/notification_settings.py | 21 + .../gateway/notification_settings_param.py | 21 + .../zero_trust/gateway/protocol_detection.py | 12 + .../gateway/protocol_detection_param.py | 12 + .../types/zero_trust/gateway/tls_settings.py | 12 + .../zero_trust/gateway/tls_settings_param.py | 12 + .../types/zero_trust/identity_provider.py | 171 ++- .../identity_provider_create_params.py | 184 ++- .../identity_provider_list_response.py | 158 ++- .../zero_trust/identity_provider_param.py | 171 ++- .../identity_provider_scim_config.py | 47 + .../identity_provider_scim_config_param.py | 36 + .../zero_trust/identity_provider_type.py | 22 + .../identity_provider_update_params.py | 184 ++- src/cloudflare/types/zones/__init__.py | 1 + .../zones/custom_nameserver_get_response.py | 5 +- src/cloudflare/types/zones/zone_hold.py | 15 + tests/api_resources/logpush/test_ownership.py | 21 +- .../magic_transit/sites/test_acls.py | 12 +- .../magic_transit/test_cf_interconnects.py | 8 +- .../magic_transit/test_gre_tunnels.py | 8 +- .../magic_transit/test_ipsec_tunnels.py | 16 +- tests/api_resources/r2/buckets/test_sippy.py | 8 +- tests/api_resources/rulesets/test_phases.py | 4 +- tests/api_resources/rulesets/test_rules.py | 144 +-- tests/api_resources/ssl/test_analyze.py | 4 +- .../api_resources/test_custom_certificates.py | 8 +- tests/api_resources/test_custom_hostnames.py | 24 +- .../test_keyless_certificates.py | 4 +- .../test_origin_post_quantum_encryption.py | 54 +- tests/api_resources/test_rulesets.py | 8 +- .../workers/scripts/test_content.py | 10 +- .../workers/scripts/test_deployments.py | 9 +- .../namespaces/scripts/test_content.py | 10 +- tests/api_resources/zaraz/test_config.py | 48 +- .../zero_trust/access/test_applications.py | 8 +- .../zero_trust/devices/test_posture.py | 8 +- .../zero_trust/gateway/test_configurations.py | 184 ++- .../zero_trust/gateway/test_logging.py | 12 +- .../zero_trust/test_identity_providers.py | 1120 ++++++++++------- tests/api_resources/zones/test_holds.py | 61 +- 470 files changed, 9649 insertions(+), 1857 deletions(-) create mode 100644 src/cloudflare/types/brand_protection/rule_match.py create mode 100644 src/cloudflare/types/brand_protection/scan_status.py create mode 100644 src/cloudflare/types/brand_protection/url_info_model_results.py create mode 100644 src/cloudflare/types/cache/cache_reserve_clear.py create mode 100644 src/cloudflare/types/custom_hostnames/bundle_method.py create mode 100644 src/cloudflare/types/custom_hostnames/dcv_method.py create mode 100644 src/cloudflare/types/custom_hostnames/domain_validation_type.py create mode 100644 src/cloudflare/types/dns/dns_analytics_nominal_metric.py create mode 100644 src/cloudflare/types/dns/dns_analytics_query.py create mode 100644 src/cloudflare/types/dns/zone_transfers/outgoing_status.py create mode 100644 src/cloudflare/types/firewall/waf/packages/waf_rule_group.py create mode 100644 src/cloudflare/types/logpush/ownership_validation.py create mode 100644 src/cloudflare/types/magic_transit/health_check_rate.py create mode 100644 src/cloudflare/types/magic_transit/health_check_type.py create mode 100644 src/cloudflare/types/magic_transit/sites/allowed_protocol.py create mode 100644 src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_get_response.py create mode 100644 src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_update_response.py create mode 100644 src/cloudflare/types/r2/buckets/provider.py create mode 100644 src/cloudflare/types/radar/radar_email_series.py create mode 100644 src/cloudflare/types/radar/radar_email_summary.py create mode 100644 src/cloudflare/types/rules/lists/list_cursor.py create mode 100644 src/cloudflare/types/rules/lists/operation_status.py create mode 100644 src/cloudflare/types/rulesets/logging.py create mode 100644 src/cloudflare/types/rulesets/logging_param.py create mode 100644 src/cloudflare/types/workers/scripts/deployment.py create mode 100644 src/cloudflare/types/workers/scripts/deployment_param.py create mode 100644 src/cloudflare/types/workers/scripts/schedule.py create mode 100644 src/cloudflare/types/workers/scripts/schedule_param.py create mode 100644 src/cloudflare/types/workers/worker_metadata_param.py create mode 100644 src/cloudflare/types/zaraz/button_text_translation.py create mode 100644 src/cloudflare/types/zaraz/button_text_translation_param.py create mode 100644 src/cloudflare/types/zaraz/neo_event.py create mode 100644 src/cloudflare/types/zaraz/neo_event_param.py create mode 100644 src/cloudflare/types/zero_trust/access/applications/user_policy_check_geo.py create mode 100644 src/cloudflare/types/zero_trust/access/saas_app_name_id_format.py create mode 100644 src/cloudflare/types/zero_trust/digital_experience_monitor.py create mode 100644 src/cloudflare/types/zero_trust/gateway/activity_log_settings.py create mode 100644 src/cloudflare/types/zero_trust/gateway/activity_log_settings_param.py create mode 100644 src/cloudflare/types/zero_trust/gateway/anti_virus_settings.py create mode 100644 src/cloudflare/types/zero_trust/gateway/anti_virus_settings_param.py create mode 100644 src/cloudflare/types/zero_trust/gateway/block_page_settings.py create mode 100644 src/cloudflare/types/zero_trust/gateway/block_page_settings_param.py create mode 100644 src/cloudflare/types/zero_trust/gateway/body_scanning_settings.py create mode 100644 src/cloudflare/types/zero_trust/gateway/body_scanning_settings_param.py create mode 100644 src/cloudflare/types/zero_trust/gateway/browser_isolation_settings.py create mode 100644 src/cloudflare/types/zero_trust/gateway/browser_isolation_settings_param.py create mode 100644 src/cloudflare/types/zero_trust/gateway/custom_certificate_settings_param.py create mode 100644 src/cloudflare/types/zero_trust/gateway/extended_email_matching.py create mode 100644 src/cloudflare/types/zero_trust/gateway/extended_email_matching_param.py create mode 100644 src/cloudflare/types/zero_trust/gateway/fips_settings.py create mode 100644 src/cloudflare/types/zero_trust/gateway/fips_settings_param.py create mode 100644 src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings.py create mode 100644 src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings_param.py create mode 100644 src/cloudflare/types/zero_trust/gateway/notification_settings.py create mode 100644 src/cloudflare/types/zero_trust/gateway/notification_settings_param.py create mode 100644 src/cloudflare/types/zero_trust/gateway/protocol_detection.py create mode 100644 src/cloudflare/types/zero_trust/gateway/protocol_detection_param.py create mode 100644 src/cloudflare/types/zero_trust/gateway/tls_settings.py create mode 100644 src/cloudflare/types/zero_trust/gateway/tls_settings_param.py create mode 100644 src/cloudflare/types/zero_trust/identity_provider_scim_config.py create mode 100644 src/cloudflare/types/zero_trust/identity_provider_scim_config_param.py create mode 100644 src/cloudflare/types/zero_trust/identity_provider_type.py create mode 100644 src/cloudflare/types/zones/zone_hold.py diff --git a/.stats.yml b/.stats.yml index 4a1d002e833..0f343dec8f6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-ba301aeaf435995f9c9017c9d9ef11b470e023e66ff3aa70d3e471ea452b937b.yml -openapi_spec_hash: df115451d779efa43c4358a6eeecd4ad +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-270122f270548b1d47f7e3ac3552ef65417230c5ec71e8cfb6cd5031e7eaa188.yml +openapi_spec_hash: 01925ed2891006b54e44074457d99a71 config_hash: f01b56f70c651f15e93a85ce451aa063 diff --git a/api.md b/api.md index db6b5f53b48..d3f325677c8 100644 --- a/api.md +++ b/api.md @@ -421,21 +421,15 @@ Methods: Types: ```python -from cloudflare.types.zones import ( - ZoneHold, - HoldCreateResponse, - HoldDeleteResponse, - HoldEditResponse, - HoldGetResponse, -) +from cloudflare.types.zones import ZoneHold ``` Methods: -- client.zones.holds.create(\*, zone_id, \*\*params) -> object -- client.zones.holds.delete(\*, zone_id, \*\*params) -> object -- client.zones.holds.edit(\*, zone_id, \*\*params) -> object -- client.zones.holds.get(\*, zone_id) -> object +- client.zones.holds.create(\*, zone_id, \*\*params) -> ZoneHold +- client.zones.holds.delete(\*, zone_id, \*\*params) -> ZoneHold +- client.zones.holds.edit(\*, zone_id, \*\*params) -> ZoneHold +- client.zones.holds.get(\*, zone_id) -> ZoneHold ## Subscriptions @@ -1926,17 +1920,13 @@ Methods: Types: ```python -from cloudflare.types.logpush import ( - OwnershipValidation, - OwnershipCreateResponse, - OwnershipValidateResponse, -) +from cloudflare.types.logpush import OwnershipValidation, OwnershipCreateResponse ``` Methods: - client.logpush.ownership.create(\*, account_id, zone_id, \*\*params) -> Optional[OwnershipCreateResponse] -- client.logpush.ownership.validate(\*, account_id, zone_id, \*\*params) -> object +- client.logpush.ownership.validate(\*, account_id, zone_id, \*\*params) -> Optional[OwnershipValidation] ## Validate @@ -8343,8 +8333,8 @@ from cloudflare.types.origin_post_quantum_encryption import ( Methods: -- client.origin_post_quantum_encryption.update(\*, zone_id, \*\*params) -> object -- client.origin_post_quantum_encryption.get(\*, zone_id) -> object +- client.origin_post_quantum_encryption.update(\*, zone_id, \*\*params) -> Optional[OriginPostQuantumEncryptionUpdateResponse] +- client.origin_post_quantum_encryption.get(\*, zone_id) -> Optional[OriginPostQuantumEncryptionGetResponse] # Zaraz diff --git a/src/cloudflare/resources/custom_certificates/custom_certificates.py b/src/cloudflare/resources/custom_certificates/custom_certificates.py index 05bf8f39e4a..46a10ed0a04 100644 --- a/src/cloudflare/resources/custom_certificates/custom_certificates.py +++ b/src/cloudflare/resources/custom_certificates/custom_certificates.py @@ -31,11 +31,13 @@ from ..._wrappers import ResultWrapper from ...pagination import SyncV4PagePaginationArray, AsyncV4PagePaginationArray from ..._base_client import AsyncPaginator, make_request_options +from ...types.custom_hostnames import BundleMethod from ...types.custom_certificates import ( custom_certificate_edit_params, custom_certificate_list_params, custom_certificate_create_params, ) +from ...types.custom_hostnames.bundle_method import BundleMethod from ...types.custom_certificates.custom_certificate import CustomCertificate from ...types.custom_certificates.geo_restrictions_param import GeoRestrictionsParam from ...types.custom_certificates.custom_certificate_delete_response import CustomCertificateDeleteResponse @@ -73,7 +75,7 @@ def create( zone_id: str, certificate: str, private_key: str, - bundle_method: object | NotGiven = NOT_GIVEN, + bundle_method: BundleMethod | NotGiven = NOT_GIVEN, geo_restrictions: GeoRestrictionsParam | NotGiven = NOT_GIVEN, policy: str | NotGiven = NOT_GIVEN, type: Literal["legacy_custom", "sni_custom"] | NotGiven = NOT_GIVEN, @@ -94,6 +96,11 @@ def create( private_key: The zone's private key. + bundle_method: 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. + geo_restrictions: 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 @@ -264,7 +271,7 @@ def edit( custom_certificate_id: str, *, zone_id: str, - bundle_method: object | NotGiven = NOT_GIVEN, + bundle_method: BundleMethod | NotGiven = NOT_GIVEN, certificate: str | NotGiven = NOT_GIVEN, geo_restrictions: GeoRestrictionsParam | NotGiven = NOT_GIVEN, policy: str | NotGiven = NOT_GIVEN, @@ -287,6 +294,11 @@ def edit( custom_certificate_id: Identifier + bundle_method: 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. + certificate: The zone's SSL certificate or certificate and the intermediate(s). geo_restrictions: Specify the region where your private key can be held locally for optimal TLS @@ -422,7 +434,7 @@ async def create( zone_id: str, certificate: str, private_key: str, - bundle_method: object | NotGiven = NOT_GIVEN, + bundle_method: BundleMethod | NotGiven = NOT_GIVEN, geo_restrictions: GeoRestrictionsParam | NotGiven = NOT_GIVEN, policy: str | NotGiven = NOT_GIVEN, type: Literal["legacy_custom", "sni_custom"] | NotGiven = NOT_GIVEN, @@ -443,6 +455,11 @@ async def create( private_key: The zone's private key. + bundle_method: 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. + geo_restrictions: 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 @@ -613,7 +630,7 @@ async def edit( custom_certificate_id: str, *, zone_id: str, - bundle_method: object | NotGiven = NOT_GIVEN, + bundle_method: BundleMethod | NotGiven = NOT_GIVEN, certificate: str | NotGiven = NOT_GIVEN, geo_restrictions: GeoRestrictionsParam | NotGiven = NOT_GIVEN, policy: str | NotGiven = NOT_GIVEN, @@ -636,6 +653,11 @@ async def edit( custom_certificate_id: Identifier + bundle_method: 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. + certificate: The zone's SSL certificate or certificate and the intermediate(s). geo_restrictions: Specify the region where your private key can be held locally for optimal TLS diff --git a/src/cloudflare/resources/keyless_certificates.py b/src/cloudflare/resources/keyless_certificates.py index 02e75e1fe23..898441ae15e 100644 --- a/src/cloudflare/resources/keyless_certificates.py +++ b/src/cloudflare/resources/keyless_certificates.py @@ -22,7 +22,9 @@ from .._wrappers import ResultWrapper from ..pagination import SyncSinglePage, AsyncSinglePage from .._base_client import AsyncPaginator, make_request_options +from ..types.custom_hostnames import BundleMethod from ..types.keyless_certificates import keyless_certificate_edit_params, keyless_certificate_create_params +from ..types.custom_hostnames.bundle_method import BundleMethod from ..types.keyless_certificates.tunnel_param import TunnelParam from ..types.keyless_certificates.keyless_certificate import KeylessCertificate from ..types.keyless_certificates.keyless_certificate_delete_response import KeylessCertificateDeleteResponse @@ -57,7 +59,7 @@ def create( certificate: str, host: str, port: float, - bundle_method: object | NotGiven = NOT_GIVEN, + bundle_method: BundleMethod | NotGiven = NOT_GIVEN, name: str | NotGiven = NOT_GIVEN, tunnel: TunnelParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -80,6 +82,11 @@ def create( port: The keyless SSL port used to communicate between Cloudflare and the client's Keyless SSL server. + bundle_method: 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. + name: The keyless SSL name. tunnel: Configuration for using Keyless SSL through a Cloudflare Tunnel @@ -349,7 +356,7 @@ async def create( certificate: str, host: str, port: float, - bundle_method: object | NotGiven = NOT_GIVEN, + bundle_method: BundleMethod | NotGiven = NOT_GIVEN, name: str | NotGiven = NOT_GIVEN, tunnel: TunnelParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -372,6 +379,11 @@ async def create( port: The keyless SSL port used to communicate between Cloudflare and the client's Keyless SSL server. + bundle_method: 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. + name: The keyless SSL name. tunnel: Configuration for using Keyless SSL through a Cloudflare Tunnel diff --git a/src/cloudflare/resources/logpush/ownership.py b/src/cloudflare/resources/logpush/ownership.py index 3f021569166..d1b236c4082 100644 --- a/src/cloudflare/resources/logpush/ownership.py +++ b/src/cloudflare/resources/logpush/ownership.py @@ -22,6 +22,7 @@ from ..._wrappers import ResultWrapper from ..._base_client import make_request_options from ...types.logpush import ownership_create_params, ownership_validate_params +from ...types.logpush.ownership_validation import OwnershipValidation from ...types.logpush.ownership_create_response import OwnershipCreateResponse __all__ = ["OwnershipResource", "AsyncOwnershipResource"] @@ -118,7 +119,7 @@ def validate( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> Optional[OwnershipValidation]: """ Validates ownership challenge of the destination. @@ -167,9 +168,9 @@ def validate( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[Optional[object]]._unwrapper, + post_parser=ResultWrapper[Optional[OwnershipValidation]]._unwrapper, ), - cast_to=cast(Type[object], ResultWrapper[object]), + cast_to=cast(Type[Optional[OwnershipValidation]], ResultWrapper[OwnershipValidation]), ) @@ -266,7 +267,7 @@ async def validate( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> Optional[OwnershipValidation]: """ Validates ownership challenge of the destination. @@ -315,9 +316,9 @@ async def validate( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[Optional[object]]._unwrapper, + post_parser=ResultWrapper[Optional[OwnershipValidation]]._unwrapper, ), - cast_to=cast(Type[object], ResultWrapper[object]), + cast_to=cast(Type[Optional[OwnershipValidation]], ResultWrapper[OwnershipValidation]), ) diff --git a/src/cloudflare/resources/magic_transit/sites/acls.py b/src/cloudflare/resources/magic_transit/sites/acls.py index d38e38e4694..fbb348cb83e 100644 --- a/src/cloudflare/resources/magic_transit/sites/acls.py +++ b/src/cloudflare/resources/magic_transit/sites/acls.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import Type, Iterable, cast +from typing import List, Type, cast import httpx @@ -24,6 +24,7 @@ from ...._base_client import AsyncPaginator, make_request_options from ....types.magic_transit.sites import acl_edit_params, acl_create_params, acl_update_params from ....types.magic_transit.sites.acl import ACL +from ....types.magic_transit.sites.allowed_protocol import AllowedProtocol from ....types.magic_transit.sites.acl_configuration_param import ACLConfigurationParam __all__ = ["ACLsResource", "AsyncACLsResource"] @@ -59,7 +60,7 @@ def create( name: str, description: str | NotGiven = NOT_GIVEN, forward_locally: bool | NotGiven = NOT_GIVEN, - protocols: Iterable[object] | NotGiven = NOT_GIVEN, + protocols: List[AllowedProtocol] | NotGiven = NOT_GIVEN, unidirectional: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -136,7 +137,7 @@ def update( lan_1: ACLConfigurationParam | NotGiven = NOT_GIVEN, lan_2: ACLConfigurationParam | NotGiven = NOT_GIVEN, name: str | NotGiven = NOT_GIVEN, - protocols: Iterable[object] | NotGiven = NOT_GIVEN, + protocols: List[AllowedProtocol] | NotGiven = NOT_GIVEN, unidirectional: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -307,7 +308,7 @@ def edit( lan_1: ACLConfigurationParam | NotGiven = NOT_GIVEN, lan_2: ACLConfigurationParam | NotGiven = NOT_GIVEN, name: str | NotGiven = NOT_GIVEN, - protocols: Iterable[object] | NotGiven = NOT_GIVEN, + protocols: List[AllowedProtocol] | NotGiven = NOT_GIVEN, unidirectional: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -457,7 +458,7 @@ async def create( name: str, description: str | NotGiven = NOT_GIVEN, forward_locally: bool | NotGiven = NOT_GIVEN, - protocols: Iterable[object] | NotGiven = NOT_GIVEN, + protocols: List[AllowedProtocol] | NotGiven = NOT_GIVEN, unidirectional: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -534,7 +535,7 @@ async def update( lan_1: ACLConfigurationParam | NotGiven = NOT_GIVEN, lan_2: ACLConfigurationParam | NotGiven = NOT_GIVEN, name: str | NotGiven = NOT_GIVEN, - protocols: Iterable[object] | NotGiven = NOT_GIVEN, + protocols: List[AllowedProtocol] | NotGiven = NOT_GIVEN, unidirectional: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -705,7 +706,7 @@ async def edit( lan_1: ACLConfigurationParam | NotGiven = NOT_GIVEN, lan_2: ACLConfigurationParam | NotGiven = NOT_GIVEN, name: str | NotGiven = NOT_GIVEN, - protocols: Iterable[object] | NotGiven = NOT_GIVEN, + protocols: List[AllowedProtocol] | NotGiven = NOT_GIVEN, unidirectional: bool | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. diff --git a/src/cloudflare/resources/origin_post_quantum_encryption.py b/src/cloudflare/resources/origin_post_quantum_encryption.py index 8603308c956..829d0007ae3 100644 --- a/src/cloudflare/resources/origin_post_quantum_encryption.py +++ b/src/cloudflare/resources/origin_post_quantum_encryption.py @@ -23,6 +23,12 @@ from .._wrappers import ResultWrapper from .._base_client import make_request_options from ..types.origin_post_quantum_encryption import origin_post_quantum_encryption_update_params +from ..types.origin_post_quantum_encryption.origin_post_quantum_encryption_get_response import ( + OriginPostQuantumEncryptionGetResponse, +) +from ..types.origin_post_quantum_encryption.origin_post_quantum_encryption_update_response import ( + OriginPostQuantumEncryptionUpdateResponse, +) __all__ = ["OriginPostQuantumEncryptionResource", "AsyncOriginPostQuantumEncryptionResource"] @@ -58,7 +64,7 @@ def update( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> Optional[OriginPostQuantumEncryptionUpdateResponse]: """ Instructs Cloudflare to use Post-Quantum (PQ) key agreement algorithms when connecting to your origin. Preferred instructs Cloudflare to opportunistically @@ -92,9 +98,12 @@ def update( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[Optional[object]]._unwrapper, + post_parser=ResultWrapper[Optional[OriginPostQuantumEncryptionUpdateResponse]]._unwrapper, + ), + cast_to=cast( + Type[Optional[OriginPostQuantumEncryptionUpdateResponse]], + ResultWrapper[OriginPostQuantumEncryptionUpdateResponse], ), - cast_to=cast(Type[object], ResultWrapper[object]), ) def get( @@ -107,7 +116,7 @@ def get( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> Optional[OriginPostQuantumEncryptionGetResponse]: """ Instructs Cloudflare to use Post-Quantum (PQ) key agreement algorithms when connecting to your origin. Preferred instructs Cloudflare to opportunistically @@ -136,9 +145,12 @@ def get( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[Optional[object]]._unwrapper, + post_parser=ResultWrapper[Optional[OriginPostQuantumEncryptionGetResponse]]._unwrapper, + ), + cast_to=cast( + Type[Optional[OriginPostQuantumEncryptionGetResponse]], + ResultWrapper[OriginPostQuantumEncryptionGetResponse], ), - cast_to=cast(Type[object], ResultWrapper[object]), ) @@ -173,7 +185,7 @@ async def update( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> Optional[OriginPostQuantumEncryptionUpdateResponse]: """ Instructs Cloudflare to use Post-Quantum (PQ) key agreement algorithms when connecting to your origin. Preferred instructs Cloudflare to opportunistically @@ -207,9 +219,12 @@ async def update( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[Optional[object]]._unwrapper, + post_parser=ResultWrapper[Optional[OriginPostQuantumEncryptionUpdateResponse]]._unwrapper, + ), + cast_to=cast( + Type[Optional[OriginPostQuantumEncryptionUpdateResponse]], + ResultWrapper[OriginPostQuantumEncryptionUpdateResponse], ), - cast_to=cast(Type[object], ResultWrapper[object]), ) async def get( @@ -222,7 +237,7 @@ async def get( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> Optional[OriginPostQuantumEncryptionGetResponse]: """ Instructs Cloudflare to use Post-Quantum (PQ) key agreement algorithms when connecting to your origin. Preferred instructs Cloudflare to opportunistically @@ -251,9 +266,12 @@ async def get( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[Optional[object]]._unwrapper, + post_parser=ResultWrapper[Optional[OriginPostQuantumEncryptionGetResponse]]._unwrapper, + ), + cast_to=cast( + Type[Optional[OriginPostQuantumEncryptionGetResponse]], + ResultWrapper[OriginPostQuantumEncryptionGetResponse], ), - cast_to=cast(Type[object], ResultWrapper[object]), ) diff --git a/src/cloudflare/resources/rulesets/rules.py b/src/cloudflare/resources/rulesets/rules.py index e963a4113c6..39f7f0397c2 100644 --- a/src/cloudflare/resources/rulesets/rules.py +++ b/src/cloudflare/resources/rulesets/rules.py @@ -24,6 +24,7 @@ from ..._wrappers import ResultWrapper from ..._base_client import make_request_options from ...types.rulesets import rule_edit_params, rule_create_params +from ...types.rulesets.logging_param import LoggingParam from ...types.rulesets.rule_edit_response import RuleEditResponse from ...types.rulesets.rule_create_response import RuleCreateResponse from ...types.rulesets.rule_delete_response import RuleDeleteResponse @@ -65,7 +66,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -102,6 +103,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -132,7 +135,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.ChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -169,6 +172,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -199,7 +204,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.CompressionRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.CompressionRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.CompressionRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -236,6 +241,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -266,7 +273,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ExecuteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.ExecuteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ExecuteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -303,6 +310,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -334,7 +343,7 @@ def create( exposed_credential_check: rule_create_params.JavascriptChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.JavascriptChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.JavascriptChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -371,6 +380,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -401,7 +412,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.LogRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.LogRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.LogRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -438,6 +449,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -468,7 +481,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ManagedChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.ManagedChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ManagedChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -505,6 +518,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -535,7 +550,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.RedirectRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.RedirectRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.RedirectRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -572,6 +587,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -602,7 +619,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.RewriteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.RewriteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.RewriteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -639,6 +656,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -669,7 +688,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.OriginRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.OriginRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.OriginRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -706,6 +725,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -736,7 +757,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ScoreRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.ScoreRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ScoreRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -773,6 +794,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -803,7 +826,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ServeErrorRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.ServeErrorRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ServeErrorRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -840,6 +863,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -870,7 +895,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.SetConfigRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.SetConfigRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.SetConfigRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -907,6 +932,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -937,7 +964,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.SkipRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.SkipRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.SkipRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -974,6 +1001,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1004,7 +1033,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.SetCacheSettingsRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.SetCacheSettingsRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.SetCacheSettingsRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1041,6 +1070,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1071,7 +1102,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.LogCustomFieldRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.LogCustomFieldRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.LogCustomFieldRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1108,6 +1139,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1138,7 +1171,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.DDoSDynamicRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.DDoSDynamicRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.DDoSDynamicRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1175,6 +1208,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1206,7 +1241,7 @@ def create( exposed_credential_check: rule_create_params.ForceConnectionCloseRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.ForceConnectionCloseRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ForceConnectionCloseRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1243,6 +1278,8 @@ def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1303,7 +1340,7 @@ def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1433,7 +1470,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1470,6 +1507,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1501,7 +1540,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.ChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1538,6 +1577,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1569,7 +1610,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.CompressionRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.CompressionRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.CompressionRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1606,6 +1647,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1637,7 +1680,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ExecuteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.ExecuteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ExecuteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1674,6 +1717,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1705,7 +1750,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.JavascriptChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.JavascriptChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.JavascriptChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1742,6 +1787,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1773,7 +1820,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.LogRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.LogRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.LogRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1810,6 +1857,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1841,7 +1890,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ManagedChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.ManagedChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ManagedChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1878,6 +1927,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1909,7 +1960,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.RedirectRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.RedirectRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.RedirectRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -1946,6 +1997,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -1977,7 +2030,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.RewriteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.RewriteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.RewriteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2014,6 +2067,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2045,7 +2100,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.OriginRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.OriginRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.OriginRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2082,6 +2137,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2113,7 +2170,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ScoreRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.ScoreRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ScoreRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2150,6 +2207,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2181,7 +2240,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ServeErrorRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.ServeErrorRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ServeErrorRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2218,6 +2277,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2249,7 +2310,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.SetConfigRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.SetConfigRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.SetConfigRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2286,6 +2347,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2317,7 +2380,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.SkipRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.SkipRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.SkipRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2354,6 +2417,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2385,7 +2450,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.SetCacheSettingsRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.SetCacheSettingsRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.SetCacheSettingsRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2422,6 +2487,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2453,7 +2520,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.LogCustomFieldRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.LogCustomFieldRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.LogCustomFieldRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2490,6 +2557,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2521,7 +2590,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.DDoSDynamicRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.DDoSDynamicRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.DDoSDynamicRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2558,6 +2627,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2590,7 +2661,7 @@ def edit( exposed_credential_check: rule_edit_params.ForceConnectionCloseRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.ForceConnectionCloseRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ForceConnectionCloseRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2627,6 +2698,8 @@ def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2689,7 +2762,7 @@ def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2779,7 +2852,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2816,6 +2889,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2846,7 +2921,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.ChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2883,6 +2958,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2913,7 +2990,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.CompressionRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.CompressionRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.CompressionRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -2950,6 +3027,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -2980,7 +3059,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ExecuteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.ExecuteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ExecuteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3017,6 +3096,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3048,7 +3129,7 @@ async def create( exposed_credential_check: rule_create_params.JavascriptChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.JavascriptChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.JavascriptChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3085,6 +3166,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3115,7 +3198,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.LogRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.LogRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.LogRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3152,6 +3235,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3182,7 +3267,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ManagedChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.ManagedChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ManagedChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3219,6 +3304,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3249,7 +3336,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.RedirectRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.RedirectRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.RedirectRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3286,6 +3373,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3316,7 +3405,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.RewriteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.RewriteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.RewriteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3353,6 +3442,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3383,7 +3474,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.OriginRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.OriginRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.OriginRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3420,6 +3511,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3450,7 +3543,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ScoreRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.ScoreRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ScoreRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3487,6 +3580,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3517,7 +3612,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.ServeErrorRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.ServeErrorRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ServeErrorRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3554,6 +3649,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3584,7 +3681,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.SetConfigRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.SetConfigRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.SetConfigRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3621,6 +3718,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3651,7 +3750,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.SkipRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.SkipRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.SkipRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3688,6 +3787,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3718,7 +3819,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.SetCacheSettingsRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.SetCacheSettingsRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.SetCacheSettingsRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3755,6 +3856,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3785,7 +3888,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.LogCustomFieldRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.LogCustomFieldRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.LogCustomFieldRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3822,6 +3925,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3852,7 +3957,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.DDoSDynamicRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.DDoSDynamicRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.DDoSDynamicRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3889,6 +3994,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -3920,7 +4027,7 @@ async def create( exposed_credential_check: rule_create_params.ForceConnectionCloseRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.ForceConnectionCloseRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.ForceConnectionCloseRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -3957,6 +4064,8 @@ async def create( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4017,7 +4126,7 @@ async def create( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_create_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_create_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_create_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4147,7 +4256,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4184,6 +4293,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4215,7 +4326,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.ChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4252,6 +4363,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4283,7 +4396,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.CompressionRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.CompressionRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.CompressionRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4320,6 +4433,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4351,7 +4466,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ExecuteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.ExecuteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ExecuteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4388,6 +4503,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4419,7 +4536,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.JavascriptChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.JavascriptChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.JavascriptChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4456,6 +4573,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4487,7 +4606,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.LogRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.LogRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.LogRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4524,6 +4643,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4555,7 +4676,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ManagedChallengeRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.ManagedChallengeRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ManagedChallengeRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4592,6 +4713,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4623,7 +4746,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.RedirectRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.RedirectRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.RedirectRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4660,6 +4783,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4691,7 +4816,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.RewriteRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.RewriteRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.RewriteRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4728,6 +4853,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4759,7 +4886,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.OriginRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.OriginRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.OriginRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4796,6 +4923,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4827,7 +4956,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ScoreRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.ScoreRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ScoreRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4864,6 +4993,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4895,7 +5026,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.ServeErrorRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.ServeErrorRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ServeErrorRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -4932,6 +5063,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -4963,7 +5096,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.SetConfigRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.SetConfigRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.SetConfigRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5000,6 +5133,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5031,7 +5166,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.SkipRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.SkipRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.SkipRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5068,6 +5203,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5099,7 +5236,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.SetCacheSettingsRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.SetCacheSettingsRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.SetCacheSettingsRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5136,6 +5273,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5167,7 +5306,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.LogCustomFieldRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.LogCustomFieldRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.LogCustomFieldRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5204,6 +5343,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5235,7 +5376,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.DDoSDynamicRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.DDoSDynamicRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.DDoSDynamicRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5272,6 +5413,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5304,7 +5447,7 @@ async def edit( exposed_credential_check: rule_edit_params.ForceConnectionCloseRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.ForceConnectionCloseRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.ForceConnectionCloseRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, @@ -5341,6 +5484,8 @@ async def edit( expression: The expression defining which traffic will match the rule. + logging: An object configuring the rule's logging behavior. + position: An object configuring where the rule will be placed. ratelimit: An object configuring the rule's ratelimit behavior. @@ -5403,7 +5548,7 @@ async def edit( enabled: bool | NotGiven = NOT_GIVEN, exposed_credential_check: rule_edit_params.BlockRuleExposedCredentialCheck | NotGiven = NOT_GIVEN, expression: str | NotGiven = NOT_GIVEN, - logging: object | NotGiven = NOT_GIVEN, + logging: LoggingParam | NotGiven = NOT_GIVEN, position: rule_edit_params.BlockRulePosition | NotGiven = NOT_GIVEN, ratelimit: rule_edit_params.BlockRuleRatelimit | NotGiven = NOT_GIVEN, ref: str | NotGiven = NOT_GIVEN, diff --git a/src/cloudflare/resources/ssl/analyze.py b/src/cloudflare/resources/ssl/analyze.py index 0e06c52578f..d5dc8263674 100644 --- a/src/cloudflare/resources/ssl/analyze.py +++ b/src/cloudflare/resources/ssl/analyze.py @@ -22,6 +22,8 @@ from ..._wrappers import ResultWrapper from ...types.ssl import analyze_create_params from ..._base_client import make_request_options +from ...types.custom_hostnames import BundleMethod +from ...types.custom_hostnames.bundle_method import BundleMethod __all__ = ["AnalyzeResource", "AsyncAnalyzeResource"] @@ -50,7 +52,7 @@ def create( self, *, zone_id: str, - bundle_method: object | NotGiven = NOT_GIVEN, + bundle_method: BundleMethod | NotGiven = NOT_GIVEN, certificate: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -66,6 +68,11 @@ def create( Args: zone_id: Identifier + bundle_method: 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. + certificate: The zone's SSL certificate or certificate and the intermediate(s). extra_headers: Send extra headers @@ -122,7 +129,7 @@ async def create( self, *, zone_id: str, - bundle_method: object | NotGiven = NOT_GIVEN, + bundle_method: BundleMethod | NotGiven = NOT_GIVEN, certificate: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -138,6 +145,11 @@ async def create( Args: zone_id: Identifier + bundle_method: 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. + certificate: The zone's SSL certificate or certificate and the intermediate(s). extra_headers: Send extra headers diff --git a/src/cloudflare/resources/workers/scripts/content.py b/src/cloudflare/resources/workers/scripts/content.py index 501d7846c04..41fa26e276e 100644 --- a/src/cloudflare/resources/workers/scripts/content.py +++ b/src/cloudflare/resources/workers/scripts/content.py @@ -32,6 +32,7 @@ from ...._base_client import make_request_options from ....types.workers.script import Script from ....types.workers.scripts import content_update_params +from ....types.workers.worker_metadata_param import WorkerMetadataParam __all__ = ["ContentResource", "AsyncContentResource"] @@ -61,7 +62,7 @@ def update( script_name: str, *, account_id: str, - metadata: object, + metadata: WorkerMetadataParam, cf_worker_body_part: str | NotGiven = NOT_GIVEN, cf_worker_main_module_part: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -79,6 +80,8 @@ def update( script_name: Name of the script, used in URLs and route configuration. + metadata: JSON encoded metadata about the uploaded parts and Worker configuration. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -184,7 +187,7 @@ async def update( script_name: str, *, account_id: str, - metadata: object, + metadata: WorkerMetadataParam, cf_worker_body_part: str | NotGiven = NOT_GIVEN, cf_worker_main_module_part: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -202,6 +205,8 @@ async def update( script_name: Name of the script, used in URLs and route configuration. + metadata: JSON encoded metadata about the uploaded parts and Worker configuration. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/cloudflare/resources/workers/scripts/deployments.py b/src/cloudflare/resources/workers/scripts/deployments.py index ed5b4a3ea45..8a16a470833 100644 --- a/src/cloudflare/resources/workers/scripts/deployments.py +++ b/src/cloudflare/resources/workers/scripts/deployments.py @@ -23,6 +23,7 @@ from ...._wrappers import ResultWrapper from ...._base_client import make_request_options from ....types.workers.scripts import deployment_create_params +from ....types.workers.scripts.deployment_param import DeploymentParam from ....types.workers.scripts.deployment_get_response import DeploymentGetResponse from ....types.workers.scripts.deployment_create_response import DeploymentCreateResponse @@ -57,7 +58,7 @@ def create( strategy: Literal["percentage"], versions: Iterable[deployment_create_params.Version], force: bool | NotGiven = NOT_GIVEN, - annotations: object | NotGiven = NOT_GIVEN, + annotations: DeploymentParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -187,7 +188,7 @@ async def create( strategy: Literal["percentage"], versions: Iterable[deployment_create_params.Version], force: bool | NotGiven = NOT_GIVEN, - annotations: object | NotGiven = NOT_GIVEN, + annotations: DeploymentParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, diff --git a/src/cloudflare/resources/workers/scripts/schedules.py b/src/cloudflare/resources/workers/scripts/schedules.py index ddd276a467f..b87d9f76e7c 100644 --- a/src/cloudflare/resources/workers/scripts/schedules.py +++ b/src/cloudflare/resources/workers/scripts/schedules.py @@ -21,6 +21,7 @@ ) from ...._wrappers import ResultWrapper from ...._base_client import make_request_options +from ....types.workers.scripts.schedule_param import ScheduleParam from ....types.workers.scripts.schedule_get_response import ScheduleGetResponse from ....types.workers.scripts.schedule_update_response import ScheduleUpdateResponse @@ -52,7 +53,7 @@ def update( script_name: str, *, account_id: str, - body: Iterable[object], + body: Iterable[ScheduleParam], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -82,7 +83,7 @@ def update( raise ValueError(f"Expected a non-empty value for `script_name` but received {script_name!r}") return self._put( f"/accounts/{account_id}/workers/scripts/{script_name}/schedules", - body=maybe_transform(body, Iterable[object]), + body=maybe_transform(body, Iterable[ScheduleParam]), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -163,7 +164,7 @@ async def update( script_name: str, *, account_id: str, - body: Iterable[object], + body: Iterable[ScheduleParam], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -193,7 +194,7 @@ async def update( raise ValueError(f"Expected a non-empty value for `script_name` but received {script_name!r}") return await self._put( f"/accounts/{account_id}/workers/scripts/{script_name}/schedules", - body=await async_maybe_transform(body, Iterable[object]), + body=await async_maybe_transform(body, Iterable[ScheduleParam]), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/cloudflare/resources/workers_for_platforms/dispatch/namespaces/scripts/content.py b/src/cloudflare/resources/workers_for_platforms/dispatch/namespaces/scripts/content.py index c3740cddc51..49da6102ab3 100644 --- a/src/cloudflare/resources/workers_for_platforms/dispatch/namespaces/scripts/content.py +++ b/src/cloudflare/resources/workers_for_platforms/dispatch/namespaces/scripts/content.py @@ -31,6 +31,7 @@ from ......_wrappers import ResultWrapper from ......_base_client import make_request_options from ......types.workers.script import Script +from ......types.workers.worker_metadata_param import WorkerMetadataParam from ......types.workers_for_platforms.dispatch.namespaces.scripts import content_update_params __all__ = ["ContentResource", "AsyncContentResource"] @@ -62,7 +63,7 @@ def update( *, account_id: str, dispatch_namespace: str, - metadata: object, + metadata: WorkerMetadataParam, cf_worker_body_part: str | NotGiven = NOT_GIVEN, cf_worker_main_module_part: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -82,6 +83,8 @@ def update( script_name: Name of the script, used in URLs and route configuration. + metadata: JSON encoded metadata about the uploaded parts and Worker configuration. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -196,7 +199,7 @@ async def update( *, account_id: str, dispatch_namespace: str, - metadata: object, + metadata: WorkerMetadataParam, cf_worker_body_part: str | NotGiven = NOT_GIVEN, cf_worker_main_module_part: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -216,6 +219,8 @@ async def update( script_name: Name of the script, used in URLs and route configuration. + metadata: JSON encoded metadata about the uploaded parts and Worker configuration. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/cloudflare/resources/zero_trust/gateway/configurations/configurations.py b/src/cloudflare/resources/zero_trust/gateway/configurations/configurations.py index 94faffd3758..b0a63b7be19 100755 --- a/src/cloudflare/resources/zero_trust/gateway/configurations/configurations.py +++ b/src/cloudflare/resources/zero_trust/gateway/configurations/configurations.py @@ -29,10 +29,14 @@ CustomCertificateResourceWithStreamingResponse, AsyncCustomCertificateResourceWithStreamingResponse, ) -from .....types.zero_trust.gateway import configuration_edit_params, configuration_update_params +from .....types.zero_trust.gateway import ( + configuration_edit_params, + configuration_update_params, +) from .....types.zero_trust.gateway.configuration_get_response import ConfigurationGetResponse from .....types.zero_trust.gateway.configuration_edit_response import ConfigurationEditResponse from .....types.zero_trust.gateway.configuration_update_response import ConfigurationUpdateResponse +from .....types.zero_trust.gateway.gateway_configuration_settings_param import GatewayConfigurationSettingsParam __all__ = ["ConfigurationsResource", "AsyncConfigurationsResource"] @@ -65,7 +69,7 @@ def update( self, *, account_id: str, - settings: object | NotGiven = NOT_GIVEN, + settings: GatewayConfigurationSettingsParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -77,6 +81,8 @@ def update( Updates the current Zero Trust account configuration. Args: + settings: Account settings + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -104,7 +110,7 @@ def edit( self, *, account_id: str, - settings: object | NotGiven = NOT_GIVEN, + settings: GatewayConfigurationSettingsParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -121,6 +127,8 @@ def edit( error if any collection of settings is not properly configured. Args: + settings: Account settings + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -210,7 +218,7 @@ async def update( self, *, account_id: str, - settings: object | NotGiven = NOT_GIVEN, + settings: GatewayConfigurationSettingsParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -222,6 +230,8 @@ async def update( Updates the current Zero Trust account configuration. Args: + settings: Account settings + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -251,7 +261,7 @@ async def edit( self, *, account_id: str, - settings: object | NotGiven = NOT_GIVEN, + settings: GatewayConfigurationSettingsParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -268,6 +278,8 @@ async def edit( error if any collection of settings is not properly configured. Args: + settings: Account settings + extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/cloudflare/resources/zero_trust/gateway/logging.py b/src/cloudflare/resources/zero_trust/gateway/logging.py index 2d3426777ae..8f50a51ec9b 100644 --- a/src/cloudflare/resources/zero_trust/gateway/logging.py +++ b/src/cloudflare/resources/zero_trust/gateway/logging.py @@ -52,7 +52,7 @@ def update( *, account_id: str, redact_pii: bool | NotGiven = NOT_GIVEN, - settings_by_rule_type: object | NotGiven = NOT_GIVEN, + settings_by_rule_type: logging_update_params.SettingsByRuleType | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -67,6 +67,8 @@ def update( redact_pii: Redact personally identifiable information from activity logging (PII fields are: source IP, user email, user ID, device ID, URL, referrer, user agent). + settings_by_rule_type: Logging settings by rule type. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -159,7 +161,7 @@ async def update( *, account_id: str, redact_pii: bool | NotGiven = NOT_GIVEN, - settings_by_rule_type: object | NotGiven = NOT_GIVEN, + settings_by_rule_type: logging_update_params.SettingsByRuleType | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -174,6 +176,8 @@ async def update( redact_pii: Redact personally identifiable information from activity logging (PII fields are: source IP, user email, user ID, device ID, URL, referrer, user agent). + settings_by_rule_type: Logging settings by rule type. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/cloudflare/resources/zero_trust/identity_providers/identity_providers.py b/src/cloudflare/resources/zero_trust/identity_providers/identity_providers.py index 71b7e7a5413..9436efa689e 100644 --- a/src/cloudflare/resources/zero_trust/identity_providers/identity_providers.py +++ b/src/cloudflare/resources/zero_trust/identity_providers/identity_providers.py @@ -33,14 +33,17 @@ from ....pagination import SyncSinglePage, AsyncSinglePage from ...._base_client import AsyncPaginator, make_request_options from ....types.zero_trust import ( + IdentityProviderType, identity_provider_list_params, identity_provider_create_params, identity_provider_update_params, ) from ....types.zero_trust.identity_provider import IdentityProvider +from ....types.zero_trust.identity_provider_type import IdentityProviderType from ....types.zero_trust.generic_oauth_config_param import GenericOAuthConfigParam from ....types.zero_trust.identity_provider_list_response import IdentityProviderListResponse from ....types.zero_trust.identity_provider_delete_response import IdentityProviderDeleteResponse +from ....types.zero_trust.identity_provider_scim_config_param import IdentityProviderSCIMConfigParam __all__ = ["IdentityProvidersResource", "AsyncIdentityProvidersResource"] @@ -75,10 +78,10 @@ def create( *, config: identity_provider_create_params.AzureADConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -96,10 +99,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -116,10 +126,10 @@ def create( *, config: identity_provider_create_params.AccessCentrifyConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -137,10 +147,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -157,10 +174,10 @@ def create( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -178,10 +195,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -198,10 +222,10 @@ def create( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -219,10 +243,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -239,10 +270,10 @@ def create( *, config: identity_provider_create_params.AccessGoogleConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -260,10 +291,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -280,10 +318,10 @@ def create( *, config: identity_provider_create_params.AccessGoogleAppsConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -301,10 +339,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -321,10 +366,10 @@ def create( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -342,10 +387,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -362,10 +414,10 @@ def create( *, config: identity_provider_create_params.AccessOIDCConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -383,10 +435,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -403,10 +462,10 @@ def create( *, config: identity_provider_create_params.AccessOktaConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -424,10 +483,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -444,10 +510,10 @@ def create( *, config: identity_provider_create_params.AccessOneloginConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -465,10 +531,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -485,10 +558,10 @@ def create( *, config: identity_provider_create_params.AccessPingoneConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -506,10 +579,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -526,10 +606,10 @@ def create( *, config: identity_provider_create_params.AccessSAMLConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -547,10 +627,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -567,10 +654,10 @@ def create( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -588,10 +675,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -608,10 +702,10 @@ def create( *, config: identity_provider_create_params.AccessOnetimepinConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -629,10 +723,17 @@ def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -659,10 +760,10 @@ def create( | identity_provider_create_params.AccessSAMLConfig | identity_provider_create_params.AccessOnetimepinConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -715,10 +816,10 @@ def update( *, config: identity_provider_update_params.AzureADConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -738,10 +839,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -759,10 +867,10 @@ def update( *, config: identity_provider_update_params.AccessCentrifyConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -782,10 +890,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -803,10 +918,10 @@ def update( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -826,10 +941,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -847,10 +969,10 @@ def update( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -870,10 +992,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -891,10 +1020,10 @@ def update( *, config: identity_provider_update_params.AccessGoogleConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -914,10 +1043,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -935,10 +1071,10 @@ def update( *, config: identity_provider_update_params.AccessGoogleAppsConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -958,10 +1094,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -979,10 +1122,10 @@ def update( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1002,10 +1145,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1023,10 +1173,10 @@ def update( *, config: identity_provider_update_params.AccessOIDCConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1046,10 +1196,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1067,10 +1224,10 @@ def update( *, config: identity_provider_update_params.AccessOktaConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1090,10 +1247,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1111,10 +1275,10 @@ def update( *, config: identity_provider_update_params.AccessOneloginConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1134,10 +1298,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1155,10 +1326,10 @@ def update( *, config: identity_provider_update_params.AccessPingoneConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1178,10 +1349,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1199,10 +1377,10 @@ def update( *, config: identity_provider_update_params.AccessSAMLConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1222,10 +1400,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1243,10 +1428,10 @@ def update( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1266,10 +1451,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1287,10 +1479,10 @@ def update( *, config: identity_provider_update_params.AccessOnetimepinConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1310,10 +1502,17 @@ def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1341,10 +1540,10 @@ def update( | identity_provider_update_params.AccessSAMLConfig | identity_provider_update_params.AccessOnetimepinConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1609,10 +1808,10 @@ async def create( *, config: identity_provider_create_params.AzureADConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1630,10 +1829,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1650,10 +1856,10 @@ async def create( *, config: identity_provider_create_params.AccessCentrifyConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1671,10 +1877,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1691,10 +1904,10 @@ async def create( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1712,10 +1925,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1732,10 +1952,10 @@ async def create( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1753,10 +1973,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1773,10 +2000,10 @@ async def create( *, config: identity_provider_create_params.AccessGoogleConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1794,10 +2021,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1814,10 +2048,10 @@ async def create( *, config: identity_provider_create_params.AccessGoogleAppsConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1835,10 +2069,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1855,10 +2096,10 @@ async def create( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1876,10 +2117,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1896,10 +2144,10 @@ async def create( *, config: identity_provider_create_params.AccessOIDCConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1917,10 +2165,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1937,10 +2192,10 @@ async def create( *, config: identity_provider_create_params.AccessOktaConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1958,10 +2213,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1978,10 +2240,10 @@ async def create( *, config: identity_provider_create_params.AccessOneloginConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1999,10 +2261,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2019,10 +2288,10 @@ async def create( *, config: identity_provider_create_params.AccessPingoneConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2040,10 +2309,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2060,10 +2336,10 @@ async def create( *, config: identity_provider_create_params.AccessSAMLConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2081,10 +2357,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2101,10 +2384,10 @@ async def create( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2122,10 +2405,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2142,10 +2432,10 @@ async def create( *, config: identity_provider_create_params.AccessOnetimepinConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2163,10 +2453,17 @@ async def create( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2193,10 +2490,10 @@ async def create( | identity_provider_create_params.AccessSAMLConfig | identity_provider_create_params.AccessOnetimepinConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2249,10 +2546,10 @@ async def update( *, config: identity_provider_update_params.AzureADConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2272,10 +2569,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2293,10 +2597,10 @@ async def update( *, config: identity_provider_update_params.AccessCentrifyConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2316,10 +2620,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2337,10 +2648,10 @@ async def update( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2360,10 +2671,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2381,10 +2699,10 @@ async def update( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2404,10 +2722,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2425,10 +2750,10 @@ async def update( *, config: identity_provider_update_params.AccessGoogleConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2448,10 +2773,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2469,10 +2801,10 @@ async def update( *, config: identity_provider_update_params.AccessGoogleAppsConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2492,10 +2824,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2513,10 +2852,10 @@ async def update( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2536,10 +2875,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2557,10 +2903,10 @@ async def update( *, config: identity_provider_update_params.AccessOIDCConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2580,10 +2926,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2601,10 +2954,10 @@ async def update( *, config: identity_provider_update_params.AccessOktaConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2624,10 +2977,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2645,10 +3005,10 @@ async def update( *, config: identity_provider_update_params.AccessOneloginConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2668,10 +3028,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2689,10 +3056,10 @@ async def update( *, config: identity_provider_update_params.AccessPingoneConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2712,10 +3079,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2733,10 +3107,10 @@ async def update( *, config: identity_provider_update_params.AccessSAMLConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2756,10 +3130,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2777,10 +3158,10 @@ async def update( *, config: GenericOAuthConfigParam, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2800,10 +3181,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2821,10 +3209,10 @@ async def update( *, config: identity_provider_update_params.AccessOnetimepinConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -2844,10 +3232,17 @@ async def update( name: The name of the identity provider, shown to users on the login page. + type: 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/). + account_id: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. zone_id: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. + scim_config: The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -2875,10 +3270,10 @@ async def update( | identity_provider_update_params.AccessSAMLConfig | identity_provider_update_params.AccessOnetimepinConfig, name: str, - type: object, + type: IdentityProviderType, account_id: str | NotGiven = NOT_GIVEN, zone_id: str | NotGiven = NOT_GIVEN, - scim_config: object | NotGiven = NOT_GIVEN, + scim_config: IdentityProviderSCIMConfigParam | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, diff --git a/src/cloudflare/resources/zones/holds.py b/src/cloudflare/resources/zones/holds.py index a33bfa285c0..521fde82848 100644 --- a/src/cloudflare/resources/zones/holds.py +++ b/src/cloudflare/resources/zones/holds.py @@ -22,6 +22,7 @@ from ..._wrappers import ResultWrapper from ...types.zones import hold_edit_params, hold_create_params, hold_delete_params from ..._base_client import make_request_options +from ...types.zones.zone_hold import ZoneHold __all__ = ["HoldsResource", "AsyncHoldsResource"] @@ -57,7 +58,7 @@ def create( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> ZoneHold: """ Enforce a zone hold on the zone, blocking the creation and activation of zones with this zone's hostname. @@ -88,9 +89,9 @@ def create( extra_body=extra_body, timeout=timeout, query=maybe_transform({"include_subdomains": include_subdomains}, hold_create_params.HoldCreateParams), - post_parser=ResultWrapper[object]._unwrapper, + post_parser=ResultWrapper[ZoneHold]._unwrapper, ), - cast_to=cast(Type[object], ResultWrapper[object]), + cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), ) def delete( @@ -104,7 +105,7 @@ def delete( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> ZoneHold: """ Stop enforcement of a zone hold on the zone, permanently or temporarily, allowing the creation and activation of zones with this zone's hostname. @@ -134,9 +135,9 @@ def delete( extra_body=extra_body, timeout=timeout, query=maybe_transform({"hold_after": hold_after}, hold_delete_params.HoldDeleteParams), - post_parser=ResultWrapper[object]._unwrapper, + post_parser=ResultWrapper[ZoneHold]._unwrapper, ), - cast_to=cast(Type[object], ResultWrapper[object]), + cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), ) def edit( @@ -151,7 +152,7 @@ def edit( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> ZoneHold: """ Update the `hold_after` and/or `include_subdomains` values on an existing zone hold. The hold is enabled if the `hold_after` date-time value is in the past. @@ -194,9 +195,9 @@ def edit( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[object]._unwrapper, + post_parser=ResultWrapper[ZoneHold]._unwrapper, ), - cast_to=cast(Type[object], ResultWrapper[object]), + cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), ) def get( @@ -209,7 +210,7 @@ def get( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> ZoneHold: """ Retrieve whether the zone is subject to a zone hold, and metadata about the hold. @@ -234,9 +235,9 @@ def get( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[object]._unwrapper, + post_parser=ResultWrapper[ZoneHold]._unwrapper, ), - cast_to=cast(Type[object], ResultWrapper[object]), + cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), ) @@ -271,7 +272,7 @@ async def create( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> ZoneHold: """ Enforce a zone hold on the zone, blocking the creation and activation of zones with this zone's hostname. @@ -304,9 +305,9 @@ async def create( query=await async_maybe_transform( {"include_subdomains": include_subdomains}, hold_create_params.HoldCreateParams ), - post_parser=ResultWrapper[object]._unwrapper, + post_parser=ResultWrapper[ZoneHold]._unwrapper, ), - cast_to=cast(Type[object], ResultWrapper[object]), + cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), ) async def delete( @@ -320,7 +321,7 @@ async def delete( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> ZoneHold: """ Stop enforcement of a zone hold on the zone, permanently or temporarily, allowing the creation and activation of zones with this zone's hostname. @@ -350,9 +351,9 @@ async def delete( extra_body=extra_body, timeout=timeout, query=await async_maybe_transform({"hold_after": hold_after}, hold_delete_params.HoldDeleteParams), - post_parser=ResultWrapper[object]._unwrapper, + post_parser=ResultWrapper[ZoneHold]._unwrapper, ), - cast_to=cast(Type[object], ResultWrapper[object]), + cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), ) async def edit( @@ -367,7 +368,7 @@ async def edit( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> ZoneHold: """ Update the `hold_after` and/or `include_subdomains` values on an existing zone hold. The hold is enabled if the `hold_after` date-time value is in the past. @@ -410,9 +411,9 @@ async def edit( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[object]._unwrapper, + post_parser=ResultWrapper[ZoneHold]._unwrapper, ), - cast_to=cast(Type[object], ResultWrapper[object]), + cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), ) async def get( @@ -425,7 +426,7 @@ async def get( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> ZoneHold: """ Retrieve whether the zone is subject to a zone hold, and metadata about the hold. @@ -450,9 +451,9 @@ async def get( extra_query=extra_query, extra_body=extra_body, timeout=timeout, - post_parser=ResultWrapper[object]._unwrapper, + post_parser=ResultWrapper[ZoneHold]._unwrapper, ), - cast_to=cast(Type[object], ResultWrapper[object]), + cast_to=cast(Type[ZoneHold], ResultWrapper[ZoneHold]), ) diff --git a/src/cloudflare/types/addressing/address_map_delete_response.py b/src/cloudflare/types/addressing/address_map_delete_response.py index c550963dbb5..84e3c8f4e59 100644 --- a/src/cloudflare/types/addressing/address_map_delete_response.py +++ b/src/cloudflare/types/addressing/address_map_delete_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["AddressMapDeleteResponse", "ResultInfo"] @@ -23,9 +24,9 @@ class ResultInfo(BaseModel): class AddressMapDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/address_maps/account_delete_response.py b/src/cloudflare/types/addressing/address_maps/account_delete_response.py index 61bdcf23062..744418d64e0 100644 --- a/src/cloudflare/types/addressing/address_maps/account_delete_response.py +++ b/src/cloudflare/types/addressing/address_maps/account_delete_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["AccountDeleteResponse", "ResultInfo"] @@ -23,9 +24,9 @@ class ResultInfo(BaseModel): class AccountDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/address_maps/account_update_response.py b/src/cloudflare/types/addressing/address_maps/account_update_response.py index 228be02bbfd..fd478f16aa5 100644 --- a/src/cloudflare/types/addressing/address_maps/account_update_response.py +++ b/src/cloudflare/types/addressing/address_maps/account_update_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["AccountUpdateResponse", "ResultInfo"] @@ -23,9 +24,9 @@ class ResultInfo(BaseModel): class AccountUpdateResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/address_maps/ip_delete_response.py b/src/cloudflare/types/addressing/address_maps/ip_delete_response.py index a4228a36959..6a1fda031cc 100644 --- a/src/cloudflare/types/addressing/address_maps/ip_delete_response.py +++ b/src/cloudflare/types/addressing/address_maps/ip_delete_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["IPDeleteResponse", "ResultInfo"] @@ -23,9 +24,9 @@ class ResultInfo(BaseModel): class IPDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/address_maps/ip_update_response.py b/src/cloudflare/types/addressing/address_maps/ip_update_response.py index 62ae951ce2b..c224d9f3888 100644 --- a/src/cloudflare/types/addressing/address_maps/ip_update_response.py +++ b/src/cloudflare/types/addressing/address_maps/ip_update_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["IPUpdateResponse", "ResultInfo"] @@ -23,9 +24,9 @@ class ResultInfo(BaseModel): class IPUpdateResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/address_maps/zone_delete_response.py b/src/cloudflare/types/addressing/address_maps/zone_delete_response.py index 51aeb240fd9..62ae20be667 100644 --- a/src/cloudflare/types/addressing/address_maps/zone_delete_response.py +++ b/src/cloudflare/types/addressing/address_maps/zone_delete_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["ZoneDeleteResponse", "ResultInfo"] @@ -23,9 +24,9 @@ class ResultInfo(BaseModel): class ZoneDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/address_maps/zone_update_response.py b/src/cloudflare/types/addressing/address_maps/zone_update_response.py index 68bba584585..8d9473e4e28 100644 --- a/src/cloudflare/types/addressing/address_maps/zone_update_response.py +++ b/src/cloudflare/types/addressing/address_maps/zone_update_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["ZoneUpdateResponse", "ResultInfo"] @@ -23,9 +24,9 @@ class ResultInfo(BaseModel): class ZoneUpdateResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/prefix_delete_response.py b/src/cloudflare/types/addressing/prefix_delete_response.py index bd64e7ff86b..641bfe8f418 100644 --- a/src/cloudflare/types/addressing/prefix_delete_response.py +++ b/src/cloudflare/types/addressing/prefix_delete_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["PrefixDeleteResponse", "ResultInfo"] @@ -23,9 +24,9 @@ class ResultInfo(BaseModel): class PrefixDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/prefixes/service_binding_delete_response.py b/src/cloudflare/types/addressing/prefixes/service_binding_delete_response.py index 451b4d33d32..7c24a85fea7 100644 --- a/src/cloudflare/types/addressing/prefixes/service_binding_delete_response.py +++ b/src/cloudflare/types/addressing/prefixes/service_binding_delete_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["ServiceBindingDeleteResponse"] class ServiceBindingDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/addressing/regional_hostname_delete_response.py b/src/cloudflare/types/addressing/regional_hostname_delete_response.py index 496282c7069..1031166663d 100644 --- a/src/cloudflare/types/addressing/regional_hostname_delete_response.py +++ b/src/cloudflare/types/addressing/regional_hostname_delete_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["RegionalHostnameDeleteResponse"] class RegionalHostnameDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/alerting/destinations/pagerduty_delete_response.py b/src/cloudflare/types/alerting/destinations/pagerduty_delete_response.py index cf001fd2c8b..958d795048c 100644 --- a/src/cloudflare/types/alerting/destinations/pagerduty_delete_response.py +++ b/src/cloudflare/types/alerting/destinations/pagerduty_delete_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["PagerdutyDeleteResponse", "ResultInfo"] @@ -23,9 +24,9 @@ class ResultInfo(BaseModel): class PagerdutyDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/alerting/destinations/webhook_delete_response.py b/src/cloudflare/types/alerting/destinations/webhook_delete_response.py index 02bcde4bcf3..eef159b9921 100644 --- a/src/cloudflare/types/alerting/destinations/webhook_delete_response.py +++ b/src/cloudflare/types/alerting/destinations/webhook_delete_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["WebhookDeleteResponse", "ResultInfo"] @@ -23,9 +24,9 @@ class ResultInfo(BaseModel): class WebhookDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/alerting/policy_delete_response.py b/src/cloudflare/types/alerting/policy_delete_response.py index 90be60e835f..d0feccf6ae2 100644 --- a/src/cloudflare/types/alerting/policy_delete_response.py +++ b/src/cloudflare/types/alerting/policy_delete_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["PolicyDeleteResponse", "ResultInfo"] @@ -23,9 +24,9 @@ class ResultInfo(BaseModel): class PolicyDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/api_gateway/message.py b/src/cloudflare/types/api_gateway/message.py index 729ee4daf7d..3cc2e671066 100644 --- a/src/cloudflare/types/api_gateway/message.py +++ b/src/cloudflare/types/api_gateway/message.py @@ -3,6 +3,8 @@ from typing import List from typing_extensions import TypeAlias +from ..shared.response_info import ResponseInfo + __all__ = ["Message"] -Message: TypeAlias = List[object] +Message: TypeAlias = List[ResponseInfo] diff --git a/src/cloudflare/types/brand_protection/__init__.py b/src/cloudflare/types/brand_protection/__init__.py index 0cf827a9c76..3fa7ed724bd 100644 --- a/src/cloudflare/types/brand_protection/__init__.py +++ b/src/cloudflare/types/brand_protection/__init__.py @@ -4,5 +4,8 @@ from .info import Info as Info from .submit import Submit as Submit +from .rule_match import RuleMatch as RuleMatch +from .scan_status import ScanStatus as ScanStatus +from .url_info_model_results import URLInfoModelResults as URLInfoModelResults from .brand_protection_submit_params import BrandProtectionSubmitParams as BrandProtectionSubmitParams from .brand_protection_url_info_params import BrandProtectionURLInfoParams as BrandProtectionURLInfoParams diff --git a/src/cloudflare/types/brand_protection/info.py b/src/cloudflare/types/brand_protection/info.py index 0e1435ca4a1..ecc27c62f00 100644 --- a/src/cloudflare/types/brand_protection/info.py +++ b/src/cloudflare/types/brand_protection/info.py @@ -5,24 +5,36 @@ from pydantic import Field as FieldInfo from ..._models import BaseModel +from .rule_match import RuleMatch +from .scan_status import ScanStatus +from .url_info_model_results import URLInfoModelResults -__all__ = ["Info"] +__all__ = ["Info", "Categorization"] + + +class Categorization(BaseModel): + category: Optional[str] = None + """Name of the category applied.""" + + verification_status: Optional[str] = None + """Result of human review for this categorization.""" class Info(BaseModel): - categorizations: Optional[List[object]] = None + categorizations: Optional[List[Categorization]] = None """List of categorizations applied to this submission.""" - ai_model_results: Optional[List[object]] = FieldInfo(alias="model_results", default=None) + ai_model_results: Optional[List[URLInfoModelResults]] = FieldInfo(alias="model_results", default=None) """List of model results for completed scans.""" - rule_matches: Optional[List[object]] = None + rule_matches: Optional[List[RuleMatch]] = None """ List of signatures that matched against site content found when crawling the URL. """ - scan_status: Optional[object] = None + scan_status: Optional[ScanStatus] = None + """Status of the most recent scan found.""" screenshot_download_signature: Optional[str] = None """For internal use.""" diff --git a/src/cloudflare/types/brand_protection/rule_match.py b/src/cloudflare/types/brand_protection/rule_match.py new file mode 100644 index 00000000000..00452de5674 --- /dev/null +++ b/src/cloudflare/types/brand_protection/rule_match.py @@ -0,0 +1,21 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ..._models import BaseModel + +__all__ = ["RuleMatch"] + + +class RuleMatch(BaseModel): + banning: Optional[bool] = None + """For internal use.""" + + blocking: Optional[bool] = None + """For internal use.""" + + description: Optional[str] = None + """Description of the signature that matched.""" + + name: Optional[str] = None + """Name of the signature that matched.""" diff --git a/src/cloudflare/types/brand_protection/scan_status.py b/src/cloudflare/types/brand_protection/scan_status.py new file mode 100644 index 00000000000..711de0b5ed6 --- /dev/null +++ b/src/cloudflare/types/brand_protection/scan_status.py @@ -0,0 +1,21 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ..._models import BaseModel + +__all__ = ["ScanStatus"] + + +class ScanStatus(BaseModel): + last_processed: Optional[str] = None + """Timestamp of when the submission was processed.""" + + scan_complete: Optional[bool] = None + """For internal use.""" + + status_code: Optional[int] = None + """Status code that the crawler received when loading the submitted URL.""" + + submission_id: Optional[int] = None + """ID of the most recent submission.""" diff --git a/src/cloudflare/types/brand_protection/submit.py b/src/cloudflare/types/brand_protection/submit.py index 25fc7584e1a..766580137d5 100644 --- a/src/cloudflare/types/brand_protection/submit.py +++ b/src/cloudflare/types/brand_protection/submit.py @@ -4,18 +4,39 @@ from ..._models import BaseModel -__all__ = ["Submit"] +__all__ = ["Submit", "ExcludedURL", "SkippedURL", "SubmittedURL"] + + +class ExcludedURL(BaseModel): + url: Optional[str] = None + """URL that was excluded.""" + + +class SkippedURL(BaseModel): + url: Optional[str] = None + """URL that was skipped.""" + + url_id: Optional[int] = None + """ID of the submission of that URL that is currently scanning.""" + + +class SubmittedURL(BaseModel): + url: Optional[str] = None + """URL that was submitted.""" + + url_id: Optional[int] = None + """ID assigned to this URL submission. Used to retrieve scanning results.""" class Submit(BaseModel): - excluded_urls: Optional[List[object]] = None + excluded_urls: Optional[List[ExcludedURL]] = None """ URLs that were excluded from scanning because their domain is in our no-scan list. """ - skipped_urls: Optional[List[object]] = None + skipped_urls: Optional[List[SkippedURL]] = None """URLs that were skipped because the same URL is currently being scanned""" - submitted_urls: Optional[List[object]] = None + submitted_urls: Optional[List[SubmittedURL]] = None """URLs that were successfully submitted for scanning.""" diff --git a/src/cloudflare/types/brand_protection/url_info_model_results.py b/src/cloudflare/types/brand_protection/url_info_model_results.py new file mode 100644 index 00000000000..cd2086aba49 --- /dev/null +++ b/src/cloudflare/types/brand_protection/url_info_model_results.py @@ -0,0 +1,17 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from pydantic import Field as FieldInfo + +from ..._models import BaseModel + +__all__ = ["URLInfoModelResults"] + + +class URLInfoModelResults(BaseModel): + ai_model_name: Optional[str] = FieldInfo(alias="model_name", default=None) + """Name of the model.""" + + ai_model_score: Optional[float] = FieldInfo(alias="model_score", default=None) + """Score output by the model for this submission.""" diff --git a/src/cloudflare/types/cache/__init__.py b/src/cloudflare/types/cache/__init__.py index 93112b27f49..10937a5c1b3 100644 --- a/src/cloudflare/types/cache/__init__.py +++ b/src/cloudflare/types/cache/__init__.py @@ -3,10 +3,13 @@ from __future__ import annotations from .state import State as State +from .cache_reserve import CacheReserve as CacheReserve from .cache_purge_params import CachePurgeParams as CachePurgeParams +from .cache_reserve_clear import CacheReserveClear as CacheReserveClear from .variant_edit_params import VariantEditParams as VariantEditParams from .cache_purge_response import CachePurgeResponse as CachePurgeResponse from .variant_get_response import VariantGetResponse as VariantGetResponse +from .regional_tiered_cache import RegionalTieredCache as RegionalTieredCache from .variant_edit_response import VariantEditResponse as VariantEditResponse from .variant_delete_response import VariantDeleteResponse as VariantDeleteResponse from .cache_reserve_edit_params import CacheReserveEditParams as CacheReserveEditParams diff --git a/src/cloudflare/types/cache/cache_reserve.py b/src/cloudflare/types/cache/cache_reserve.py index 8977879f0b6..05aac60eee5 100644 --- a/src/cloudflare/types/cache/cache_reserve.py +++ b/src/cloudflare/types/cache/cache_reserve.py @@ -1,7 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing_extensions import TypeAlias +from typing_extensions import Literal, TypeAlias __all__ = ["CacheReserve"] -CacheReserve: TypeAlias = object +CacheReserve: TypeAlias = Literal["cache_reserve"] diff --git a/src/cloudflare/types/cache/cache_reserve_clear.py b/src/cloudflare/types/cache/cache_reserve_clear.py new file mode 100644 index 00000000000..2c89da30490 --- /dev/null +++ b/src/cloudflare/types/cache/cache_reserve_clear.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import Literal, TypeAlias + +__all__ = ["CacheReserveClear"] + +CacheReserveClear: TypeAlias = Literal["cache_reserve_clear"] diff --git a/src/cloudflare/types/cache/cache_reserve_clear_response.py b/src/cloudflare/types/cache/cache_reserve_clear_response.py index fdd8b21f451..48410c41b3c 100644 --- a/src/cloudflare/types/cache/cache_reserve_clear_response.py +++ b/src/cloudflare/types/cache/cache_reserve_clear_response.py @@ -5,12 +5,14 @@ from .state import State from ..._models import BaseModel +from .cache_reserve_clear import CacheReserveClear __all__ = ["CacheReserveClearResponse"] class CacheReserveClearResponse(BaseModel): - id: object + id: CacheReserveClear + """ID of the zone setting.""" start_ts: datetime """The time that the latest Cache Reserve Clear operation started.""" diff --git a/src/cloudflare/types/cache/cache_reserve_edit_response.py b/src/cloudflare/types/cache/cache_reserve_edit_response.py index 2334d07a05e..1ecbfb5cc66 100644 --- a/src/cloudflare/types/cache/cache_reserve_edit_response.py +++ b/src/cloudflare/types/cache/cache_reserve_edit_response.py @@ -5,12 +5,14 @@ from typing_extensions import Literal from ..._models import BaseModel +from .cache_reserve import CacheReserve __all__ = ["CacheReserveEditResponse"] class CacheReserveEditResponse(BaseModel): - id: object + id: CacheReserve + """ID of the zone setting.""" editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cache/cache_reserve_get_response.py b/src/cloudflare/types/cache/cache_reserve_get_response.py index f4954549804..bfca4dcc125 100644 --- a/src/cloudflare/types/cache/cache_reserve_get_response.py +++ b/src/cloudflare/types/cache/cache_reserve_get_response.py @@ -5,12 +5,14 @@ from typing_extensions import Literal from ..._models import BaseModel +from .cache_reserve import CacheReserve __all__ = ["CacheReserveGetResponse"] class CacheReserveGetResponse(BaseModel): - id: object + id: CacheReserve + """ID of the zone setting.""" editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cache/cache_reserve_status_response.py b/src/cloudflare/types/cache/cache_reserve_status_response.py index 90d8adc4411..277b898dd11 100644 --- a/src/cloudflare/types/cache/cache_reserve_status_response.py +++ b/src/cloudflare/types/cache/cache_reserve_status_response.py @@ -5,12 +5,14 @@ from .state import State from ..._models import BaseModel +from .cache_reserve_clear import CacheReserveClear __all__ = ["CacheReserveStatusResponse"] class CacheReserveStatusResponse(BaseModel): - id: object + id: CacheReserveClear + """ID of the zone setting.""" start_ts: datetime """The time that the latest Cache Reserve Clear operation started.""" diff --git a/src/cloudflare/types/cache/regional_tiered_cache.py b/src/cloudflare/types/cache/regional_tiered_cache.py index 12849b4bc37..83303075765 100644 --- a/src/cloudflare/types/cache/regional_tiered_cache.py +++ b/src/cloudflare/types/cache/regional_tiered_cache.py @@ -1,7 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing_extensions import TypeAlias +from typing_extensions import Literal, TypeAlias __all__ = ["RegionalTieredCache"] -RegionalTieredCache: TypeAlias = object +RegionalTieredCache: TypeAlias = Literal["tc_regional"] diff --git a/src/cloudflare/types/cache/regional_tiered_cache_edit_response.py b/src/cloudflare/types/cache/regional_tiered_cache_edit_response.py index 85ee16c520d..089ee489e99 100644 --- a/src/cloudflare/types/cache/regional_tiered_cache_edit_response.py +++ b/src/cloudflare/types/cache/regional_tiered_cache_edit_response.py @@ -5,12 +5,14 @@ from typing_extensions import Literal from ..._models import BaseModel +from .regional_tiered_cache import RegionalTieredCache __all__ = ["RegionalTieredCacheEditResponse"] class RegionalTieredCacheEditResponse(BaseModel): - id: object + id: RegionalTieredCache + """ID of the zone setting.""" editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cache/regional_tiered_cache_get_response.py b/src/cloudflare/types/cache/regional_tiered_cache_get_response.py index 003151d1d9b..2730910de20 100644 --- a/src/cloudflare/types/cache/regional_tiered_cache_get_response.py +++ b/src/cloudflare/types/cache/regional_tiered_cache_get_response.py @@ -5,12 +5,14 @@ from typing_extensions import Literal from ..._models import BaseModel +from .regional_tiered_cache import RegionalTieredCache __all__ = ["RegionalTieredCacheGetResponse"] class RegionalTieredCacheGetResponse(BaseModel): - id: object + id: RegionalTieredCache + """ID of the zone setting.""" editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cache/variant_delete_response.py b/src/cloudflare/types/cache/variant_delete_response.py index 8892900d988..6d697bb1232 100644 --- a/src/cloudflare/types/cache/variant_delete_response.py +++ b/src/cloudflare/types/cache/variant_delete_response.py @@ -2,6 +2,7 @@ from typing import Optional from datetime import datetime +from typing_extensions import Literal from ..._models import BaseModel @@ -9,7 +10,8 @@ class VariantDeleteResponse(BaseModel): - id: object + id: Literal["variants"] + """ID of the zone setting.""" editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cache/variant_edit_response.py b/src/cloudflare/types/cache/variant_edit_response.py index b972ff108e8..0cd828d795a 100644 --- a/src/cloudflare/types/cache/variant_edit_response.py +++ b/src/cloudflare/types/cache/variant_edit_response.py @@ -2,6 +2,7 @@ from typing import Optional from datetime import datetime +from typing_extensions import Literal from ..._models import BaseModel @@ -9,7 +10,8 @@ class VariantEditResponse(BaseModel): - id: object + id: Literal["variants"] + """ID of the zone setting.""" editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cache/variant_get_response.py b/src/cloudflare/types/cache/variant_get_response.py index 1b9d60d1947..1b440b5b812 100644 --- a/src/cloudflare/types/cache/variant_get_response.py +++ b/src/cloudflare/types/cache/variant_get_response.py @@ -2,6 +2,7 @@ from typing import Optional from datetime import datetime +from typing_extensions import Literal from ..._models import BaseModel @@ -9,7 +10,8 @@ class VariantGetResponse(BaseModel): - id: object + id: Literal["variants"] + """ID of the zone setting.""" editable: bool """Whether the setting is editable""" diff --git a/src/cloudflare/types/cloudforce_one/request_delete_response.py b/src/cloudflare/types/cloudforce_one/request_delete_response.py index dad4ef9c3b3..b7ed5ffbe10 100644 --- a/src/cloudflare/types/cloudforce_one/request_delete_response.py +++ b/src/cloudflare/types/cloudforce_one/request_delete_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["RequestDeleteResponse"] class RequestDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/cloudforce_one/requests/asset_delete_response.py b/src/cloudflare/types/cloudforce_one/requests/asset_delete_response.py index 5e4512cd861..53f0cdcba72 100644 --- a/src/cloudflare/types/cloudforce_one/requests/asset_delete_response.py +++ b/src/cloudflare/types/cloudforce_one/requests/asset_delete_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["AssetDeleteResponse"] class AssetDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/cloudforce_one/requests/message_delete_response.py b/src/cloudflare/types/cloudforce_one/requests/message_delete_response.py index f2b13d0b1d9..a0d45a64036 100644 --- a/src/cloudflare/types/cloudforce_one/requests/message_delete_response.py +++ b/src/cloudflare/types/cloudforce_one/requests/message_delete_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["MessageDeleteResponse"] class MessageDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/cloudforce_one/requests/priority_delete_response.py b/src/cloudflare/types/cloudforce_one/requests/priority_delete_response.py index d88cf0c766c..ee172239bfe 100644 --- a/src/cloudflare/types/cloudforce_one/requests/priority_delete_response.py +++ b/src/cloudflare/types/cloudforce_one/requests/priority_delete_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["PriorityDeleteResponse"] class PriorityDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/custom_certificates/custom_certificate.py b/src/cloudflare/types/custom_certificates/custom_certificate.py index 821300d4411..b5579f8a95f 100644 --- a/src/cloudflare/types/custom_certificates/custom_certificate.py +++ b/src/cloudflare/types/custom_certificates/custom_certificate.py @@ -6,6 +6,7 @@ from ..._models import BaseModel from .geo_restrictions import GeoRestrictions +from ..custom_hostnames.bundle_method import BundleMethod from ..keyless_certificates.keyless_certificate import KeylessCertificate __all__ = ["CustomCertificate"] @@ -15,7 +16,13 @@ class CustomCertificate(BaseModel): id: str """Identifier""" - bundle_method: object + bundle_method: BundleMethod + """ + 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. + """ expires_on: datetime """When the certificate from the authority expires.""" diff --git a/src/cloudflare/types/custom_certificates/custom_certificate_create_params.py b/src/cloudflare/types/custom_certificates/custom_certificate_create_params.py index d9ab4013b34..015cc848ee0 100644 --- a/src/cloudflare/types/custom_certificates/custom_certificate_create_params.py +++ b/src/cloudflare/types/custom_certificates/custom_certificate_create_params.py @@ -5,6 +5,7 @@ from typing_extensions import Literal, Required, TypedDict from .geo_restrictions_param import GeoRestrictionsParam +from ..custom_hostnames.bundle_method import BundleMethod __all__ = ["CustomCertificateCreateParams"] @@ -19,7 +20,13 @@ class CustomCertificateCreateParams(TypedDict, total=False): private_key: Required[str] """The zone's private key.""" - bundle_method: object + bundle_method: BundleMethod + """ + 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. + """ geo_restrictions: GeoRestrictionsParam """ diff --git a/src/cloudflare/types/custom_certificates/custom_certificate_edit_params.py b/src/cloudflare/types/custom_certificates/custom_certificate_edit_params.py index 26e42248621..3fc3b9281b0 100644 --- a/src/cloudflare/types/custom_certificates/custom_certificate_edit_params.py +++ b/src/cloudflare/types/custom_certificates/custom_certificate_edit_params.py @@ -5,6 +5,7 @@ from typing_extensions import Required, TypedDict from .geo_restrictions_param import GeoRestrictionsParam +from ..custom_hostnames.bundle_method import BundleMethod __all__ = ["CustomCertificateEditParams"] @@ -13,7 +14,13 @@ class CustomCertificateEditParams(TypedDict, total=False): zone_id: Required[str] """Identifier""" - bundle_method: object + bundle_method: BundleMethod + """ + 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. + """ certificate: str """The zone's SSL certificate or certificate and the intermediate(s).""" diff --git a/src/cloudflare/types/custom_hostnames/__init__.py b/src/cloudflare/types/custom_hostnames/__init__.py index b01fdacf733..c6bdf8da108 100644 --- a/src/cloudflare/types/custom_hostnames/__init__.py +++ b/src/cloudflare/types/custom_hostnames/__init__.py @@ -2,6 +2,9 @@ from __future__ import annotations +from .dcv_method import DCVMethod as DCVMethod +from .bundle_method import BundleMethod as BundleMethod +from .domain_validation_type import DomainValidationType as DomainValidationType from .custom_hostname_edit_params import CustomHostnameEditParams as CustomHostnameEditParams from .custom_hostname_list_params import CustomHostnameListParams as CustomHostnameListParams from .custom_hostname_get_response import CustomHostnameGetResponse as CustomHostnameGetResponse diff --git a/src/cloudflare/types/custom_hostnames/bundle_method.py b/src/cloudflare/types/custom_hostnames/bundle_method.py new file mode 100644 index 00000000000..56a82b7270b --- /dev/null +++ b/src/cloudflare/types/custom_hostnames/bundle_method.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import Literal, TypeAlias + +__all__ = ["BundleMethod"] + +BundleMethod: TypeAlias = Literal["ubiquitous", "optimal", "force"] diff --git a/src/cloudflare/types/custom_hostnames/certificate_pack/certificate_update_response.py b/src/cloudflare/types/custom_hostnames/certificate_pack/certificate_update_response.py index 34cc66fbbdf..925381fec01 100644 --- a/src/cloudflare/types/custom_hostnames/certificate_pack/certificate_update_response.py +++ b/src/cloudflare/types/custom_hostnames/certificate_pack/certificate_update_response.py @@ -5,7 +5,10 @@ from typing_extensions import Literal from ...._models import BaseModel +from ..dcv_method import DCVMethod +from ..bundle_method import BundleMethod from ...shared.certificate_ca import CertificateCA +from ..domain_validation_type import DomainValidationType __all__ = [ "CertificateUpdateResponse", @@ -76,7 +79,13 @@ class SSL(BaseModel): id: Optional[str] = None """Custom hostname SSL identifier tag.""" - bundle_method: Optional[object] = None + bundle_method: Optional[BundleMethod] = None + """ + 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. + """ certificate_authority: Optional[CertificateCA] = None """The Certificate Authority that will issue the certificate""" @@ -99,7 +108,8 @@ class SSL(BaseModel): issuer: Optional[str] = None """The issuer on a custom uploaded certificate.""" - method: Optional[object] = None + method: Optional[DCVMethod] = None + """Domain control validation (DCV) method used for this hostname.""" serial_number: Optional[str] = None """The serial number on a custom uploaded certificate.""" @@ -136,7 +146,11 @@ class SSL(BaseModel): ] = None """Status of the hostname's SSL certificates.""" - type: Optional[object] = None + type: Optional[DomainValidationType] = None + """Level of validation to be used for this hostname. + + Domain validation (dv) must be used. + """ uploaded_on: Optional[datetime] = None """The time the custom certificate was uploaded.""" diff --git a/src/cloudflare/types/custom_hostnames/custom_hostname_create_params.py b/src/cloudflare/types/custom_hostnames/custom_hostname_create_params.py index 96c909ff64b..d9b23bd760e 100644 --- a/src/cloudflare/types/custom_hostnames/custom_hostname_create_params.py +++ b/src/cloudflare/types/custom_hostnames/custom_hostname_create_params.py @@ -5,7 +5,10 @@ from typing import Dict, List, Iterable from typing_extensions import Literal, Required, TypedDict +from .dcv_method import DCVMethod +from .bundle_method import BundleMethod from ..shared.certificate_ca import CertificateCA +from .domain_validation_type import DomainValidationType __all__ = ["CustomHostnameCreateParams", "SSL", "SSLCustomCERTBundle", "SSLSettings"] @@ -56,7 +59,13 @@ class SSLSettings(TypedDict, total=False): class SSL(TypedDict, total=False): - bundle_method: object + bundle_method: BundleMethod + """ + 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. + """ certificate_authority: CertificateCA """The Certificate Authority that will issue the certificate""" @@ -77,12 +86,17 @@ class SSL(TypedDict, total=False): custom_key: str """The key for a custom uploaded certificate.""" - method: object + method: DCVMethod + """Domain control validation (DCV) method used for this hostname.""" settings: SSLSettings """SSL specific settings.""" - type: object + type: DomainValidationType + """Level of validation to be used for this hostname. + + Domain validation (dv) must be used. + """ wildcard: bool """Indicates whether the certificate covers a wildcard.""" diff --git a/src/cloudflare/types/custom_hostnames/custom_hostname_create_response.py b/src/cloudflare/types/custom_hostnames/custom_hostname_create_response.py index ec9ebdd94a2..8c80a753b08 100644 --- a/src/cloudflare/types/custom_hostnames/custom_hostname_create_response.py +++ b/src/cloudflare/types/custom_hostnames/custom_hostname_create_response.py @@ -5,7 +5,10 @@ from typing_extensions import Literal from ..._models import BaseModel +from .dcv_method import DCVMethod +from .bundle_method import BundleMethod from ..shared.certificate_ca import CertificateCA +from .domain_validation_type import DomainValidationType __all__ = [ "CustomHostnameCreateResponse", @@ -76,7 +79,13 @@ class SSL(BaseModel): id: Optional[str] = None """Custom hostname SSL identifier tag.""" - bundle_method: Optional[object] = None + bundle_method: Optional[BundleMethod] = None + """ + 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. + """ certificate_authority: Optional[CertificateCA] = None """The Certificate Authority that will issue the certificate""" @@ -99,7 +108,8 @@ class SSL(BaseModel): issuer: Optional[str] = None """The issuer on a custom uploaded certificate.""" - method: Optional[object] = None + method: Optional[DCVMethod] = None + """Domain control validation (DCV) method used for this hostname.""" serial_number: Optional[str] = None """The serial number on a custom uploaded certificate.""" @@ -136,7 +146,11 @@ class SSL(BaseModel): ] = None """Status of the hostname's SSL certificates.""" - type: Optional[object] = None + type: Optional[DomainValidationType] = None + """Level of validation to be used for this hostname. + + Domain validation (dv) must be used. + """ uploaded_on: Optional[datetime] = None """The time the custom certificate was uploaded.""" diff --git a/src/cloudflare/types/custom_hostnames/custom_hostname_edit_params.py b/src/cloudflare/types/custom_hostnames/custom_hostname_edit_params.py index 3ea4e8001b7..9639155cb15 100644 --- a/src/cloudflare/types/custom_hostnames/custom_hostname_edit_params.py +++ b/src/cloudflare/types/custom_hostnames/custom_hostname_edit_params.py @@ -5,7 +5,10 @@ from typing import Dict, List, Iterable from typing_extensions import Literal, Required, TypedDict +from .dcv_method import DCVMethod +from .bundle_method import BundleMethod from ..shared.certificate_ca import CertificateCA +from .domain_validation_type import DomainValidationType __all__ = ["CustomHostnameEditParams", "SSL", "SSLCustomCERTBundle", "SSLSettings"] @@ -68,7 +71,13 @@ class SSLSettings(TypedDict, total=False): class SSL(TypedDict, total=False): - bundle_method: object + bundle_method: BundleMethod + """ + 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. + """ certificate_authority: CertificateCA """The Certificate Authority that will issue the certificate""" @@ -89,12 +98,17 @@ class SSL(TypedDict, total=False): custom_key: str """The key for a custom uploaded certificate.""" - method: object + method: DCVMethod + """Domain control validation (DCV) method used for this hostname.""" settings: SSLSettings """SSL specific settings.""" - type: object + type: DomainValidationType + """Level of validation to be used for this hostname. + + Domain validation (dv) must be used. + """ wildcard: bool """Indicates whether the certificate covers a wildcard.""" diff --git a/src/cloudflare/types/custom_hostnames/custom_hostname_edit_response.py b/src/cloudflare/types/custom_hostnames/custom_hostname_edit_response.py index 75c4ff0a4fd..b6e32e511ce 100644 --- a/src/cloudflare/types/custom_hostnames/custom_hostname_edit_response.py +++ b/src/cloudflare/types/custom_hostnames/custom_hostname_edit_response.py @@ -5,7 +5,10 @@ from typing_extensions import Literal from ..._models import BaseModel +from .dcv_method import DCVMethod +from .bundle_method import BundleMethod from ..shared.certificate_ca import CertificateCA +from .domain_validation_type import DomainValidationType __all__ = [ "CustomHostnameEditResponse", @@ -76,7 +79,13 @@ class SSL(BaseModel): id: Optional[str] = None """Custom hostname SSL identifier tag.""" - bundle_method: Optional[object] = None + bundle_method: Optional[BundleMethod] = None + """ + 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. + """ certificate_authority: Optional[CertificateCA] = None """The Certificate Authority that will issue the certificate""" @@ -99,7 +108,8 @@ class SSL(BaseModel): issuer: Optional[str] = None """The issuer on a custom uploaded certificate.""" - method: Optional[object] = None + method: Optional[DCVMethod] = None + """Domain control validation (DCV) method used for this hostname.""" serial_number: Optional[str] = None """The serial number on a custom uploaded certificate.""" @@ -136,7 +146,11 @@ class SSL(BaseModel): ] = None """Status of the hostname's SSL certificates.""" - type: Optional[object] = None + type: Optional[DomainValidationType] = None + """Level of validation to be used for this hostname. + + Domain validation (dv) must be used. + """ uploaded_on: Optional[datetime] = None """The time the custom certificate was uploaded.""" diff --git a/src/cloudflare/types/custom_hostnames/custom_hostname_get_response.py b/src/cloudflare/types/custom_hostnames/custom_hostname_get_response.py index d313ba0b090..8c1d1fe596d 100644 --- a/src/cloudflare/types/custom_hostnames/custom_hostname_get_response.py +++ b/src/cloudflare/types/custom_hostnames/custom_hostname_get_response.py @@ -5,7 +5,10 @@ from typing_extensions import Literal from ..._models import BaseModel +from .dcv_method import DCVMethod +from .bundle_method import BundleMethod from ..shared.certificate_ca import CertificateCA +from .domain_validation_type import DomainValidationType __all__ = [ "CustomHostnameGetResponse", @@ -76,7 +79,13 @@ class SSL(BaseModel): id: Optional[str] = None """Custom hostname SSL identifier tag.""" - bundle_method: Optional[object] = None + bundle_method: Optional[BundleMethod] = None + """ + 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. + """ certificate_authority: Optional[CertificateCA] = None """The Certificate Authority that will issue the certificate""" @@ -99,7 +108,8 @@ class SSL(BaseModel): issuer: Optional[str] = None """The issuer on a custom uploaded certificate.""" - method: Optional[object] = None + method: Optional[DCVMethod] = None + """Domain control validation (DCV) method used for this hostname.""" serial_number: Optional[str] = None """The serial number on a custom uploaded certificate.""" @@ -136,7 +146,11 @@ class SSL(BaseModel): ] = None """Status of the hostname's SSL certificates.""" - type: Optional[object] = None + type: Optional[DomainValidationType] = None + """Level of validation to be used for this hostname. + + Domain validation (dv) must be used. + """ uploaded_on: Optional[datetime] = None """The time the custom certificate was uploaded.""" diff --git a/src/cloudflare/types/custom_hostnames/custom_hostname_list_response.py b/src/cloudflare/types/custom_hostnames/custom_hostname_list_response.py index 54120217115..cadfd96f2b0 100644 --- a/src/cloudflare/types/custom_hostnames/custom_hostname_list_response.py +++ b/src/cloudflare/types/custom_hostnames/custom_hostname_list_response.py @@ -5,7 +5,10 @@ from typing_extensions import Literal from ..._models import BaseModel +from .dcv_method import DCVMethod +from .bundle_method import BundleMethod from ..shared.certificate_ca import CertificateCA +from .domain_validation_type import DomainValidationType __all__ = [ "CustomHostnameListResponse", @@ -76,7 +79,13 @@ class SSL(BaseModel): id: Optional[str] = None """Custom hostname SSL identifier tag.""" - bundle_method: Optional[object] = None + bundle_method: Optional[BundleMethod] = None + """ + 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. + """ certificate_authority: Optional[CertificateCA] = None """The Certificate Authority that will issue the certificate""" @@ -99,7 +108,8 @@ class SSL(BaseModel): issuer: Optional[str] = None """The issuer on a custom uploaded certificate.""" - method: Optional[object] = None + method: Optional[DCVMethod] = None + """Domain control validation (DCV) method used for this hostname.""" serial_number: Optional[str] = None """The serial number on a custom uploaded certificate.""" @@ -136,7 +146,11 @@ class SSL(BaseModel): ] = None """Status of the hostname's SSL certificates.""" - type: Optional[object] = None + type: Optional[DomainValidationType] = None + """Level of validation to be used for this hostname. + + Domain validation (dv) must be used. + """ uploaded_on: Optional[datetime] = None """The time the custom certificate was uploaded.""" diff --git a/src/cloudflare/types/custom_hostnames/dcv_method.py b/src/cloudflare/types/custom_hostnames/dcv_method.py new file mode 100644 index 00000000000..ebfada34a6e --- /dev/null +++ b/src/cloudflare/types/custom_hostnames/dcv_method.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import Literal, TypeAlias + +__all__ = ["DCVMethod"] + +DCVMethod: TypeAlias = Literal["http", "txt", "email"] diff --git a/src/cloudflare/types/custom_hostnames/domain_validation_type.py b/src/cloudflare/types/custom_hostnames/domain_validation_type.py new file mode 100644 index 00000000000..11e882fa1b1 --- /dev/null +++ b/src/cloudflare/types/custom_hostnames/domain_validation_type.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import Literal, TypeAlias + +__all__ = ["DomainValidationType"] + +DomainValidationType: TypeAlias = Literal["dv"] diff --git a/src/cloudflare/types/dns/__init__.py b/src/cloudflare/types/dns/__init__.py index 9782a257cc5..3009711464f 100644 --- a/src/cloudflare/types/dns/__init__.py +++ b/src/cloudflare/types/dns/__init__.py @@ -52,6 +52,7 @@ from .record_list_params import RecordListParams as RecordListParams from .record_scan_params import RecordScanParams as RecordScanParams from .sshfp_record_param import SSHFPRecordParam as SSHFPRecordParam +from .dns_analytics_query import DNSAnalyticsQuery as DNSAnalyticsQuery from .dnskey_record_param import DNSKEYRecordParam as DNSKEYRecordParam from .record_batch_params import RecordBatchParams as RecordBatchParams from .smimea_record_param import SMIMEARecordParam as SMIMEARecordParam @@ -64,3 +65,4 @@ from .record_delete_response import RecordDeleteResponse as RecordDeleteResponse from .record_export_response import RecordExportResponse as RecordExportResponse from .record_import_response import RecordImportResponse as RecordImportResponse +from .dns_analytics_nominal_metric import DNSAnalyticsNominalMetric as DNSAnalyticsNominalMetric diff --git a/src/cloudflare/types/dns/analytics/report.py b/src/cloudflare/types/dns/analytics/report.py index 9778dff47fc..00314a88ec3 100644 --- a/src/cloudflare/types/dns/analytics/report.py +++ b/src/cloudflare/types/dns/analytics/report.py @@ -5,7 +5,18 @@ from ...._models import BaseModel -__all__ = ["Report", "Query"] +__all__ = ["Report", "Data", "Query"] + + +class Data(BaseModel): + dimensions: List[str] + """ + Array of dimension values, representing the combination of dimension values + corresponding to this row. + """ + + metrics: List[float] + """Array with one item per requested metric. Each item is a single value.""" class Query(BaseModel): @@ -35,7 +46,7 @@ class Query(BaseModel): class Report(BaseModel): - data: List[object] + data: List[Data] """Array with one row per combination of dimension values.""" data_lag: float diff --git a/src/cloudflare/types/dns/analytics/reports/by_time.py b/src/cloudflare/types/dns/analytics/reports/by_time.py index 4f2557221a0..54d6c796c02 100644 --- a/src/cloudflare/types/dns/analytics/reports/by_time.py +++ b/src/cloudflare/types/dns/analytics/reports/by_time.py @@ -4,6 +4,8 @@ from datetime import datetime from ....._models import BaseModel +from ...dns_analytics_query import DNSAnalyticsQuery +from ...dns_analytics_nominal_metric import DNSAnalyticsNominalMetric __all__ = ["ByTime", "Data"] @@ -15,7 +17,7 @@ class Data(BaseModel): corresponding to this row. """ - metrics: List[object] + metrics: List[DNSAnalyticsNominalMetric] """Array with one item per requested metric. Each item is an array of values, broken down by time interval. @@ -44,7 +46,7 @@ class ByTime(BaseModel): Currently always an empty object. """ - query: object + query: DNSAnalyticsQuery rows: float """Total number of rows in the result.""" diff --git a/src/cloudflare/types/dns/dns_analytics_nominal_metric.py b/src/cloudflare/types/dns/dns_analytics_nominal_metric.py new file mode 100644 index 00000000000..32708b71c8b --- /dev/null +++ b/src/cloudflare/types/dns/dns_analytics_nominal_metric.py @@ -0,0 +1,8 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List +from typing_extensions import TypeAlias + +__all__ = ["DNSAnalyticsNominalMetric"] + +DNSAnalyticsNominalMetric: TypeAlias = List[object] diff --git a/src/cloudflare/types/dns/dns_analytics_query.py b/src/cloudflare/types/dns/dns_analytics_query.py new file mode 100644 index 00000000000..b1d886168e6 --- /dev/null +++ b/src/cloudflare/types/dns/dns_analytics_query.py @@ -0,0 +1,38 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List, Optional +from datetime import datetime +from typing_extensions import Literal + +from ..._models import BaseModel + +__all__ = ["DNSAnalyticsQuery"] + + +class DNSAnalyticsQuery(BaseModel): + dimensions: List[str] + """Array of dimension names.""" + + limit: int + """Limit number of returned metrics.""" + + metrics: List[str] + """Array of metric names.""" + + since: datetime + """Start date and time of requesting data period in ISO 8601 format.""" + + time_delta: Literal["all", "auto", "year", "quarter", "month", "week", "day", "hour", "dekaminute", "minute"] + """Unit of time to group data by.""" + + until: datetime + """End date and time of requesting data period in ISO 8601 format.""" + + filters: Optional[str] = None + """Segmentation filter in 'attribute operator value' format.""" + + sort: Optional[List[str]] = None + """ + Array of dimensions to sort by, where each dimension may be prefixed by - + (descending) or + (ascending). + """ diff --git a/src/cloudflare/types/dns/zone_transfers/__init__.py b/src/cloudflare/types/dns/zone_transfers/__init__.py index a79e3eef040..38aa6d40ad7 100644 --- a/src/cloudflare/types/dns/zone_transfers/__init__.py +++ b/src/cloudflare/types/dns/zone_transfers/__init__.py @@ -7,6 +7,7 @@ from .tsig import TSIG as TSIG from .force_axfr import ForceAXFR as ForceAXFR from .enable_transfer import EnableTransfer as EnableTransfer +from .outgoing_status import OutgoingStatus as OutgoingStatus from .disable_transfer import DisableTransfer as DisableTransfer from .acl_create_params import ACLCreateParams as ACLCreateParams from .acl_update_params import ACLUpdateParams as ACLUpdateParams diff --git a/src/cloudflare/types/dns/zone_transfers/incoming.py b/src/cloudflare/types/dns/zone_transfers/incoming.py index 4722a4557ac..726e5e41302 100644 --- a/src/cloudflare/types/dns/zone_transfers/incoming.py +++ b/src/cloudflare/types/dns/zone_transfers/incoming.py @@ -1,7 +1,35 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing_extensions import TypeAlias +from typing import List, Optional + +from ...._models import BaseModel __all__ = ["Incoming"] -Incoming: TypeAlias = object + +class Incoming(BaseModel): + id: Optional[str] = None + + auto_refresh_seconds: Optional[float] = None + """ + How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not + applicable for primary zones. + """ + + checked_time: Optional[str] = None + """The time for a specific event.""" + + created_time: Optional[str] = None + """The time for a specific event.""" + + modified_time: Optional[str] = None + """The time for a specific event.""" + + name: Optional[str] = None + """Zone name.""" + + peers: Optional[List[str]] = None + """A list of peer tags.""" + + soa_serial: Optional[float] = None + """The serial number of the SOA for the given zone.""" diff --git a/src/cloudflare/types/dns/zone_transfers/outgoing/outgoing.py b/src/cloudflare/types/dns/zone_transfers/outgoing/outgoing.py index 6ad4092a55f..bac651c175d 100644 --- a/src/cloudflare/types/dns/zone_transfers/outgoing/outgoing.py +++ b/src/cloudflare/types/dns/zone_transfers/outgoing/outgoing.py @@ -1,7 +1,29 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing_extensions import TypeAlias +from typing import List, Optional + +from ....._models import BaseModel __all__ = ["Outgoing"] -Outgoing: TypeAlias = object + +class Outgoing(BaseModel): + id: Optional[str] = None + + checked_time: Optional[str] = None + """The time for a specific event.""" + + created_time: Optional[str] = None + """The time for a specific event.""" + + last_transferred_time: Optional[str] = None + """The time for a specific event.""" + + name: Optional[str] = None + """Zone name.""" + + peers: Optional[List[str]] = None + """A list of peer tags.""" + + soa_serial: Optional[float] = None + """The serial number of the SOA for the given zone.""" diff --git a/src/cloudflare/types/dns/zone_transfers/outgoing_status.py b/src/cloudflare/types/dns/zone_transfers/outgoing_status.py new file mode 100644 index 00000000000..f119a6242ef --- /dev/null +++ b/src/cloudflare/types/dns/zone_transfers/outgoing_status.py @@ -0,0 +1,8 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import TypeAlias + +__all__ = ["OutgoingStatus"] + +OutgoingStatus: TypeAlias = Optional[str] diff --git a/src/cloudflare/types/email_routing/dns_get_response.py b/src/cloudflare/types/email_routing/dns_get_response.py index 9aeec9d0633..8abf95fa3cf 100644 --- a/src/cloudflare/types/email_routing/dns_get_response.py +++ b/src/cloudflare/types/email_routing/dns_get_response.py @@ -5,6 +5,7 @@ from ..._models import BaseModel from .dns_record import DNSRecord +from ..shared.response_info import ResponseInfo __all__ = [ "DNSGetResponse", @@ -45,9 +46,9 @@ class EmailEmailRoutingDNSQueryResponseResultInfo(BaseModel): class EmailEmailRoutingDNSQueryResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" @@ -72,9 +73,9 @@ class EmailDNSSettingsResponseCollectionResultInfo(BaseModel): class EmailDNSSettingsResponseCollection(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/firewall/waf/package_get_response.py b/src/cloudflare/types/firewall/waf/package_get_response.py index 2c0a626194c..6c5fda24087 100644 --- a/src/cloudflare/types/firewall/waf/package_get_response.py +++ b/src/cloudflare/types/firewall/waf/package_get_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal, TypeAlias from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["PackageGetResponse", "FirewallAPIResponseSingle", "Result"] class FirewallAPIResponseSingle(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] result: Union[Optional[str], Optional[object]] diff --git a/src/cloudflare/types/firewall/waf/packages/__init__.py b/src/cloudflare/types/firewall/waf/packages/__init__.py index 13ef842b9ea..27d9c57807f 100644 --- a/src/cloudflare/types/firewall/waf/packages/__init__.py +++ b/src/cloudflare/types/firewall/waf/packages/__init__.py @@ -3,6 +3,7 @@ from __future__ import annotations from .group import Group as Group +from .waf_rule_group import WAFRuleGroup as WAFRuleGroup from .rule_edit_params import RuleEditParams as RuleEditParams from .rule_list_params import RuleListParams as RuleListParams from .group_edit_params import GroupEditParams as GroupEditParams diff --git a/src/cloudflare/types/firewall/waf/packages/rule_edit_response.py b/src/cloudflare/types/firewall/waf/packages/rule_edit_response.py index 1bdfb690ab1..5c264944220 100644 --- a/src/cloudflare/types/firewall/waf/packages/rule_edit_response.py +++ b/src/cloudflare/types/firewall/waf/packages/rule_edit_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal, TypeAlias from ....._models import BaseModel +from .waf_rule_group import WAFRuleGroup from .allowed_modes_anomaly import AllowedModesAnomaly __all__ = [ @@ -27,7 +28,8 @@ class WAFManagedRulesAnomalyRule(BaseModel): description: str """The public description of the WAF rule.""" - group: object + group: WAFRuleGroup + """The rule group to which the current WAF rule belongs.""" mode: AllowedModesAnomaly """When set to `on`, the current WAF rule will be used when evaluating the request. @@ -55,7 +57,8 @@ class WAFManagedRulesTraditionalDenyRule(BaseModel): description: str """The public description of the WAF rule.""" - group: object + group: WAFRuleGroup + """The rule group to which the current WAF rule belongs.""" mode: Literal["default", "disable", "simulate", "block", "challenge"] """The action that the current WAF rule will perform when triggered. @@ -80,7 +83,8 @@ class WAFManagedRulesTraditionalAllowRule(BaseModel): description: str """The public description of the WAF rule.""" - group: object + group: WAFRuleGroup + """The rule group to which the current WAF rule belongs.""" mode: Literal["on", "off"] """When set to `on`, the current rule will be used when evaluating the request. diff --git a/src/cloudflare/types/firewall/waf/packages/rule_list_response.py b/src/cloudflare/types/firewall/waf/packages/rule_list_response.py index d84ca7e5c4c..fee3535524f 100644 --- a/src/cloudflare/types/firewall/waf/packages/rule_list_response.py +++ b/src/cloudflare/types/firewall/waf/packages/rule_list_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal, TypeAlias from ....._models import BaseModel +from .waf_rule_group import WAFRuleGroup from .allowed_modes_anomaly import AllowedModesAnomaly __all__ = [ @@ -27,7 +28,8 @@ class WAFManagedRulesAnomalyRule(BaseModel): description: str """The public description of the WAF rule.""" - group: object + group: WAFRuleGroup + """The rule group to which the current WAF rule belongs.""" mode: AllowedModesAnomaly """When set to `on`, the current WAF rule will be used when evaluating the request. @@ -55,7 +57,8 @@ class WAFManagedRulesTraditionalDenyRule(BaseModel): description: str """The public description of the WAF rule.""" - group: object + group: WAFRuleGroup + """The rule group to which the current WAF rule belongs.""" mode: Literal["default", "disable", "simulate", "block", "challenge"] """The action that the current WAF rule will perform when triggered. @@ -80,7 +83,8 @@ class WAFManagedRulesTraditionalAllowRule(BaseModel): description: str """The public description of the WAF rule.""" - group: object + group: WAFRuleGroup + """The rule group to which the current WAF rule belongs.""" mode: Literal["on", "off"] """When set to `on`, the current rule will be used when evaluating the request. diff --git a/src/cloudflare/types/firewall/waf/packages/waf_rule_group.py b/src/cloudflare/types/firewall/waf/packages/waf_rule_group.py new file mode 100644 index 00000000000..2ce0dcabcad --- /dev/null +++ b/src/cloudflare/types/firewall/waf/packages/waf_rule_group.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ....._models import BaseModel + +__all__ = ["WAFRuleGroup"] + + +class WAFRuleGroup(BaseModel): + id: Optional[str] = None + """The unique identifier of the rule group.""" + + name: Optional[str] = None + """The name of the rule group.""" diff --git a/src/cloudflare/types/intel/attack_surface_report/issue_dismiss_response.py b/src/cloudflare/types/intel/attack_surface_report/issue_dismiss_response.py index b3da1c9de1d..b34d6246dec 100644 --- a/src/cloudflare/types/intel/attack_surface_report/issue_dismiss_response.py +++ b/src/cloudflare/types/intel/attack_surface_report/issue_dismiss_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["IssueDismissResponse"] class IssueDismissResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/intel/miscategorization_create_response.py b/src/cloudflare/types/intel/miscategorization_create_response.py index 2fa2cd95e5e..273ee744016 100644 --- a/src/cloudflare/types/intel/miscategorization_create_response.py +++ b/src/cloudflare/types/intel/miscategorization_create_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["MiscategorizationCreateResponse"] class MiscategorizationCreateResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/keyless_certificates/keyless_certificate_create_params.py b/src/cloudflare/types/keyless_certificates/keyless_certificate_create_params.py index b910097c294..eb5ac3a6285 100644 --- a/src/cloudflare/types/keyless_certificates/keyless_certificate_create_params.py +++ b/src/cloudflare/types/keyless_certificates/keyless_certificate_create_params.py @@ -5,6 +5,7 @@ from typing_extensions import Required, TypedDict from .tunnel_param import TunnelParam +from ..custom_hostnames.bundle_method import BundleMethod __all__ = ["KeylessCertificateCreateParams"] @@ -25,7 +26,13 @@ class KeylessCertificateCreateParams(TypedDict, total=False): Keyless SSL server. """ - bundle_method: object + bundle_method: BundleMethod + """ + 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. + """ name: str """The keyless SSL name.""" diff --git a/src/cloudflare/types/logpush/__init__.py b/src/cloudflare/types/logpush/__init__.py index e43c3121f61..f47e5fbcf8b 100644 --- a/src/cloudflare/types/logpush/__init__.py +++ b/src/cloudflare/types/logpush/__init__.py @@ -10,6 +10,7 @@ from .instant_logpush_job import InstantLogpushJob as InstantLogpushJob from .job_delete_response import JobDeleteResponse as JobDeleteResponse from .output_options_param import OutputOptionsParam as OutputOptionsParam +from .ownership_validation import OwnershipValidation as OwnershipValidation from .validate_origin_params import ValidateOriginParams as ValidateOriginParams from .ownership_create_params import OwnershipCreateParams as OwnershipCreateParams from .validate_origin_response import ValidateOriginResponse as ValidateOriginResponse diff --git a/src/cloudflare/types/logpush/ownership_validation.py b/src/cloudflare/types/logpush/ownership_validation.py new file mode 100644 index 00000000000..7cd567a2f45 --- /dev/null +++ b/src/cloudflare/types/logpush/ownership_validation.py @@ -0,0 +1,11 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ..._models import BaseModel + +__all__ = ["OwnershipValidation"] + + +class OwnershipValidation(BaseModel): + valid: Optional[bool] = None diff --git a/src/cloudflare/types/magic_transit/__init__.py b/src/cloudflare/types/magic_transit/__init__.py index a6d9096d103..26a12934156 100644 --- a/src/cloudflare/types/magic_transit/__init__.py +++ b/src/cloudflare/types/magic_transit/__init__.py @@ -15,6 +15,8 @@ from .app_create_params import AppCreateParams as AppCreateParams from .app_list_response import AppListResponse as AppListResponse from .app_update_params import AppUpdateParams as AppUpdateParams +from .health_check_rate import HealthCheckRate as HealthCheckRate +from .health_check_type import HealthCheckType as HealthCheckType from .pcap_filter_param import PCAPFilterParam as PCAPFilterParam from .pcap_get_response import PCAPGetResponse as PCAPGetResponse from .health_check_param import HealthCheckParam as HealthCheckParam diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_bulk_update_response.py b/src/cloudflare/types/magic_transit/gre_tunnel_bulk_update_response.py index 22e54a86d2d..5ee74bdd932 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_bulk_update_response.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_bulk_update_response.py @@ -5,6 +5,8 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = [ "GRETunnelBulkUpdateResponse", @@ -46,7 +48,8 @@ class ModifiedGRETunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[ModifiedGRETunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -60,7 +63,8 @@ class ModifiedGRETunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" class ModifiedGRETunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_create_response.py b/src/cloudflare/types/magic_transit/gre_tunnel_create_response.py index 869b83cf4dc..18ae90d4d78 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_create_response.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_create_response.py @@ -5,6 +5,8 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = [ "GRETunnelCreateResponse", @@ -46,7 +48,8 @@ class GRETunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[GRETunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -60,7 +63,8 @@ class GRETunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" class GRETunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_delete_response.py b/src/cloudflare/types/magic_transit/gre_tunnel_delete_response.py index f105f40d90c..29a925b3e8b 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_delete_response.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_delete_response.py @@ -5,6 +5,8 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = [ "GRETunnelDeleteResponse", @@ -46,7 +48,8 @@ class DeletedGRETunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[DeletedGRETunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -60,7 +63,8 @@ class DeletedGRETunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" class DeletedGRETunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_get_response.py b/src/cloudflare/types/magic_transit/gre_tunnel_get_response.py index 95ed71dea08..b24a3914472 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_get_response.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_get_response.py @@ -5,6 +5,8 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = [ "GRETunnelGetResponse", @@ -46,7 +48,8 @@ class GRETunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[GRETunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -60,7 +63,8 @@ class GRETunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" class GRETunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_list_response.py b/src/cloudflare/types/magic_transit/gre_tunnel_list_response.py index ed95d686983..3f9875dc4c8 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_list_response.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_list_response.py @@ -5,6 +5,8 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = [ "GRETunnelListResponse", @@ -46,7 +48,8 @@ class GRETunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[GRETunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -60,7 +63,8 @@ class GRETunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" class GRETunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_update_params.py b/src/cloudflare/types/magic_transit/gre_tunnel_update_params.py index 99d8aeb655c..edd75736135 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_update_params.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_update_params.py @@ -6,6 +6,8 @@ from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict from ..._utils import PropertyInfo +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = ["GRETunnelUpdateParams", "HealthCheck", "HealthCheckTarget", "HealthCheckTargetMagicHealthCheckTarget"] @@ -75,7 +77,8 @@ class HealthCheck(TypedDict, total=False): enabled: bool """Determines whether to run healthchecks for a tunnel.""" - rate: object + rate: HealthCheckRate + """How frequent the health check is run. The default value is `mid`.""" target: HealthCheckTarget """The destination address in a request type health check. @@ -89,4 +92,5 @@ class HealthCheck(TypedDict, total=False): x-magic-new-hc-target is absent or set to false. """ - type: object + type: HealthCheckType + """The type of healthcheck to run, reply or request. The default value is `reply`.""" diff --git a/src/cloudflare/types/magic_transit/gre_tunnel_update_response.py b/src/cloudflare/types/magic_transit/gre_tunnel_update_response.py index 10a6e596cfa..2385e24f5c8 100644 --- a/src/cloudflare/types/magic_transit/gre_tunnel_update_response.py +++ b/src/cloudflare/types/magic_transit/gre_tunnel_update_response.py @@ -5,6 +5,8 @@ from typing_extensions import Literal, TypeAlias from ..._models import BaseModel +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = [ "GRETunnelUpdateResponse", @@ -46,7 +48,8 @@ class ModifiedGRETunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[ModifiedGRETunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -60,7 +63,8 @@ class ModifiedGRETunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" class ModifiedGRETunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/health_check.py b/src/cloudflare/types/magic_transit/health_check.py index deadbd7c13c..6ee301b8764 100644 --- a/src/cloudflare/types/magic_transit/health_check.py +++ b/src/cloudflare/types/magic_transit/health_check.py @@ -4,6 +4,8 @@ from typing_extensions import TypeAlias from ..._models import BaseModel +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = ["HealthCheck", "Target", "TargetMagicHealthCheckTarget"] @@ -31,7 +33,8 @@ class HealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[Target] = None """The destination address in a request type health check. @@ -45,4 +48,5 @@ class HealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" diff --git a/src/cloudflare/types/magic_transit/health_check_param.py b/src/cloudflare/types/magic_transit/health_check_param.py index 0835e0988ca..6b84332a674 100644 --- a/src/cloudflare/types/magic_transit/health_check_param.py +++ b/src/cloudflare/types/magic_transit/health_check_param.py @@ -5,6 +5,9 @@ from typing import Union from typing_extensions import TypeAlias, TypedDict +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType + __all__ = ["HealthCheckParam", "Target", "TargetMagicHealthCheckTarget"] @@ -24,7 +27,8 @@ class HealthCheckParam(TypedDict, total=False): enabled: bool """Determines whether to run healthchecks for a tunnel.""" - rate: object + rate: HealthCheckRate + """How frequent the health check is run. The default value is `mid`.""" target: Target """The destination address in a request type health check. @@ -38,4 +42,5 @@ class HealthCheckParam(TypedDict, total=False): x-magic-new-hc-target is absent or set to false. """ - type: object + type: HealthCheckType + """The type of healthcheck to run, reply or request. The default value is `reply`.""" diff --git a/src/cloudflare/types/magic_transit/health_check_rate.py b/src/cloudflare/types/magic_transit/health_check_rate.py new file mode 100644 index 00000000000..f774ffc5d70 --- /dev/null +++ b/src/cloudflare/types/magic_transit/health_check_rate.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import Literal, TypeAlias + +__all__ = ["HealthCheckRate"] + +HealthCheckRate: TypeAlias = Literal["low", "mid", "high"] diff --git a/src/cloudflare/types/magic_transit/health_check_type.py b/src/cloudflare/types/magic_transit/health_check_type.py new file mode 100644 index 00000000000..27197fa13dc --- /dev/null +++ b/src/cloudflare/types/magic_transit/health_check_type.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import Literal, TypeAlias + +__all__ = ["HealthCheckType"] + +HealthCheckType: TypeAlias = Literal["reply", "request"] diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_bulk_update_response.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_bulk_update_response.py index 22f85f2cf2a..107d0ce5fa5 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_bulk_update_response.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_bulk_update_response.py @@ -6,6 +6,8 @@ from ..._models import BaseModel from .psk_metadata import PSKMetadata +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = [ "IPSECTunnelBulkUpdateResponse", @@ -47,7 +49,8 @@ class ModifiedIPSECTunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[ModifiedIPSECTunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -61,7 +64,8 @@ class ModifiedIPSECTunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" class ModifiedIPSECTunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_create_params.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_create_params.py index fa46b3e4994..d7927be7bb0 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_create_params.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_create_params.py @@ -6,6 +6,8 @@ from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict from ..._utils import PropertyInfo +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = ["IPSECTunnelCreateParams", "HealthCheck", "HealthCheckTarget", "HealthCheckTargetMagicHealthCheckTarget"] @@ -74,7 +76,8 @@ class HealthCheck(TypedDict, total=False): enabled: bool """Determines whether to run healthchecks for a tunnel.""" - rate: object + rate: HealthCheckRate + """How frequent the health check is run. The default value is `mid`.""" target: HealthCheckTarget """The destination address in a request type health check. @@ -88,4 +91,5 @@ class HealthCheck(TypedDict, total=False): x-magic-new-hc-target is absent or set to false. """ - type: object + type: HealthCheckType + """The type of healthcheck to run, reply or request. The default value is `reply`.""" diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_create_response.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_create_response.py index 1cabdceb364..d440344600e 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_create_response.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_create_response.py @@ -6,6 +6,8 @@ from ..._models import BaseModel from .psk_metadata import PSKMetadata +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = [ "IPSECTunnelCreateResponse", @@ -47,7 +49,8 @@ class IPSECTunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[IPSECTunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -61,7 +64,8 @@ class IPSECTunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" class IPSECTunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_delete_response.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_delete_response.py index aa692cd372e..0cd970bdc87 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_delete_response.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_delete_response.py @@ -6,6 +6,8 @@ from ..._models import BaseModel from .psk_metadata import PSKMetadata +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = [ "IPSECTunnelDeleteResponse", @@ -47,7 +49,8 @@ class DeletedIPSECTunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[DeletedIPSECTunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -61,7 +64,8 @@ class DeletedIPSECTunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" class DeletedIPSECTunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_get_response.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_get_response.py index 132930085a3..fc13896b9d7 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_get_response.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_get_response.py @@ -6,6 +6,8 @@ from ..._models import BaseModel from .psk_metadata import PSKMetadata +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = [ "IPSECTunnelGetResponse", @@ -47,7 +49,8 @@ class IPSECTunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[IPSECTunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -61,7 +64,8 @@ class IPSECTunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" class IPSECTunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_list_response.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_list_response.py index 5a9a02bcab5..cf265a4c810 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_list_response.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_list_response.py @@ -6,6 +6,8 @@ from ..._models import BaseModel from .psk_metadata import PSKMetadata +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = [ "IPSECTunnelListResponse", @@ -47,7 +49,8 @@ class IPSECTunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[IPSECTunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -61,7 +64,8 @@ class IPSECTunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" class IPSECTunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_update_params.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_update_params.py index 7ff6d8fbbe2..ee3fbf9d4ba 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_update_params.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_update_params.py @@ -6,6 +6,8 @@ from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict from ..._utils import PropertyInfo +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = ["IPSECTunnelUpdateParams", "HealthCheck", "HealthCheckTarget", "HealthCheckTargetMagicHealthCheckTarget"] @@ -74,7 +76,8 @@ class HealthCheck(TypedDict, total=False): enabled: bool """Determines whether to run healthchecks for a tunnel.""" - rate: object + rate: HealthCheckRate + """How frequent the health check is run. The default value is `mid`.""" target: HealthCheckTarget """The destination address in a request type health check. @@ -88,4 +91,5 @@ class HealthCheck(TypedDict, total=False): x-magic-new-hc-target is absent or set to false. """ - type: object + type: HealthCheckType + """The type of healthcheck to run, reply or request. The default value is `reply`.""" diff --git a/src/cloudflare/types/magic_transit/ipsec_tunnel_update_response.py b/src/cloudflare/types/magic_transit/ipsec_tunnel_update_response.py index e52a5ff48cd..ffe42e6143f 100644 --- a/src/cloudflare/types/magic_transit/ipsec_tunnel_update_response.py +++ b/src/cloudflare/types/magic_transit/ipsec_tunnel_update_response.py @@ -6,6 +6,8 @@ from ..._models import BaseModel from .psk_metadata import PSKMetadata +from .health_check_rate import HealthCheckRate +from .health_check_type import HealthCheckType __all__ = [ "IPSECTunnelUpdateResponse", @@ -47,7 +49,8 @@ class ModifiedIPSECTunnelHealthCheck(BaseModel): enabled: Optional[bool] = None """Determines whether to run healthchecks for a tunnel.""" - rate: Optional[object] = None + rate: Optional[HealthCheckRate] = None + """How frequent the health check is run. The default value is `mid`.""" target: Optional[ModifiedIPSECTunnelHealthCheckTarget] = None """The destination address in a request type health check. @@ -61,7 +64,8 @@ class ModifiedIPSECTunnelHealthCheck(BaseModel): x-magic-new-hc-target is absent or set to false. """ - type: Optional[object] = None + type: Optional[HealthCheckType] = None + """The type of healthcheck to run, reply or request. The default value is `reply`.""" class ModifiedIPSECTunnel(BaseModel): diff --git a/src/cloudflare/types/magic_transit/sites/__init__.py b/src/cloudflare/types/magic_transit/sites/__init__.py index d739cd7eb83..cdf0ff32712 100644 --- a/src/cloudflare/types/magic_transit/sites/__init__.py +++ b/src/cloudflare/types/magic_transit/sites/__init__.py @@ -14,6 +14,7 @@ from .acl_edit_params import ACLEditParams as ACLEditParams from .lan_edit_params import LANEditParams as LANEditParams from .wan_edit_params import WANEditParams as WANEditParams +from .allowed_protocol import AllowedProtocol as AllowedProtocol from .dhcp_relay_param import DHCPRelayParam as DHCPRelayParam from .acl_configuration import ACLConfiguration as ACLConfiguration from .acl_create_params import ACLCreateParams as ACLCreateParams diff --git a/src/cloudflare/types/magic_transit/sites/acl.py b/src/cloudflare/types/magic_transit/sites/acl.py index 50f8550fb87..41429544d0f 100644 --- a/src/cloudflare/types/magic_transit/sites/acl.py +++ b/src/cloudflare/types/magic_transit/sites/acl.py @@ -3,6 +3,7 @@ from typing import List, Optional from ...._models import BaseModel +from .allowed_protocol import AllowedProtocol from .acl_configuration import ACLConfiguration __all__ = ["ACL"] @@ -30,7 +31,7 @@ class ACL(BaseModel): name: Optional[str] = None """The name of the ACL.""" - protocols: Optional[List[object]] = None + protocols: Optional[List[AllowedProtocol]] = None unidirectional: Optional[bool] = None """The desired traffic direction for this ACL policy. diff --git a/src/cloudflare/types/magic_transit/sites/acl_create_params.py b/src/cloudflare/types/magic_transit/sites/acl_create_params.py index 30e844cd7f5..c193c6d556c 100644 --- a/src/cloudflare/types/magic_transit/sites/acl_create_params.py +++ b/src/cloudflare/types/magic_transit/sites/acl_create_params.py @@ -2,9 +2,10 @@ from __future__ import annotations -from typing import Iterable +from typing import List from typing_extensions import Required, TypedDict +from .allowed_protocol import AllowedProtocol from .acl_configuration_param import ACLConfigurationParam __all__ = ["ACLCreateParams"] @@ -32,7 +33,7 @@ class ACLCreateParams(TypedDict, total=False): included in request, will default to false. """ - protocols: Iterable[object] + protocols: List[AllowedProtocol] unidirectional: bool """The desired traffic direction for this ACL policy. diff --git a/src/cloudflare/types/magic_transit/sites/acl_edit_params.py b/src/cloudflare/types/magic_transit/sites/acl_edit_params.py index d51577abd3c..3280bbe53b2 100644 --- a/src/cloudflare/types/magic_transit/sites/acl_edit_params.py +++ b/src/cloudflare/types/magic_transit/sites/acl_edit_params.py @@ -2,9 +2,10 @@ from __future__ import annotations -from typing import Iterable +from typing import List from typing_extensions import Required, TypedDict +from .allowed_protocol import AllowedProtocol from .acl_configuration_param import ACLConfigurationParam __all__ = ["ACLEditParams"] @@ -35,7 +36,7 @@ class ACLEditParams(TypedDict, total=False): name: str """The name of the ACL.""" - protocols: Iterable[object] + protocols: List[AllowedProtocol] unidirectional: bool """The desired traffic direction for this ACL policy. diff --git a/src/cloudflare/types/magic_transit/sites/acl_update_params.py b/src/cloudflare/types/magic_transit/sites/acl_update_params.py index 42e7fb3fb35..250ed85c126 100644 --- a/src/cloudflare/types/magic_transit/sites/acl_update_params.py +++ b/src/cloudflare/types/magic_transit/sites/acl_update_params.py @@ -2,9 +2,10 @@ from __future__ import annotations -from typing import Iterable +from typing import List from typing_extensions import Required, TypedDict +from .allowed_protocol import AllowedProtocol from .acl_configuration_param import ACLConfigurationParam __all__ = ["ACLUpdateParams"] @@ -35,7 +36,7 @@ class ACLUpdateParams(TypedDict, total=False): name: str """The name of the ACL.""" - protocols: Iterable[object] + protocols: List[AllowedProtocol] unidirectional: bool """The desired traffic direction for this ACL policy. diff --git a/src/cloudflare/types/magic_transit/sites/allowed_protocol.py b/src/cloudflare/types/magic_transit/sites/allowed_protocol.py new file mode 100644 index 00000000000..076a921f069 --- /dev/null +++ b/src/cloudflare/types/magic_transit/sites/allowed_protocol.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import Literal, TypeAlias + +__all__ = ["AllowedProtocol"] + +AllowedProtocol: TypeAlias = Literal["tcp", "udp", "icmp"] diff --git a/src/cloudflare/types/origin_post_quantum_encryption/__init__.py b/src/cloudflare/types/origin_post_quantum_encryption/__init__.py index 0c34922d5b1..31525d2b891 100644 --- a/src/cloudflare/types/origin_post_quantum_encryption/__init__.py +++ b/src/cloudflare/types/origin_post_quantum_encryption/__init__.py @@ -2,6 +2,12 @@ from __future__ import annotations +from .origin_post_quantum_encryption_get_response import ( + OriginPostQuantumEncryptionGetResponse as OriginPostQuantumEncryptionGetResponse, +) from .origin_post_quantum_encryption_update_params import ( OriginPostQuantumEncryptionUpdateParams as OriginPostQuantumEncryptionUpdateParams, ) +from .origin_post_quantum_encryption_update_response import ( + OriginPostQuantumEncryptionUpdateResponse as OriginPostQuantumEncryptionUpdateResponse, +) diff --git a/src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_get_response.py b/src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_get_response.py new file mode 100644 index 00000000000..160be05baa8 --- /dev/null +++ b/src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_get_response.py @@ -0,0 +1,23 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from datetime import datetime +from typing_extensions import Literal + +from ..._models import BaseModel + +__all__ = ["OriginPostQuantumEncryptionGetResponse"] + + +class OriginPostQuantumEncryptionGetResponse(BaseModel): + id: Literal["origin_pqe"] + """Value of the zone setting.""" + + editable: bool + """Whether the setting is editable""" + + value: Literal["preferred", "supported", "off"] + """The value of the feature""" + + modified_on: Optional[datetime] = None + """Last time this setting was modified.""" diff --git a/src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_update_response.py b/src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_update_response.py new file mode 100644 index 00000000000..f2ec8775f16 --- /dev/null +++ b/src/cloudflare/types/origin_post_quantum_encryption/origin_post_quantum_encryption_update_response.py @@ -0,0 +1,23 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from datetime import datetime +from typing_extensions import Literal + +from ..._models import BaseModel + +__all__ = ["OriginPostQuantumEncryptionUpdateResponse"] + + +class OriginPostQuantumEncryptionUpdateResponse(BaseModel): + id: Literal["origin_pqe"] + """Value of the zone setting.""" + + editable: bool + """Whether the setting is editable""" + + value: Literal["preferred", "supported", "off"] + """The value of the feature""" + + modified_on: Optional[datetime] = None + """Last time this setting was modified.""" diff --git a/src/cloudflare/types/queues/consumer_delete_response.py b/src/cloudflare/types/queues/consumer_delete_response.py index fe659a7521a..7de9b984436 100644 --- a/src/cloudflare/types/queues/consumer_delete_response.py +++ b/src/cloudflare/types/queues/consumer_delete_response.py @@ -4,12 +4,13 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["ConsumerDeleteResponse"] class ConsumerDeleteResponse(BaseModel): - errors: Optional[List[object]] = None + errors: Optional[List[ResponseInfo]] = None messages: Optional[List[str]] = None diff --git a/src/cloudflare/types/queues/queue_delete_response.py b/src/cloudflare/types/queues/queue_delete_response.py index f3d55971ff2..91079074b40 100644 --- a/src/cloudflare/types/queues/queue_delete_response.py +++ b/src/cloudflare/types/queues/queue_delete_response.py @@ -4,12 +4,13 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["QueueDeleteResponse"] class QueueDeleteResponse(BaseModel): - errors: Optional[List[object]] = None + errors: Optional[List[ResponseInfo]] = None messages: Optional[List[str]] = None diff --git a/src/cloudflare/types/r2/buckets/__init__.py b/src/cloudflare/types/r2/buckets/__init__.py index 6601cfcf0f1..a0dd48f75d5 100644 --- a/src/cloudflare/types/r2/buckets/__init__.py +++ b/src/cloudflare/types/r2/buckets/__init__.py @@ -3,6 +3,7 @@ from __future__ import annotations from .sippy import Sippy as Sippy +from .provider import Provider as Provider from .cors_get_response import CORSGetResponse as CORSGetResponse from .lock_get_response import LockGetResponse as LockGetResponse from .cors_update_params import CORSUpdateParams as CORSUpdateParams diff --git a/src/cloudflare/types/r2/buckets/provider.py b/src/cloudflare/types/r2/buckets/provider.py new file mode 100644 index 00000000000..45eb13e5c2c --- /dev/null +++ b/src/cloudflare/types/r2/buckets/provider.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import Literal, TypeAlias + +__all__ = ["Provider"] + +Provider: TypeAlias = Literal["r2"] diff --git a/src/cloudflare/types/r2/buckets/sippy.py b/src/cloudflare/types/r2/buckets/sippy.py index c0790619517..2663810b71e 100644 --- a/src/cloudflare/types/r2/buckets/sippy.py +++ b/src/cloudflare/types/r2/buckets/sippy.py @@ -5,6 +5,7 @@ from pydantic import Field as FieldInfo +from .provider import Provider from ...._models import BaseModel __all__ = ["Sippy", "Destination", "Source"] @@ -19,7 +20,7 @@ class Destination(BaseModel): bucket: Optional[str] = None """Name of the bucket on the provider""" - provider: Optional[object] = None + provider: Optional[Provider] = None class Source(BaseModel): diff --git a/src/cloudflare/types/r2/buckets/sippy_update_params.py b/src/cloudflare/types/r2/buckets/sippy_update_params.py index 7e55ef798ed..b260ff4a373 100644 --- a/src/cloudflare/types/r2/buckets/sippy_update_params.py +++ b/src/cloudflare/types/r2/buckets/sippy_update_params.py @@ -5,6 +5,7 @@ from typing import Union from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict +from .provider import Provider from ...._utils import PropertyInfo __all__ = [ @@ -43,7 +44,7 @@ class R2EnableSippyAwsDestination(TypedDict, total=False): this token to the bucket you're enabling Sippy for. """ - provider: object + provider: Provider secret_access_key: Annotated[str, PropertyInfo(alias="secretAccessKey")] """ @@ -97,7 +98,7 @@ class R2EnableSippyGcsDestination(TypedDict, total=False): this token to the bucket you're enabling Sippy for. """ - provider: object + provider: Provider secret_access_key: Annotated[str, PropertyInfo(alias="secretAccessKey")] """ diff --git a/src/cloudflare/types/radar/__init__.py b/src/cloudflare/types/radar/__init__.py index 3a8ff07c6e0..d2ee6584473 100644 --- a/src/cloudflare/types/radar/__init__.py +++ b/src/cloudflare/types/radar/__init__.py @@ -3,9 +3,11 @@ from __future__ import annotations from .entity_get_params import EntityGetParams as EntityGetParams +from .radar_email_series import RadarEmailSeries as RadarEmailSeries from .ranking_top_params import RankingTopParams as RankingTopParams from .dataset_list_params import DatasetListParams as DatasetListParams from .entity_get_response import EntityGetResponse as EntityGetResponse +from .radar_email_summary import RadarEmailSummary as RadarEmailSummary from .dataset_get_response import DatasetGetResponse as DatasetGetResponse from .ranking_top_response import RankingTopResponse as RankingTopResponse from .search_global_params import SearchGlobalParams as SearchGlobalParams diff --git a/src/cloudflare/types/radar/ai/bots/summary_user_agent_response.py b/src/cloudflare/types/radar/ai/bots/summary_user_agent_response.py index 453376c23bb..d47ce220214 100644 --- a/src/cloudflare/types/radar/ai/bots/summary_user_agent_response.py +++ b/src/cloudflare/types/radar/ai/bots/summary_user_agent_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryUserAgentResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryUserAgentResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/ai/inference/summary_model_response.py b/src/cloudflare/types/radar/ai/inference/summary_model_response.py index 5f915581605..7aa2499b888 100644 --- a/src/cloudflare/types/radar/ai/inference/summary_model_response.py +++ b/src/cloudflare/types/radar/ai/inference/summary_model_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryModelResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryModelResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/ai/inference/summary_task_response.py b/src/cloudflare/types/radar/ai/inference/summary_task_response.py index abcba9c15c9..c8b34b40a03 100644 --- a/src/cloudflare/types/radar/ai/inference/summary_task_response.py +++ b/src/cloudflare/types/radar/ai/inference/summary_task_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryTaskResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryTaskResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_model_response.py b/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_model_response.py index 3a2e16e2140..8dc1979f7db 100644 --- a/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_model_response.py +++ b/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_model_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ......_models import BaseModel -__all__ = ["SummaryModelResponse"] +__all__ = ["SummaryModelResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class SummaryModelResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_task_response.py b/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_task_response.py index ee6740b5b45..0d8ef99e7c8 100644 --- a/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_task_response.py +++ b/src/cloudflare/types/radar/ai/inference/timeseries_groups/summary_task_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ......_models import BaseModel -__all__ = ["SummaryTaskResponse"] +__all__ = ["SummaryTaskResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class SummaryTaskResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/ai/timeseries_group_user_agent_response.py b/src/cloudflare/types/radar/ai/timeseries_group_user_agent_response.py index f419d4a81b9..e84aab4ab60 100644 --- a/src/cloudflare/types/radar/ai/timeseries_group_user_agent_response.py +++ b/src/cloudflare/types/radar/ai/timeseries_group_user_agent_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupUserAgentResponse"] +__all__ = ["TimeseriesGroupUserAgentResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupUserAgentResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/annotation_list_response.py b/src/cloudflare/types/radar/annotation_list_response.py index 5cb667f63c8..859a2a08081 100644 --- a/src/cloudflare/types/radar/annotation_list_response.py +++ b/src/cloudflare/types/radar/annotation_list_response.py @@ -6,7 +6,20 @@ from ..._models import BaseModel -__all__ = ["AnnotationListResponse", "Annotation", "AnnotationASNsDetail", "AnnotationOutage"] +__all__ = [ + "AnnotationListResponse", + "Annotation", + "AnnotationASNsDetail", + "AnnotationASNsDetailLocations", + "AnnotationLocationsDetail", + "AnnotationOutage", +] + + +class AnnotationASNsDetailLocations(BaseModel): + code: str + + name: str class AnnotationASNsDetail(BaseModel): @@ -14,7 +27,13 @@ class AnnotationASNsDetail(BaseModel): name: str - locations: Optional[object] = None + locations: Optional[AnnotationASNsDetailLocations] = None + + +class AnnotationLocationsDetail(BaseModel): + code: str + + name: str class AnnotationOutage(BaseModel): @@ -36,7 +55,7 @@ class Annotation(BaseModel): locations: List[str] - locations_details: List[object] = FieldInfo(alias="locationsDetails") + locations_details: List[AnnotationLocationsDetail] = FieldInfo(alias="locationsDetails") outage: AnnotationOutage diff --git a/src/cloudflare/types/radar/annotations/outage_get_response.py b/src/cloudflare/types/radar/annotations/outage_get_response.py index 2c0a0a8429e..a849b72fd21 100644 --- a/src/cloudflare/types/radar/annotations/outage_get_response.py +++ b/src/cloudflare/types/radar/annotations/outage_get_response.py @@ -6,7 +6,20 @@ from ...._models import BaseModel -__all__ = ["OutageGetResponse", "Annotation", "AnnotationASNsDetail", "AnnotationOutage"] +__all__ = [ + "OutageGetResponse", + "Annotation", + "AnnotationASNsDetail", + "AnnotationASNsDetailLocations", + "AnnotationLocationsDetail", + "AnnotationOutage", +] + + +class AnnotationASNsDetailLocations(BaseModel): + code: str + + name: str class AnnotationASNsDetail(BaseModel): @@ -14,7 +27,13 @@ class AnnotationASNsDetail(BaseModel): name: str - locations: Optional[object] = None + locations: Optional[AnnotationASNsDetailLocations] = None + + +class AnnotationLocationsDetail(BaseModel): + code: str + + name: str class AnnotationOutage(BaseModel): @@ -36,7 +55,7 @@ class Annotation(BaseModel): locations: List[str] - locations_details: List[object] = FieldInfo(alias="locationsDetails") + locations_details: List[AnnotationLocationsDetail] = FieldInfo(alias="locationsDetails") outage: AnnotationOutage diff --git a/src/cloudflare/types/radar/annotations/outage_locations_response.py b/src/cloudflare/types/radar/annotations/outage_locations_response.py index edb2fafdfb6..b175087e150 100644 --- a/src/cloudflare/types/radar/annotations/outage_locations_response.py +++ b/src/cloudflare/types/radar/annotations/outage_locations_response.py @@ -2,10 +2,20 @@ from typing import List +from pydantic import Field as FieldInfo + from ...._models import BaseModel -__all__ = ["OutageLocationsResponse"] +__all__ = ["OutageLocationsResponse", "Annotation"] + + +class Annotation(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str class OutageLocationsResponse(BaseModel): - annotations: List[object] + annotations: List[Annotation] diff --git a/src/cloudflare/types/radar/as112/summary_dnssec_response.py b/src/cloudflare/types/radar/as112/summary_dnssec_response.py index 1ba928032bb..b692d28f07f 100644 --- a/src/cloudflare/types/radar/as112/summary_dnssec_response.py +++ b/src/cloudflare/types/radar/as112/summary_dnssec_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryDNSSECResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryDNSSECResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/as112/summary_edns_response.py b/src/cloudflare/types/radar/as112/summary_edns_response.py index 58696afab09..48ca7517798 100644 --- a/src/cloudflare/types/radar/as112/summary_edns_response.py +++ b/src/cloudflare/types/radar/as112/summary_edns_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryEdnsResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryEdnsResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/as112/summary_ip_version_response.py b/src/cloudflare/types/radar/as112/summary_ip_version_response.py index 9da143e15ec..6286c80dc1d 100644 --- a/src/cloudflare/types/radar/as112/summary_ip_version_response.py +++ b/src/cloudflare/types/radar/as112/summary_ip_version_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryIPVersionResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "SummaryIPVersionResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -25,7 +57,13 @@ class Meta(BaseModel): confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Summary0(BaseModel): + i_pv4: str = FieldInfo(alias="IPv4") + + i_pv6: str = FieldInfo(alias="IPv6") + + class SummaryIPVersionResponse(BaseModel): meta: Meta - summary_0: object + summary_0: Summary0 diff --git a/src/cloudflare/types/radar/as112/summary_protocol_response.py b/src/cloudflare/types/radar/as112/summary_protocol_response.py index ca33cf63608..b75c6a52eb9 100644 --- a/src/cloudflare/types/radar/as112/summary_protocol_response.py +++ b/src/cloudflare/types/radar/as112/summary_protocol_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryProtocolResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryProtocolResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/as112/summary_query_type_response.py b/src/cloudflare/types/radar/as112/summary_query_type_response.py index ccbbd6b44ce..87baa9cd63b 100644 --- a/src/cloudflare/types/radar/as112/summary_query_type_response.py +++ b/src/cloudflare/types/radar/as112/summary_query_type_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryQueryTypeResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryQueryTypeResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/as112/summary_response_codes_response.py b/src/cloudflare/types/radar/as112/summary_response_codes_response.py index 5fedce87d5f..f4e19fe4238 100644 --- a/src/cloudflare/types/radar/as112/summary_response_codes_response.py +++ b/src/cloudflare/types/radar/as112/summary_response_codes_response.py @@ -1,22 +1,53 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryResponseCodesResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "SummaryResponseCodesResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/as112/timeseries_group_query_type_response.py b/src/cloudflare/types/radar/as112/timeseries_group_query_type_response.py index edc3bd2dee6..b63a9d54cbb 100644 --- a/src/cloudflare/types/radar/as112/timeseries_group_query_type_response.py +++ b/src/cloudflare/types/radar/as112/timeseries_group_query_type_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupQueryTypeResponse"] +__all__ = ["TimeseriesGroupQueryTypeResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupQueryTypeResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/as112/timeseries_group_response_codes_response.py b/src/cloudflare/types/radar/as112/timeseries_group_response_codes_response.py index 9441858d9df..4b8af3b157c 100644 --- a/src/cloudflare/types/radar/as112/timeseries_group_response_codes_response.py +++ b/src/cloudflare/types/radar/as112/timeseries_group_response_codes_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupResponseCodesResponse"] +__all__ = ["TimeseriesGroupResponseCodesResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupResponseCodesResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/as112/top_dnssec_response.py b/src/cloudflare/types/radar/as112/top_dnssec_response.py index b67452d0e40..a911d0d50b3 100644 --- a/src/cloudflare/types/radar/as112/top_dnssec_response.py +++ b/src/cloudflare/types/radar/as112/top_dnssec_response.py @@ -1,29 +1,62 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopDNSSECResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["TopDNSSECResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class TopDNSSECResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/as112/top_edns_response.py b/src/cloudflare/types/radar/as112/top_edns_response.py index 45fa3dd42d7..208c881c579 100644 --- a/src/cloudflare/types/radar/as112/top_edns_response.py +++ b/src/cloudflare/types/radar/as112/top_edns_response.py @@ -1,29 +1,62 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopEdnsResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["TopEdnsResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class TopEdnsResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/as112/top_ip_version_response.py b/src/cloudflare/types/radar/as112/top_ip_version_response.py index 4c58d705315..3b48dfa0ca0 100644 --- a/src/cloudflare/types/radar/as112/top_ip_version_response.py +++ b/src/cloudflare/types/radar/as112/top_ip_version_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopIPVersionResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "TopIPVersionResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class TopIPVersionResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/as112/top_locations_response.py b/src/cloudflare/types/radar/as112/top_locations_response.py index bcfbd64a131..671c3284576 100644 --- a/src/cloudflare/types/radar/as112/top_locations_response.py +++ b/src/cloudflare/types/radar/as112/top_locations_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopLocationsResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "TopLocationsResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class TopLocationsResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/as112_timeseries_response.py b/src/cloudflare/types/radar/as112_timeseries_response.py index 816fd7aaf7d..3664bedad75 100644 --- a/src/cloudflare/types/radar/as112_timeseries_response.py +++ b/src/cloudflare/types/radar/as112_timeseries_response.py @@ -7,11 +7,42 @@ from ..._models import BaseModel -__all__ = ["AS112TimeseriesResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "AS112TimeseriesResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Serie0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None @@ -19,14 +50,20 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Serie0(BaseModel): + timestamps: List[datetime] + + values: List[str] + + class AS112TimeseriesResponse(BaseModel): meta: Meta - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_bitrate_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_bitrate_response.py index fe4fafebcd7..b04e158c215 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_bitrate_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_bitrate_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryBitrateResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryBitrateResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_duration_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_duration_response.py index 867dcdc32b8..a08fb88a43b 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_duration_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_duration_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryDurationResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryDurationResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_industry_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_industry_response.py index 6dead61b0ad..de252763039 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_industry_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_industry_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryIndustryResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryIndustryResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_ip_version_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_ip_version_response.py index 3514893d056..e1a3995c7e5 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_ip_version_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_ip_version_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryIPVersionResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "SummaryIPVersionResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -25,7 +57,13 @@ class Meta(BaseModel): confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Summary0(BaseModel): + i_pv4: str = FieldInfo(alias="IPv4") + + i_pv6: str = FieldInfo(alias="IPv6") + + class SummaryIPVersionResponse(BaseModel): meta: Meta - summary_0: object + summary_0: Summary0 diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_protocol_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_protocol_response.py index 9bc9f8f0642..7d749df3a2a 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_protocol_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_protocol_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryProtocolResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryProtocolResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_vector_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_vector_response.py index 87590e1f0b6..7dd4becaf4b 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_vector_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_vector_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryVectorResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryVectorResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/summary_vertical_response.py b/src/cloudflare/types/radar/attacks/layer3/summary_vertical_response.py index ce4b31acfd2..d2cdd169f86 100644 --- a/src/cloudflare/types/radar/attacks/layer3/summary_vertical_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/summary_vertical_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryVerticalResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryVerticalResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_industry_response.py b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_industry_response.py index 7b8a3631f2c..2751b1e138f 100644 --- a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_industry_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_industry_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupIndustryResponse"] +__all__ = ["TimeseriesGroupIndustryResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupIndustryResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_ip_version_response.py b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_ip_version_response.py index f4f4f4239e1..136fc4da363 100644 --- a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_ip_version_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_ip_version_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import List + +from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TimeseriesGroupIPVersionResponse"] +__all__ = ["TimeseriesGroupIPVersionResponse", "Serie0"] + + +class Serie0(BaseModel): + i_pv4: List[str] = FieldInfo(alias="IPv4") + + i_pv6: List[str] = FieldInfo(alias="IPv6") + + timestamps: List[str] class TimeseriesGroupIPVersionResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vector_response.py b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vector_response.py index 17268818053..383d68a5182 100644 --- a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vector_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vector_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupVectorResponse"] +__all__ = ["TimeseriesGroupVectorResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupVectorResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vertical_response.py b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vertical_response.py index 7ea651a721b..5b185a2edda 100644 --- a/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vertical_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/timeseries_group_vertical_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupVerticalResponse"] +__all__ = ["TimeseriesGroupVerticalResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupVerticalResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/attacks/layer3/top/location_origin_response.py b/src/cloudflare/types/radar/attacks/layer3/top/location_origin_response.py index 6b3d80e60a5..102661bf56a 100644 --- a/src/cloudflare/types/radar/attacks/layer3/top/location_origin_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/top/location_origin_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ......_models import BaseModel -__all__ = ["LocationOriginResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = [ + "LocationOriginResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/top/location_target_response.py b/src/cloudflare/types/radar/attacks/layer3/top/location_target_response.py index 080874258fc..4641eb271e6 100644 --- a/src/cloudflare/types/radar/attacks/layer3/top/location_target_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/top/location_target_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ......_models import BaseModel -__all__ = ["LocationTargetResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = [ + "LocationTargetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/top_attacks_response.py b/src/cloudflare/types/radar/attacks/layer3/top_attacks_response.py index 9190fbff87e..100bfdc7d49 100644 --- a/src/cloudflare/types/radar/attacks/layer3/top_attacks_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/top_attacks_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopAttacksResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["TopAttacksResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/top_industry_response.py b/src/cloudflare/types/radar/attacks/layer3/top_industry_response.py index 6450ea52fbb..7b8893c1cf0 100644 --- a/src/cloudflare/types/radar/attacks/layer3/top_industry_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/top_industry_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopIndustryResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["TopIndustryResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3/top_vertical_response.py b/src/cloudflare/types/radar/attacks/layer3/top_vertical_response.py index 2c125e0b596..a9b5b23fbf3 100644 --- a/src/cloudflare/types/radar/attacks/layer3/top_vertical_response.py +++ b/src/cloudflare/types/radar/attacks/layer3/top_vertical_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopVerticalResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["TopVerticalResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer3_timeseries_response.py b/src/cloudflare/types/radar/attacks/layer3_timeseries_response.py index 0ffe5325c45..c83a6af9578 100644 --- a/src/cloudflare/types/radar/attacks/layer3_timeseries_response.py +++ b/src/cloudflare/types/radar/attacks/layer3_timeseries_response.py @@ -1,12 +1,20 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import List +from datetime import datetime from ...._models import BaseModel -__all__ = ["Layer3TimeseriesResponse"] +__all__ = ["Layer3TimeseriesResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[datetime] + + values: List[str] class Layer3TimeseriesResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_http_method_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_http_method_response.py index 8785d375fb3..79afadef9b6 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_http_method_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_http_method_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryHTTPMethodResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryHTTPMethodResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_http_version_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_http_version_response.py index 8f0155b4040..f78c229daaa 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_http_version_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_http_version_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryHTTPVersionResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryHTTPVersionResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_industry_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_industry_response.py index 6dead61b0ad..de252763039 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_industry_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_industry_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryIndustryResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryIndustryResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_ip_version_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_ip_version_response.py index 3514893d056..e1a3995c7e5 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_ip_version_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_ip_version_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryIPVersionResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "SummaryIPVersionResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -25,7 +57,13 @@ class Meta(BaseModel): confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Summary0(BaseModel): + i_pv4: str = FieldInfo(alias="IPv4") + + i_pv6: str = FieldInfo(alias="IPv6") + + class SummaryIPVersionResponse(BaseModel): meta: Meta - summary_0: object + summary_0: Summary0 diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_managed_rules_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_managed_rules_response.py index de7428c7613..d63373ae0c7 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_managed_rules_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_managed_rules_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryManagedRulesResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryManagedRulesResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_mitigation_product_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_mitigation_product_response.py index 05035ff55c5..eebfb391f20 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_mitigation_product_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_mitigation_product_response.py @@ -1,22 +1,53 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryMitigationProductResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "SummaryMitigationProductResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/summary_vertical_response.py b/src/cloudflare/types/radar/attacks/layer7/summary_vertical_response.py index ce4b31acfd2..d2cdd169f86 100644 --- a/src/cloudflare/types/radar/attacks/layer7/summary_vertical_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/summary_vertical_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryVerticalResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryVerticalResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_http_method_response.py b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_http_method_response.py index 50b28a674e0..45e7a8b8a9f 100644 --- a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_http_method_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_http_method_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupHTTPMethodResponse"] +__all__ = ["TimeseriesGroupHTTPMethodResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupHTTPMethodResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_industry_response.py b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_industry_response.py index 7b8a3631f2c..2751b1e138f 100644 --- a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_industry_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_industry_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupIndustryResponse"] +__all__ = ["TimeseriesGroupIndustryResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupIndustryResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_ip_version_response.py b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_ip_version_response.py index f4f4f4239e1..136fc4da363 100644 --- a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_ip_version_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_ip_version_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import List + +from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TimeseriesGroupIPVersionResponse"] +__all__ = ["TimeseriesGroupIPVersionResponse", "Serie0"] + + +class Serie0(BaseModel): + i_pv4: List[str] = FieldInfo(alias="IPv4") + + i_pv6: List[str] = FieldInfo(alias="IPv6") + + timestamps: List[str] class TimeseriesGroupIPVersionResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_managed_rules_response.py b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_managed_rules_response.py index 12df2ed800d..362411fce48 100644 --- a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_managed_rules_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_managed_rules_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupManagedRulesResponse"] +__all__ = ["TimeseriesGroupManagedRulesResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupManagedRulesResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_mitigation_product_response.py b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_mitigation_product_response.py index 452ffaaa906..b3e88c1e6a0 100644 --- a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_mitigation_product_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_mitigation_product_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupMitigationProductResponse"] +__all__ = ["TimeseriesGroupMitigationProductResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupMitigationProductResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_vertical_response.py b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_vertical_response.py index 7ea651a721b..5b185a2edda 100644 --- a/src/cloudflare/types/radar/attacks/layer7/timeseries_group_vertical_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/timeseries_group_vertical_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ....._models import BaseModel -__all__ = ["TimeseriesGroupVerticalResponse"] +__all__ = ["TimeseriesGroupVerticalResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupVerticalResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/attacks/layer7/top/ase_origin_response.py b/src/cloudflare/types/radar/attacks/layer7/top/ase_origin_response.py index bfcda6c337d..7c7bdac68f6 100644 --- a/src/cloudflare/types/radar/attacks/layer7/top/ase_origin_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/top/ase_origin_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ......_models import BaseModel -__all__ = ["AseOriginResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["AseOriginResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/top/location_origin_response.py b/src/cloudflare/types/radar/attacks/layer7/top/location_origin_response.py index 6b3d80e60a5..102661bf56a 100644 --- a/src/cloudflare/types/radar/attacks/layer7/top/location_origin_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/top/location_origin_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ......_models import BaseModel -__all__ = ["LocationOriginResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = [ + "LocationOriginResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/top/location_target_response.py b/src/cloudflare/types/radar/attacks/layer7/top/location_target_response.py index 080874258fc..4641eb271e6 100644 --- a/src/cloudflare/types/radar/attacks/layer7/top/location_target_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/top/location_target_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ......_models import BaseModel -__all__ = ["LocationTargetResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = [ + "LocationTargetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/top_attacks_response.py b/src/cloudflare/types/radar/attacks/layer7/top_attacks_response.py index 6e339ae7d75..68577c2c62c 100644 --- a/src/cloudflare/types/radar/attacks/layer7/top_attacks_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/top_attacks_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopAttacksResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["TopAttacksResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/top_industry_response.py b/src/cloudflare/types/radar/attacks/layer7/top_industry_response.py index 6450ea52fbb..7b8893c1cf0 100644 --- a/src/cloudflare/types/radar/attacks/layer7/top_industry_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/top_industry_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopIndustryResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["TopIndustryResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7/top_vertical_response.py b/src/cloudflare/types/radar/attacks/layer7/top_vertical_response.py index 2c125e0b596..a9b5b23fbf3 100644 --- a/src/cloudflare/types/radar/attacks/layer7/top_vertical_response.py +++ b/src/cloudflare/types/radar/attacks/layer7/top_vertical_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopVerticalResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["TopVerticalResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/attacks/layer7_timeseries_response.py b/src/cloudflare/types/radar/attacks/layer7_timeseries_response.py index ce6e8fb03fc..355696d9df5 100644 --- a/src/cloudflare/types/radar/attacks/layer7_timeseries_response.py +++ b/src/cloudflare/types/radar/attacks/layer7_timeseries_response.py @@ -7,11 +7,42 @@ from ...._models import BaseModel -__all__ = ["Layer7TimeseriesResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "Layer7TimeseriesResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Serie0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None @@ -19,14 +50,20 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Serie0(BaseModel): + timestamps: List[datetime] + + values: List[str] + + class Layer7TimeseriesResponse(BaseModel): meta: Meta - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/bgp/route_moas_response.py b/src/cloudflare/types/radar/bgp/route_moas_response.py index 0166999d431..13918ba1f33 100644 --- a/src/cloudflare/types/radar/bgp/route_moas_response.py +++ b/src/cloudflare/types/radar/bgp/route_moas_response.py @@ -4,7 +4,15 @@ from ...._models import BaseModel -__all__ = ["RouteMoasResponse", "Moa", "MoaOrigin"] +__all__ = ["RouteMoasResponse", "Meta", "Moa", "MoaOrigin"] + + +class Meta(BaseModel): + data_time: str + + query_time: str + + total_peers: int class MoaOrigin(BaseModel): @@ -22,6 +30,6 @@ class Moa(BaseModel): class RouteMoasResponse(BaseModel): - meta: object + meta: Meta moas: List[Moa] diff --git a/src/cloudflare/types/radar/bgp/route_pfx2as_response.py b/src/cloudflare/types/radar/bgp/route_pfx2as_response.py index ad8543d16b5..2bcf9de4eb0 100644 --- a/src/cloudflare/types/radar/bgp/route_pfx2as_response.py +++ b/src/cloudflare/types/radar/bgp/route_pfx2as_response.py @@ -4,7 +4,15 @@ from ...._models import BaseModel -__all__ = ["RoutePfx2asResponse", "PrefixOrigin"] +__all__ = ["RoutePfx2asResponse", "Meta", "PrefixOrigin"] + + +class Meta(BaseModel): + data_time: str + + query_time: str + + total_peers: int class PrefixOrigin(BaseModel): @@ -18,6 +26,6 @@ class PrefixOrigin(BaseModel): class RoutePfx2asResponse(BaseModel): - meta: object + meta: Meta prefix_origins: List[PrefixOrigin] diff --git a/src/cloudflare/types/radar/bgp/route_stats_response.py b/src/cloudflare/types/radar/bgp/route_stats_response.py index 24c0e6e9946..a410062e4d5 100644 --- a/src/cloudflare/types/radar/bgp/route_stats_response.py +++ b/src/cloudflare/types/radar/bgp/route_stats_response.py @@ -3,7 +3,15 @@ from ...._models import BaseModel -__all__ = ["RouteStatsResponse", "Stats"] +__all__ = ["RouteStatsResponse", "Meta", "Stats"] + + +class Meta(BaseModel): + data_time: str + + query_time: str + + total_peers: int class Stats(BaseModel): @@ -45,6 +53,6 @@ class Stats(BaseModel): class RouteStatsResponse(BaseModel): - meta: object + meta: Meta stats: Stats diff --git a/src/cloudflare/types/radar/bgp/top/ase_get_response.py b/src/cloudflare/types/radar/bgp/top/ase_get_response.py index ebba8e89e21..e891e99cefa 100644 --- a/src/cloudflare/types/radar/bgp/top/ase_get_response.py +++ b/src/cloudflare/types/radar/bgp/top/ase_get_response.py @@ -1,16 +1,25 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["AseGetResponse", "Meta", "Top0"] +__all__ = ["AseGetResponse", "Meta", "MetaDateRange", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") class Top0(BaseModel): diff --git a/src/cloudflare/types/radar/bgp/top/ase_prefixes_response.py b/src/cloudflare/types/radar/bgp/top/ase_prefixes_response.py index ae4521ae28f..e0a853b09a6 100644 --- a/src/cloudflare/types/radar/bgp/top/ase_prefixes_response.py +++ b/src/cloudflare/types/radar/bgp/top/ase_prefixes_response.py @@ -4,7 +4,7 @@ from ....._models import BaseModel -__all__ = ["AsePrefixesResponse", "ASN"] +__all__ = ["AsePrefixesResponse", "ASN", "Meta"] class ASN(BaseModel): @@ -17,7 +17,15 @@ class ASN(BaseModel): pfxs_count: int +class Meta(BaseModel): + data_time: str + + query_time: str + + total_peers: int + + class AsePrefixesResponse(BaseModel): asns: List[ASN] - meta: object + meta: Meta diff --git a/src/cloudflare/types/radar/bgp/top_prefixes_response.py b/src/cloudflare/types/radar/bgp/top_prefixes_response.py index 480d8f6bd4e..9f5e92716b7 100644 --- a/src/cloudflare/types/radar/bgp/top_prefixes_response.py +++ b/src/cloudflare/types/radar/bgp/top_prefixes_response.py @@ -1,16 +1,25 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopPrefixesResponse", "Meta", "Top0"] +__all__ = ["TopPrefixesResponse", "Meta", "MetaDateRange", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") class Top0(BaseModel): diff --git a/src/cloudflare/types/radar/bgp_timeseries_response.py b/src/cloudflare/types/radar/bgp_timeseries_response.py index aa95ce9e503..b3ca270daa5 100644 --- a/src/cloudflare/types/radar/bgp_timeseries_response.py +++ b/src/cloudflare/types/radar/bgp_timeseries_response.py @@ -7,11 +7,42 @@ from ..._models import BaseModel -__all__ = ["BGPTimeseriesResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "BGPTimeseriesResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Serie0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None @@ -19,14 +50,20 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Serie0(BaseModel): + timestamps: List[datetime] + + values: List[str] + + class BGPTimeseriesResponse(BaseModel): meta: Meta - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/dns/summary_cache_hit_response.py b/src/cloudflare/types/radar/dns/summary_cache_hit_response.py index c089a837e80..eac77027ab9 100644 --- a/src/cloudflare/types/radar/dns/summary_cache_hit_response.py +++ b/src/cloudflare/types/radar/dns/summary_cache_hit_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryCacheHitResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryCacheHitResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_dnssec_aware_response.py b/src/cloudflare/types/radar/dns/summary_dnssec_aware_response.py index be187d86900..d31274b80f9 100644 --- a/src/cloudflare/types/radar/dns/summary_dnssec_aware_response.py +++ b/src/cloudflare/types/radar/dns/summary_dnssec_aware_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryDNSSECAwareResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryDNSSECAwareResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_dnssec_e2e_response.py b/src/cloudflare/types/radar/dns/summary_dnssec_e2e_response.py index 0f169a0546b..09b86fac10c 100644 --- a/src/cloudflare/types/radar/dns/summary_dnssec_e2e_response.py +++ b/src/cloudflare/types/radar/dns/summary_dnssec_e2e_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryDNSSECE2EResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryDNSSECE2EResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_dnssec_response.py b/src/cloudflare/types/radar/dns/summary_dnssec_response.py index a615d97849a..a4f7393ab7f 100644 --- a/src/cloudflare/types/radar/dns/summary_dnssec_response.py +++ b/src/cloudflare/types/radar/dns/summary_dnssec_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryDNSSECResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryDNSSECResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_ip_version_response.py b/src/cloudflare/types/radar/dns/summary_ip_version_response.py index 9da143e15ec..6286c80dc1d 100644 --- a/src/cloudflare/types/radar/dns/summary_ip_version_response.py +++ b/src/cloudflare/types/radar/dns/summary_ip_version_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryIPVersionResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "SummaryIPVersionResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -25,7 +57,13 @@ class Meta(BaseModel): confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Summary0(BaseModel): + i_pv4: str = FieldInfo(alias="IPv4") + + i_pv6: str = FieldInfo(alias="IPv6") + + class SummaryIPVersionResponse(BaseModel): meta: Meta - summary_0: object + summary_0: Summary0 diff --git a/src/cloudflare/types/radar/dns/summary_matching_answer_response.py b/src/cloudflare/types/radar/dns/summary_matching_answer_response.py index 67f6d7c829f..b232290ab60 100644 --- a/src/cloudflare/types/radar/dns/summary_matching_answer_response.py +++ b/src/cloudflare/types/radar/dns/summary_matching_answer_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryMatchingAnswerResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryMatchingAnswerResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_protocol_response.py b/src/cloudflare/types/radar/dns/summary_protocol_response.py index ca33cf63608..b75c6a52eb9 100644 --- a/src/cloudflare/types/radar/dns/summary_protocol_response.py +++ b/src/cloudflare/types/radar/dns/summary_protocol_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryProtocolResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryProtocolResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_query_type_response.py b/src/cloudflare/types/radar/dns/summary_query_type_response.py index ccbbd6b44ce..87baa9cd63b 100644 --- a/src/cloudflare/types/radar/dns/summary_query_type_response.py +++ b/src/cloudflare/types/radar/dns/summary_query_type_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryQueryTypeResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryQueryTypeResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_response_code_response.py b/src/cloudflare/types/radar/dns/summary_response_code_response.py index cb60949d0ed..01764dfda55 100644 --- a/src/cloudflare/types/radar/dns/summary_response_code_response.py +++ b/src/cloudflare/types/radar/dns/summary_response_code_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Dict, List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryResponseCodeResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryResponseCodeResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/summary_response_ttl_response.py b/src/cloudflare/types/radar/dns/summary_response_ttl_response.py index 608d9792e15..8c3259e1ec4 100644 --- a/src/cloudflare/types/radar/dns/summary_response_ttl_response.py +++ b/src/cloudflare/types/radar/dns/summary_response_ttl_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryResponseTTLResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryResponseTTLResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/dns/timeseries_group_query_type_response.py b/src/cloudflare/types/radar/dns/timeseries_group_query_type_response.py index edc3bd2dee6..b63a9d54cbb 100644 --- a/src/cloudflare/types/radar/dns/timeseries_group_query_type_response.py +++ b/src/cloudflare/types/radar/dns/timeseries_group_query_type_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupQueryTypeResponse"] +__all__ = ["TimeseriesGroupQueryTypeResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupQueryTypeResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/dns/timeseries_group_response_code_response.py b/src/cloudflare/types/radar/dns/timeseries_group_response_code_response.py index ae264b84d26..b5d3c5a39b7 100644 --- a/src/cloudflare/types/radar/dns/timeseries_group_response_code_response.py +++ b/src/cloudflare/types/radar/dns/timeseries_group_response_code_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupResponseCodeResponse"] +__all__ = ["TimeseriesGroupResponseCodeResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupResponseCodeResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/dns/top_ases_response.py b/src/cloudflare/types/radar/dns/top_ases_response.py index b2f0ce1f250..e87c9d659f0 100644 --- a/src/cloudflare/types/radar/dns/top_ases_response.py +++ b/src/cloudflare/types/radar/dns/top_ases_response.py @@ -1,27 +1,60 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopAsesResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["TopAsesResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_asn: int = FieldInfo(alias="clientASN") + + client_as_name: str = FieldInfo(alias="clientASName") + + value: str + + class TopAsesResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/dns/top_locations_response.py b/src/cloudflare/types/radar/dns/top_locations_response.py index 5ee50088973..4be71f2a029 100644 --- a/src/cloudflare/types/radar/dns/top_locations_response.py +++ b/src/cloudflare/types/radar/dns/top_locations_response.py @@ -1,27 +1,67 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopLocationsResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "TopLocationsResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class TopLocationsResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/dns_timeseries_response.py b/src/cloudflare/types/radar/dns_timeseries_response.py index e0238d515a4..1d17716bd40 100644 --- a/src/cloudflare/types/radar/dns_timeseries_response.py +++ b/src/cloudflare/types/radar/dns_timeseries_response.py @@ -7,11 +7,42 @@ from ..._models import BaseModel -__all__ = ["DNSTimeseriesResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "DNSTimeseriesResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Serie0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None @@ -19,14 +50,20 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Serie0(BaseModel): + timestamps: List[datetime] + + values: List[str] + + class DNSTimeseriesResponse(BaseModel): meta: Meta - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/email/routing/summary_arc_response.py b/src/cloudflare/types/radar/email/routing/summary_arc_response.py index 0e84d364ba3..274e9a535ba 100644 --- a/src/cloudflare/types/radar/email/routing/summary_arc_response.py +++ b/src/cloudflare/types/radar/email/routing/summary_arc_response.py @@ -1,22 +1,48 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel +from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummaryARCResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryARCResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -28,4 +54,4 @@ class Meta(BaseModel): class SummaryARCResponse(BaseModel): meta: Meta - summary_0: object + summary_0: RadarEmailSummary diff --git a/src/cloudflare/types/radar/email/routing/summary_dkim_response.py b/src/cloudflare/types/radar/email/routing/summary_dkim_response.py index 74411739b96..df8a79048cd 100644 --- a/src/cloudflare/types/radar/email/routing/summary_dkim_response.py +++ b/src/cloudflare/types/radar/email/routing/summary_dkim_response.py @@ -1,22 +1,48 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel +from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummaryDKIMResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryDKIMResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -28,4 +54,4 @@ class Meta(BaseModel): class SummaryDKIMResponse(BaseModel): meta: Meta - summary_0: object + summary_0: RadarEmailSummary diff --git a/src/cloudflare/types/radar/email/routing/summary_dmarc_response.py b/src/cloudflare/types/radar/email/routing/summary_dmarc_response.py index 57264ed4c7f..0563a742286 100644 --- a/src/cloudflare/types/radar/email/routing/summary_dmarc_response.py +++ b/src/cloudflare/types/radar/email/routing/summary_dmarc_response.py @@ -1,22 +1,48 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel +from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummaryDMARCResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryDMARCResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -28,4 +54,4 @@ class Meta(BaseModel): class SummaryDMARCResponse(BaseModel): meta: Meta - summary_0: object + summary_0: RadarEmailSummary diff --git a/src/cloudflare/types/radar/email/routing/summary_encrypted_response.py b/src/cloudflare/types/radar/email/routing/summary_encrypted_response.py index 6bbb0ae86fa..5461181d3de 100644 --- a/src/cloudflare/types/radar/email/routing/summary_encrypted_response.py +++ b/src/cloudflare/types/radar/email/routing/summary_encrypted_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryEncryptedResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryEncryptedResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/routing/summary_ip_version_response.py b/src/cloudflare/types/radar/email/routing/summary_ip_version_response.py index 3514893d056..e1a3995c7e5 100644 --- a/src/cloudflare/types/radar/email/routing/summary_ip_version_response.py +++ b/src/cloudflare/types/radar/email/routing/summary_ip_version_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryIPVersionResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "SummaryIPVersionResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -25,7 +57,13 @@ class Meta(BaseModel): confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Summary0(BaseModel): + i_pv4: str = FieldInfo(alias="IPv4") + + i_pv6: str = FieldInfo(alias="IPv6") + + class SummaryIPVersionResponse(BaseModel): meta: Meta - summary_0: object + summary_0: Summary0 diff --git a/src/cloudflare/types/radar/email/routing/summary_spf_response.py b/src/cloudflare/types/radar/email/routing/summary_spf_response.py index bf8f2f7b38b..9cd062e392f 100644 --- a/src/cloudflare/types/radar/email/routing/summary_spf_response.py +++ b/src/cloudflare/types/radar/email/routing/summary_spf_response.py @@ -1,22 +1,48 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel +from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummarySPFResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummarySPFResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -28,4 +54,4 @@ class Meta(BaseModel): class SummarySPFResponse(BaseModel): meta: Meta - summary_0: object + summary_0: RadarEmailSummary diff --git a/src/cloudflare/types/radar/email/routing/timeseries_group_arc_response.py b/src/cloudflare/types/radar/email/routing/timeseries_group_arc_response.py index 879c5971b77..d3f31f162dd 100644 --- a/src/cloudflare/types/radar/email/routing/timeseries_group_arc_response.py +++ b/src/cloudflare/types/radar/email/routing/timeseries_group_arc_response.py @@ -2,6 +2,7 @@ from ....._models import BaseModel +from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupARCResponse"] @@ -9,4 +10,4 @@ class TimeseriesGroupARCResponse(BaseModel): meta: object - serie_0: object + serie_0: RadarEmailSeries diff --git a/src/cloudflare/types/radar/email/routing/timeseries_group_dkim_response.py b/src/cloudflare/types/radar/email/routing/timeseries_group_dkim_response.py index ef85b3aeb73..7326ae59341 100644 --- a/src/cloudflare/types/radar/email/routing/timeseries_group_dkim_response.py +++ b/src/cloudflare/types/radar/email/routing/timeseries_group_dkim_response.py @@ -2,6 +2,7 @@ from ....._models import BaseModel +from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupDKIMResponse"] @@ -9,4 +10,4 @@ class TimeseriesGroupDKIMResponse(BaseModel): meta: object - serie_0: object + serie_0: RadarEmailSeries diff --git a/src/cloudflare/types/radar/email/routing/timeseries_group_dmarc_response.py b/src/cloudflare/types/radar/email/routing/timeseries_group_dmarc_response.py index 703ca9600e9..a27240408df 100644 --- a/src/cloudflare/types/radar/email/routing/timeseries_group_dmarc_response.py +++ b/src/cloudflare/types/radar/email/routing/timeseries_group_dmarc_response.py @@ -2,6 +2,7 @@ from ....._models import BaseModel +from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupDMARCResponse"] @@ -9,4 +10,4 @@ class TimeseriesGroupDMARCResponse(BaseModel): meta: object - serie_0: object + serie_0: RadarEmailSeries diff --git a/src/cloudflare/types/radar/email/routing/timeseries_group_spf_response.py b/src/cloudflare/types/radar/email/routing/timeseries_group_spf_response.py index 851ecf9418d..4e520fda2fa 100644 --- a/src/cloudflare/types/radar/email/routing/timeseries_group_spf_response.py +++ b/src/cloudflare/types/radar/email/routing/timeseries_group_spf_response.py @@ -2,6 +2,7 @@ from ....._models import BaseModel +from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupSPFResponse"] @@ -9,4 +10,4 @@ class TimeseriesGroupSPFResponse(BaseModel): meta: object - serie_0: object + serie_0: RadarEmailSeries diff --git a/src/cloudflare/types/radar/email/security/summary_arc_response.py b/src/cloudflare/types/radar/email/security/summary_arc_response.py index 0e84d364ba3..274e9a535ba 100644 --- a/src/cloudflare/types/radar/email/security/summary_arc_response.py +++ b/src/cloudflare/types/radar/email/security/summary_arc_response.py @@ -1,22 +1,48 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel +from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummaryARCResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryARCResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -28,4 +54,4 @@ class Meta(BaseModel): class SummaryARCResponse(BaseModel): meta: Meta - summary_0: object + summary_0: RadarEmailSummary diff --git a/src/cloudflare/types/radar/email/security/summary_dkim_response.py b/src/cloudflare/types/radar/email/security/summary_dkim_response.py index 74411739b96..df8a79048cd 100644 --- a/src/cloudflare/types/radar/email/security/summary_dkim_response.py +++ b/src/cloudflare/types/radar/email/security/summary_dkim_response.py @@ -1,22 +1,48 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel +from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummaryDKIMResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryDKIMResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -28,4 +54,4 @@ class Meta(BaseModel): class SummaryDKIMResponse(BaseModel): meta: Meta - summary_0: object + summary_0: RadarEmailSummary diff --git a/src/cloudflare/types/radar/email/security/summary_dmarc_response.py b/src/cloudflare/types/radar/email/security/summary_dmarc_response.py index 57264ed4c7f..0563a742286 100644 --- a/src/cloudflare/types/radar/email/security/summary_dmarc_response.py +++ b/src/cloudflare/types/radar/email/security/summary_dmarc_response.py @@ -1,22 +1,48 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel +from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummaryDMARCResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummaryDMARCResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -28,4 +54,4 @@ class Meta(BaseModel): class SummaryDMARCResponse(BaseModel): meta: Meta - summary_0: object + summary_0: RadarEmailSummary diff --git a/src/cloudflare/types/radar/email/security/summary_malicious_response.py b/src/cloudflare/types/radar/email/security/summary_malicious_response.py index f30aaf140c0..44426a6e84e 100644 --- a/src/cloudflare/types/radar/email/security/summary_malicious_response.py +++ b/src/cloudflare/types/radar/email/security/summary_malicious_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryMaliciousResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryMaliciousResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/summary_spam_response.py b/src/cloudflare/types/radar/email/security/summary_spam_response.py index 2fa99464515..4fe4f3c5172 100644 --- a/src/cloudflare/types/radar/email/security/summary_spam_response.py +++ b/src/cloudflare/types/radar/email/security/summary_spam_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummarySpamResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummarySpamResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/summary_spf_response.py b/src/cloudflare/types/radar/email/security/summary_spf_response.py index bf8f2f7b38b..9cd062e392f 100644 --- a/src/cloudflare/types/radar/email/security/summary_spf_response.py +++ b/src/cloudflare/types/radar/email/security/summary_spf_response.py @@ -1,22 +1,48 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel +from ...radar_email_summary import RadarEmailSummary -__all__ = ["SummarySPFResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["SummarySPFResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -28,4 +54,4 @@ class Meta(BaseModel): class SummarySPFResponse(BaseModel): meta: Meta - summary_0: object + summary_0: RadarEmailSummary diff --git a/src/cloudflare/types/radar/email/security/summary_spoof_response.py b/src/cloudflare/types/radar/email/security/summary_spoof_response.py index 1422617ded7..b9e738ea0e1 100644 --- a/src/cloudflare/types/radar/email/security/summary_spoof_response.py +++ b/src/cloudflare/types/radar/email/security/summary_spoof_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummarySpoofResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummarySpoofResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/summary_threat_category_response.py b/src/cloudflare/types/radar/email/security/summary_threat_category_response.py index 04f6ef42c00..36e2d29bbdf 100644 --- a/src/cloudflare/types/radar/email/security/summary_threat_category_response.py +++ b/src/cloudflare/types/radar/email/security/summary_threat_category_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryThreatCategoryResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryThreatCategoryResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/summary_tls_version_response.py b/src/cloudflare/types/radar/email/security/summary_tls_version_response.py index 87e69685dff..f9ea5ad0711 100644 --- a/src/cloudflare/types/radar/email/security/summary_tls_version_response.py +++ b/src/cloudflare/types/radar/email/security/summary_tls_version_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["SummaryTLSVersionResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryTLSVersionResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/timeseries_group_arc_response.py b/src/cloudflare/types/radar/email/security/timeseries_group_arc_response.py index 879c5971b77..d3f31f162dd 100644 --- a/src/cloudflare/types/radar/email/security/timeseries_group_arc_response.py +++ b/src/cloudflare/types/radar/email/security/timeseries_group_arc_response.py @@ -2,6 +2,7 @@ from ....._models import BaseModel +from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupARCResponse"] @@ -9,4 +10,4 @@ class TimeseriesGroupARCResponse(BaseModel): meta: object - serie_0: object + serie_0: RadarEmailSeries diff --git a/src/cloudflare/types/radar/email/security/timeseries_group_dkim_response.py b/src/cloudflare/types/radar/email/security/timeseries_group_dkim_response.py index ef85b3aeb73..7326ae59341 100644 --- a/src/cloudflare/types/radar/email/security/timeseries_group_dkim_response.py +++ b/src/cloudflare/types/radar/email/security/timeseries_group_dkim_response.py @@ -2,6 +2,7 @@ from ....._models import BaseModel +from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupDKIMResponse"] @@ -9,4 +10,4 @@ class TimeseriesGroupDKIMResponse(BaseModel): meta: object - serie_0: object + serie_0: RadarEmailSeries diff --git a/src/cloudflare/types/radar/email/security/timeseries_group_dmarc_response.py b/src/cloudflare/types/radar/email/security/timeseries_group_dmarc_response.py index 703ca9600e9..a27240408df 100644 --- a/src/cloudflare/types/radar/email/security/timeseries_group_dmarc_response.py +++ b/src/cloudflare/types/radar/email/security/timeseries_group_dmarc_response.py @@ -2,6 +2,7 @@ from ....._models import BaseModel +from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupDMARCResponse"] @@ -9,4 +10,4 @@ class TimeseriesGroupDMARCResponse(BaseModel): meta: object - serie_0: object + serie_0: RadarEmailSeries diff --git a/src/cloudflare/types/radar/email/security/timeseries_group_spf_response.py b/src/cloudflare/types/radar/email/security/timeseries_group_spf_response.py index 851ecf9418d..4e520fda2fa 100644 --- a/src/cloudflare/types/radar/email/security/timeseries_group_spf_response.py +++ b/src/cloudflare/types/radar/email/security/timeseries_group_spf_response.py @@ -2,6 +2,7 @@ from ....._models import BaseModel +from ...radar_email_series import RadarEmailSeries __all__ = ["TimeseriesGroupSPFResponse"] @@ -9,4 +10,4 @@ class TimeseriesGroupSPFResponse(BaseModel): meta: object - serie_0: object + serie_0: RadarEmailSeries diff --git a/src/cloudflare/types/radar/email/security/top/tld_get_response.py b/src/cloudflare/types/radar/email/security/top/tld_get_response.py index eaa6277a1a3..49aa4d04c3f 100644 --- a/src/cloudflare/types/radar/email/security/top/tld_get_response.py +++ b/src/cloudflare/types/radar/email/security/top/tld_get_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ......_models import BaseModel -__all__ = ["TldGetResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["TldGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/top/tlds/malicious_get_response.py b/src/cloudflare/types/radar/email/security/top/tlds/malicious_get_response.py index 19567d10a23..48be3d39b00 100644 --- a/src/cloudflare/types/radar/email/security/top/tlds/malicious_get_response.py +++ b/src/cloudflare/types/radar/email/security/top/tlds/malicious_get_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ......._models import BaseModel -__all__ = ["MaliciousGetResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = [ + "MaliciousGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/top/tlds/spam_get_response.py b/src/cloudflare/types/radar/email/security/top/tlds/spam_get_response.py index 4f1b2d5ddfe..f4114b96787 100644 --- a/src/cloudflare/types/radar/email/security/top/tlds/spam_get_response.py +++ b/src/cloudflare/types/radar/email/security/top/tlds/spam_get_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ......._models import BaseModel -__all__ = ["SpamGetResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["SpamGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/email/security/top/tlds/spoof_get_response.py b/src/cloudflare/types/radar/email/security/top/tlds/spoof_get_response.py index 08b66ff3441..212026d457a 100644 --- a/src/cloudflare/types/radar/email/security/top/tlds/spoof_get_response.py +++ b/src/cloudflare/types/radar/email/security/top/tlds/spoof_get_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ......._models import BaseModel -__all__ = ["SpoofGetResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["SpoofGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/entities/asn_rel_response.py b/src/cloudflare/types/radar/entities/asn_rel_response.py index 68962c6cfd3..f6c855e3438 100644 --- a/src/cloudflare/types/radar/entities/asn_rel_response.py +++ b/src/cloudflare/types/radar/entities/asn_rel_response.py @@ -4,7 +4,15 @@ from ...._models import BaseModel -__all__ = ["ASNRelResponse", "Rel"] +__all__ = ["ASNRelResponse", "Meta", "Rel"] + + +class Meta(BaseModel): + data_time: str + + query_time: str + + total_peers: int class Rel(BaseModel): @@ -24,6 +32,6 @@ class Rel(BaseModel): class ASNRelResponse(BaseModel): - meta: object + meta: Meta rels: List[Rel] diff --git a/src/cloudflare/types/radar/http/ase_get_response.py b/src/cloudflare/types/radar/http/ase_get_response.py index 641f692313f..a606c25f81c 100644 --- a/src/cloudflare/types/radar/http/ase_get_response.py +++ b/src/cloudflare/types/radar/http/ase_get_response.py @@ -1,29 +1,62 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["AseGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["AseGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_asn: int = FieldInfo(alias="clientASN") + + client_as_name: str = FieldInfo(alias="clientASName") + + value: str + + class AseGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/ases/bot_class_get_response.py b/src/cloudflare/types/radar/http/ases/bot_class_get_response.py index 6e0d85a4e45..c48362beaed 100644 --- a/src/cloudflare/types/radar/http/ases/bot_class_get_response.py +++ b/src/cloudflare/types/radar/http/ases/bot_class_get_response.py @@ -1,29 +1,62 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["BotClassGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["BotClassGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_asn: int = FieldInfo(alias="clientASN") + + client_as_name: str = FieldInfo(alias="clientASName") + + value: str + + class BotClassGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/ases/browser_family_get_response.py b/src/cloudflare/types/radar/http/ases/browser_family_get_response.py index b2d60bebdde..f4d2f1fc2be 100644 --- a/src/cloudflare/types/radar/http/ases/browser_family_get_response.py +++ b/src/cloudflare/types/radar/http/ases/browser_family_get_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["BrowserFamilyGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "BrowserFamilyGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_asn: int = FieldInfo(alias="clientASN") + + client_as_name: str = FieldInfo(alias="clientASName") + + value: str + + class BrowserFamilyGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/ases/device_type_get_response.py b/src/cloudflare/types/radar/http/ases/device_type_get_response.py index c3b7d3726ba..a619785971d 100644 --- a/src/cloudflare/types/radar/http/ases/device_type_get_response.py +++ b/src/cloudflare/types/radar/http/ases/device_type_get_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["DeviceTypeGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "DeviceTypeGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_asn: int = FieldInfo(alias="clientASN") + + client_as_name: str = FieldInfo(alias="clientASName") + + value: str + + class DeviceTypeGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/ases/http_method_get_response.py b/src/cloudflare/types/radar/http/ases/http_method_get_response.py index 84865d9b79e..d4e4622fe36 100644 --- a/src/cloudflare/types/radar/http/ases/http_method_get_response.py +++ b/src/cloudflare/types/radar/http/ases/http_method_get_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["HTTPMethodGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "HTTPMethodGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_asn: int = FieldInfo(alias="clientASN") + + client_as_name: str = FieldInfo(alias="clientASName") + + value: str + + class HTTPMethodGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/ases/http_protocol_get_response.py b/src/cloudflare/types/radar/http/ases/http_protocol_get_response.py index 14e05d84595..3552fc7cad0 100644 --- a/src/cloudflare/types/radar/http/ases/http_protocol_get_response.py +++ b/src/cloudflare/types/radar/http/ases/http_protocol_get_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["HTTPProtocolGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "HTTPProtocolGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_asn: int = FieldInfo(alias="clientASN") + + client_as_name: str = FieldInfo(alias="clientASName") + + value: str + + class HTTPProtocolGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/ases/ip_version_get_response.py b/src/cloudflare/types/radar/http/ases/ip_version_get_response.py index 43c46b09315..cb714fbcdf2 100644 --- a/src/cloudflare/types/radar/http/ases/ip_version_get_response.py +++ b/src/cloudflare/types/radar/http/ases/ip_version_get_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["IPVersionGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "IPVersionGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_asn: int = FieldInfo(alias="clientASN") + + client_as_name: str = FieldInfo(alias="clientASName") + + value: str + + class IPVersionGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/ases/os_get_response.py b/src/cloudflare/types/radar/http/ases/os_get_response.py index 622ecc36d37..a8777949f24 100644 --- a/src/cloudflare/types/radar/http/ases/os_get_response.py +++ b/src/cloudflare/types/radar/http/ases/os_get_response.py @@ -1,29 +1,62 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["OSGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["OSGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_asn: int = FieldInfo(alias="clientASN") + + client_as_name: str = FieldInfo(alias="clientASName") + + value: str + + class OSGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/ases/tls_version_get_response.py b/src/cloudflare/types/radar/http/ases/tls_version_get_response.py index bd3a1952d53..1ffc7b6c327 100644 --- a/src/cloudflare/types/radar/http/ases/tls_version_get_response.py +++ b/src/cloudflare/types/radar/http/ases/tls_version_get_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TLSVersionGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "TLSVersionGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_asn: int = FieldInfo(alias="clientASN") + + client_as_name: str = FieldInfo(alias="clientASName") + + value: str + + class TLSVersionGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/location_get_response.py b/src/cloudflare/types/radar/http/location_get_response.py index a64afe2acae..95a4c526fe3 100644 --- a/src/cloudflare/types/radar/http/location_get_response.py +++ b/src/cloudflare/types/radar/http/location_get_response.py @@ -1,29 +1,62 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["LocationGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["LocationGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class LocationGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/locations/bot_class_get_response.py b/src/cloudflare/types/radar/http/locations/bot_class_get_response.py index 6e0d85a4e45..9b7d9f6c23d 100644 --- a/src/cloudflare/types/radar/http/locations/bot_class_get_response.py +++ b/src/cloudflare/types/radar/http/locations/bot_class_get_response.py @@ -1,29 +1,62 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["BotClassGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["BotClassGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class BotClassGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/locations/browser_family_get_response.py b/src/cloudflare/types/radar/http/locations/browser_family_get_response.py index b2d60bebdde..5f161c3903e 100644 --- a/src/cloudflare/types/radar/http/locations/browser_family_get_response.py +++ b/src/cloudflare/types/radar/http/locations/browser_family_get_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["BrowserFamilyGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "BrowserFamilyGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class BrowserFamilyGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/locations/device_type_get_response.py b/src/cloudflare/types/radar/http/locations/device_type_get_response.py index c3b7d3726ba..ed2f568faad 100644 --- a/src/cloudflare/types/radar/http/locations/device_type_get_response.py +++ b/src/cloudflare/types/radar/http/locations/device_type_get_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["DeviceTypeGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "DeviceTypeGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class DeviceTypeGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/locations/http_method_get_response.py b/src/cloudflare/types/radar/http/locations/http_method_get_response.py index 84865d9b79e..ed56bfd057f 100644 --- a/src/cloudflare/types/radar/http/locations/http_method_get_response.py +++ b/src/cloudflare/types/radar/http/locations/http_method_get_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["HTTPMethodGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "HTTPMethodGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class HTTPMethodGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/locations/http_protocol_get_response.py b/src/cloudflare/types/radar/http/locations/http_protocol_get_response.py index 14e05d84595..6d9b31aad62 100644 --- a/src/cloudflare/types/radar/http/locations/http_protocol_get_response.py +++ b/src/cloudflare/types/radar/http/locations/http_protocol_get_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["HTTPProtocolGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "HTTPProtocolGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class HTTPProtocolGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/locations/ip_version_get_response.py b/src/cloudflare/types/radar/http/locations/ip_version_get_response.py index 43c46b09315..bb30d89b81e 100644 --- a/src/cloudflare/types/radar/http/locations/ip_version_get_response.py +++ b/src/cloudflare/types/radar/http/locations/ip_version_get_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["IPVersionGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "IPVersionGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class IPVersionGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/locations/os_get_response.py b/src/cloudflare/types/radar/http/locations/os_get_response.py index 622ecc36d37..31e24633774 100644 --- a/src/cloudflare/types/radar/http/locations/os_get_response.py +++ b/src/cloudflare/types/radar/http/locations/os_get_response.py @@ -1,29 +1,62 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["OSGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = ["OSGetResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class OSGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/locations/tls_version_get_response.py b/src/cloudflare/types/radar/http/locations/tls_version_get_response.py index bd3a1952d53..82d4b85eec7 100644 --- a/src/cloudflare/types/radar/http/locations/tls_version_get_response.py +++ b/src/cloudflare/types/radar/http/locations/tls_version_get_response.py @@ -1,29 +1,69 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TLSVersionGetResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "TLSVersionGetResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Top0(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str + + class TLSVersionGetResponse(BaseModel): meta: Meta - top_0: List[object] + top_0: List[Top0] diff --git a/src/cloudflare/types/radar/http/summary_bot_class_response.py b/src/cloudflare/types/radar/http/summary_bot_class_response.py index 59e51d44143..d4c5847ae8d 100644 --- a/src/cloudflare/types/radar/http/summary_bot_class_response.py +++ b/src/cloudflare/types/radar/http/summary_bot_class_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryBotClassResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryBotClassResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/summary_device_type_response.py b/src/cloudflare/types/radar/http/summary_device_type_response.py index 8750f93a6b3..7aa1bbd9fd7 100644 --- a/src/cloudflare/types/radar/http/summary_device_type_response.py +++ b/src/cloudflare/types/radar/http/summary_device_type_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryDeviceTypeResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryDeviceTypeResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/summary_http_protocol_response.py b/src/cloudflare/types/radar/http/summary_http_protocol_response.py index 68f9d27ac15..3ee6ffef02f 100644 --- a/src/cloudflare/types/radar/http/summary_http_protocol_response.py +++ b/src/cloudflare/types/radar/http/summary_http_protocol_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryHTTPProtocolResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryHTTPProtocolResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/summary_http_version_response.py b/src/cloudflare/types/radar/http/summary_http_version_response.py index 63887a07b0d..7c3c97a3d57 100644 --- a/src/cloudflare/types/radar/http/summary_http_version_response.py +++ b/src/cloudflare/types/radar/http/summary_http_version_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryHTTPVersionResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryHTTPVersionResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/summary_ip_version_response.py b/src/cloudflare/types/radar/http/summary_ip_version_response.py index 9da143e15ec..6286c80dc1d 100644 --- a/src/cloudflare/types/radar/http/summary_ip_version_response.py +++ b/src/cloudflare/types/radar/http/summary_ip_version_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryIPVersionResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "SummaryIPVersionResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") @@ -25,7 +57,13 @@ class Meta(BaseModel): confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Summary0(BaseModel): + i_pv4: str = FieldInfo(alias="IPv4") + + i_pv6: str = FieldInfo(alias="IPv6") + + class SummaryIPVersionResponse(BaseModel): meta: Meta - summary_0: object + summary_0: Summary0 diff --git a/src/cloudflare/types/radar/http/summary_os_response.py b/src/cloudflare/types/radar/http/summary_os_response.py index c5ecd31656a..b9737a2dcf9 100644 --- a/src/cloudflare/types/radar/http/summary_os_response.py +++ b/src/cloudflare/types/radar/http/summary_os_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryOSResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryOSResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/summary_post_quantum_response.py b/src/cloudflare/types/radar/http/summary_post_quantum_response.py index 344580555a6..f244b9910b7 100644 --- a/src/cloudflare/types/radar/http/summary_post_quantum_response.py +++ b/src/cloudflare/types/radar/http/summary_post_quantum_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryPostQuantumResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryPostQuantumResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/summary_tls_version_response.py b/src/cloudflare/types/radar/http/summary_tls_version_response.py index 4d50fd8444a..1a8ffeb3e19 100644 --- a/src/cloudflare/types/radar/http/summary_tls_version_response.py +++ b/src/cloudflare/types/radar/http/summary_tls_version_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryTLSVersionResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryTLSVersionResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/timeseries_group_browser_family_response.py b/src/cloudflare/types/radar/http/timeseries_group_browser_family_response.py index 85d98704cd7..8f14d62efd1 100644 --- a/src/cloudflare/types/radar/http/timeseries_group_browser_family_response.py +++ b/src/cloudflare/types/radar/http/timeseries_group_browser_family_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupBrowserFamilyResponse"] +__all__ = ["TimeseriesGroupBrowserFamilyResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupBrowserFamilyResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/http/timeseries_group_browser_response.py b/src/cloudflare/types/radar/http/timeseries_group_browser_response.py index eafc45ac810..329563a8ca3 100644 --- a/src/cloudflare/types/radar/http/timeseries_group_browser_response.py +++ b/src/cloudflare/types/radar/http/timeseries_group_browser_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupBrowserResponse"] +__all__ = ["TimeseriesGroupBrowserResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupBrowserResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/http/timeseries_group_ip_version_response.py b/src/cloudflare/types/radar/http/timeseries_group_ip_version_response.py index d0387d61803..560271c2fd8 100644 --- a/src/cloudflare/types/radar/http/timeseries_group_ip_version_response.py +++ b/src/cloudflare/types/radar/http/timeseries_group_ip_version_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import List + +from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TimeseriesGroupIPVersionResponse"] +__all__ = ["TimeseriesGroupIPVersionResponse", "Serie0"] + + +class Serie0(BaseModel): + i_pv4: List[str] = FieldInfo(alias="IPv4") + + i_pv6: List[str] = FieldInfo(alias="IPv6") + + timestamps: List[str] class TimeseriesGroupIPVersionResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/http/timeseries_group_os_response.py b/src/cloudflare/types/radar/http/timeseries_group_os_response.py index d74af550f34..717cffd93ea 100644 --- a/src/cloudflare/types/radar/http/timeseries_group_os_response.py +++ b/src/cloudflare/types/radar/http/timeseries_group_os_response.py @@ -1,12 +1,23 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +from typing import TYPE_CHECKING, List from ...._models import BaseModel -__all__ = ["TimeseriesGroupOSResponse"] +__all__ = ["TimeseriesGroupOSResponse", "Serie0"] + + +class Serie0(BaseModel): + timestamps: List[str] + + if TYPE_CHECKING: + # Stub to indicate that arbitrary properties are accepted. + # To access properties that are not valid identifiers you can use `getattr`, e.g. + # `getattr(obj, '$type')` + def __getattr__(self, attr: str) -> List[str]: ... class TimeseriesGroupOSResponse(BaseModel): meta: object - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/http/top_browser_family_response.py b/src/cloudflare/types/radar/http/top_browser_family_response.py index d2098e4f8cb..07776d8e47d 100644 --- a/src/cloudflare/types/radar/http/top_browser_family_response.py +++ b/src/cloudflare/types/radar/http/top_browser_family_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopBrowserFamilyResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = [ + "TopBrowserFamilyResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http/top_browser_response.py b/src/cloudflare/types/radar/http/top_browser_response.py index 48787b437dd..6499e5ba955 100644 --- a/src/cloudflare/types/radar/http/top_browser_response.py +++ b/src/cloudflare/types/radar/http/top_browser_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopBrowserResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["TopBrowserResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/http_timeseries_response.py b/src/cloudflare/types/radar/http_timeseries_response.py index 1f0a0d3626d..6b45e4c117c 100644 --- a/src/cloudflare/types/radar/http_timeseries_response.py +++ b/src/cloudflare/types/radar/http_timeseries_response.py @@ -7,11 +7,42 @@ from ..._models import BaseModel -__all__ = ["HTTPTimeseriesResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "HTTPTimeseriesResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Serie0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None @@ -19,14 +50,20 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Serie0(BaseModel): + timestamps: List[datetime] + + values: List[str] + + class HTTPTimeseriesResponse(BaseModel): meta: Meta - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/leaked_credentials/summary_bot_class_response.py b/src/cloudflare/types/radar/leaked_credentials/summary_bot_class_response.py index 59e51d44143..d4c5847ae8d 100644 --- a/src/cloudflare/types/radar/leaked_credentials/summary_bot_class_response.py +++ b/src/cloudflare/types/radar/leaked_credentials/summary_bot_class_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryBotClassResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryBotClassResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/leaked_credentials/summary_compromised_response.py b/src/cloudflare/types/radar/leaked_credentials/summary_compromised_response.py index 17180b1e540..5e7f527a3ab 100644 --- a/src/cloudflare/types/radar/leaked_credentials/summary_compromised_response.py +++ b/src/cloudflare/types/radar/leaked_credentials/summary_compromised_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SummaryCompromisedResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SummaryCompromisedResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/netflow_summary_response.py b/src/cloudflare/types/radar/netflow_summary_response.py index 1ab4b2c9a35..bfaf0077229 100644 --- a/src/cloudflare/types/radar/netflow_summary_response.py +++ b/src/cloudflare/types/radar/netflow_summary_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ..._models import BaseModel -__all__ = ["NetflowSummaryResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "NetflowSummaryResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) diff --git a/src/cloudflare/types/radar/netflow_timeseries_response.py b/src/cloudflare/types/radar/netflow_timeseries_response.py index 4f85792cd24..99701458c4d 100644 --- a/src/cloudflare/types/radar/netflow_timeseries_response.py +++ b/src/cloudflare/types/radar/netflow_timeseries_response.py @@ -7,11 +7,42 @@ from ..._models import BaseModel -__all__ = ["NetflowTimeseriesResponse", "Meta", "MetaConfidenceInfo"] +__all__ = [ + "NetflowTimeseriesResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Serie0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None @@ -19,14 +50,20 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) +class Serie0(BaseModel): + timestamps: List[datetime] + + values: List[str] + + class NetflowTimeseriesResponse(BaseModel): meta: Meta - serie_0: object + serie_0: Serie0 diff --git a/src/cloudflare/types/radar/quality/iqi_summary_response.py b/src/cloudflare/types/radar/quality/iqi_summary_response.py index 9d77b0a9190..3e241c1ed90 100644 --- a/src/cloudflare/types/radar/quality/iqi_summary_response.py +++ b/src/cloudflare/types/radar/quality/iqi_summary_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["IQISummaryResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "IQISummaryResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/quality/speed/top_ases_response.py b/src/cloudflare/types/radar/quality/speed/top_ases_response.py index b555b0e2ea6..a67ff9d1ba8 100644 --- a/src/cloudflare/types/radar/quality/speed/top_ases_response.py +++ b/src/cloudflare/types/radar/quality/speed/top_ases_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopAsesResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["TopAsesResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/quality/speed/top_locations_response.py b/src/cloudflare/types/radar/quality/speed/top_locations_response.py index 7fb112fdf9a..37420438e16 100644 --- a/src/cloudflare/types/radar/quality/speed/top_locations_response.py +++ b/src/cloudflare/types/radar/quality/speed/top_locations_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["TopLocationsResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = [ + "TopLocationsResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/quality/speed_summary_response.py b/src/cloudflare/types/radar/quality/speed_summary_response.py index cfbff8e8bc7..af59a84fb16 100644 --- a/src/cloudflare/types/radar/quality/speed_summary_response.py +++ b/src/cloudflare/types/radar/quality/speed_summary_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["SpeedSummaryResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "SpeedSummaryResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/radar_email_series.py b/src/cloudflare/types/radar/radar_email_series.py new file mode 100644 index 00000000000..dbe15ff3c54 --- /dev/null +++ b/src/cloudflare/types/radar/radar_email_series.py @@ -0,0 +1,17 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List + +from pydantic import Field as FieldInfo + +from ..._models import BaseModel + +__all__ = ["RadarEmailSeries"] + + +class RadarEmailSeries(BaseModel): + fail: List[str] = FieldInfo(alias="FAIL") + + none: List[str] = FieldInfo(alias="NONE") + + pass_: List[str] = FieldInfo(alias="PASS") diff --git a/src/cloudflare/types/radar/radar_email_summary.py b/src/cloudflare/types/radar/radar_email_summary.py new file mode 100644 index 00000000000..d98b19527cb --- /dev/null +++ b/src/cloudflare/types/radar/radar_email_summary.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + + +from pydantic import Field as FieldInfo + +from ..._models import BaseModel + +__all__ = ["RadarEmailSummary"] + + +class RadarEmailSummary(BaseModel): + fail: str = FieldInfo(alias="FAIL") + + none: str = FieldInfo(alias="NONE") + + pass_: str = FieldInfo(alias="PASS") diff --git a/src/cloudflare/types/radar/ranking/domain_get_response.py b/src/cloudflare/types/radar/ranking/domain_get_response.py index 9b5951752a6..c577ec3c1d3 100644 --- a/src/cloudflare/types/radar/ranking/domain_get_response.py +++ b/src/cloudflare/types/radar/ranking/domain_get_response.py @@ -1,12 +1,13 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["DomainGetResponse", "Details0", "Details0Category", "Details0TopLocation", "Meta"] +__all__ = ["DomainGetResponse", "Details0", "Details0Category", "Details0TopLocation", "Meta", "MetaDateRange"] class Details0Category(BaseModel): @@ -36,8 +37,16 @@ class Details0(BaseModel): top_locations: Optional[List[Details0TopLocation]] = None +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") class DomainGetResponse(BaseModel): diff --git a/src/cloudflare/types/radar/ranking/internet_service_timeseries_groups_response.py b/src/cloudflare/types/radar/ranking/internet_service_timeseries_groups_response.py index 2755417be5d..76ac2a31de8 100644 --- a/src/cloudflare/types/radar/ranking/internet_service_timeseries_groups_response.py +++ b/src/cloudflare/types/radar/ranking/internet_service_timeseries_groups_response.py @@ -1,16 +1,25 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import TYPE_CHECKING, List, Union +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["InternetServiceTimeseriesGroupsResponse", "Meta", "Serie0"] +__all__ = ["InternetServiceTimeseriesGroupsResponse", "Meta", "MetaDateRange", "Serie0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") class Serie0(BaseModel): diff --git a/src/cloudflare/types/radar/ranking_timeseries_groups_response.py b/src/cloudflare/types/radar/ranking_timeseries_groups_response.py index 7f356af4f35..804dbdab1cb 100644 --- a/src/cloudflare/types/radar/ranking_timeseries_groups_response.py +++ b/src/cloudflare/types/radar/ranking_timeseries_groups_response.py @@ -1,16 +1,25 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import TYPE_CHECKING, List, Union +from datetime import datetime from pydantic import Field as FieldInfo from ..._models import BaseModel -__all__ = ["RankingTimeseriesGroupsResponse", "Meta", "Serie0"] +__all__ = ["RankingTimeseriesGroupsResponse", "Meta", "MetaDateRange", "Serie0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") class Serie0(BaseModel): diff --git a/src/cloudflare/types/radar/robots_txt/top/user_agent_directive_response.py b/src/cloudflare/types/radar/robots_txt/top/user_agent_directive_response.py index 87d3af6b4ae..945a2b60827 100644 --- a/src/cloudflare/types/radar/robots_txt/top/user_agent_directive_response.py +++ b/src/cloudflare/types/radar/robots_txt/top/user_agent_directive_response.py @@ -1,16 +1,49 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ....._models import BaseModel -__all__ = ["UserAgentDirectiveResponse", "Meta", "MetaConfidenceInfo", "MetaUnit", "Top0"] +__all__ = [ + "UserAgentDirectiveResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "MetaUnit", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None @@ -22,7 +55,7 @@ class MetaUnit(BaseModel): class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/robots_txt/top_domain_categories_response.py b/src/cloudflare/types/radar/robots_txt/top_domain_categories_response.py index fba44f958f8..10e1d0c48ba 100644 --- a/src/cloudflare/types/radar/robots_txt/top_domain_categories_response.py +++ b/src/cloudflare/types/radar/robots_txt/top_domain_categories_response.py @@ -1,16 +1,49 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopDomainCategoriesResponse", "Meta", "MetaConfidenceInfo", "MetaUnit", "Top0"] +__all__ = [ + "TopDomainCategoriesResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "MetaUnit", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None @@ -22,7 +55,7 @@ class MetaUnit(BaseModel): class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: str = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/tcp_resets_timeout_summary_response.py b/src/cloudflare/types/radar/tcp_resets_timeout_summary_response.py index 04928396bdb..f38a9c7df46 100644 --- a/src/cloudflare/types/radar/tcp_resets_timeout_summary_response.py +++ b/src/cloudflare/types/radar/tcp_resets_timeout_summary_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ..._models import BaseModel -__all__ = ["TCPResetsTimeoutSummaryResponse", "Meta", "MetaConfidenceInfo", "Summary0"] +__all__ = [ + "TCPResetsTimeoutSummaryResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Summary0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) diff --git a/src/cloudflare/types/radar/tcp_resets_timeout_timeseries_groups_response.py b/src/cloudflare/types/radar/tcp_resets_timeout_timeseries_groups_response.py index 3353b7eaf42..b6ab06c0b94 100644 --- a/src/cloudflare/types/radar/tcp_resets_timeout_timeseries_groups_response.py +++ b/src/cloudflare/types/radar/tcp_resets_timeout_timeseries_groups_response.py @@ -7,11 +7,42 @@ from ..._models import BaseModel -__all__ = ["TCPResetsTimeoutTimeseriesGroupsResponse", "Meta", "MetaConfidenceInfo", "Serie0"] +__all__ = [ + "TCPResetsTimeoutTimeseriesGroupsResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Serie0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None @@ -19,7 +50,7 @@ class MetaConfidenceInfo(BaseModel): class Meta(BaseModel): agg_interval: str = FieldInfo(alias="aggInterval") - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") last_updated: datetime = FieldInfo(alias="lastUpdated") diff --git a/src/cloudflare/types/radar/traffic_anomalies/location_get_response.py b/src/cloudflare/types/radar/traffic_anomalies/location_get_response.py index 3935bd22ad5..3cf6ca01da7 100644 --- a/src/cloudflare/types/radar/traffic_anomalies/location_get_response.py +++ b/src/cloudflare/types/radar/traffic_anomalies/location_get_response.py @@ -6,8 +6,16 @@ from ...._models import BaseModel -__all__ = ["LocationGetResponse"] +__all__ = ["LocationGetResponse", "TrafficAnomaly"] + + +class TrafficAnomaly(BaseModel): + client_country_alpha2: str = FieldInfo(alias="clientCountryAlpha2") + + client_country_name: str = FieldInfo(alias="clientCountryName") + + value: str class LocationGetResponse(BaseModel): - traffic_anomalies: List[object] = FieldInfo(alias="trafficAnomalies") + traffic_anomalies: List[TrafficAnomaly] = FieldInfo(alias="trafficAnomalies") diff --git a/src/cloudflare/types/radar/traffic_anomaly_get_response.py b/src/cloudflare/types/radar/traffic_anomaly_get_response.py index 04522cb703c..ba231bfa22c 100644 --- a/src/cloudflare/types/radar/traffic_anomaly_get_response.py +++ b/src/cloudflare/types/radar/traffic_anomaly_get_response.py @@ -6,7 +6,19 @@ from ..._models import BaseModel -__all__ = ["TrafficAnomalyGetResponse", "TrafficAnomaly", "TrafficAnomalyASNDetails"] +__all__ = [ + "TrafficAnomalyGetResponse", + "TrafficAnomaly", + "TrafficAnomalyASNDetails", + "TrafficAnomalyASNDetailsLocations", + "TrafficAnomalyLocationDetails", +] + + +class TrafficAnomalyASNDetailsLocations(BaseModel): + code: str + + name: str class TrafficAnomalyASNDetails(BaseModel): @@ -14,7 +26,13 @@ class TrafficAnomalyASNDetails(BaseModel): name: str - locations: Optional[object] = None + locations: Optional[TrafficAnomalyASNDetailsLocations] = None + + +class TrafficAnomalyLocationDetails(BaseModel): + code: str + + name: str class TrafficAnomaly(BaseModel): @@ -30,7 +48,7 @@ class TrafficAnomaly(BaseModel): end_date: Optional[str] = FieldInfo(alias="endDate", default=None) - location_details: Optional[object] = FieldInfo(alias="locationDetails", default=None) + location_details: Optional[TrafficAnomalyLocationDetails] = FieldInfo(alias="locationDetails", default=None) visible_in_data_sources: Optional[List[str]] = FieldInfo(alias="visibleInDataSources", default=None) diff --git a/src/cloudflare/types/radar/verified_bots/top_bots_response.py b/src/cloudflare/types/radar/verified_bots/top_bots_response.py index 1f226fe04cf..2e3ffc6a653 100644 --- a/src/cloudflare/types/radar/verified_bots/top_bots_response.py +++ b/src/cloudflare/types/radar/verified_bots/top_bots_response.py @@ -1,22 +1,47 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopBotsResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = ["TopBotsResponse", "Meta", "MetaDateRange", "MetaConfidenceInfo", "MetaConfidenceInfoAnnotation", "Top0"] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) diff --git a/src/cloudflare/types/radar/verified_bots/top_categories_response.py b/src/cloudflare/types/radar/verified_bots/top_categories_response.py index 83c6ae4220e..46260e454ca 100644 --- a/src/cloudflare/types/radar/verified_bots/top_categories_response.py +++ b/src/cloudflare/types/radar/verified_bots/top_categories_response.py @@ -1,22 +1,54 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List, Optional +from datetime import datetime from pydantic import Field as FieldInfo from ...._models import BaseModel -__all__ = ["TopCategoriesResponse", "Meta", "MetaConfidenceInfo", "Top0"] +__all__ = [ + "TopCategoriesResponse", + "Meta", + "MetaDateRange", + "MetaConfidenceInfo", + "MetaConfidenceInfoAnnotation", + "Top0", +] + + +class MetaDateRange(BaseModel): + end_time: datetime = FieldInfo(alias="endTime") + """Adjusted end of date range.""" + + start_time: datetime = FieldInfo(alias="startTime") + """Adjusted start of date range.""" + + +class MetaConfidenceInfoAnnotation(BaseModel): + data_source: str = FieldInfo(alias="dataSource") + + description: str + + event_type: str = FieldInfo(alias="eventType") + + is_instantaneous: bool = FieldInfo(alias="isInstantaneous") + + end_time: Optional[datetime] = FieldInfo(alias="endTime", default=None) + + linked_url: Optional[str] = FieldInfo(alias="linkedUrl", default=None) + + start_time: Optional[datetime] = FieldInfo(alias="startTime", default=None) class MetaConfidenceInfo(BaseModel): - annotations: Optional[List[object]] = None + annotations: Optional[List[MetaConfidenceInfoAnnotation]] = None level: Optional[int] = None class Meta(BaseModel): - date_range: List[object] = FieldInfo(alias="dateRange") + date_range: List[MetaDateRange] = FieldInfo(alias="dateRange") confidence_info: Optional[MetaConfidenceInfo] = FieldInfo(alias="confidenceInfo", default=None) diff --git a/src/cloudflare/types/rules/lists/__init__.py b/src/cloudflare/types/rules/lists/__init__.py index f168e92414b..8cde7ce9c5c 100644 --- a/src/cloudflare/types/rules/lists/__init__.py +++ b/src/cloudflare/types/rules/lists/__init__.py @@ -2,7 +2,9 @@ from __future__ import annotations +from .list_cursor import ListCursor as ListCursor from .item_list_params import ItemListParams as ItemListParams +from .operation_status import OperationStatus as OperationStatus from .item_get_response import ItemGetResponse as ItemGetResponse from .item_create_params import ItemCreateParams as ItemCreateParams from .item_list_response import ItemListResponse as ItemListResponse diff --git a/src/cloudflare/types/rules/lists/bulk_operation_get_response.py b/src/cloudflare/types/rules/lists/bulk_operation_get_response.py index 25aca45e5ad..9234bdeb693 100644 --- a/src/cloudflare/types/rules/lists/bulk_operation_get_response.py +++ b/src/cloudflare/types/rules/lists/bulk_operation_get_response.py @@ -3,6 +3,7 @@ from typing import Optional from ...._models import BaseModel +from .operation_status import OperationStatus __all__ = ["BulkOperationGetResponse"] @@ -11,7 +12,8 @@ class BulkOperationGetResponse(BaseModel): id: str """The unique operation ID of the asynchronous action.""" - status: object + status: OperationStatus + """The current status of the asynchronous operation.""" completed: Optional[str] = None """The RFC 3339 timestamp of when the operation was completed.""" diff --git a/src/cloudflare/types/rules/lists/list_cursor.py b/src/cloudflare/types/rules/lists/list_cursor.py new file mode 100644 index 00000000000..2757b8af132 --- /dev/null +++ b/src/cloudflare/types/rules/lists/list_cursor.py @@ -0,0 +1,13 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ...._models import BaseModel + +__all__ = ["ListCursor"] + + +class ListCursor(BaseModel): + after: Optional[str] = None + + before: Optional[str] = None diff --git a/src/cloudflare/types/rules/lists/operation_status.py b/src/cloudflare/types/rules/lists/operation_status.py new file mode 100644 index 00000000000..4d5a1520f69 --- /dev/null +++ b/src/cloudflare/types/rules/lists/operation_status.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import Literal, TypeAlias + +__all__ = ["OperationStatus"] + +OperationStatus: TypeAlias = Literal["pending", "running", "completed", "failed"] diff --git a/src/cloudflare/types/rulesets/__init__.py b/src/cloudflare/types/rulesets/__init__.py index 1267f564021..24d5f8e30d0 100644 --- a/src/cloudflare/types/rulesets/__init__.py +++ b/src/cloudflare/types/rulesets/__init__.py @@ -4,6 +4,7 @@ from .kind import Kind as Kind from .phase import Phase as Phase +from .logging import Logging as Logging from .log_rule import LogRule as LogRule from .skip_rule import SkipRule as SkipRule from .block_rule import BlockRule as BlockRule @@ -11,6 +12,7 @@ from .score_rule import ScoreRule as ScoreRule from .execute_rule import ExecuteRule as ExecuteRule from .rewrite_rule import RewriteRule as RewriteRule +from .logging_param import LoggingParam as LoggingParam from .redirect_rule import RedirectRule as RedirectRule from .log_rule_param import LogRuleParam as LogRuleParam from .set_config_rule import SetConfigRule as SetConfigRule diff --git a/src/cloudflare/types/rulesets/block_rule.py b/src/cloudflare/types/rulesets/block_rule.py index ae82570e734..9cdf57de894 100644 --- a/src/cloudflare/types/rulesets/block_rule.py +++ b/src/cloudflare/types/rulesets/block_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal +from .logging import Logging from ..._models import BaseModel __all__ = ["BlockRule", "ActionParameters", "ActionParametersResponse", "ExposedCredentialCheck", "Ratelimit"] @@ -108,7 +109,8 @@ class BlockRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/block_rule_param.py b/src/cloudflare/types/rulesets/block_rule_param.py index 03faeaf69cb..bda8d9f51d1 100644 --- a/src/cloudflare/types/rulesets/block_rule_param.py +++ b/src/cloudflare/types/rulesets/block_rule_param.py @@ -5,6 +5,8 @@ from typing import List from typing_extensions import Literal, Required, TypedDict +from .logging_param import LoggingParam + __all__ = ["BlockRuleParam", "ActionParameters", "ActionParametersResponse", "ExposedCredentialCheck", "Ratelimit"] @@ -98,7 +100,8 @@ class BlockRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/compress_response_rule.py b/src/cloudflare/types/rulesets/compress_response_rule.py index c5688523c59..201c9b16655 100644 --- a/src/cloudflare/types/rulesets/compress_response_rule.py +++ b/src/cloudflare/types/rulesets/compress_response_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal +from .logging import Logging from ..._models import BaseModel __all__ = [ @@ -108,7 +109,8 @@ class CompressResponseRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/compress_response_rule_param.py b/src/cloudflare/types/rulesets/compress_response_rule_param.py index 4b61ae514b2..9381ecbcb2a 100644 --- a/src/cloudflare/types/rulesets/compress_response_rule_param.py +++ b/src/cloudflare/types/rulesets/compress_response_rule_param.py @@ -5,6 +5,8 @@ from typing import List, Iterable from typing_extensions import Literal, Required, TypedDict +from .logging_param import LoggingParam + __all__ = [ "CompressResponseRuleParam", "ActionParameters", @@ -98,7 +100,8 @@ class CompressResponseRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ddos_dynamic_rule.py b/src/cloudflare/types/rulesets/ddos_dynamic_rule.py index b52393fbd17..c00f20cec05 100644 --- a/src/cloudflare/types/rulesets/ddos_dynamic_rule.py +++ b/src/cloudflare/types/rulesets/ddos_dynamic_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal +from .logging import Logging from ..._models import BaseModel __all__ = ["DDoSDynamicRule", "ExposedCredentialCheck", "Ratelimit"] @@ -92,7 +93,8 @@ class DDoSDynamicRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ddos_dynamic_rule_param.py b/src/cloudflare/types/rulesets/ddos_dynamic_rule_param.py index 141bfa3be95..174fa07a079 100644 --- a/src/cloudflare/types/rulesets/ddos_dynamic_rule_param.py +++ b/src/cloudflare/types/rulesets/ddos_dynamic_rule_param.py @@ -5,6 +5,8 @@ from typing import List from typing_extensions import Literal, Required, TypedDict +from .logging_param import LoggingParam + __all__ = ["DDoSDynamicRuleParam", "ExposedCredentialCheck", "Ratelimit"] @@ -82,7 +84,8 @@ class DDoSDynamicRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/execute_rule.py b/src/cloudflare/types/rulesets/execute_rule.py index d52d434072a..a6d9158a50b 100644 --- a/src/cloudflare/types/rulesets/execute_rule.py +++ b/src/cloudflare/types/rulesets/execute_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal +from .logging import Logging from ..._models import BaseModel __all__ = [ @@ -178,7 +179,8 @@ class ExecuteRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/execute_rule_param.py b/src/cloudflare/types/rulesets/execute_rule_param.py index 5080058bdb1..ac8f481a99d 100644 --- a/src/cloudflare/types/rulesets/execute_rule_param.py +++ b/src/cloudflare/types/rulesets/execute_rule_param.py @@ -5,6 +5,8 @@ from typing import List, Iterable from typing_extensions import Literal, Required, TypedDict +from .logging_param import LoggingParam + __all__ = [ "ExecuteRuleParam", "ActionParameters", @@ -168,7 +170,8 @@ class ExecuteRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/force_connection_close_rule.py b/src/cloudflare/types/rulesets/force_connection_close_rule.py index 701d998e85a..c77ae8927d3 100644 --- a/src/cloudflare/types/rulesets/force_connection_close_rule.py +++ b/src/cloudflare/types/rulesets/force_connection_close_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal +from .logging import Logging from ..._models import BaseModel __all__ = ["ForceConnectionCloseRule", "ExposedCredentialCheck", "Ratelimit"] @@ -92,7 +93,8 @@ class ForceConnectionCloseRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/force_connection_close_rule_param.py b/src/cloudflare/types/rulesets/force_connection_close_rule_param.py index 3bb55845cf6..34639806546 100644 --- a/src/cloudflare/types/rulesets/force_connection_close_rule_param.py +++ b/src/cloudflare/types/rulesets/force_connection_close_rule_param.py @@ -5,6 +5,8 @@ from typing import List from typing_extensions import Literal, Required, TypedDict +from .logging_param import LoggingParam + __all__ = ["ForceConnectionCloseRuleParam", "ExposedCredentialCheck", "Ratelimit"] @@ -82,7 +84,8 @@ class ForceConnectionCloseRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/log_custom_field_rule.py b/src/cloudflare/types/rulesets/log_custom_field_rule.py index 8e0e1ddbb31..d73b1a856cf 100644 --- a/src/cloudflare/types/rulesets/log_custom_field_rule.py +++ b/src/cloudflare/types/rulesets/log_custom_field_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal +from .logging import Logging from ..._models import BaseModel __all__ = [ @@ -150,7 +151,8 @@ class LogCustomFieldRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/log_custom_field_rule_param.py b/src/cloudflare/types/rulesets/log_custom_field_rule_param.py index 360ae98bad3..a2103644fee 100644 --- a/src/cloudflare/types/rulesets/log_custom_field_rule_param.py +++ b/src/cloudflare/types/rulesets/log_custom_field_rule_param.py @@ -5,6 +5,8 @@ from typing import List, Iterable from typing_extensions import Literal, Required, TypedDict +from .logging_param import LoggingParam + __all__ = [ "LogCustomFieldRuleParam", "ActionParameters", @@ -140,7 +142,8 @@ class LogCustomFieldRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/log_rule.py b/src/cloudflare/types/rulesets/log_rule.py index 5915cb293c8..ffd9057a1ec 100644 --- a/src/cloudflare/types/rulesets/log_rule.py +++ b/src/cloudflare/types/rulesets/log_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal +from .logging import Logging from ..._models import BaseModel __all__ = ["LogRule", "ExposedCredentialCheck", "Ratelimit"] @@ -92,7 +93,8 @@ class LogRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/log_rule_param.py b/src/cloudflare/types/rulesets/log_rule_param.py index e59f41502f4..f17d0680d85 100644 --- a/src/cloudflare/types/rulesets/log_rule_param.py +++ b/src/cloudflare/types/rulesets/log_rule_param.py @@ -5,6 +5,8 @@ from typing import List from typing_extensions import Literal, Required, TypedDict +from .logging_param import LoggingParam + __all__ = ["LogRuleParam", "ExposedCredentialCheck", "Ratelimit"] @@ -82,7 +84,8 @@ class LogRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/logging.py b/src/cloudflare/types/rulesets/logging.py new file mode 100644 index 00000000000..30288f7c3a9 --- /dev/null +++ b/src/cloudflare/types/rulesets/logging.py @@ -0,0 +1,11 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + + +from ..._models import BaseModel + +__all__ = ["Logging"] + + +class Logging(BaseModel): + enabled: bool + """Whether to generate a log when the rule matches.""" diff --git a/src/cloudflare/types/rulesets/logging_param.py b/src/cloudflare/types/rulesets/logging_param.py new file mode 100644 index 00000000000..7ffdd5a2f4d --- /dev/null +++ b/src/cloudflare/types/rulesets/logging_param.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["LoggingParam"] + + +class LoggingParam(TypedDict, total=False): + enabled: Required[bool] + """Whether to generate a log when the rule matches.""" diff --git a/src/cloudflare/types/rulesets/managed_challenge_rule.py b/src/cloudflare/types/rulesets/managed_challenge_rule.py index f10cb4f7c40..1a4e19eb835 100644 --- a/src/cloudflare/types/rulesets/managed_challenge_rule.py +++ b/src/cloudflare/types/rulesets/managed_challenge_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal +from .logging import Logging from ..._models import BaseModel __all__ = ["ManagedChallengeRule", "ExposedCredentialCheck", "Ratelimit"] @@ -92,7 +93,8 @@ class ManagedChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/managed_challenge_rule_param.py b/src/cloudflare/types/rulesets/managed_challenge_rule_param.py index d5de1a30525..e2817122871 100644 --- a/src/cloudflare/types/rulesets/managed_challenge_rule_param.py +++ b/src/cloudflare/types/rulesets/managed_challenge_rule_param.py @@ -5,6 +5,8 @@ from typing import List from typing_extensions import Literal, Required, TypedDict +from .logging_param import LoggingParam + __all__ = ["ManagedChallengeRuleParam", "ExposedCredentialCheck", "Ratelimit"] @@ -82,7 +84,8 @@ class ManagedChallengeRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/phase_get_response.py b/src/cloudflare/types/rulesets/phase_get_response.py index 596eda8e972..f50305b6b28 100644 --- a/src/cloudflare/types/rulesets/phase_get_response.py +++ b/src/cloudflare/types/rulesets/phase_get_response.py @@ -6,6 +6,7 @@ from .kind import Kind from .phase import Phase +from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -120,7 +121,8 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -212,7 +214,8 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/phase_update_params.py b/src/cloudflare/types/rulesets/phase_update_params.py index 7ee9163d3e6..bd12793e965 100644 --- a/src/cloudflare/types/rulesets/phase_update_params.py +++ b/src/cloudflare/types/rulesets/phase_update_params.py @@ -5,6 +5,7 @@ from typing import List, Union, Iterable from typing_extensions import Literal, Required, TypeAlias, TypedDict +from .logging_param import LoggingParam from .log_rule_param import LogRuleParam from .skip_rule_param import SkipRuleParam from .block_rule_param import BlockRuleParam @@ -125,7 +126,8 @@ class RuleRulesetsChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: RuleRulesetsChallengeRuleRatelimit """An object configuring the rule's ratelimit behavior.""" @@ -208,7 +210,8 @@ class RuleRulesetsJSChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: RuleRulesetsJSChallengeRuleRatelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/phase_update_response.py b/src/cloudflare/types/rulesets/phase_update_response.py index 681341787be..e772aa4251d 100644 --- a/src/cloudflare/types/rulesets/phase_update_response.py +++ b/src/cloudflare/types/rulesets/phase_update_response.py @@ -6,6 +6,7 @@ from .kind import Kind from .phase import Phase +from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -120,7 +121,8 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -212,7 +214,8 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/phases/version_get_response.py b/src/cloudflare/types/rulesets/phases/version_get_response.py index bb7da6b2f3f..090d33dd65d 100644 --- a/src/cloudflare/types/rulesets/phases/version_get_response.py +++ b/src/cloudflare/types/rulesets/phases/version_get_response.py @@ -6,6 +6,7 @@ from ..kind import Kind from ..phase import Phase +from ..logging import Logging from ...._utils import PropertyInfo from ..log_rule import LogRule from ...._models import BaseModel @@ -120,7 +121,8 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -212,7 +214,8 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/redirect_rule.py b/src/cloudflare/types/rulesets/redirect_rule.py index 7dbbb6142f7..0ec41cc31ef 100644 --- a/src/cloudflare/types/rulesets/redirect_rule.py +++ b/src/cloudflare/types/rulesets/redirect_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal, TypeAlias +from .logging import Logging from ..._models import BaseModel __all__ = [ @@ -144,7 +145,8 @@ class RedirectRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/redirect_rule_param.py b/src/cloudflare/types/rulesets/redirect_rule_param.py index 28c04d4a4f7..5059f165f30 100644 --- a/src/cloudflare/types/rulesets/redirect_rule_param.py +++ b/src/cloudflare/types/rulesets/redirect_rule_param.py @@ -5,6 +5,8 @@ from typing import List, Union from typing_extensions import Literal, Required, TypeAlias, TypedDict +from .logging_param import LoggingParam + __all__ = [ "RedirectRuleParam", "ActionParameters", @@ -134,7 +136,8 @@ class RedirectRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/rewrite_rule.py b/src/cloudflare/types/rulesets/rewrite_rule.py index 2ed55b7d01d..67e364d678c 100644 --- a/src/cloudflare/types/rulesets/rewrite_rule.py +++ b/src/cloudflare/types/rulesets/rewrite_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal, TypeAlias +from .logging import Logging from ..._models import BaseModel from .rewrite_uri_part import RewriteURIPart @@ -142,7 +143,8 @@ class RewriteRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/rewrite_rule_param.py b/src/cloudflare/types/rulesets/rewrite_rule_param.py index 9a584749263..0b247904202 100644 --- a/src/cloudflare/types/rulesets/rewrite_rule_param.py +++ b/src/cloudflare/types/rulesets/rewrite_rule_param.py @@ -5,6 +5,7 @@ from typing import Dict, List, Union from typing_extensions import Literal, Required, TypeAlias, TypedDict +from .logging_param import LoggingParam from .rewrite_uri_part_param import RewriteURIPartParam __all__ = [ @@ -133,7 +134,8 @@ class RewriteRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/route_rule.py b/src/cloudflare/types/rulesets/route_rule.py index f223e34dc7c..e0d5e192a60 100644 --- a/src/cloudflare/types/rulesets/route_rule.py +++ b/src/cloudflare/types/rulesets/route_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal +from .logging import Logging from ..._models import BaseModel __all__ = [ @@ -123,7 +124,8 @@ class RouteRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/route_rule_param.py b/src/cloudflare/types/rulesets/route_rule_param.py index 07dd6d89de6..c1c1f8e6ab0 100644 --- a/src/cloudflare/types/rulesets/route_rule_param.py +++ b/src/cloudflare/types/rulesets/route_rule_param.py @@ -5,6 +5,8 @@ from typing import List from typing_extensions import Literal, Required, TypedDict +from .logging_param import LoggingParam + __all__ = [ "RouteRuleParam", "ActionParameters", @@ -113,7 +115,8 @@ class RouteRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/rule_create_params.py b/src/cloudflare/types/rulesets/rule_create_params.py index 16c82bd78f7..942013f6902 100644 --- a/src/cloudflare/types/rulesets/rule_create_params.py +++ b/src/cloudflare/types/rulesets/rule_create_params.py @@ -6,6 +6,7 @@ from typing_extensions import Literal, Required, TypeAlias, TypedDict from .phase import Phase +from .logging_param import LoggingParam from .rewrite_uri_part_param import RewriteURIPartParam __all__ = [ @@ -224,7 +225,8 @@ class BlockRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: BlockRulePosition """An object configuring where the rule will be placed.""" @@ -358,7 +360,8 @@ class ChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: ChallengeRulePosition """An object configuring where the rule will be placed.""" @@ -476,7 +479,8 @@ class CompressionRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: CompressionRulePosition """An object configuring where the rule will be placed.""" @@ -604,7 +608,8 @@ class ExecuteRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: ExecuteRulePosition """An object configuring where the rule will be placed.""" @@ -799,7 +804,8 @@ class JavascriptChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: JavascriptChallengeRulePosition """An object configuring where the rule will be placed.""" @@ -919,7 +925,8 @@ class LogRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: LogRulePosition """An object configuring where the rule will be placed.""" @@ -1037,7 +1044,8 @@ class ManagedChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: ManagedChallengeRulePosition """An object configuring where the rule will be placed.""" @@ -1157,7 +1165,8 @@ class RedirectRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: RedirectRulePosition """An object configuring where the rule will be placed.""" @@ -1318,7 +1327,8 @@ class RewriteRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: RewriteRulePosition """An object configuring where the rule will be placed.""" @@ -1477,7 +1487,8 @@ class OriginRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: OriginRulePosition """An object configuring where the rule will be placed.""" @@ -1619,7 +1630,8 @@ class ScoreRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: ScoreRulePosition """An object configuring where the rule will be placed.""" @@ -1745,7 +1757,8 @@ class ServeErrorRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: ServeErrorRulePosition """An object configuring where the rule will be placed.""" @@ -1874,7 +1887,8 @@ class SetConfigRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: SetConfigRulePosition """An object configuring where the rule will be placed.""" @@ -2056,7 +2070,8 @@ class SkipRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: SkipRulePosition """An object configuring where the rule will be placed.""" @@ -2203,7 +2218,8 @@ class SetCacheSettingsRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: SetCacheSettingsRulePosition """An object configuring where the rule will be placed.""" @@ -2621,7 +2637,8 @@ class LogCustomFieldRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: LogCustomFieldRulePosition """An object configuring where the rule will be placed.""" @@ -2789,7 +2806,8 @@ class DDoSDynamicRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: DDoSDynamicRulePosition """An object configuring where the rule will be placed.""" @@ -2907,7 +2925,8 @@ class ForceConnectionCloseRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: ForceConnectionCloseRulePosition """An object configuring where the rule will be placed.""" diff --git a/src/cloudflare/types/rulesets/rule_create_response.py b/src/cloudflare/types/rulesets/rule_create_response.py index f975b84e908..3f748a65553 100644 --- a/src/cloudflare/types/rulesets/rule_create_response.py +++ b/src/cloudflare/types/rulesets/rule_create_response.py @@ -6,6 +6,7 @@ from .kind import Kind from .phase import Phase +from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -120,7 +121,8 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -212,7 +214,8 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/rule_delete_response.py b/src/cloudflare/types/rulesets/rule_delete_response.py index bc4b06a0a9c..09f823678f6 100644 --- a/src/cloudflare/types/rulesets/rule_delete_response.py +++ b/src/cloudflare/types/rulesets/rule_delete_response.py @@ -6,6 +6,7 @@ from .kind import Kind from .phase import Phase +from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -120,7 +121,8 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -212,7 +214,8 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/rule_edit_params.py b/src/cloudflare/types/rulesets/rule_edit_params.py index b17c51ba3e6..beca5b3766e 100644 --- a/src/cloudflare/types/rulesets/rule_edit_params.py +++ b/src/cloudflare/types/rulesets/rule_edit_params.py @@ -6,6 +6,7 @@ from typing_extensions import Literal, Required, TypeAlias, TypedDict from .phase import Phase +from .logging_param import LoggingParam from .rewrite_uri_part_param import RewriteURIPartParam __all__ = [ @@ -227,7 +228,8 @@ class BlockRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: BlockRulePosition """An object configuring where the rule will be placed.""" @@ -364,7 +366,8 @@ class ChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: ChallengeRulePosition """An object configuring where the rule will be placed.""" @@ -485,7 +488,8 @@ class CompressionRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: CompressionRulePosition """An object configuring where the rule will be placed.""" @@ -616,7 +620,8 @@ class ExecuteRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: ExecuteRulePosition """An object configuring where the rule will be placed.""" @@ -814,7 +819,8 @@ class JavascriptChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: JavascriptChallengeRulePosition """An object configuring where the rule will be placed.""" @@ -937,7 +943,8 @@ class LogRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: LogRulePosition """An object configuring where the rule will be placed.""" @@ -1058,7 +1065,8 @@ class ManagedChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: ManagedChallengeRulePosition """An object configuring where the rule will be placed.""" @@ -1181,7 +1189,8 @@ class RedirectRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: RedirectRulePosition """An object configuring where the rule will be placed.""" @@ -1345,7 +1354,8 @@ class RewriteRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: RewriteRulePosition """An object configuring where the rule will be placed.""" @@ -1507,7 +1517,8 @@ class OriginRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: OriginRulePosition """An object configuring where the rule will be placed.""" @@ -1652,7 +1663,8 @@ class ScoreRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: ScoreRulePosition """An object configuring where the rule will be placed.""" @@ -1781,7 +1793,8 @@ class ServeErrorRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: ServeErrorRulePosition """An object configuring where the rule will be placed.""" @@ -1913,7 +1926,8 @@ class SetConfigRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: SetConfigRulePosition """An object configuring where the rule will be placed.""" @@ -2098,7 +2112,8 @@ class SkipRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: SkipRulePosition """An object configuring where the rule will be placed.""" @@ -2248,7 +2263,8 @@ class SetCacheSettingsRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: SetCacheSettingsRulePosition """An object configuring where the rule will be placed.""" @@ -2669,7 +2685,8 @@ class LogCustomFieldRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: LogCustomFieldRulePosition """An object configuring where the rule will be placed.""" @@ -2840,7 +2857,8 @@ class DDoSDynamicRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: DDoSDynamicRulePosition """An object configuring where the rule will be placed.""" @@ -2961,7 +2979,8 @@ class ForceConnectionCloseRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" position: ForceConnectionCloseRulePosition """An object configuring where the rule will be placed.""" diff --git a/src/cloudflare/types/rulesets/rule_edit_response.py b/src/cloudflare/types/rulesets/rule_edit_response.py index 649fb76619e..15e1ec09144 100644 --- a/src/cloudflare/types/rulesets/rule_edit_response.py +++ b/src/cloudflare/types/rulesets/rule_edit_response.py @@ -6,6 +6,7 @@ from .kind import Kind from .phase import Phase +from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -120,7 +121,8 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -212,7 +214,8 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ruleset_create_params.py b/src/cloudflare/types/rulesets/ruleset_create_params.py index 765fb234c97..c1792db3ba4 100644 --- a/src/cloudflare/types/rulesets/ruleset_create_params.py +++ b/src/cloudflare/types/rulesets/ruleset_create_params.py @@ -7,6 +7,7 @@ from .kind import Kind from .phase import Phase +from .logging_param import LoggingParam from .log_rule_param import LogRuleParam from .skip_rule_param import SkipRuleParam from .block_rule_param import BlockRuleParam @@ -133,7 +134,8 @@ class RuleRulesetsChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: RuleRulesetsChallengeRuleRatelimit """An object configuring the rule's ratelimit behavior.""" @@ -216,7 +218,8 @@ class RuleRulesetsJSChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: RuleRulesetsJSChallengeRuleRatelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ruleset_create_response.py b/src/cloudflare/types/rulesets/ruleset_create_response.py index 021adaccf32..179486bcc68 100644 --- a/src/cloudflare/types/rulesets/ruleset_create_response.py +++ b/src/cloudflare/types/rulesets/ruleset_create_response.py @@ -6,6 +6,7 @@ from .kind import Kind from .phase import Phase +from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -120,7 +121,8 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -212,7 +214,8 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ruleset_get_response.py b/src/cloudflare/types/rulesets/ruleset_get_response.py index d54e0ff6906..12c80e5dc57 100644 --- a/src/cloudflare/types/rulesets/ruleset_get_response.py +++ b/src/cloudflare/types/rulesets/ruleset_get_response.py @@ -6,6 +6,7 @@ from .kind import Kind from .phase import Phase +from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -120,7 +121,8 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -212,7 +214,8 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ruleset_update_params.py b/src/cloudflare/types/rulesets/ruleset_update_params.py index 08aa7108f74..46291acc0ec 100644 --- a/src/cloudflare/types/rulesets/ruleset_update_params.py +++ b/src/cloudflare/types/rulesets/ruleset_update_params.py @@ -7,6 +7,7 @@ from .kind import Kind from .phase import Phase +from .logging_param import LoggingParam from .log_rule_param import LogRuleParam from .skip_rule_param import SkipRuleParam from .block_rule_param import BlockRuleParam @@ -133,7 +134,8 @@ class RuleRulesetsChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: RuleRulesetsChallengeRuleRatelimit """An object configuring the rule's ratelimit behavior.""" @@ -216,7 +218,8 @@ class RuleRulesetsJSChallengeRule(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: RuleRulesetsJSChallengeRuleRatelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/ruleset_update_response.py b/src/cloudflare/types/rulesets/ruleset_update_response.py index 285790efc20..76fe26fbdde 100644 --- a/src/cloudflare/types/rulesets/ruleset_update_response.py +++ b/src/cloudflare/types/rulesets/ruleset_update_response.py @@ -6,6 +6,7 @@ from .kind import Kind from .phase import Phase +from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -120,7 +121,8 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -212,7 +214,8 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/score_rule.py b/src/cloudflare/types/rulesets/score_rule.py index f5a4e6d16c9..7a40ab5419e 100644 --- a/src/cloudflare/types/rulesets/score_rule.py +++ b/src/cloudflare/types/rulesets/score_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal +from .logging import Logging from ..._models import BaseModel __all__ = ["ScoreRule", "ActionParameters", "ExposedCredentialCheck", "Ratelimit"] @@ -100,7 +101,8 @@ class ScoreRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/score_rule_param.py b/src/cloudflare/types/rulesets/score_rule_param.py index 5a15d1d7b18..db415ebfbd8 100644 --- a/src/cloudflare/types/rulesets/score_rule_param.py +++ b/src/cloudflare/types/rulesets/score_rule_param.py @@ -5,6 +5,8 @@ from typing import List from typing_extensions import Literal, Required, TypedDict +from .logging_param import LoggingParam + __all__ = ["ScoreRuleParam", "ActionParameters", "ExposedCredentialCheck", "Ratelimit"] @@ -90,7 +92,8 @@ class ScoreRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/serve_error_rule.py b/src/cloudflare/types/rulesets/serve_error_rule.py index 4470e8ca87a..9e2e6652121 100644 --- a/src/cloudflare/types/rulesets/serve_error_rule.py +++ b/src/cloudflare/types/rulesets/serve_error_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal +from .logging import Logging from ..._models import BaseModel __all__ = ["ServeErrorRule", "ActionParameters", "ExposedCredentialCheck", "Ratelimit"] @@ -103,7 +104,8 @@ class ServeErrorRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/serve_error_rule_param.py b/src/cloudflare/types/rulesets/serve_error_rule_param.py index bed9a8eadbf..e014f36c799 100644 --- a/src/cloudflare/types/rulesets/serve_error_rule_param.py +++ b/src/cloudflare/types/rulesets/serve_error_rule_param.py @@ -5,6 +5,8 @@ from typing import List from typing_extensions import Literal, Required, TypedDict +from .logging_param import LoggingParam + __all__ = ["ServeErrorRuleParam", "ActionParameters", "ExposedCredentialCheck", "Ratelimit"] @@ -93,7 +95,8 @@ class ServeErrorRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/set_cache_settings_rule.py b/src/cloudflare/types/rulesets/set_cache_settings_rule.py index aa10e746c41..e88114d9f66 100644 --- a/src/cloudflare/types/rulesets/set_cache_settings_rule.py +++ b/src/cloudflare/types/rulesets/set_cache_settings_rule.py @@ -6,6 +6,7 @@ from pydantic import Field as FieldInfo +from .logging import Logging from ..._models import BaseModel __all__ = [ @@ -406,7 +407,8 @@ class SetCacheSettingsRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/set_cache_settings_rule_param.py b/src/cloudflare/types/rulesets/set_cache_settings_rule_param.py index f96480366a8..ed6d9f5818e 100644 --- a/src/cloudflare/types/rulesets/set_cache_settings_rule_param.py +++ b/src/cloudflare/types/rulesets/set_cache_settings_rule_param.py @@ -5,6 +5,8 @@ from typing import Dict, List, Union, Iterable from typing_extensions import Literal, Required, TypeAlias, TypedDict +from .logging_param import LoggingParam + __all__ = [ "SetCacheSettingsRuleParam", "ActionParameters", @@ -402,7 +404,8 @@ class SetCacheSettingsRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/set_config_rule.py b/src/cloudflare/types/rulesets/set_config_rule.py index af0b53f51d0..0645abd5550 100644 --- a/src/cloudflare/types/rulesets/set_config_rule.py +++ b/src/cloudflare/types/rulesets/set_config_rule.py @@ -4,6 +4,7 @@ from datetime import datetime from typing_extensions import Literal +from .logging import Logging from ..._models import BaseModel __all__ = ["SetConfigRule", "ActionParameters", "ActionParametersAutominify", "ExposedCredentialCheck", "Ratelimit"] @@ -156,7 +157,8 @@ class SetConfigRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/set_config_rule_param.py b/src/cloudflare/types/rulesets/set_config_rule_param.py index e5a290f8bea..f82826b3b18 100644 --- a/src/cloudflare/types/rulesets/set_config_rule_param.py +++ b/src/cloudflare/types/rulesets/set_config_rule_param.py @@ -5,6 +5,8 @@ from typing import List from typing_extensions import Literal, Required, TypedDict +from .logging_param import LoggingParam + __all__ = [ "SetConfigRuleParam", "ActionParameters", @@ -152,7 +154,8 @@ class SetConfigRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/skip_rule.py b/src/cloudflare/types/rulesets/skip_rule.py index c516286b4ff..58f2f24c00d 100644 --- a/src/cloudflare/types/rulesets/skip_rule.py +++ b/src/cloudflare/types/rulesets/skip_rule.py @@ -5,6 +5,7 @@ from typing_extensions import Literal from .phase import Phase +from .logging import Logging from ..._models import BaseModel __all__ = ["SkipRule", "ActionParameters", "ExposedCredentialCheck", "Ratelimit"] @@ -124,7 +125,8 @@ class SkipRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[Ratelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/skip_rule_param.py b/src/cloudflare/types/rulesets/skip_rule_param.py index 297536fa96d..3b6d0bfbab2 100644 --- a/src/cloudflare/types/rulesets/skip_rule_param.py +++ b/src/cloudflare/types/rulesets/skip_rule_param.py @@ -6,6 +6,7 @@ from typing_extensions import Literal, Required, TypedDict from .phase import Phase +from .logging_param import LoggingParam __all__ = ["SkipRuleParam", "ActionParameters", "ExposedCredentialCheck", "Ratelimit"] @@ -113,7 +114,8 @@ class SkipRuleParam(TypedDict, total=False): expression: str """The expression defining which traffic will match the rule.""" - logging: object + logging: LoggingParam + """An object configuring the rule's logging behavior.""" ratelimit: Ratelimit """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/rulesets/version_get_response.py b/src/cloudflare/types/rulesets/version_get_response.py index f84c2272be5..ab7339e6809 100644 --- a/src/cloudflare/types/rulesets/version_get_response.py +++ b/src/cloudflare/types/rulesets/version_get_response.py @@ -6,6 +6,7 @@ from .kind import Kind from .phase import Phase +from .logging import Logging from ..._utils import PropertyInfo from .log_rule import LogRule from ..._models import BaseModel @@ -120,7 +121,8 @@ class RuleRulesetsChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" @@ -212,7 +214,8 @@ class RuleRulesetsJSChallengeRule(BaseModel): expression: Optional[str] = None """The expression defining which traffic will match the rule.""" - logging: Optional[object] = None + logging: Optional[Logging] = None + """An object configuring the rule's logging behavior.""" ratelimit: Optional[RuleRulesetsJSChallengeRuleRatelimit] = None """An object configuring the rule's ratelimit behavior.""" diff --git a/src/cloudflare/types/security_center/insight_dismiss_response.py b/src/cloudflare/types/security_center/insight_dismiss_response.py index 2ea43fc8bc1..520ec45bb74 100644 --- a/src/cloudflare/types/security_center/insight_dismiss_response.py +++ b/src/cloudflare/types/security_center/insight_dismiss_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["InsightDismissResponse"] class InsightDismissResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/security_txt/security_txt_delete_response.py b/src/cloudflare/types/security_txt/security_txt_delete_response.py index b955f59cac4..69da51814d2 100644 --- a/src/cloudflare/types/security_txt/security_txt_delete_response.py +++ b/src/cloudflare/types/security_txt/security_txt_delete_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["SecurityTXTDeleteResponse"] class SecurityTXTDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/security_txt/security_txt_update_response.py b/src/cloudflare/types/security_txt/security_txt_update_response.py index 4268c571ede..743a0510ecf 100644 --- a/src/cloudflare/types/security_txt/security_txt_update_response.py +++ b/src/cloudflare/types/security_txt/security_txt_update_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["SecurityTXTUpdateResponse"] class SecurityTXTUpdateResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/shared/identifier.py b/src/cloudflare/types/shared/identifier.py index e97d720e10a..f45e7984c3f 100644 --- a/src/cloudflare/types/shared/identifier.py +++ b/src/cloudflare/types/shared/identifier.py @@ -1,7 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing_extensions import TypeAlias +from typing import Optional + +from ..._models import BaseModel __all__ = ["Identifier"] -Identifier: TypeAlias = object + +class Identifier(BaseModel): + id: Optional[str] = None + """Identifier""" diff --git a/src/cloudflare/types/shared/load_balancer_preview.py b/src/cloudflare/types/shared/load_balancer_preview.py index 1a2553ae678..e57784aa9b5 100644 --- a/src/cloudflare/types/shared/load_balancer_preview.py +++ b/src/cloudflare/types/shared/load_balancer_preview.py @@ -1,7 +1,14 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing_extensions import TypeAlias +from typing import Dict, Optional + +from ..._models import BaseModel __all__ = ["LoadBalancerPreview"] -LoadBalancerPreview: TypeAlias = object + +class LoadBalancerPreview(BaseModel): + pools: Optional[Dict[str, str]] = None + """Monitored pool IDs mapped to their respective names.""" + + preview_id: Optional[str] = None diff --git a/src/cloudflare/types/shared/response_info.py b/src/cloudflare/types/shared/response_info.py index 05370d0d068..2124a5abb4d 100644 --- a/src/cloudflare/types/shared/response_info.py +++ b/src/cloudflare/types/shared/response_info.py @@ -1,7 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing_extensions import TypeAlias + +from ..._models import BaseModel __all__ = ["ResponseInfo"] -ResponseInfo: TypeAlias = object + +class ResponseInfo(BaseModel): + code: int + + message: str diff --git a/src/cloudflare/types/shared/result.py b/src/cloudflare/types/shared/result.py index 78c3502d2d5..0e67a79f24a 100644 --- a/src/cloudflare/types/shared/result.py +++ b/src/cloudflare/types/shared/result.py @@ -1,7 +1,32 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing_extensions import TypeAlias +from typing import List, Union, Optional +from typing_extensions import Literal, TypeAlias -__all__ = ["Result"] +from ..._models import BaseModel +from .audit_log import AuditLog +from .response_info import ResponseInfo -Result: TypeAlias = object +__all__ = ["Result", "UnionMember0", "AaaAPIResponseCommon"] + + +class UnionMember0(BaseModel): + errors: Optional[List[ResponseInfo]] = None + + messages: Optional[List[ResponseInfo]] = None + + result: Optional[List[AuditLog]] = None + + success: Optional[bool] = None + + +class AaaAPIResponseCommon(BaseModel): + errors: List[ResponseInfo] + + messages: List[ResponseInfo] + + success: Literal[True] + """Whether the API call was successful""" + + +Result: TypeAlias = Union[UnionMember0, AaaAPIResponseCommon] diff --git a/src/cloudflare/types/snippets/rule_delete_response.py b/src/cloudflare/types/snippets/rule_delete_response.py index fdc9441cbfc..4e1765a3121 100644 --- a/src/cloudflare/types/snippets/rule_delete_response.py +++ b/src/cloudflare/types/snippets/rule_delete_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["RuleDeleteResponse"] class RuleDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/snippets/snippet_delete_response.py b/src/cloudflare/types/snippets/snippet_delete_response.py index 21e107128c1..6a1b4806d1b 100644 --- a/src/cloudflare/types/snippets/snippet_delete_response.py +++ b/src/cloudflare/types/snippets/snippet_delete_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["SnippetDeleteResponse"] class SnippetDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/ssl/analyze_create_params.py b/src/cloudflare/types/ssl/analyze_create_params.py index 77bace72e7e..eb06d135711 100644 --- a/src/cloudflare/types/ssl/analyze_create_params.py +++ b/src/cloudflare/types/ssl/analyze_create_params.py @@ -4,6 +4,8 @@ from typing_extensions import Required, TypedDict +from ..custom_hostnames.bundle_method import BundleMethod + __all__ = ["AnalyzeCreateParams"] @@ -11,7 +13,13 @@ class AnalyzeCreateParams(TypedDict, total=False): zone_id: Required[str] """Identifier""" - bundle_method: object + bundle_method: BundleMethod + """ + 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. + """ certificate: str """The zone's SSL certificate or certificate and the intermediate(s).""" diff --git a/src/cloudflare/types/workers/__init__.py b/src/cloudflare/types/workers/__init__.py index ebb6f1e496e..201450ef852 100644 --- a/src/cloudflare/types/workers/__init__.py +++ b/src/cloudflare/types/workers/__init__.py @@ -20,6 +20,7 @@ from .route_delete_response import RouteDeleteResponse as RouteDeleteResponse from .route_update_response import RouteUpdateResponse as RouteUpdateResponse from .single_step_migration import SingleStepMigration as SingleStepMigration +from .worker_metadata_param import WorkerMetadataParam as WorkerMetadataParam from .script_update_response import ScriptUpdateResponse as ScriptUpdateResponse from .subdomain_get_response import SubdomainGetResponse as SubdomainGetResponse from .subdomain_update_params import SubdomainUpdateParams as SubdomainUpdateParams diff --git a/src/cloudflare/types/workers/route_create_response.py b/src/cloudflare/types/workers/route_create_response.py index b162a8c7761..9e27967d480 100644 --- a/src/cloudflare/types/workers/route_create_response.py +++ b/src/cloudflare/types/workers/route_create_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["RouteCreateResponse"] class RouteCreateResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/workers/route_delete_response.py b/src/cloudflare/types/workers/route_delete_response.py index fdb6e75a215..df25ccce223 100644 --- a/src/cloudflare/types/workers/route_delete_response.py +++ b/src/cloudflare/types/workers/route_delete_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["RouteDeleteResponse"] class RouteDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/workers/scripts/__init__.py b/src/cloudflare/types/workers/scripts/__init__.py index 41d85e9a570..581c056d222 100644 --- a/src/cloudflare/types/workers/scripts/__init__.py +++ b/src/cloudflare/types/workers/scripts/__init__.py @@ -2,7 +2,11 @@ from __future__ import annotations +from .schedule import Schedule as Schedule +from .deployment import Deployment as Deployment +from .schedule_param import ScheduleParam as ScheduleParam from .consumer_script import ConsumerScript as ConsumerScript +from .deployment_param import DeploymentParam as DeploymentParam from .tail_get_response import TailGetResponse as TailGetResponse from .tail_create_params import TailCreateParams as TailCreateParams from .secret_get_response import SecretGetResponse as SecretGetResponse diff --git a/src/cloudflare/types/workers/scripts/content_update_params.py b/src/cloudflare/types/workers/scripts/content_update_params.py index 4684577aeaa..4228706762e 100644 --- a/src/cloudflare/types/workers/scripts/content_update_params.py +++ b/src/cloudflare/types/workers/scripts/content_update_params.py @@ -5,6 +5,7 @@ from typing_extensions import Required, Annotated, TypedDict from ...._utils import PropertyInfo +from ..worker_metadata_param import WorkerMetadataParam __all__ = ["ContentUpdateParams"] @@ -13,7 +14,8 @@ class ContentUpdateParams(TypedDict, total=False): account_id: Required[str] """Identifier""" - metadata: Required[object] + metadata: Required[WorkerMetadataParam] + """JSON encoded metadata about the uploaded parts and Worker configuration.""" cf_worker_body_part: Annotated[str, PropertyInfo(alias="CF-WORKER-BODY-PART")] diff --git a/src/cloudflare/types/workers/scripts/deployment.py b/src/cloudflare/types/workers/scripts/deployment.py new file mode 100644 index 00000000000..5de4c8e53c5 --- /dev/null +++ b/src/cloudflare/types/workers/scripts/deployment.py @@ -0,0 +1,14 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from pydantic import Field as FieldInfo + +from ...._models import BaseModel + +__all__ = ["Deployment"] + + +class Deployment(BaseModel): + workers_message: Optional[str] = FieldInfo(alias="workers/message", default=None) + """Human-readable message about the deployment. Truncated to 100 bytes.""" diff --git a/src/cloudflare/types/workers/scripts/deployment_create_params.py b/src/cloudflare/types/workers/scripts/deployment_create_params.py index 50a02b3b740..cb8530539c8 100644 --- a/src/cloudflare/types/workers/scripts/deployment_create_params.py +++ b/src/cloudflare/types/workers/scripts/deployment_create_params.py @@ -5,6 +5,8 @@ from typing import Iterable from typing_extensions import Literal, Required, TypedDict +from .deployment_param import DeploymentParam + __all__ = ["DeploymentCreateParams", "Version"] @@ -22,7 +24,7 @@ class DeploymentCreateParams(TypedDict, total=False): something such rolling back to an older version when a secret has changed. """ - annotations: object + annotations: DeploymentParam class Version(TypedDict, total=False): diff --git a/src/cloudflare/types/workers/scripts/deployment_create_response.py b/src/cloudflare/types/workers/scripts/deployment_create_response.py index 59ef379c732..89f71d76378 100644 --- a/src/cloudflare/types/workers/scripts/deployment_create_response.py +++ b/src/cloudflare/types/workers/scripts/deployment_create_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ...._models import BaseModel +from .deployment import Deployment __all__ = ["DeploymentCreateResponse", "Version"] @@ -21,7 +22,7 @@ class DeploymentCreateResponse(BaseModel): id: Optional[str] = None - annotations: Optional[object] = None + annotations: Optional[Deployment] = None author_email: Optional[str] = None diff --git a/src/cloudflare/types/workers/scripts/deployment_get_response.py b/src/cloudflare/types/workers/scripts/deployment_get_response.py index 7f2cbeb92e4..ac49947bfe5 100644 --- a/src/cloudflare/types/workers/scripts/deployment_get_response.py +++ b/src/cloudflare/types/workers/scripts/deployment_get_response.py @@ -3,6 +3,7 @@ from typing import List, Optional from typing_extensions import Literal +from . import deployment from ...._models import BaseModel __all__ = ["DeploymentGetResponse", "Deployment", "DeploymentVersion"] @@ -21,7 +22,7 @@ class Deployment(BaseModel): id: Optional[str] = None - annotations: Optional[object] = None + annotations: Optional[deployment.Deployment] = None author_email: Optional[str] = None diff --git a/src/cloudflare/types/workers/scripts/deployment_param.py b/src/cloudflare/types/workers/scripts/deployment_param.py new file mode 100644 index 00000000000..caee9701c51 --- /dev/null +++ b/src/cloudflare/types/workers/scripts/deployment_param.py @@ -0,0 +1,14 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Annotated, TypedDict + +from ...._utils import PropertyInfo + +__all__ = ["DeploymentParam"] + + +class DeploymentParam(TypedDict, total=False): + workers_message: Annotated[str, PropertyInfo(alias="workers/message")] + """Human-readable message about the deployment. Truncated to 100 bytes.""" diff --git a/src/cloudflare/types/workers/scripts/schedule.py b/src/cloudflare/types/workers/scripts/schedule.py new file mode 100644 index 00000000000..08c504bddf7 --- /dev/null +++ b/src/cloudflare/types/workers/scripts/schedule.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ...._models import BaseModel + +__all__ = ["Schedule"] + + +class Schedule(BaseModel): + created_on: Optional[str] = None + + cron: Optional[str] = None + + modified_on: Optional[str] = None diff --git a/src/cloudflare/types/workers/scripts/schedule_get_response.py b/src/cloudflare/types/workers/scripts/schedule_get_response.py index f8c45d659a5..5d430c7ce85 100644 --- a/src/cloudflare/types/workers/scripts/schedule_get_response.py +++ b/src/cloudflare/types/workers/scripts/schedule_get_response.py @@ -2,10 +2,11 @@ from typing import List, Optional +from .schedule import Schedule from ...._models import BaseModel __all__ = ["ScheduleGetResponse"] class ScheduleGetResponse(BaseModel): - schedules: Optional[List[object]] = None + schedules: Optional[List[Schedule]] = None diff --git a/src/cloudflare/types/workers/scripts/schedule_param.py b/src/cloudflare/types/workers/scripts/schedule_param.py new file mode 100644 index 00000000000..da020bb12ea --- /dev/null +++ b/src/cloudflare/types/workers/scripts/schedule_param.py @@ -0,0 +1,11 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["ScheduleParam"] + + +class ScheduleParam(TypedDict, total=False): + cron: str diff --git a/src/cloudflare/types/workers/scripts/schedule_update_params.py b/src/cloudflare/types/workers/scripts/schedule_update_params.py index adf6cd16fbb..a02d0be5611 100644 --- a/src/cloudflare/types/workers/scripts/schedule_update_params.py +++ b/src/cloudflare/types/workers/scripts/schedule_update_params.py @@ -5,6 +5,8 @@ from typing import Iterable from typing_extensions import Required, TypedDict +from .schedule_param import ScheduleParam + __all__ = ["ScheduleUpdateParams"] @@ -12,4 +14,4 @@ class ScheduleUpdateParams(TypedDict, total=False): account_id: Required[str] """Identifier""" - body: Required[Iterable[object]] + body: Required[Iterable[ScheduleParam]] diff --git a/src/cloudflare/types/workers/scripts/schedule_update_response.py b/src/cloudflare/types/workers/scripts/schedule_update_response.py index 200f804bc1e..0024bf49131 100644 --- a/src/cloudflare/types/workers/scripts/schedule_update_response.py +++ b/src/cloudflare/types/workers/scripts/schedule_update_response.py @@ -2,10 +2,11 @@ from typing import List, Optional +from .schedule import Schedule from ...._models import BaseModel __all__ = ["ScheduleUpdateResponse"] class ScheduleUpdateResponse(BaseModel): - schedules: Optional[List[object]] = None + schedules: Optional[List[Schedule]] = None diff --git a/src/cloudflare/types/workers/scripts/tail_delete_response.py b/src/cloudflare/types/workers/scripts/tail_delete_response.py index 8b92b55d872..a1947aaa697 100644 --- a/src/cloudflare/types/workers/scripts/tail_delete_response.py +++ b/src/cloudflare/types/workers/scripts/tail_delete_response.py @@ -4,14 +4,15 @@ from typing_extensions import Literal from ...._models import BaseModel +from ...shared.response_info import ResponseInfo __all__ = ["TailDeleteResponse"] class TailDeleteResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/workers/worker_metadata_param.py b/src/cloudflare/types/workers/worker_metadata_param.py new file mode 100644 index 00000000000..dbfae3cd26d --- /dev/null +++ b/src/cloudflare/types/workers/worker_metadata_param.py @@ -0,0 +1,22 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["WorkerMetadataParam"] + + +class WorkerMetadataParam(TypedDict, total=False): + body_part: str + """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. + """ + + main_module: str + """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. + """ diff --git a/src/cloudflare/types/workers_for_platforms/dispatch/namespaces/scripts/content_update_params.py b/src/cloudflare/types/workers_for_platforms/dispatch/namespaces/scripts/content_update_params.py index f64195cd300..84e1916a5ef 100644 --- a/src/cloudflare/types/workers_for_platforms/dispatch/namespaces/scripts/content_update_params.py +++ b/src/cloudflare/types/workers_for_platforms/dispatch/namespaces/scripts/content_update_params.py @@ -5,6 +5,7 @@ from typing_extensions import Required, Annotated, TypedDict from ......_utils import PropertyInfo +from .....workers.worker_metadata_param import WorkerMetadataParam __all__ = ["ContentUpdateParams"] @@ -16,7 +17,8 @@ class ContentUpdateParams(TypedDict, total=False): dispatch_namespace: Required[str] """Name of the Workers for Platforms dispatch namespace.""" - metadata: Required[object] + metadata: Required[WorkerMetadataParam] + """JSON encoded metadata about the uploaded parts and Worker configuration.""" cf_worker_body_part: Annotated[str, PropertyInfo(alias="CF-WORKER-BODY-PART")] diff --git a/src/cloudflare/types/zaraz/__init__.py b/src/cloudflare/types/zaraz/__init__.py index fb0d9c59768..7d3831e23ce 100644 --- a/src/cloudflare/types/zaraz/__init__.py +++ b/src/cloudflare/types/zaraz/__init__.py @@ -3,11 +3,15 @@ from __future__ import annotations from .workflow import Workflow as Workflow +from .neo_event import NeoEvent as NeoEvent from .configuration import Configuration as Configuration +from .neo_event_param import NeoEventParam as NeoEventParam from .history_list_params import HistoryListParams as HistoryListParams from .zaraz_update_params import ZarazUpdateParams as ZarazUpdateParams from .config_update_params import ConfigUpdateParams as ConfigUpdateParams from .history_list_response import HistoryListResponse as HistoryListResponse from .history_update_params import HistoryUpdateParams as HistoryUpdateParams from .publish_create_params import PublishCreateParams as PublishCreateParams +from .button_text_translation import ButtonTextTranslation as ButtonTextTranslation from .publish_create_response import PublishCreateResponse as PublishCreateResponse +from .button_text_translation_param import ButtonTextTranslationParam as ButtonTextTranslationParam diff --git a/src/cloudflare/types/zaraz/button_text_translation.py b/src/cloudflare/types/zaraz/button_text_translation.py new file mode 100644 index 00000000000..975accd91f8 --- /dev/null +++ b/src/cloudflare/types/zaraz/button_text_translation.py @@ -0,0 +1,18 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Dict + +from ..._models import BaseModel + +__all__ = ["ButtonTextTranslation"] + + +class ButtonTextTranslation(BaseModel): + accept_all: Dict[str, str] + """Object where keys are language codes""" + + confirm_my_choices: Dict[str, str] + """Object where keys are language codes""" + + reject_all: Dict[str, str] + """Object where keys are language codes""" diff --git a/src/cloudflare/types/zaraz/button_text_translation_param.py b/src/cloudflare/types/zaraz/button_text_translation_param.py new file mode 100644 index 00000000000..5458fbecd65 --- /dev/null +++ b/src/cloudflare/types/zaraz/button_text_translation_param.py @@ -0,0 +1,19 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Dict +from typing_extensions import Required, TypedDict + +__all__ = ["ButtonTextTranslationParam"] + + +class ButtonTextTranslationParam(TypedDict, total=False): + accept_all: Required[Dict[str, str]] + """Object where keys are language codes""" + + confirm_my_choices: Required[Dict[str, str]] + """Object where keys are language codes""" + + reject_all: Required[Dict[str, str]] + """Object where keys are language codes""" diff --git a/src/cloudflare/types/zaraz/config_update_params.py b/src/cloudflare/types/zaraz/config_update_params.py index 00cb5a72f5f..c230e12d56e 100644 --- a/src/cloudflare/types/zaraz/config_update_params.py +++ b/src/cloudflare/types/zaraz/config_update_params.py @@ -6,6 +6,8 @@ from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict from ..._utils import PropertyInfo +from .neo_event_param import NeoEventParam +from .button_text_translation_param import ButtonTextTranslationParam __all__ = [ "ConfigUpdateParams", @@ -175,13 +177,13 @@ class ToolsZarazManagedComponent(TypedDict, total=False): type: Required[Literal["component"]] - actions: object + actions: Dict[str, NeoEventParam] """Actions configured on a tool. Either this or neoEvents field is required.""" default_purpose: Annotated[str, PropertyInfo(alias="defaultPurpose")] """Default consent purpose ID""" - neo_events: Annotated[Iterable[object], PropertyInfo(alias="neoEvents")] + neo_events: Annotated[Iterable[NeoEventParam], PropertyInfo(alias="neoEvents")] """DEPRECATED - List of actions configured on a tool. Either this or actions field is required. If both are present, actions field @@ -234,13 +236,13 @@ class ToolsWorker(TypedDict, total=False): worker: Required[ToolsWorkerWorker] """Cloudflare worker that acts as a managed component""" - actions: object + actions: Dict[str, NeoEventParam] """Actions configured on a tool. Either this or neoEvents field is required.""" default_purpose: Annotated[str, PropertyInfo(alias="defaultPurpose")] """Default consent purpose ID""" - neo_events: Annotated[Iterable[object], PropertyInfo(alias="neoEvents")] + neo_events: Annotated[Iterable[NeoEventParam], PropertyInfo(alias="neoEvents")] """DEPRECATED - List of actions configured on a tool. Either this or actions field is required. If both are present, actions field @@ -574,7 +576,7 @@ class ConsentPurposesWithTranslations(TypedDict, total=False): class Consent(TypedDict, total=False): enabled: Required[bool] - button_text_translations: Annotated[object, PropertyInfo(alias="buttonTextTranslations")] + button_text_translations: Annotated[ButtonTextTranslationParam, PropertyInfo(alias="buttonTextTranslations")] company_email: Annotated[str, PropertyInfo(alias="companyEmail")] diff --git a/src/cloudflare/types/zaraz/configuration.py b/src/cloudflare/types/zaraz/configuration.py index d36e0c36ef8..43ef343bd6c 100644 --- a/src/cloudflare/types/zaraz/configuration.py +++ b/src/cloudflare/types/zaraz/configuration.py @@ -7,6 +7,8 @@ from ..._utils import PropertyInfo from ..._models import BaseModel +from .neo_event import NeoEvent +from .button_text_translation import ButtonTextTranslation __all__ = [ "Configuration", @@ -131,13 +133,13 @@ class ToolsZarazManagedComponent(BaseModel): type: Literal["component"] - actions: Optional[object] = None + actions: Optional[Dict[str, NeoEvent]] = None """Actions configured on a tool. Either this or neoEvents field is required.""" default_purpose: Optional[str] = FieldInfo(alias="defaultPurpose", default=None) """Default consent purpose ID""" - neo_events: Optional[List[object]] = FieldInfo(alias="neoEvents", default=None) + neo_events: Optional[List[NeoEvent]] = FieldInfo(alias="neoEvents", default=None) """DEPRECATED - List of actions configured on a tool. Either this or actions field is required. If both are present, actions field @@ -190,13 +192,13 @@ class ToolsWorker(BaseModel): worker: ToolsWorkerWorker """Cloudflare worker that acts as a managed component""" - actions: Optional[object] = None + actions: Optional[Dict[str, NeoEvent]] = None """Actions configured on a tool. Either this or neoEvents field is required.""" default_purpose: Optional[str] = FieldInfo(alias="defaultPurpose", default=None) """Default consent purpose ID""" - neo_events: Optional[List[object]] = FieldInfo(alias="neoEvents", default=None) + neo_events: Optional[List[NeoEvent]] = FieldInfo(alias="neoEvents", default=None) """DEPRECATED - List of actions configured on a tool. Either this or actions field is required. If both are present, actions field @@ -529,7 +531,7 @@ class ConsentPurposesWithTranslations(BaseModel): class Consent(BaseModel): enabled: bool - button_text_translations: Optional[object] = FieldInfo(alias="buttonTextTranslations", default=None) + button_text_translations: Optional[ButtonTextTranslation] = FieldInfo(alias="buttonTextTranslations", default=None) company_email: Optional[str] = FieldInfo(alias="companyEmail", default=None) diff --git a/src/cloudflare/types/zaraz/neo_event.py b/src/cloudflare/types/zaraz/neo_event.py new file mode 100644 index 00000000000..deef96e304d --- /dev/null +++ b/src/cloudflare/types/zaraz/neo_event.py @@ -0,0 +1,23 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List + +from pydantic import Field as FieldInfo + +from ..._models import BaseModel + +__all__ = ["NeoEvent"] + + +class NeoEvent(BaseModel): + action_type: str = FieldInfo(alias="actionType") + """Tool event type""" + + blocking_triggers: List[str] = FieldInfo(alias="blockingTriggers") + """List of blocking triggers IDs""" + + data: object + """Event payload""" + + firing_triggers: List[str] = FieldInfo(alias="firingTriggers") + """List of firing triggers IDs""" diff --git a/src/cloudflare/types/zaraz/neo_event_param.py b/src/cloudflare/types/zaraz/neo_event_param.py new file mode 100644 index 00000000000..e154520b973 --- /dev/null +++ b/src/cloudflare/types/zaraz/neo_event_param.py @@ -0,0 +1,24 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import List +from typing_extensions import Required, Annotated, TypedDict + +from ..._utils import PropertyInfo + +__all__ = ["NeoEventParam"] + + +class NeoEventParam(TypedDict, total=False): + action_type: Required[Annotated[str, PropertyInfo(alias="actionType")]] + """Tool event type""" + + blocking_triggers: Required[Annotated[List[str], PropertyInfo(alias="blockingTriggers")]] + """List of blocking triggers IDs""" + + data: Required[object] + """Event payload""" + + firing_triggers: Required[Annotated[List[str], PropertyInfo(alias="firingTriggers")]] + """List of firing triggers IDs""" diff --git a/src/cloudflare/types/zero_trust/__init__.py b/src/cloudflare/types/zero_trust/__init__.py index 04b611ecebb..d273fdf3bb4 100644 --- a/src/cloudflare/types/zero_trust/__init__.py +++ b/src/cloudflare/types/zero_trust/__init__.py @@ -19,13 +19,16 @@ from .tunnel_list_response import TunnelListResponse as TunnelListResponse from .gateway_list_response import GatewayListResponse as GatewayListResponse from .network_path_response import NetworkPathResponse as NetworkPathResponse +from .identity_provider_type import IdentityProviderType as IdentityProviderType from .gateway_create_response import GatewayCreateResponse as GatewayCreateResponse from .identity_provider_param import IdentityProviderParam as IdentityProviderParam from .risk_scoring_get_response import RiskScoringGetResponse as RiskScoringGetResponse +from .digital_experience_monitor import DigitalExperienceMonitor as DigitalExperienceMonitor from .generic_oauth_config_param import GenericOAuthConfigParam as GenericOAuthConfigParam from .organization_create_params import OrganizationCreateParams as OrganizationCreateParams from .organization_update_params import OrganizationUpdateParams as OrganizationUpdateParams from .identity_provider_list_params import IdentityProviderListParams as IdentityProviderListParams +from .identity_provider_scim_config import IdentityProviderSCIMConfig as IdentityProviderSCIMConfig from .identity_provider_create_params import IdentityProviderCreateParams as IdentityProviderCreateParams from .identity_provider_list_response import IdentityProviderListResponse as IdentityProviderListResponse from .identity_provider_update_params import IdentityProviderUpdateParams as IdentityProviderUpdateParams @@ -35,3 +38,4 @@ from .identity_provider_delete_response import IdentityProviderDeleteResponse as IdentityProviderDeleteResponse from .connectivity_setting_edit_response import ConnectivitySettingEditResponse as ConnectivitySettingEditResponse from .organization_revoke_users_response import OrganizationRevokeUsersResponse as OrganizationRevokeUsersResponse +from .identity_provider_scim_config_param import IdentityProviderSCIMConfigParam as IdentityProviderSCIMConfigParam diff --git a/src/cloudflare/types/zero_trust/access/__init__.py b/src/cloudflare/types/zero_trust/access/__init__.py index 13b79229497..65e59f6df8c 100644 --- a/src/cloudflare/types/zero_trust/access/__init__.py +++ b/src/cloudflare/types/zero_trust/access/__init__.py @@ -55,6 +55,7 @@ from .policy_delete_response import PolicyDeleteResponse as PolicyDeleteResponse from .policy_update_response import PolicyUpdateResponse as PolicyUpdateResponse from .application_list_params import ApplicationListParams as ApplicationListParams +from .saas_app_name_id_format import SaaSAppNameIDFormat as SaaSAppNameIDFormat from .application_get_response import ApplicationGetResponse as ApplicationGetResponse from .bookmark_delete_response import BookmarkDeleteResponse as BookmarkDeleteResponse from .custom_page_without_html import CustomPageWithoutHTML as CustomPageWithoutHTML diff --git a/src/cloudflare/types/zero_trust/access/applications/__init__.py b/src/cloudflare/types/zero_trust/access/applications/__init__.py index 7b6b258ac24..4d592f30ff5 100644 --- a/src/cloudflare/types/zero_trust/access/applications/__init__.py +++ b/src/cloudflare/types/zero_trust/access/applications/__init__.py @@ -34,6 +34,7 @@ from .email_list_rule_param import EmailListRuleParam as EmailListRuleParam from .okta_group_rule_param import OktaGroupRuleParam as OktaGroupRuleParam from .saml_group_rule_param import SAMLGroupRuleParam as SAMLGroupRuleParam +from .user_policy_check_geo import UserPolicyCheckGeo as UserPolicyCheckGeo from .azure_group_rule_param import AzureGroupRuleParam as AzureGroupRuleParam from .certificate_rule_param import CertificateRuleParam as CertificateRuleParam from .policy_create_response import PolicyCreateResponse as PolicyCreateResponse diff --git a/src/cloudflare/types/zero_trust/access/applications/user_policy_check_geo.py b/src/cloudflare/types/zero_trust/access/applications/user_policy_check_geo.py new file mode 100644 index 00000000000..b99d468ab06 --- /dev/null +++ b/src/cloudflare/types/zero_trust/access/applications/user_policy_check_geo.py @@ -0,0 +1,11 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ....._models import BaseModel + +__all__ = ["UserPolicyCheckGeo"] + + +class UserPolicyCheckGeo(BaseModel): + country: Optional[str] = None diff --git a/src/cloudflare/types/zero_trust/access/applications/user_policy_check_list_response.py b/src/cloudflare/types/zero_trust/access/applications/user_policy_check_list_response.py index d15abacaee5..3622477b98e 100644 --- a/src/cloudflare/types/zero_trust/access/applications/user_policy_check_list_response.py +++ b/src/cloudflare/types/zero_trust/access/applications/user_policy_check_list_response.py @@ -3,6 +3,7 @@ from typing import List, Optional from ....._models import BaseModel +from .user_policy_check_geo import UserPolicyCheckGeo __all__ = ["UserPolicyCheckListResponse", "AppState", "UserIdentity"] @@ -31,7 +32,7 @@ class UserIdentity(BaseModel): email: Optional[str] = None - geo: Optional[object] = None + geo: Optional[UserPolicyCheckGeo] = None iat: Optional[int] = None diff --git a/src/cloudflare/types/zero_trust/access/saas_app_name_id_format.py b/src/cloudflare/types/zero_trust/access/saas_app_name_id_format.py new file mode 100644 index 00000000000..e527a9d8c7e --- /dev/null +++ b/src/cloudflare/types/zero_trust/access/saas_app_name_id_format.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import Literal, TypeAlias + +__all__ = ["SaaSAppNameIDFormat"] + +SaaSAppNameIDFormat: TypeAlias = Literal["id", "email"] diff --git a/src/cloudflare/types/zero_trust/access/saml_saas_app.py b/src/cloudflare/types/zero_trust/access/saml_saas_app.py index c329d334cc2..bbddbc0a4e7 100644 --- a/src/cloudflare/types/zero_trust/access/saml_saas_app.py +++ b/src/cloudflare/types/zero_trust/access/saml_saas_app.py @@ -5,6 +5,7 @@ from typing_extensions import Literal from ...._models import BaseModel +from .saas_app_name_id_format import SaaSAppNameIDFormat __all__ = ["SAMLSaaSApp", "CustomAttribute", "CustomAttributeSource", "CustomAttributeSourceNameByIdP"] @@ -74,7 +75,8 @@ class SAMLSaaSApp(BaseModel): idp_entity_id: Optional[str] = None """The unique identifier for your SaaS application.""" - name_id_format: Optional[object] = None + name_id_format: Optional[SaaSAppNameIDFormat] = None + """The format of the name identifier sent to the SaaS application.""" name_id_transform_jsonata: Optional[str] = None """ diff --git a/src/cloudflare/types/zero_trust/access/saml_saas_app_param.py b/src/cloudflare/types/zero_trust/access/saml_saas_app_param.py index 29d479e3d05..41c8bf72677 100644 --- a/src/cloudflare/types/zero_trust/access/saml_saas_app_param.py +++ b/src/cloudflare/types/zero_trust/access/saml_saas_app_param.py @@ -5,6 +5,8 @@ from typing import Iterable from typing_extensions import Literal, TypedDict +from .saas_app_name_id_format import SaaSAppNameIDFormat + __all__ = ["SAMLSaaSAppParam", "CustomAttribute", "CustomAttributeSource", "CustomAttributeSourceNameByIdP"] @@ -69,7 +71,8 @@ class SAMLSaaSAppParam(TypedDict, total=False): idp_entity_id: str """The unique identifier for your SaaS application.""" - name_id_format: object + name_id_format: SaaSAppNameIDFormat + """The format of the name identifier sent to the SaaS application.""" name_id_transform_jsonata: str """ diff --git a/src/cloudflare/types/zero_trust/access/users/active_session_get_response.py b/src/cloudflare/types/zero_trust/access/users/active_session_get_response.py index affcc728dad..2414f09a55c 100644 --- a/src/cloudflare/types/zero_trust/access/users/active_session_get_response.py +++ b/src/cloudflare/types/zero_trust/access/users/active_session_get_response.py @@ -5,6 +5,7 @@ from pydantic import Field as FieldInfo from ....._models import BaseModel +from ..applications.user_policy_check_geo import UserPolicyCheckGeo __all__ = ["ActiveSessionGetResponse", "DeviceSessions", "DevicePosture", "DevicePostureCheck", "IdP", "MTLSAuth"] @@ -72,7 +73,7 @@ class ActiveSessionGetResponse(BaseModel): email: Optional[str] = None - geo: Optional[object] = None + geo: Optional[UserPolicyCheckGeo] = None iat: Optional[float] = None diff --git a/src/cloudflare/types/zero_trust/access/users/identity.py b/src/cloudflare/types/zero_trust/access/users/identity.py index b8f667663ee..52f27fee6c2 100644 --- a/src/cloudflare/types/zero_trust/access/users/identity.py +++ b/src/cloudflare/types/zero_trust/access/users/identity.py @@ -5,6 +5,7 @@ from pydantic import Field as FieldInfo from ....._models import BaseModel +from ..applications.user_policy_check_geo import UserPolicyCheckGeo __all__ = ["Identity", "DeviceSessions", "DevicePosture", "DevicePostureCheck", "IdP", "MTLSAuth"] @@ -72,7 +73,7 @@ class Identity(BaseModel): email: Optional[str] = None - geo: Optional[object] = None + geo: Optional[UserPolicyCheckGeo] = None iat: Optional[float] = None diff --git a/src/cloudflare/types/zero_trust/azure_ad.py b/src/cloudflare/types/zero_trust/azure_ad.py index 5467acec585..359f8564164 100644 --- a/src/cloudflare/types/zero_trust/azure_ad.py +++ b/src/cloudflare/types/zero_trust/azure_ad.py @@ -4,6 +4,8 @@ from typing_extensions import Literal from ..._models import BaseModel +from .identity_provider_type import IdentityProviderType +from .identity_provider_scim_config import IdentityProviderSCIMConfig __all__ = ["AzureAD", "Config"] @@ -55,9 +57,18 @@ class AzureAD(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ diff --git a/src/cloudflare/types/zero_trust/azure_ad_param.py b/src/cloudflare/types/zero_trust/azure_ad_param.py index cd455fd9a86..78d3d67019e 100644 --- a/src/cloudflare/types/zero_trust/azure_ad_param.py +++ b/src/cloudflare/types/zero_trust/azure_ad_param.py @@ -5,6 +5,9 @@ from typing import List from typing_extensions import Literal, Required, TypedDict +from .identity_provider_type import IdentityProviderType +from .identity_provider_scim_config_param import IdentityProviderSCIMConfigParam + __all__ = ["AzureADParam", "Config"] @@ -55,6 +58,15 @@ class AzureADParam(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ diff --git a/src/cloudflare/types/zero_trust/devices/crowdstrike_input.py b/src/cloudflare/types/zero_trust/devices/crowdstrike_input.py index d134b498731..b46afbf4142 100644 --- a/src/cloudflare/types/zero_trust/devices/crowdstrike_input.py +++ b/src/cloudflare/types/zero_trust/devices/crowdstrike_input.py @@ -17,7 +17,8 @@ class CrowdstrikeInput(BaseModel): last_seen: Optional[str] = None """For more details on last seen, please refer to the Crowdstrike documentation.""" - operator: Optional[object] = None + operator: Optional[Literal["<", "<=", ">", ">=", "=="]] = None + """operator""" os: Optional[str] = None """Os Version""" diff --git a/src/cloudflare/types/zero_trust/devices/crowdstrike_input_param.py b/src/cloudflare/types/zero_trust/devices/crowdstrike_input_param.py index 0aab52d62bd..7cc4fc7e593 100644 --- a/src/cloudflare/types/zero_trust/devices/crowdstrike_input_param.py +++ b/src/cloudflare/types/zero_trust/devices/crowdstrike_input_param.py @@ -16,7 +16,8 @@ class CrowdstrikeInputParam(TypedDict, total=False): last_seen: str """For more details on last seen, please refer to the Crowdstrike documentation.""" - operator: object + operator: Literal["<", "<=", ">", ">=", "=="] + """operator""" os: str """Os Version""" diff --git a/src/cloudflare/types/zero_trust/devices/device_input.py b/src/cloudflare/types/zero_trust/devices/device_input.py index 322618c16be..c72344321f8 100644 --- a/src/cloudflare/types/zero_trust/devices/device_input.py +++ b/src/cloudflare/types/zero_trust/devices/device_input.py @@ -30,7 +30,8 @@ class TeamsDevicesCarbonblackInputRequest(BaseModel): - operating_system: object + operating_system: Literal["windows", "linux", "mac"] + """Operating system""" path: str """File path.""" @@ -43,7 +44,8 @@ class TeamsDevicesCarbonblackInputRequest(BaseModel): class TeamsDevicesApplicationInputRequest(BaseModel): - operating_system: object + operating_system: Literal["windows", "linux", "mac"] + """Operating system""" path: str """Path for the application.""" @@ -74,7 +76,8 @@ class TeamsDevicesClientCertificateV2InputRequest(BaseModel): private key. """ - operating_system: object + operating_system: Literal["windows", "linux", "mac"] + """Operating system""" cn: Optional[str] = None """Common Name that is protected by the client certificate. @@ -96,7 +99,8 @@ class TeamsDevicesCustomS2sInputRequest(BaseModel): connection_id: str """Posture Integration ID.""" - operator: object + operator: Literal["<", "<=", ">", ">=", "=="] + """operator""" score: float """ diff --git a/src/cloudflare/types/zero_trust/devices/device_input_param.py b/src/cloudflare/types/zero_trust/devices/device_input_param.py index d1840f7b3ac..6dccd49bcb9 100644 --- a/src/cloudflare/types/zero_trust/devices/device_input_param.py +++ b/src/cloudflare/types/zero_trust/devices/device_input_param.py @@ -31,7 +31,8 @@ class TeamsDevicesCarbonblackInputRequest(TypedDict, total=False): - operating_system: Required[object] + operating_system: Required[Literal["windows", "linux", "mac"]] + """Operating system""" path: Required[str] """File path.""" @@ -44,7 +45,8 @@ class TeamsDevicesCarbonblackInputRequest(TypedDict, total=False): class TeamsDevicesApplicationInputRequest(TypedDict, total=False): - operating_system: Required[object] + operating_system: Required[Literal["windows", "linux", "mac"]] + """Operating system""" path: Required[str] """Path for the application.""" @@ -75,7 +77,8 @@ class TeamsDevicesClientCertificateV2InputRequest(TypedDict, total=False): private key. """ - operating_system: Required[object] + operating_system: Required[Literal["windows", "linux", "mac"]] + """Operating system""" cn: str """Common Name that is protected by the client certificate. @@ -97,7 +100,8 @@ class TeamsDevicesCustomS2sInputRequest(TypedDict, total=False): connection_id: Required[str] """Posture Integration ID.""" - operator: Required[object] + operator: Required[Literal["<", "<=", ">", ">=", "=="]] + """operator""" score: Required[float] """ diff --git a/src/cloudflare/types/zero_trust/devices/file_input.py b/src/cloudflare/types/zero_trust/devices/file_input.py index ac84b0db7d6..214bf876ee0 100644 --- a/src/cloudflare/types/zero_trust/devices/file_input.py +++ b/src/cloudflare/types/zero_trust/devices/file_input.py @@ -1,6 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Optional +from typing_extensions import Literal from ...._models import BaseModel @@ -8,7 +9,8 @@ class FileInput(BaseModel): - operating_system: object + operating_system: Literal["windows", "linux", "mac"] + """Operating system""" path: str """File path.""" diff --git a/src/cloudflare/types/zero_trust/devices/file_input_param.py b/src/cloudflare/types/zero_trust/devices/file_input_param.py index e9a41620b0b..d50a8f505d4 100644 --- a/src/cloudflare/types/zero_trust/devices/file_input_param.py +++ b/src/cloudflare/types/zero_trust/devices/file_input_param.py @@ -2,13 +2,14 @@ from __future__ import annotations -from typing_extensions import Required, TypedDict +from typing_extensions import Literal, Required, TypedDict __all__ = ["FileInputParam"] class FileInputParam(TypedDict, total=False): - operating_system: Required[object] + operating_system: Required[Literal["windows", "linux", "mac"]] + """Operating system""" path: Required[str] """File path.""" diff --git a/src/cloudflare/types/zero_trust/devices/os_version_input.py b/src/cloudflare/types/zero_trust/devices/os_version_input.py index 6f570eb4436..0017278a572 100644 --- a/src/cloudflare/types/zero_trust/devices/os_version_input.py +++ b/src/cloudflare/types/zero_trust/devices/os_version_input.py @@ -12,7 +12,8 @@ class OSVersionInput(BaseModel): operating_system: Literal["windows"] """Operating System""" - operator: object + operator: Literal["<", "<=", ">", ">=", "=="] + """operator""" version: str """Version of OS""" diff --git a/src/cloudflare/types/zero_trust/devices/os_version_input_param.py b/src/cloudflare/types/zero_trust/devices/os_version_input_param.py index 657158edec5..446cad2e5d7 100644 --- a/src/cloudflare/types/zero_trust/devices/os_version_input_param.py +++ b/src/cloudflare/types/zero_trust/devices/os_version_input_param.py @@ -11,7 +11,8 @@ class OSVersionInputParam(TypedDict, total=False): operating_system: Required[Literal["windows"]] """Operating System""" - operator: Required[object] + operator: Required[Literal["<", "<=", ">", ">=", "=="]] + """operator""" version: Required[str] """Version of OS""" diff --git a/src/cloudflare/types/zero_trust/devices/sentinelone_input.py b/src/cloudflare/types/zero_trust/devices/sentinelone_input.py index 665d003f772..cfe6b020f91 100644 --- a/src/cloudflare/types/zero_trust/devices/sentinelone_input.py +++ b/src/cloudflare/types/zero_trust/devices/sentinelone_input.py @@ -1,6 +1,7 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Optional +from typing_extensions import Literal from ...._models import BaseModel @@ -8,7 +9,8 @@ class SentineloneInput(BaseModel): - operating_system: object + operating_system: Literal["windows", "linux", "mac"] + """Operating system""" path: str """File path.""" diff --git a/src/cloudflare/types/zero_trust/devices/sentinelone_input_param.py b/src/cloudflare/types/zero_trust/devices/sentinelone_input_param.py index 67ac6eb68fc..062c2a5206d 100644 --- a/src/cloudflare/types/zero_trust/devices/sentinelone_input_param.py +++ b/src/cloudflare/types/zero_trust/devices/sentinelone_input_param.py @@ -2,13 +2,14 @@ from __future__ import annotations -from typing_extensions import Required, TypedDict +from typing_extensions import Literal, Required, TypedDict __all__ = ["SentineloneInputParam"] class SentineloneInputParam(TypedDict, total=False): - operating_system: Required[object] + operating_system: Required[Literal["windows", "linux", "mac"]] + """Operating system""" path: Required[str] """File path.""" diff --git a/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input.py b/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input.py index b7446bfda28..1c9e4fa8d06 100644 --- a/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input.py +++ b/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input.py @@ -37,4 +37,5 @@ class SentineloneS2sInput(BaseModel): ] = None """Agent operational state.""" - operator: Optional[object] = None + operator: Optional[Literal["<", "<=", ">", ">=", "=="]] = None + """operator""" diff --git a/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input_param.py b/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input_param.py index c2c75b24437..706b9ccde01 100644 --- a/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input_param.py +++ b/src/cloudflare/types/zero_trust/devices/sentinelone_s2s_input_param.py @@ -34,4 +34,5 @@ class SentineloneS2sInputParam(TypedDict, total=False): ] """Agent operational state.""" - operator: object + operator: Literal["<", "<=", ">", ">=", "=="] + """operator""" diff --git a/src/cloudflare/types/zero_trust/dex/http_details.py b/src/cloudflare/types/zero_trust/dex/http_details.py index eb8df326875..ab4c28b811b 100644 --- a/src/cloudflare/types/zero_trust/dex/http_details.py +++ b/src/cloudflare/types/zero_trust/dex/http_details.py @@ -6,6 +6,7 @@ from pydantic import Field as FieldInfo from ...._models import BaseModel +from ..digital_experience_monitor import DigitalExperienceMonitor from .http_tests.test_stat_over_time import TestStatOverTime __all__ = [ @@ -134,6 +135,6 @@ class HTTPDetails(BaseModel): name: Optional[str] = None """The name of the HTTP synthetic application test""" - target_policies: Optional[List[object]] = None + target_policies: Optional[List[DigitalExperienceMonitor]] = None targeted: Optional[bool] = None diff --git a/src/cloudflare/types/zero_trust/dex/tests/tests.py b/src/cloudflare/types/zero_trust/dex/tests/tests.py index 549421ed662..6e2a9b09e49 100644 --- a/src/cloudflare/types/zero_trust/dex/tests/tests.py +++ b/src/cloudflare/types/zero_trust/dex/tests/tests.py @@ -7,6 +7,7 @@ from ....._models import BaseModel from ..aggregate_time_period import AggregateTimePeriod +from ...digital_experience_monitor import DigitalExperienceMonitor __all__ = [ "Tests", @@ -237,7 +238,7 @@ class Test(BaseModel): method: Optional[str] = None """for HTTP, the method to use when running the test""" - target_policies: Optional[List[object]] = None + target_policies: Optional[List[DigitalExperienceMonitor]] = None targeted: Optional[bool] = None diff --git a/src/cloudflare/types/zero_trust/dex/traceroute.py b/src/cloudflare/types/zero_trust/dex/traceroute.py index 6faf082b505..536fd47bc6f 100644 --- a/src/cloudflare/types/zero_trust/dex/traceroute.py +++ b/src/cloudflare/types/zero_trust/dex/traceroute.py @@ -6,6 +6,7 @@ from pydantic import Field as FieldInfo from ...._models import BaseModel +from ..digital_experience_monitor import DigitalExperienceMonitor from .http_tests.test_stat_over_time import TestStatOverTime __all__ = [ @@ -139,7 +140,7 @@ class Traceroute(BaseModel): name: str """The name of the Traceroute synthetic application test""" - target_policies: Optional[List[object]] = None + target_policies: Optional[List[DigitalExperienceMonitor]] = None targeted: Optional[bool] = None diff --git a/src/cloudflare/types/zero_trust/digital_experience_monitor.py b/src/cloudflare/types/zero_trust/digital_experience_monitor.py new file mode 100644 index 00000000000..8f4848c5fc3 --- /dev/null +++ b/src/cloudflare/types/zero_trust/digital_experience_monitor.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + + +from ..._models import BaseModel + +__all__ = ["DigitalExperienceMonitor"] + + +class DigitalExperienceMonitor(BaseModel): + id: str + + default: bool + """Whether the policy is the default for the account""" + + name: str diff --git a/src/cloudflare/types/zero_trust/gateway/__init__.py b/src/cloudflare/types/zero_trust/gateway/__init__.py index e384326e8e9..3493d5e0603 100644 --- a/src/cloudflare/types/zero_trust/gateway/__init__.py +++ b/src/cloudflare/types/zero_trust/gateway/__init__.py @@ -16,6 +16,8 @@ from .gateway_rule import GatewayRule as GatewayRule from .ipv6_network import IPV6Network as IPV6Network from .rule_setting import RuleSetting as RuleSetting +from .tls_settings import TLSSettings as TLSSettings +from .fips_settings import FipsSettings as FipsSettings from .ipv4_endpoint import IPV4Endpoint as IPV4Endpoint from .ipv6_endpoint import IPV6Endpoint as IPV6Endpoint from .endpoint_param import EndpointParam as EndpointParam @@ -33,34 +35,55 @@ from .ipv6_network_param import IPV6NetworkParam as IPV6NetworkParam from .list_create_params import ListCreateParams as ListCreateParams from .list_update_params import ListUpdateParams as ListUpdateParams +from .protocol_detection import ProtocolDetection as ProtocolDetection from .rule_create_params import RuleCreateParams as RuleCreateParams from .rule_setting_param import RuleSettingParam as RuleSettingParam from .rule_update_params import RuleUpdateParams as RuleUpdateParams +from .tls_settings_param import TLSSettingsParam as TLSSettingsParam +from .anti_virus_settings import AntiVirusSettings as AntiVirusSettings +from .block_page_settings import BlockPageSettings as BlockPageSettings +from .fips_settings_param import FipsSettingsParam as FipsSettingsParam from .ipv4_endpoint_param import IPV4EndpointParam as IPV4EndpointParam from .ipv6_endpoint_param import IPV6EndpointParam as IPV6EndpointParam from .list_create_response import ListCreateResponse as ListCreateResponse +from .activity_log_settings import ActivityLogSettings as ActivityLogSettings from .logging_update_params import LoggingUpdateParams as LoggingUpdateParams +from .notification_settings import NotificationSettings as NotificationSettings +from .body_scanning_settings import BodyScanningSettings as BodyScanningSettings from .location_create_params import LocationCreateParams as LocationCreateParams from .location_update_params import LocationUpdateParams as LocationUpdateParams +from .extended_email_matching import ExtendedEmailMatching as ExtendedEmailMatching from .certificate_get_response import CertificateGetResponse as CertificateGetResponse from .dns_resolver_settings_v4 import DNSResolverSettingsV4 as DNSResolverSettingsV4 from .dns_resolver_settings_v6 import DNSResolverSettingsV6 as DNSResolverSettingsV6 +from .protocol_detection_param import ProtocolDetectionParam as ProtocolDetectionParam +from .anti_virus_settings_param import AntiVirusSettingsParam as AntiVirusSettingsParam +from .block_page_settings_param import BlockPageSettingsParam as BlockPageSettingsParam from .certificate_create_params import CertificateCreateParams as CertificateCreateParams from .certificate_list_response import CertificateListResponse as CertificateListResponse from .configuration_edit_params import ConfigurationEditParams as ConfigurationEditParams +from .browser_isolation_settings import BrowserIsolationSettings as BrowserIsolationSettings from .configuration_get_response import ConfigurationGetResponse as ConfigurationGetResponse from .proxy_endpoint_edit_params import ProxyEndpointEditParams as ProxyEndpointEditParams +from .activity_log_settings_param import ActivityLogSettingsParam as ActivityLogSettingsParam from .certificate_activate_params import CertificateActivateParams as CertificateActivateParams from .certificate_create_response import CertificateCreateResponse as CertificateCreateResponse from .certificate_delete_response import CertificateDeleteResponse as CertificateDeleteResponse from .configuration_edit_response import ConfigurationEditResponse as ConfigurationEditResponse from .configuration_update_params import ConfigurationUpdateParams as ConfigurationUpdateParams from .custom_certificate_settings import CustomCertificateSettings as CustomCertificateSettings +from .notification_settings_param import NotificationSettingsParam as NotificationSettingsParam +from .body_scanning_settings_param import BodyScanningSettingsParam as BodyScanningSettingsParam from .proxy_endpoint_create_params import ProxyEndpointCreateParams as ProxyEndpointCreateParams from .certificate_activate_response import CertificateActivateResponse as CertificateActivateResponse from .certificate_deactivate_params import CertificateDeactivateParams as CertificateDeactivateParams from .configuration_update_response import ConfigurationUpdateResponse as ConfigurationUpdateResponse +from .extended_email_matching_param import ExtendedEmailMatchingParam as ExtendedEmailMatchingParam from .dns_resolver_settings_v4_param import DNSResolverSettingsV4Param as DNSResolverSettingsV4Param from .dns_resolver_settings_v6_param import DNSResolverSettingsV6Param as DNSResolverSettingsV6Param +from .gateway_configuration_settings import GatewayConfigurationSettings as GatewayConfigurationSettings from .audit_ssh_setting_update_params import AuditSSHSettingUpdateParams as AuditSSHSettingUpdateParams from .certificate_deactivate_response import CertificateDeactivateResponse as CertificateDeactivateResponse +from .browser_isolation_settings_param import BrowserIsolationSettingsParam as BrowserIsolationSettingsParam +from .custom_certificate_settings_param import CustomCertificateSettingsParam as CustomCertificateSettingsParam +from .gateway_configuration_settings_param import GatewayConfigurationSettingsParam as GatewayConfigurationSettingsParam diff --git a/src/cloudflare/types/zero_trust/gateway/activity_log_settings.py b/src/cloudflare/types/zero_trust/gateway/activity_log_settings.py new file mode 100644 index 00000000000..d17f765af7e --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/activity_log_settings.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ...._models import BaseModel + +__all__ = ["ActivityLogSettings"] + + +class ActivityLogSettings(BaseModel): + enabled: Optional[bool] = None + """Enable activity logging.""" diff --git a/src/cloudflare/types/zero_trust/gateway/activity_log_settings_param.py b/src/cloudflare/types/zero_trust/gateway/activity_log_settings_param.py new file mode 100644 index 00000000000..5dcdd0e03b6 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/activity_log_settings_param.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["ActivityLogSettingsParam"] + + +class ActivityLogSettingsParam(TypedDict, total=False): + enabled: bool + """Enable activity logging.""" diff --git a/src/cloudflare/types/zero_trust/gateway/anti_virus_settings.py b/src/cloudflare/types/zero_trust/gateway/anti_virus_settings.py new file mode 100644 index 00000000000..85cf41948ef --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/anti_virus_settings.py @@ -0,0 +1,25 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ...._models import BaseModel +from .notification_settings import NotificationSettings + +__all__ = ["AntiVirusSettings"] + + +class AntiVirusSettings(BaseModel): + enabled_download_phase: Optional[bool] = None + """Enable anti-virus scanning on downloads.""" + + enabled_upload_phase: Optional[bool] = None + """Enable anti-virus scanning on uploads.""" + + fail_closed: Optional[bool] = None + """Block requests for files that cannot be scanned.""" + + notification_settings: Optional[NotificationSettings] = None + """ + Configure a message to display on the user's device when an antivirus search is + performed. + """ diff --git a/src/cloudflare/types/zero_trust/gateway/anti_virus_settings_param.py b/src/cloudflare/types/zero_trust/gateway/anti_virus_settings_param.py new file mode 100644 index 00000000000..ee88b2f890e --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/anti_virus_settings_param.py @@ -0,0 +1,26 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +from .notification_settings_param import NotificationSettingsParam + +__all__ = ["AntiVirusSettingsParam"] + + +class AntiVirusSettingsParam(TypedDict, total=False): + enabled_download_phase: bool + """Enable anti-virus scanning on downloads.""" + + enabled_upload_phase: bool + """Enable anti-virus scanning on uploads.""" + + fail_closed: bool + """Block requests for files that cannot be scanned.""" + + notification_settings: NotificationSettingsParam + """ + Configure a message to display on the user's device when an antivirus search is + performed. + """ diff --git a/src/cloudflare/types/zero_trust/gateway/block_page_settings.py b/src/cloudflare/types/zero_trust/gateway/block_page_settings.py new file mode 100644 index 00000000000..2b587764cff --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/block_page_settings.py @@ -0,0 +1,60 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import Literal + +from ...._models import BaseModel + +__all__ = ["BlockPageSettings"] + + +class BlockPageSettings(BaseModel): + background_color: Optional[str] = None + """ + If mode is customized_block_page: block page background color in #rrggbb format. + """ + + enabled: Optional[bool] = None + """Enable only cipher suites and TLS versions compliant with FIPS 140-2.""" + + footer_text: Optional[str] = None + """If mode is customized_block_page: block page footer text.""" + + header_text: Optional[str] = None + """If mode is customized_block_page: block page header text.""" + + include_context: Optional[bool] = None + """ + If mode is redirect_uri: when enabled, context will be appended to target_uri as + query parameters. + """ + + logo_path: Optional[str] = None + """If mode is customized_block_page: full URL to the logo file.""" + + mailto_address: Optional[str] = None + """If mode is customized_block_page: admin email for users to contact.""" + + mailto_subject: Optional[str] = None + """ + If mode is customized_block_page: subject line for emails created from block + page. + """ + + mode: Optional[Literal["customized_block_page", "redirect_uri"]] = None + """ + Controls whether the user is redirected to a Cloudflare-hosted block page or to + a customer-provided URI. + """ + + name: Optional[str] = None + """If mode is customized_block_page: block page title.""" + + suppress_footer: Optional[bool] = None + """ + If mode is customized_block_page: suppress detailed info at the bottom of the + block page. + """ + + target_uri: Optional[str] = None + """If mode is redirect_uri: URI to which the user should be redirected.""" diff --git a/src/cloudflare/types/zero_trust/gateway/block_page_settings_param.py b/src/cloudflare/types/zero_trust/gateway/block_page_settings_param.py new file mode 100644 index 00000000000..669f363e311 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/block_page_settings_param.py @@ -0,0 +1,59 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Literal, TypedDict + +__all__ = ["BlockPageSettingsParam"] + + +class BlockPageSettingsParam(TypedDict, total=False): + background_color: str + """ + If mode is customized_block_page: block page background color in #rrggbb format. + """ + + enabled: bool + """Enable only cipher suites and TLS versions compliant with FIPS 140-2.""" + + footer_text: str + """If mode is customized_block_page: block page footer text.""" + + header_text: str + """If mode is customized_block_page: block page header text.""" + + include_context: bool + """ + If mode is redirect_uri: when enabled, context will be appended to target_uri as + query parameters. + """ + + logo_path: str + """If mode is customized_block_page: full URL to the logo file.""" + + mailto_address: str + """If mode is customized_block_page: admin email for users to contact.""" + + mailto_subject: str + """ + If mode is customized_block_page: subject line for emails created from block + page. + """ + + mode: Literal["customized_block_page", "redirect_uri"] + """ + Controls whether the user is redirected to a Cloudflare-hosted block page or to + a customer-provided URI. + """ + + name: str + """If mode is customized_block_page: block page title.""" + + suppress_footer: bool + """ + If mode is customized_block_page: suppress detailed info at the bottom of the + block page. + """ + + target_uri: str + """If mode is redirect_uri: URI to which the user should be redirected.""" diff --git a/src/cloudflare/types/zero_trust/gateway/body_scanning_settings.py b/src/cloudflare/types/zero_trust/gateway/body_scanning_settings.py new file mode 100644 index 00000000000..4d21ed246a6 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/body_scanning_settings.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ...._models import BaseModel + +__all__ = ["BodyScanningSettings"] + + +class BodyScanningSettings(BaseModel): + inspection_mode: Optional[str] = None + """Set the inspection mode to either `deep` or `shallow`.""" diff --git a/src/cloudflare/types/zero_trust/gateway/body_scanning_settings_param.py b/src/cloudflare/types/zero_trust/gateway/body_scanning_settings_param.py new file mode 100644 index 00000000000..3ffd6f9037e --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/body_scanning_settings_param.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["BodyScanningSettingsParam"] + + +class BodyScanningSettingsParam(TypedDict, total=False): + inspection_mode: str + """Set the inspection mode to either `deep` or `shallow`.""" diff --git a/src/cloudflare/types/zero_trust/gateway/browser_isolation_settings.py b/src/cloudflare/types/zero_trust/gateway/browser_isolation_settings.py new file mode 100644 index 00000000000..e55ca6ff780 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/browser_isolation_settings.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ...._models import BaseModel + +__all__ = ["BrowserIsolationSettings"] + + +class BrowserIsolationSettings(BaseModel): + non_identity_enabled: Optional[bool] = None + """Enable non-identity onramp support for Browser Isolation.""" + + url_browser_isolation_enabled: Optional[bool] = None + """Enable Clientless Browser Isolation.""" diff --git a/src/cloudflare/types/zero_trust/gateway/browser_isolation_settings_param.py b/src/cloudflare/types/zero_trust/gateway/browser_isolation_settings_param.py new file mode 100644 index 00000000000..3b43b6df009 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/browser_isolation_settings_param.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["BrowserIsolationSettingsParam"] + + +class BrowserIsolationSettingsParam(TypedDict, total=False): + non_identity_enabled: bool + """Enable non-identity onramp support for Browser Isolation.""" + + url_browser_isolation_enabled: bool + """Enable Clientless Browser Isolation.""" diff --git a/src/cloudflare/types/zero_trust/gateway/configuration_edit_params.py b/src/cloudflare/types/zero_trust/gateway/configuration_edit_params.py index 06bb06d9eaf..e2a203f8dd8 100644 --- a/src/cloudflare/types/zero_trust/gateway/configuration_edit_params.py +++ b/src/cloudflare/types/zero_trust/gateway/configuration_edit_params.py @@ -4,10 +4,13 @@ from typing_extensions import Required, TypedDict +from .gateway_configuration_settings_param import GatewayConfigurationSettingsParam + __all__ = ["ConfigurationEditParams"] class ConfigurationEditParams(TypedDict, total=False): account_id: Required[str] - settings: object + settings: GatewayConfigurationSettingsParam + """Account settings""" diff --git a/src/cloudflare/types/zero_trust/gateway/configuration_edit_response.py b/src/cloudflare/types/zero_trust/gateway/configuration_edit_response.py index 4f583b02dab..13a39732b9b 100644 --- a/src/cloudflare/types/zero_trust/gateway/configuration_edit_response.py +++ b/src/cloudflare/types/zero_trust/gateway/configuration_edit_response.py @@ -4,6 +4,7 @@ from datetime import datetime from ...._models import BaseModel +from .gateway_configuration_settings import GatewayConfigurationSettings __all__ = ["ConfigurationEditResponse"] @@ -11,6 +12,7 @@ class ConfigurationEditResponse(BaseModel): created_at: Optional[datetime] = None - settings: Optional[object] = None + settings: Optional[GatewayConfigurationSettings] = None + """Account settings""" updated_at: Optional[datetime] = None diff --git a/src/cloudflare/types/zero_trust/gateway/configuration_get_response.py b/src/cloudflare/types/zero_trust/gateway/configuration_get_response.py index eb97b8d1d2e..63636f9ea17 100644 --- a/src/cloudflare/types/zero_trust/gateway/configuration_get_response.py +++ b/src/cloudflare/types/zero_trust/gateway/configuration_get_response.py @@ -4,6 +4,7 @@ from datetime import datetime from ...._models import BaseModel +from .gateway_configuration_settings import GatewayConfigurationSettings __all__ = ["ConfigurationGetResponse"] @@ -11,6 +12,7 @@ class ConfigurationGetResponse(BaseModel): created_at: Optional[datetime] = None - settings: Optional[object] = None + settings: Optional[GatewayConfigurationSettings] = None + """Account settings""" updated_at: Optional[datetime] = None diff --git a/src/cloudflare/types/zero_trust/gateway/configuration_update_params.py b/src/cloudflare/types/zero_trust/gateway/configuration_update_params.py index d19b4d6ff05..8dc9dece583 100644 --- a/src/cloudflare/types/zero_trust/gateway/configuration_update_params.py +++ b/src/cloudflare/types/zero_trust/gateway/configuration_update_params.py @@ -4,10 +4,13 @@ from typing_extensions import Required, TypedDict +from .gateway_configuration_settings_param import GatewayConfigurationSettingsParam + __all__ = ["ConfigurationUpdateParams"] class ConfigurationUpdateParams(TypedDict, total=False): account_id: Required[str] - settings: object + settings: GatewayConfigurationSettingsParam + """Account settings""" diff --git a/src/cloudflare/types/zero_trust/gateway/configuration_update_response.py b/src/cloudflare/types/zero_trust/gateway/configuration_update_response.py index f31427bae32..17c9c505bf3 100644 --- a/src/cloudflare/types/zero_trust/gateway/configuration_update_response.py +++ b/src/cloudflare/types/zero_trust/gateway/configuration_update_response.py @@ -4,6 +4,7 @@ from datetime import datetime from ...._models import BaseModel +from .gateway_configuration_settings import GatewayConfigurationSettings __all__ = ["ConfigurationUpdateResponse"] @@ -11,6 +12,7 @@ class ConfigurationUpdateResponse(BaseModel): created_at: Optional[datetime] = None - settings: Optional[object] = None + settings: Optional[GatewayConfigurationSettings] = None + """Account settings""" updated_at: Optional[datetime] = None diff --git a/src/cloudflare/types/zero_trust/gateway/custom_certificate_settings_param.py b/src/cloudflare/types/zero_trust/gateway/custom_certificate_settings_param.py new file mode 100644 index 00000000000..60627d47117 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/custom_certificate_settings_param.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["CustomCertificateSettingsParam"] + + +class CustomCertificateSettingsParam(TypedDict, total=False): + enabled: Required[bool] + """Enable use of custom certificate authority for signing Gateway traffic.""" + + id: str + """UUID of certificate (ID from MTLS certificate store).""" diff --git a/src/cloudflare/types/zero_trust/gateway/extended_email_matching.py b/src/cloudflare/types/zero_trust/gateway/extended_email_matching.py new file mode 100644 index 00000000000..ff34962235c --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/extended_email_matching.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ...._models import BaseModel + +__all__ = ["ExtendedEmailMatching"] + + +class ExtendedEmailMatching(BaseModel): + enabled: Optional[bool] = None + """Enable matching all variants of user emails (with + or . + + modifiers) used as criteria in Firewall policies. + """ diff --git a/src/cloudflare/types/zero_trust/gateway/extended_email_matching_param.py b/src/cloudflare/types/zero_trust/gateway/extended_email_matching_param.py new file mode 100644 index 00000000000..cdf65749933 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/extended_email_matching_param.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["ExtendedEmailMatchingParam"] + + +class ExtendedEmailMatchingParam(TypedDict, total=False): + enabled: bool + """Enable matching all variants of user emails (with + or . + + modifiers) used as criteria in Firewall policies. + """ diff --git a/src/cloudflare/types/zero_trust/gateway/fips_settings.py b/src/cloudflare/types/zero_trust/gateway/fips_settings.py new file mode 100644 index 00000000000..357e4b5c704 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/fips_settings.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ...._models import BaseModel + +__all__ = ["FipsSettings"] + + +class FipsSettings(BaseModel): + tls: Optional[bool] = None + """Enable only cipher suites and TLS versions compliant with FIPS 140-2.""" diff --git a/src/cloudflare/types/zero_trust/gateway/fips_settings_param.py b/src/cloudflare/types/zero_trust/gateway/fips_settings_param.py new file mode 100644 index 00000000000..4c344325f56 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/fips_settings_param.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["FipsSettingsParam"] + + +class FipsSettingsParam(TypedDict, total=False): + tls: bool + """Enable only cipher suites and TLS versions compliant with FIPS 140-2.""" diff --git a/src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings.py b/src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings.py new file mode 100644 index 00000000000..2b040e89014 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings.py @@ -0,0 +1,79 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import Literal + +from ...._models import BaseModel +from .tls_settings import TLSSettings +from .fips_settings import FipsSettings +from .protocol_detection import ProtocolDetection +from .anti_virus_settings import AntiVirusSettings +from .block_page_settings import BlockPageSettings +from .activity_log_settings import ActivityLogSettings +from .body_scanning_settings import BodyScanningSettings +from .extended_email_matching import ExtendedEmailMatching +from .browser_isolation_settings import BrowserIsolationSettings +from .custom_certificate_settings import CustomCertificateSettings + +__all__ = ["GatewayConfigurationSettings", "Certificate", "Sandbox"] + + +class Certificate(BaseModel): + id: str + """UUID of certificate to be used for interception. + + Certificate must be available (previously called 'active') on the edge. A nil + UUID will indicate the Cloudflare Root CA should be used. + """ + + +class Sandbox(BaseModel): + enabled: Optional[bool] = None + """Enable sandbox.""" + + fallback_action: Optional[Literal["allow", "block"]] = None + """Action to take when the file cannot be scanned.""" + + +class GatewayConfigurationSettings(BaseModel): + activity_log: Optional[ActivityLogSettings] = None + """Activity log settings.""" + + antivirus: Optional[AntiVirusSettings] = None + """Anti-virus settings.""" + + block_page: Optional[BlockPageSettings] = None + """Block page layout settings.""" + + body_scanning: Optional[BodyScanningSettings] = None + """DLP body scanning settings.""" + + browser_isolation: Optional[BrowserIsolationSettings] = None + """Browser isolation settings.""" + + certificate: Optional[Certificate] = None + """Certificate settings for Gateway TLS interception. + + If not specified, the Cloudflare Root CA will be used. + """ + + custom_certificate: Optional[CustomCertificateSettings] = None + """Custom certificate settings for BYO-PKI. + + (deprecated and replaced by `certificate`) + """ + + extended_email_matching: Optional[ExtendedEmailMatching] = None + """Extended e-mail matching settings.""" + + fips: Optional[FipsSettings] = None + """FIPS settings.""" + + protocol_detection: Optional[ProtocolDetection] = None + """Protocol Detection settings.""" + + sandbox: Optional[Sandbox] = None + """Sandbox settings.""" + + tls_decrypt: Optional[TLSSettings] = None + """TLS interception settings.""" diff --git a/src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings_param.py b/src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings_param.py new file mode 100644 index 00000000000..c5bfcfb237d --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/gateway_configuration_settings_param.py @@ -0,0 +1,79 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Literal, Required, TypedDict + +from .tls_settings_param import TLSSettingsParam +from .fips_settings_param import FipsSettingsParam +from .protocol_detection_param import ProtocolDetectionParam +from .anti_virus_settings_param import AntiVirusSettingsParam +from .block_page_settings_param import BlockPageSettingsParam +from .activity_log_settings_param import ActivityLogSettingsParam +from .body_scanning_settings_param import BodyScanningSettingsParam +from .extended_email_matching_param import ExtendedEmailMatchingParam +from .browser_isolation_settings_param import BrowserIsolationSettingsParam +from .custom_certificate_settings_param import CustomCertificateSettingsParam + +__all__ = ["GatewayConfigurationSettingsParam", "Certificate", "Sandbox"] + + +class Certificate(TypedDict, total=False): + id: Required[str] + """UUID of certificate to be used for interception. + + Certificate must be available (previously called 'active') on the edge. A nil + UUID will indicate the Cloudflare Root CA should be used. + """ + + +class Sandbox(TypedDict, total=False): + enabled: bool + """Enable sandbox.""" + + fallback_action: Literal["allow", "block"] + """Action to take when the file cannot be scanned.""" + + +class GatewayConfigurationSettingsParam(TypedDict, total=False): + activity_log: ActivityLogSettingsParam + """Activity log settings.""" + + antivirus: AntiVirusSettingsParam + """Anti-virus settings.""" + + block_page: BlockPageSettingsParam + """Block page layout settings.""" + + body_scanning: BodyScanningSettingsParam + """DLP body scanning settings.""" + + browser_isolation: BrowserIsolationSettingsParam + """Browser isolation settings.""" + + certificate: Certificate + """Certificate settings for Gateway TLS interception. + + If not specified, the Cloudflare Root CA will be used. + """ + + custom_certificate: CustomCertificateSettingsParam + """Custom certificate settings for BYO-PKI. + + (deprecated and replaced by `certificate`) + """ + + extended_email_matching: ExtendedEmailMatchingParam + """Extended e-mail matching settings.""" + + fips: FipsSettingsParam + """FIPS settings.""" + + protocol_detection: ProtocolDetectionParam + """Protocol Detection settings.""" + + sandbox: Sandbox + """Sandbox settings.""" + + tls_decrypt: TLSSettingsParam + """TLS interception settings.""" diff --git a/src/cloudflare/types/zero_trust/gateway/logging_setting.py b/src/cloudflare/types/zero_trust/gateway/logging_setting.py index eca1a539358..7fd32c437a6 100644 --- a/src/cloudflare/types/zero_trust/gateway/logging_setting.py +++ b/src/cloudflare/types/zero_trust/gateway/logging_setting.py @@ -4,7 +4,18 @@ from ...._models import BaseModel -__all__ = ["LoggingSetting"] +__all__ = ["LoggingSetting", "SettingsByRuleType"] + + +class SettingsByRuleType(BaseModel): + dns: Optional[object] = None + """Logging settings for DNS firewall.""" + + http: Optional[object] = None + """Logging settings for HTTP/HTTPS firewall.""" + + l4: Optional[object] = None + """Logging settings for Network firewall.""" class LoggingSetting(BaseModel): @@ -14,4 +25,5 @@ class LoggingSetting(BaseModel): are: source IP, user email, user ID, device ID, URL, referrer, user agent). """ - settings_by_rule_type: Optional[object] = None + settings_by_rule_type: Optional[SettingsByRuleType] = None + """Logging settings by rule type.""" diff --git a/src/cloudflare/types/zero_trust/gateway/logging_update_params.py b/src/cloudflare/types/zero_trust/gateway/logging_update_params.py index ba784adf8bd..de1cb4dfeb6 100644 --- a/src/cloudflare/types/zero_trust/gateway/logging_update_params.py +++ b/src/cloudflare/types/zero_trust/gateway/logging_update_params.py @@ -4,7 +4,7 @@ from typing_extensions import Required, TypedDict -__all__ = ["LoggingUpdateParams"] +__all__ = ["LoggingUpdateParams", "SettingsByRuleType"] class LoggingUpdateParams(TypedDict, total=False): @@ -16,4 +16,16 @@ class LoggingUpdateParams(TypedDict, total=False): are: source IP, user email, user ID, device ID, URL, referrer, user agent). """ - settings_by_rule_type: object + settings_by_rule_type: SettingsByRuleType + """Logging settings by rule type.""" + + +class SettingsByRuleType(TypedDict, total=False): + dns: object + """Logging settings for DNS firewall.""" + + http: object + """Logging settings for HTTP/HTTPS firewall.""" + + l4: object + """Logging settings for Network firewall.""" diff --git a/src/cloudflare/types/zero_trust/gateway/notification_settings.py b/src/cloudflare/types/zero_trust/gateway/notification_settings.py new file mode 100644 index 00000000000..0a1be707f81 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/notification_settings.py @@ -0,0 +1,21 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ...._models import BaseModel + +__all__ = ["NotificationSettings"] + + +class NotificationSettings(BaseModel): + enabled: Optional[bool] = None + """Set notification on""" + + msg: Optional[str] = None + """Customize the message shown in the notification.""" + + support_url: Optional[str] = None + """Optional URL to direct users to additional information. + + If not set, the notification will open a block page. + """ diff --git a/src/cloudflare/types/zero_trust/gateway/notification_settings_param.py b/src/cloudflare/types/zero_trust/gateway/notification_settings_param.py new file mode 100644 index 00000000000..96db4b9f3c9 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/notification_settings_param.py @@ -0,0 +1,21 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["NotificationSettingsParam"] + + +class NotificationSettingsParam(TypedDict, total=False): + enabled: bool + """Set notification on""" + + msg: str + """Customize the message shown in the notification.""" + + support_url: str + """Optional URL to direct users to additional information. + + If not set, the notification will open a block page. + """ diff --git a/src/cloudflare/types/zero_trust/gateway/protocol_detection.py b/src/cloudflare/types/zero_trust/gateway/protocol_detection.py new file mode 100644 index 00000000000..7d082eb6c2c --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/protocol_detection.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ...._models import BaseModel + +__all__ = ["ProtocolDetection"] + + +class ProtocolDetection(BaseModel): + enabled: Optional[bool] = None + """Enable detecting protocol on initial bytes of client traffic.""" diff --git a/src/cloudflare/types/zero_trust/gateway/protocol_detection_param.py b/src/cloudflare/types/zero_trust/gateway/protocol_detection_param.py new file mode 100644 index 00000000000..faece993406 --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/protocol_detection_param.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["ProtocolDetectionParam"] + + +class ProtocolDetectionParam(TypedDict, total=False): + enabled: bool + """Enable detecting protocol on initial bytes of client traffic.""" diff --git a/src/cloudflare/types/zero_trust/gateway/tls_settings.py b/src/cloudflare/types/zero_trust/gateway/tls_settings.py new file mode 100644 index 00000000000..e0a3fae4b5d --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/tls_settings.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ...._models import BaseModel + +__all__ = ["TLSSettings"] + + +class TLSSettings(BaseModel): + enabled: Optional[bool] = None + """Enable inspecting encrypted HTTP traffic.""" diff --git a/src/cloudflare/types/zero_trust/gateway/tls_settings_param.py b/src/cloudflare/types/zero_trust/gateway/tls_settings_param.py new file mode 100644 index 00000000000..ed0a04116aa --- /dev/null +++ b/src/cloudflare/types/zero_trust/gateway/tls_settings_param.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["TLSSettingsParam"] + + +class TLSSettingsParam(TypedDict, total=False): + enabled: bool + """Enable inspecting encrypted HTTP traffic.""" diff --git a/src/cloudflare/types/zero_trust/identity_provider.py b/src/cloudflare/types/zero_trust/identity_provider.py index 310ed57e240..49e7beaa96c 100644 --- a/src/cloudflare/types/zero_trust/identity_provider.py +++ b/src/cloudflare/types/zero_trust/identity_provider.py @@ -6,6 +6,8 @@ from .azure_ad import AzureAD from ..._models import BaseModel from .generic_oauth_config import GenericOAuthConfig +from .identity_provider_type import IdentityProviderType +from .identity_provider_scim_config import IdentityProviderSCIMConfig __all__ = [ "IdentityProvider", @@ -66,12 +68,21 @@ class AccessCentrify(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessFacebook(BaseModel): @@ -85,12 +96,21 @@ class AccessFacebook(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGitHub(BaseModel): @@ -104,12 +124,21 @@ class AccessGitHub(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGoogleConfig(BaseModel): @@ -137,12 +166,21 @@ class AccessGoogle(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGoogleAppsConfig(BaseModel): @@ -173,12 +211,21 @@ class AccessGoogleApps(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessLinkedin(BaseModel): @@ -192,12 +239,21 @@ class AccessLinkedin(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOIDCConfig(BaseModel): @@ -240,12 +296,21 @@ class AccessOIDC(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOktaConfig(BaseModel): @@ -279,12 +344,21 @@ class AccessOkta(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOneloginConfig(BaseModel): @@ -315,12 +389,21 @@ class AccessOnelogin(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessPingoneConfig(BaseModel): @@ -351,12 +434,21 @@ class AccessPingone(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessSAMLConfigHeaderAttribute(BaseModel): @@ -410,12 +502,21 @@ class AccessSAML(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessYandex(BaseModel): @@ -429,12 +530,21 @@ class AccessYandex(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOnetimepinConfig(BaseModel): @@ -452,12 +562,21 @@ class AccessOnetimepin(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ IdentityProvider: TypeAlias = Union[ diff --git a/src/cloudflare/types/zero_trust/identity_provider_create_params.py b/src/cloudflare/types/zero_trust/identity_provider_create_params.py index e17fa130e53..3e36765f32b 100644 --- a/src/cloudflare/types/zero_trust/identity_provider_create_params.py +++ b/src/cloudflare/types/zero_trust/identity_provider_create_params.py @@ -5,7 +5,9 @@ from typing import List, Union, Iterable from typing_extensions import Literal, Required, TypeAlias, TypedDict +from .identity_provider_type import IdentityProviderType from .generic_oauth_config_param import GenericOAuthConfigParam +from .identity_provider_scim_config_param import IdentityProviderSCIMConfigParam __all__ = [ "IdentityProviderCreateParams", @@ -48,7 +50,12 @@ class AzureAD(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -56,7 +63,11 @@ class AzureAD(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AzureADConfig(TypedDict, total=False): @@ -106,7 +117,12 @@ class AccessCentrify(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -114,7 +130,11 @@ class AccessCentrify(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessCentrifyConfig(TypedDict, total=False): @@ -148,7 +168,12 @@ class AccessFacebook(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -156,7 +181,11 @@ class AccessFacebook(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGitHub(TypedDict, total=False): @@ -170,7 +199,12 @@ class AccessGitHub(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -178,7 +212,11 @@ class AccessGitHub(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGoogle(TypedDict, total=False): @@ -192,7 +230,12 @@ class AccessGoogle(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -200,7 +243,11 @@ class AccessGoogle(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGoogleConfig(TypedDict, total=False): @@ -228,7 +275,12 @@ class AccessGoogleApps(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -236,7 +288,11 @@ class AccessGoogleApps(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGoogleAppsConfig(TypedDict, total=False): @@ -267,7 +323,12 @@ class AccessLinkedin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -275,7 +336,11 @@ class AccessLinkedin(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOIDC(TypedDict, total=False): @@ -289,7 +354,12 @@ class AccessOIDC(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -297,7 +367,11 @@ class AccessOIDC(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOIDCConfig(TypedDict, total=False): @@ -340,7 +414,12 @@ class AccessOkta(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -348,7 +427,11 @@ class AccessOkta(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOktaConfig(TypedDict, total=False): @@ -382,7 +465,12 @@ class AccessOnelogin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -390,7 +478,11 @@ class AccessOnelogin(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOneloginConfig(TypedDict, total=False): @@ -421,7 +513,12 @@ class AccessPingone(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -429,7 +526,11 @@ class AccessPingone(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessPingoneConfig(TypedDict, total=False): @@ -460,7 +561,12 @@ class AccessSAML(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -468,7 +574,11 @@ class AccessSAML(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessSAMLConfigHeaderAttribute(TypedDict, total=False): @@ -522,7 +632,12 @@ class AccessYandex(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -530,7 +645,11 @@ class AccessYandex(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOnetimepin(TypedDict, total=False): @@ -544,7 +663,12 @@ class AccessOnetimepin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -552,7 +676,11 @@ class AccessOnetimepin(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOnetimepinConfig(TypedDict, total=False): diff --git a/src/cloudflare/types/zero_trust/identity_provider_list_response.py b/src/cloudflare/types/zero_trust/identity_provider_list_response.py index 122dbfd696f..9aea2c16ce8 100644 --- a/src/cloudflare/types/zero_trust/identity_provider_list_response.py +++ b/src/cloudflare/types/zero_trust/identity_provider_list_response.py @@ -6,6 +6,8 @@ from .azure_ad import AzureAD from ..._models import BaseModel from .generic_oauth_config import GenericOAuthConfig +from .identity_provider_type import IdentityProviderType +from .identity_provider_scim_config import IdentityProviderSCIMConfig __all__ = [ "IdentityProviderListResponse", @@ -64,12 +66,21 @@ class AccessCentrify(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessFacebook(BaseModel): @@ -83,12 +94,21 @@ class AccessFacebook(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGitHub(BaseModel): @@ -102,12 +122,21 @@ class AccessGitHub(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGoogleConfig(BaseModel): @@ -135,12 +164,21 @@ class AccessGoogle(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGoogleAppsConfig(BaseModel): @@ -171,12 +209,21 @@ class AccessGoogleApps(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessLinkedin(BaseModel): @@ -190,12 +237,21 @@ class AccessLinkedin(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOIDCConfig(BaseModel): @@ -238,12 +294,21 @@ class AccessOIDC(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOktaConfig(BaseModel): @@ -277,12 +342,21 @@ class AccessOkta(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOneloginConfig(BaseModel): @@ -313,12 +387,21 @@ class AccessOnelogin(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessPingoneConfig(BaseModel): @@ -349,12 +432,21 @@ class AccessPingone(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessSAMLConfigHeaderAttribute(BaseModel): @@ -408,12 +500,21 @@ class AccessSAML(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessYandex(BaseModel): @@ -427,12 +528,21 @@ class AccessYandex(BaseModel): name: str """The name of the identity provider, shown to users on the login page.""" - type: object + type: IdentityProviderType + """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/). + """ id: Optional[str] = None """UUID""" - scim_config: Optional[object] = None + scim_config: Optional[IdentityProviderSCIMConfig] = None + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ IdentityProviderListResponse: TypeAlias = Union[ diff --git a/src/cloudflare/types/zero_trust/identity_provider_param.py b/src/cloudflare/types/zero_trust/identity_provider_param.py index 7125ec5cb48..c65e8409b57 100644 --- a/src/cloudflare/types/zero_trust/identity_provider_param.py +++ b/src/cloudflare/types/zero_trust/identity_provider_param.py @@ -6,7 +6,9 @@ from typing_extensions import Required, TypeAlias, TypedDict from .azure_ad_param import AzureADParam +from .identity_provider_type import IdentityProviderType from .generic_oauth_config_param import GenericOAuthConfigParam +from .identity_provider_scim_config_param import IdentityProviderSCIMConfigParam __all__ = [ "IdentityProviderParam", @@ -67,9 +69,18 @@ class AccessCentrify(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """The type of identity provider. - scim_config: object + To determine the value for a specific provider, refer to our + [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + """ + + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessFacebook(TypedDict, total=False): @@ -83,9 +94,18 @@ class AccessFacebook(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """The type of identity provider. - scim_config: object + To determine the value for a specific provider, refer to our + [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + """ + + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGitHub(TypedDict, total=False): @@ -99,9 +119,18 @@ class AccessGitHub(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGoogleConfig(TypedDict, total=False): @@ -129,9 +158,18 @@ class AccessGoogle(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """The type of identity provider. - scim_config: object + To determine the value for a specific provider, refer to our + [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + """ + + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGoogleAppsConfig(TypedDict, total=False): @@ -162,9 +200,18 @@ class AccessGoogleApps(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessLinkedin(TypedDict, total=False): @@ -178,9 +225,18 @@ class AccessLinkedin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """The type of identity provider. - scim_config: object + To determine the value for a specific provider, refer to our + [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + """ + + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOIDCConfig(TypedDict, total=False): @@ -223,9 +279,18 @@ class AccessOIDC(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """The type of identity provider. - scim_config: object + To determine the value for a specific provider, refer to our + [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + """ + + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOktaConfig(TypedDict, total=False): @@ -259,9 +324,18 @@ class AccessOkta(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOneloginConfig(TypedDict, total=False): @@ -292,9 +366,18 @@ class AccessOnelogin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessPingoneConfig(TypedDict, total=False): @@ -325,9 +408,18 @@ class AccessPingone(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """The type of identity provider. - scim_config: object + To determine the value for a specific provider, refer to our + [developer documentation](https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/). + """ + + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessSAMLConfigHeaderAttribute(TypedDict, total=False): @@ -381,9 +473,18 @@ class AccessSAML(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessYandex(TypedDict, total=False): @@ -397,9 +498,18 @@ class AccessYandex(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOnetimepinConfig(TypedDict, total=False): @@ -417,9 +527,18 @@ class AccessOnetimepin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ IdentityProviderParam: TypeAlias = Union[ diff --git a/src/cloudflare/types/zero_trust/identity_provider_scim_config.py b/src/cloudflare/types/zero_trust/identity_provider_scim_config.py new file mode 100644 index 00000000000..aa4b9fecffe --- /dev/null +++ b/src/cloudflare/types/zero_trust/identity_provider_scim_config.py @@ -0,0 +1,47 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import Literal + +from ..._models import BaseModel + +__all__ = ["IdentityProviderSCIMConfig"] + + +class IdentityProviderSCIMConfig(BaseModel): + enabled: Optional[bool] = None + """A flag to enable or disable SCIM for the identity provider.""" + + identity_update_behavior: Optional[Literal["automatic", "reauth", "no_action"]] = None + """Indicates how a SCIM event updates a user identity used for policy evaluation. + + Use "automatic" to automatically update a user's identity and augment it with + fields from the SCIM user resource. Use "reauth" to force re-authentication on + group membership updates, user identity update will only occur after successful + re-authentication. With "reauth" identities will not contain fields from the + SCIM user resource. With "no_action" identities will not be changed by SCIM + updates in any way and users will not be prompted to reauthenticate. + """ + + scim_base_url: Optional[str] = None + """The base URL of Cloudflare's SCIM V2.0 API endpoint.""" + + seat_deprovision: Optional[bool] = None + """ + 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. + """ + + secret: Optional[str] = None + """ + 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 at /access/identity_providers/:idpID/refresh_scim_secret. + """ + + user_deprovision: Optional[bool] = None + """ + A flag to enable revoking a user's session in Access and Gateway when they have + been deprovisioned in the Identity Provider. + """ diff --git a/src/cloudflare/types/zero_trust/identity_provider_scim_config_param.py b/src/cloudflare/types/zero_trust/identity_provider_scim_config_param.py new file mode 100644 index 00000000000..c3e5e064ded --- /dev/null +++ b/src/cloudflare/types/zero_trust/identity_provider_scim_config_param.py @@ -0,0 +1,36 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Literal, TypedDict + +__all__ = ["IdentityProviderSCIMConfigParam"] + + +class IdentityProviderSCIMConfigParam(TypedDict, total=False): + enabled: bool + """A flag to enable or disable SCIM for the identity provider.""" + + identity_update_behavior: Literal["automatic", "reauth", "no_action"] + """Indicates how a SCIM event updates a user identity used for policy evaluation. + + Use "automatic" to automatically update a user's identity and augment it with + fields from the SCIM user resource. Use "reauth" to force re-authentication on + group membership updates, user identity update will only occur after successful + re-authentication. With "reauth" identities will not contain fields from the + SCIM user resource. With "no_action" identities will not be changed by SCIM + updates in any way and users will not be prompted to reauthenticate. + """ + + seat_deprovision: bool + """ + 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. + """ + + user_deprovision: bool + """ + A flag to enable revoking a user's session in Access and Gateway when they have + been deprovisioned in the Identity Provider. + """ diff --git a/src/cloudflare/types/zero_trust/identity_provider_type.py b/src/cloudflare/types/zero_trust/identity_provider_type.py new file mode 100644 index 00000000000..13dba5ce2c5 --- /dev/null +++ b/src/cloudflare/types/zero_trust/identity_provider_type.py @@ -0,0 +1,22 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import Literal, TypeAlias + +__all__ = ["IdentityProviderType"] + +IdentityProviderType: TypeAlias = Literal[ + "onetimepin", + "azureAD", + "saml", + "centrify", + "facebook", + "github", + "google-apps", + "google", + "linkedin", + "oidc", + "okta", + "onelogin", + "pingone", + "yandex", +] diff --git a/src/cloudflare/types/zero_trust/identity_provider_update_params.py b/src/cloudflare/types/zero_trust/identity_provider_update_params.py index 8d4051ca23c..1cc1369ad54 100644 --- a/src/cloudflare/types/zero_trust/identity_provider_update_params.py +++ b/src/cloudflare/types/zero_trust/identity_provider_update_params.py @@ -5,7 +5,9 @@ from typing import List, Union, Iterable from typing_extensions import Literal, Required, TypeAlias, TypedDict +from .identity_provider_type import IdentityProviderType from .generic_oauth_config_param import GenericOAuthConfigParam +from .identity_provider_scim_config_param import IdentityProviderSCIMConfigParam __all__ = [ "IdentityProviderUpdateParams", @@ -48,7 +50,12 @@ class AzureAD(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -56,7 +63,11 @@ class AzureAD(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AzureADConfig(TypedDict, total=False): @@ -106,7 +117,12 @@ class AccessCentrify(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -114,7 +130,11 @@ class AccessCentrify(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessCentrifyConfig(TypedDict, total=False): @@ -148,7 +168,12 @@ class AccessFacebook(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -156,7 +181,11 @@ class AccessFacebook(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGitHub(TypedDict, total=False): @@ -170,7 +199,12 @@ class AccessGitHub(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -178,7 +212,11 @@ class AccessGitHub(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGoogle(TypedDict, total=False): @@ -192,7 +230,12 @@ class AccessGoogle(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -200,7 +243,11 @@ class AccessGoogle(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGoogleConfig(TypedDict, total=False): @@ -228,7 +275,12 @@ class AccessGoogleApps(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -236,7 +288,11 @@ class AccessGoogleApps(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessGoogleAppsConfig(TypedDict, total=False): @@ -267,7 +323,12 @@ class AccessLinkedin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -275,7 +336,11 @@ class AccessLinkedin(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOIDC(TypedDict, total=False): @@ -289,7 +354,12 @@ class AccessOIDC(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -297,7 +367,11 @@ class AccessOIDC(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOIDCConfig(TypedDict, total=False): @@ -340,7 +414,12 @@ class AccessOkta(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -348,7 +427,11 @@ class AccessOkta(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOktaConfig(TypedDict, total=False): @@ -382,7 +465,12 @@ class AccessOnelogin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -390,7 +478,11 @@ class AccessOnelogin(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOneloginConfig(TypedDict, total=False): @@ -421,7 +513,12 @@ class AccessPingone(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -429,7 +526,11 @@ class AccessPingone(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessPingoneConfig(TypedDict, total=False): @@ -460,7 +561,12 @@ class AccessSAML(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -468,7 +574,11 @@ class AccessSAML(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessSAMLConfigHeaderAttribute(TypedDict, total=False): @@ -522,7 +632,12 @@ class AccessYandex(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -530,7 +645,11 @@ class AccessYandex(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOnetimepin(TypedDict, total=False): @@ -544,7 +663,12 @@ class AccessOnetimepin(TypedDict, total=False): name: Required[str] """The name of the identity provider, shown to users on the login page.""" - type: Required[object] + type: Required[IdentityProviderType] + """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/). + """ account_id: str """The Account ID to use for this endpoint. Mutually exclusive with the Zone ID.""" @@ -552,7 +676,11 @@ class AccessOnetimepin(TypedDict, total=False): zone_id: str """The Zone ID to use for this endpoint. Mutually exclusive with the Account ID.""" - scim_config: object + scim_config: IdentityProviderSCIMConfigParam + """ + The configuration settings for enabling a System for Cross-Domain Identity + Management (SCIM) with the identity provider. + """ class AccessOnetimepinConfig(TypedDict, total=False): diff --git a/src/cloudflare/types/zones/__init__.py b/src/cloudflare/types/zones/__init__.py index a4fab6f3e1f..5b7501b8935 100644 --- a/src/cloudflare/types/zones/__init__.py +++ b/src/cloudflare/types/zones/__init__.py @@ -21,6 +21,7 @@ from .ssl_param import SSLParam as SSLParam from .waf_param import WAFParam as WAFParam from .websocket import Websocket as Websocket +from .zone_hold import ZoneHold as ZoneHold from .ipv6_param import IPV6Param as IPV6Param from .webp_param import WebPParam as WebPParam from .cache_level import CacheLevel as CacheLevel diff --git a/src/cloudflare/types/zones/custom_nameserver_get_response.py b/src/cloudflare/types/zones/custom_nameserver_get_response.py index 5cd29997cf2..aacb6acd0de 100644 --- a/src/cloudflare/types/zones/custom_nameserver_get_response.py +++ b/src/cloudflare/types/zones/custom_nameserver_get_response.py @@ -4,6 +4,7 @@ from typing_extensions import Literal from ..._models import BaseModel +from ..shared.response_info import ResponseInfo __all__ = ["CustomNameserverGetResponse", "ResultInfo"] @@ -23,9 +24,9 @@ class ResultInfo(BaseModel): class CustomNameserverGetResponse(BaseModel): - errors: List[object] + errors: List[ResponseInfo] - messages: List[object] + messages: List[ResponseInfo] success: Literal[True] """Whether the API call was successful""" diff --git a/src/cloudflare/types/zones/zone_hold.py b/src/cloudflare/types/zones/zone_hold.py new file mode 100644 index 00000000000..d56375bbb94 --- /dev/null +++ b/src/cloudflare/types/zones/zone_hold.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from ..._models import BaseModel + +__all__ = ["ZoneHold"] + + +class ZoneHold(BaseModel): + hold: Optional[bool] = None + + hold_after: Optional[str] = None + + include_subdomains: Optional[str] = None diff --git a/tests/api_resources/logpush/test_ownership.py b/tests/api_resources/logpush/test_ownership.py index aeddb65c62d..4ad4830713f 100644 --- a/tests/api_resources/logpush/test_ownership.py +++ b/tests/api_resources/logpush/test_ownership.py @@ -9,7 +9,10 @@ from cloudflare import Cloudflare, AsyncCloudflare from tests.utils import assert_matches_type -from cloudflare.types.logpush import OwnershipCreateResponse +from cloudflare.types.logpush import ( + OwnershipValidation, + OwnershipCreateResponse, +) base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -86,7 +89,7 @@ def test_method_validate(self, client: Cloudflare) -> None: ownership_challenge="00000000000000000000", account_id="account_id", ) - assert_matches_type(object, ownership, path=["response"]) + assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -96,7 +99,7 @@ def test_method_validate_with_all_params(self, client: Cloudflare) -> None: ownership_challenge="00000000000000000000", account_id="account_id", ) - assert_matches_type(object, ownership, path=["response"]) + assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -110,7 +113,7 @@ def test_raw_response_validate(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" ownership = response.parse() - assert_matches_type(object, ownership, path=["response"]) + assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -124,7 +127,7 @@ def test_streaming_response_validate(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" ownership = response.parse() - assert_matches_type(object, ownership, path=["response"]) + assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) assert cast(Any, response.is_closed) is True @@ -218,7 +221,7 @@ async def test_method_validate(self, async_client: AsyncCloudflare) -> None: ownership_challenge="00000000000000000000", account_id="account_id", ) - assert_matches_type(object, ownership, path=["response"]) + assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -228,7 +231,7 @@ async def test_method_validate_with_all_params(self, async_client: AsyncCloudfla ownership_challenge="00000000000000000000", account_id="account_id", ) - assert_matches_type(object, ownership, path=["response"]) + assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -242,7 +245,7 @@ async def test_raw_response_validate(self, async_client: AsyncCloudflare) -> Non assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" ownership = await response.parse() - assert_matches_type(object, ownership, path=["response"]) + assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -256,7 +259,7 @@ async def test_streaming_response_validate(self, async_client: AsyncCloudflare) assert response.http_request.headers.get("X-Stainless-Lang") == "python" ownership = await response.parse() - assert_matches_type(object, ownership, path=["response"]) + assert_matches_type(Optional[OwnershipValidation], ownership, path=["response"]) assert cast(Any, response.is_closed) is True diff --git a/tests/api_resources/magic_transit/sites/test_acls.py b/tests/api_resources/magic_transit/sites/test_acls.py index 86f9f45e25d..d6c31f71bc6 100644 --- a/tests/api_resources/magic_transit/sites/test_acls.py +++ b/tests/api_resources/magic_transit/sites/test_acls.py @@ -53,7 +53,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: name="PIN Pad - Cash Register", description="Allows local traffic between PIN pads and cash register.", forward_locally=True, - protocols=[{}], + protocols=["tcp"], unidirectional=True, ) assert_matches_type(ACL, acl, path=["response"]) @@ -142,7 +142,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: "subnets": ["192.0.2.1"], }, name="PIN Pad - Cash Register", - protocols=[{}], + protocols=["tcp"], unidirectional=True, ) assert_matches_type(ACL, acl, path=["response"]) @@ -338,7 +338,7 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: "subnets": ["192.0.2.1"], }, name="PIN Pad - Cash Register", - protocols=[{}], + protocols=["tcp"], unidirectional=True, ) assert_matches_type(ACL, acl, path=["response"]) @@ -491,7 +491,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare name="PIN Pad - Cash Register", description="Allows local traffic between PIN pads and cash register.", forward_locally=True, - protocols=[{}], + protocols=["tcp"], unidirectional=True, ) assert_matches_type(ACL, acl, path=["response"]) @@ -580,7 +580,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare "subnets": ["192.0.2.1"], }, name="PIN Pad - Cash Register", - protocols=[{}], + protocols=["tcp"], unidirectional=True, ) assert_matches_type(ACL, acl, path=["response"]) @@ -776,7 +776,7 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) "subnets": ["192.0.2.1"], }, name="PIN Pad - Cash Register", - protocols=[{}], + protocols=["tcp"], unidirectional=True, ) assert_matches_type(ACL, acl, path=["response"]) diff --git a/tests/api_resources/magic_transit/test_cf_interconnects.py b/tests/api_resources/magic_transit/test_cf_interconnects.py index 9c9c8b0c8a3..625b31ae55a 100644 --- a/tests/api_resources/magic_transit/test_cf_interconnects.py +++ b/tests/api_resources/magic_transit/test_cf_interconnects.py @@ -41,9 +41,9 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: gre={"cloudflare_endpoint": "203.0.113.1"}, health_check={ "enabled": True, - "rate": {}, + "rate": "low", "target": {"saved": "203.0.113.1"}, - "type": {}, + "type": "reply", }, interface_address="192.0.2.0/31", mtu=0, @@ -276,9 +276,9 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare gre={"cloudflare_endpoint": "203.0.113.1"}, health_check={ "enabled": True, - "rate": {}, + "rate": "low", "target": {"saved": "203.0.113.1"}, - "type": {}, + "type": "reply", }, interface_address="192.0.2.0/31", mtu=0, diff --git a/tests/api_resources/magic_transit/test_gre_tunnels.py b/tests/api_resources/magic_transit/test_gre_tunnels.py index 6480fab7e0c..a596d06ab27 100644 --- a/tests/api_resources/magic_transit/test_gre_tunnels.py +++ b/tests/api_resources/magic_transit/test_gre_tunnels.py @@ -107,9 +107,9 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: health_check={ "direction": "unidirectional", "enabled": True, - "rate": {}, + "rate": "low", "target": {"saved": "203.0.113.1"}, - "type": {}, + "type": "reply", }, mtu=0, ttl=0, @@ -479,9 +479,9 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare health_check={ "direction": "unidirectional", "enabled": True, - "rate": {}, + "rate": "low", "target": {"saved": "203.0.113.1"}, - "type": {}, + "type": "reply", }, mtu=0, ttl=0, diff --git a/tests/api_resources/magic_transit/test_ipsec_tunnels.py b/tests/api_resources/magic_transit/test_ipsec_tunnels.py index d308822a124..0ceb238e920 100644 --- a/tests/api_resources/magic_transit/test_ipsec_tunnels.py +++ b/tests/api_resources/magic_transit/test_ipsec_tunnels.py @@ -47,9 +47,9 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: health_check={ "direction": "unidirectional", "enabled": True, - "rate": {}, + "rate": "low", "target": {"saved": "203.0.113.1"}, - "type": {}, + "type": "reply", }, psk="O3bwKSjnaoCxDoUxjcq4Rk8ZKkezQUiy", replay_protection=False, @@ -123,9 +123,9 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: health_check={ "direction": "unidirectional", "enabled": True, - "rate": {}, + "rate": "low", "target": {"saved": "203.0.113.1"}, - "type": {}, + "type": "reply", }, psk="O3bwKSjnaoCxDoUxjcq4Rk8ZKkezQUiy", replay_protection=False, @@ -483,9 +483,9 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare health_check={ "direction": "unidirectional", "enabled": True, - "rate": {}, + "rate": "low", "target": {"saved": "203.0.113.1"}, - "type": {}, + "type": "reply", }, psk="O3bwKSjnaoCxDoUxjcq4Rk8ZKkezQUiy", replay_protection=False, @@ -559,9 +559,9 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare health_check={ "direction": "unidirectional", "enabled": True, - "rate": {}, + "rate": "low", "target": {"saved": "203.0.113.1"}, - "type": {}, + "type": "reply", }, psk="O3bwKSjnaoCxDoUxjcq4Rk8ZKkezQUiy", replay_protection=False, diff --git a/tests/api_resources/r2/buckets/test_sippy.py b/tests/api_resources/r2/buckets/test_sippy.py index 8aeff128a35..6e67aca418d 100644 --- a/tests/api_resources/r2/buckets/test_sippy.py +++ b/tests/api_resources/r2/buckets/test_sippy.py @@ -34,7 +34,7 @@ def test_method_update_with_all_params_overload_1(self, client: Cloudflare) -> N account_id="023e105f4ecef8ad9ca31a8372d0c353", destination={ "access_key_id": "accessKeyId", - "provider": {}, + "provider": "r2", "secret_access_key": "secretAccessKey", }, source={ @@ -108,7 +108,7 @@ def test_method_update_with_all_params_overload_2(self, client: Cloudflare) -> N account_id="023e105f4ecef8ad9ca31a8372d0c353", destination={ "access_key_id": "accessKeyId", - "provider": {}, + "provider": "r2", "secret_access_key": "secretAccessKey", }, source={ @@ -309,7 +309,7 @@ async def test_method_update_with_all_params_overload_1(self, async_client: Asyn account_id="023e105f4ecef8ad9ca31a8372d0c353", destination={ "access_key_id": "accessKeyId", - "provider": {}, + "provider": "r2", "secret_access_key": "secretAccessKey", }, source={ @@ -383,7 +383,7 @@ async def test_method_update_with_all_params_overload_2(self, async_client: Asyn account_id="023e105f4ecef8ad9ca31a8372d0c353", destination={ "access_key_id": "accessKeyId", - "provider": {}, + "provider": "r2", "secret_access_key": "secretAccessKey", }, source={ diff --git a/tests/api_resources/rulesets/test_phases.py b/tests/api_resources/rulesets/test_phases.py index b1813463236..cc3f3d4d9a9 100644 --- a/tests/api_resources/rulesets/test_phases.py +++ b/tests/api_resources/rulesets/test_phases.py @@ -52,7 +52,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, "expression": "ip.src ne 1.1.1.1", - "logging": {}, + "logging": {"enabled": True}, "ratelimit": { "characteristics": ["ip.src"], "period": 10, @@ -212,7 +212,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, "expression": "ip.src ne 1.1.1.1", - "logging": {}, + "logging": {"enabled": True}, "ratelimit": { "characteristics": ["ip.src"], "period": 10, diff --git a/tests/api_resources/rulesets/test_rules.py b/tests/api_resources/rulesets/test_rules.py index 1b173266779..5a1acdb5ea9 100644 --- a/tests/api_resources/rulesets/test_rules.py +++ b/tests/api_resources/rulesets/test_rules.py @@ -52,7 +52,7 @@ def test_method_create_with_all_params_overload_1(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -142,7 +142,7 @@ def test_method_create_with_all_params_overload_2(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -232,7 +232,7 @@ def test_method_create_with_all_params_overload_3(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -347,7 +347,7 @@ def test_method_create_with_all_params_overload_4(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -437,7 +437,7 @@ def test_method_create_with_all_params_overload_5(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -527,7 +527,7 @@ def test_method_create_with_all_params_overload_6(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -617,7 +617,7 @@ def test_method_create_with_all_params_overload_7(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -717,7 +717,7 @@ def test_method_create_with_all_params_overload_8(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -818,7 +818,7 @@ def test_method_create_with_all_params_overload_9(self, client: Cloudflare) -> N "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -915,7 +915,7 @@ def test_method_create_with_all_params_overload_10(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1005,7 +1005,7 @@ def test_method_create_with_all_params_overload_11(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1099,7 +1099,7 @@ def test_method_create_with_all_params_overload_12(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1211,7 +1211,7 @@ def test_method_create_with_all_params_overload_13(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1307,7 +1307,7 @@ def test_method_create_with_all_params_overload_14(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1451,7 +1451,7 @@ def test_method_create_with_all_params_overload_15(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1557,7 +1557,7 @@ def test_method_create_with_all_params_overload_16(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1647,7 +1647,7 @@ def test_method_create_with_all_params_overload_17(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1737,7 +1737,7 @@ def test_method_create_with_all_params_overload_18(self, client: Cloudflare) -> "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -1916,7 +1916,7 @@ def test_method_edit_with_all_params_overload_1(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2020,7 +2020,7 @@ def test_method_edit_with_all_params_overload_2(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2124,7 +2124,7 @@ def test_method_edit_with_all_params_overload_3(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2253,7 +2253,7 @@ def test_method_edit_with_all_params_overload_4(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2357,7 +2357,7 @@ def test_method_edit_with_all_params_overload_5(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2461,7 +2461,7 @@ def test_method_edit_with_all_params_overload_6(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2565,7 +2565,7 @@ def test_method_edit_with_all_params_overload_7(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2679,7 +2679,7 @@ def test_method_edit_with_all_params_overload_8(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2794,7 +2794,7 @@ def test_method_edit_with_all_params_overload_9(self, client: Cloudflare) -> Non "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -2905,7 +2905,7 @@ def test_method_edit_with_all_params_overload_10(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3009,7 +3009,7 @@ def test_method_edit_with_all_params_overload_11(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3117,7 +3117,7 @@ def test_method_edit_with_all_params_overload_12(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3243,7 +3243,7 @@ def test_method_edit_with_all_params_overload_13(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3353,7 +3353,7 @@ def test_method_edit_with_all_params_overload_14(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3511,7 +3511,7 @@ def test_method_edit_with_all_params_overload_15(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3631,7 +3631,7 @@ def test_method_edit_with_all_params_overload_16(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3735,7 +3735,7 @@ def test_method_edit_with_all_params_overload_17(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3839,7 +3839,7 @@ def test_method_edit_with_all_params_overload_18(self, client: Cloudflare) -> No "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -3951,7 +3951,7 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4041,7 +4041,7 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4131,7 +4131,7 @@ async def test_method_create_with_all_params_overload_3(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4246,7 +4246,7 @@ async def test_method_create_with_all_params_overload_4(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4336,7 +4336,7 @@ async def test_method_create_with_all_params_overload_5(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4426,7 +4426,7 @@ async def test_method_create_with_all_params_overload_6(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4516,7 +4516,7 @@ async def test_method_create_with_all_params_overload_7(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4616,7 +4616,7 @@ async def test_method_create_with_all_params_overload_8(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4717,7 +4717,7 @@ async def test_method_create_with_all_params_overload_9(self, async_client: Asyn "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4814,7 +4814,7 @@ async def test_method_create_with_all_params_overload_10(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4904,7 +4904,7 @@ async def test_method_create_with_all_params_overload_11(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -4998,7 +4998,7 @@ async def test_method_create_with_all_params_overload_12(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5110,7 +5110,7 @@ async def test_method_create_with_all_params_overload_13(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5206,7 +5206,7 @@ async def test_method_create_with_all_params_overload_14(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5350,7 +5350,7 @@ async def test_method_create_with_all_params_overload_15(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5456,7 +5456,7 @@ async def test_method_create_with_all_params_overload_16(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5546,7 +5546,7 @@ async def test_method_create_with_all_params_overload_17(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5636,7 +5636,7 @@ async def test_method_create_with_all_params_overload_18(self, async_client: Asy "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5815,7 +5815,7 @@ async def test_method_edit_with_all_params_overload_1(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -5919,7 +5919,7 @@ async def test_method_edit_with_all_params_overload_2(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6023,7 +6023,7 @@ async def test_method_edit_with_all_params_overload_3(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6152,7 +6152,7 @@ async def test_method_edit_with_all_params_overload_4(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6256,7 +6256,7 @@ async def test_method_edit_with_all_params_overload_5(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6360,7 +6360,7 @@ async def test_method_edit_with_all_params_overload_6(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6464,7 +6464,7 @@ async def test_method_edit_with_all_params_overload_7(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6578,7 +6578,7 @@ async def test_method_edit_with_all_params_overload_8(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6693,7 +6693,7 @@ async def test_method_edit_with_all_params_overload_9(self, async_client: AsyncC "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6804,7 +6804,7 @@ async def test_method_edit_with_all_params_overload_10(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -6908,7 +6908,7 @@ async def test_method_edit_with_all_params_overload_11(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7016,7 +7016,7 @@ async def test_method_edit_with_all_params_overload_12(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7142,7 +7142,7 @@ async def test_method_edit_with_all_params_overload_13(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7252,7 +7252,7 @@ async def test_method_edit_with_all_params_overload_14(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7410,7 +7410,7 @@ async def test_method_edit_with_all_params_overload_15(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7530,7 +7530,7 @@ async def test_method_edit_with_all_params_overload_16(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7634,7 +7634,7 @@ async def test_method_edit_with_all_params_overload_17(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], @@ -7738,7 +7738,7 @@ async def test_method_edit_with_all_params_overload_18(self, async_client: Async "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, expression="ip.src ne 1.1.1.1", - logging={}, + logging={"enabled": True}, position={"before": "da5e8e506c8e7877fe06cdf4c41add54"}, ratelimit={ "characteristics": ["ip.src"], diff --git a/tests/api_resources/ssl/test_analyze.py b/tests/api_resources/ssl/test_analyze.py index 8e38037b1ad..3a1e6c43744 100644 --- a/tests/api_resources/ssl/test_analyze.py +++ b/tests/api_resources/ssl/test_analyze.py @@ -27,7 +27,7 @@ def test_method_create(self, client: Cloudflare) -> None: def test_method_create_with_all_params(self, client: Cloudflare) -> None: analyze = client.ssl.analyze.create( zone_id="023e105f4ecef8ad9ca31a8372d0c353", - bundle_method={}, + bundle_method="ubiquitous", certificate="-----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", ) assert_matches_type(object, analyze, path=["response"]) @@ -78,7 +78,7 @@ async def test_method_create(self, async_client: AsyncCloudflare) -> None: async def test_method_create_with_all_params(self, async_client: AsyncCloudflare) -> None: analyze = await async_client.ssl.analyze.create( zone_id="023e105f4ecef8ad9ca31a8372d0c353", - bundle_method={}, + bundle_method="ubiquitous", certificate="-----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", ) assert_matches_type(object, analyze, path=["response"]) diff --git a/tests/api_resources/test_custom_certificates.py b/tests/api_resources/test_custom_certificates.py index 7f7a7396190..a46b9f4e412 100644 --- a/tests/api_resources/test_custom_certificates.py +++ b/tests/api_resources/test_custom_certificates.py @@ -36,7 +36,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: zone_id="023e105f4ecef8ad9ca31a8372d0c353", certificate="-----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", private_key="-----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", - bundle_method={}, + bundle_method="ubiquitous", geo_restrictions={"label": "us"}, policy="(country: US) or (region: EU)", type="legacy_custom", @@ -190,7 +190,7 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: custom_certificate = client.custom_certificates.edit( custom_certificate_id="023e105f4ecef8ad9ca31a8372d0c353", zone_id="023e105f4ecef8ad9ca31a8372d0c353", - bundle_method={}, + bundle_method="ubiquitous", certificate="-----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", geo_restrictions={"label": "us"}, policy="(country: US) or (region: EU)", @@ -305,7 +305,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare zone_id="023e105f4ecef8ad9ca31a8372d0c353", certificate="-----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", private_key="-----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", - bundle_method={}, + bundle_method="ubiquitous", geo_restrictions={"label": "us"}, policy="(country: US) or (region: EU)", type="legacy_custom", @@ -459,7 +459,7 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) custom_certificate = await async_client.custom_certificates.edit( custom_certificate_id="023e105f4ecef8ad9ca31a8372d0c353", zone_id="023e105f4ecef8ad9ca31a8372d0c353", - bundle_method={}, + bundle_method="ubiquitous", certificate="-----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", geo_restrictions={"label": "us"}, policy="(country: US) or (region: EU)", diff --git a/tests/api_resources/test_custom_hostnames.py b/tests/api_resources/test_custom_hostnames.py index fd479a20b50..04a6877e5f4 100644 --- a/tests/api_resources/test_custom_hostnames.py +++ b/tests/api_resources/test_custom_hostnames.py @@ -39,7 +39,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: zone_id="023e105f4ecef8ad9ca31a8372d0c353", hostname="app.example.com", ssl={ - "bundle_method": {}, + "bundle_method": "ubiquitous", "certificate_authority": "digicert", "cloudflare_branding": False, "custom_cert_bundle": [ @@ -50,7 +50,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: ], "custom_certificate": "-----BEGIN CERTIFICATE-----\\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\\n-----END CERTIFICATE-----\\n", "custom_key": "-----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", - "method": {}, + "method": "http", "settings": { "ciphers": ["ECDHE-RSA-AES128-GCM-SHA256", "AES128-SHA"], "early_hints": "on", @@ -58,7 +58,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: "min_tls_version": "1.0", "tls_1_3": "on", }, - "type": {}, + "type": "dv", "wildcard": False, }, custom_metadata={"foo": "string"}, @@ -221,7 +221,7 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: custom_origin_server="origin2.example.com", custom_origin_sni="sni.example.com", ssl={ - "bundle_method": {}, + "bundle_method": "ubiquitous", "certificate_authority": "digicert", "cloudflare_branding": False, "custom_cert_bundle": [ @@ -232,7 +232,7 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: ], "custom_certificate": "-----BEGIN CERTIFICATE-----\\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\\n-----END CERTIFICATE-----\\n", "custom_key": "-----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", - "method": {}, + "method": "http", "settings": { "ciphers": ["ECDHE-RSA-AES128-GCM-SHA256", "AES128-SHA"], "early_hints": "on", @@ -240,7 +240,7 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: "min_tls_version": "1.0", "tls_1_3": "on", }, - "type": {}, + "type": "dv", "wildcard": False, }, ) @@ -353,7 +353,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare zone_id="023e105f4ecef8ad9ca31a8372d0c353", hostname="app.example.com", ssl={ - "bundle_method": {}, + "bundle_method": "ubiquitous", "certificate_authority": "digicert", "cloudflare_branding": False, "custom_cert_bundle": [ @@ -364,7 +364,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare ], "custom_certificate": "-----BEGIN CERTIFICATE-----\\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\\n-----END CERTIFICATE-----\\n", "custom_key": "-----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", - "method": {}, + "method": "http", "settings": { "ciphers": ["ECDHE-RSA-AES128-GCM-SHA256", "AES128-SHA"], "early_hints": "on", @@ -372,7 +372,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare "min_tls_version": "1.0", "tls_1_3": "on", }, - "type": {}, + "type": "dv", "wildcard": False, }, custom_metadata={"foo": "string"}, @@ -535,7 +535,7 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) custom_origin_server="origin2.example.com", custom_origin_sni="sni.example.com", ssl={ - "bundle_method": {}, + "bundle_method": "ubiquitous", "certificate_authority": "digicert", "cloudflare_branding": False, "custom_cert_bundle": [ @@ -546,7 +546,7 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) ], "custom_certificate": "-----BEGIN CERTIFICATE-----\\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\\n-----END CERTIFICATE-----\\n", "custom_key": "-----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", - "method": {}, + "method": "http", "settings": { "ciphers": ["ECDHE-RSA-AES128-GCM-SHA256", "AES128-SHA"], "early_hints": "on", @@ -554,7 +554,7 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) "min_tls_version": "1.0", "tls_1_3": "on", }, - "type": {}, + "type": "dv", "wildcard": False, }, ) diff --git a/tests/api_resources/test_keyless_certificates.py b/tests/api_resources/test_keyless_certificates.py index 55f2db18c66..0dae2518fe2 100644 --- a/tests/api_resources/test_keyless_certificates.py +++ b/tests/api_resources/test_keyless_certificates.py @@ -38,7 +38,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: certificate="-----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-----", host="example.com", port=24008, - bundle_method={}, + bundle_method="ubiquitous", name="example.com Keyless SSL", tunnel={ "private_ip": "10.0.0.1", @@ -312,7 +312,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare certificate="-----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-----", host="example.com", port=24008, - bundle_method={}, + bundle_method="ubiquitous", name="example.com Keyless SSL", tunnel={ "private_ip": "10.0.0.1", diff --git a/tests/api_resources/test_origin_post_quantum_encryption.py b/tests/api_resources/test_origin_post_quantum_encryption.py index bfe684e3849..5be62d7556c 100644 --- a/tests/api_resources/test_origin_post_quantum_encryption.py +++ b/tests/api_resources/test_origin_post_quantum_encryption.py @@ -3,12 +3,16 @@ from __future__ import annotations import os -from typing import Any, cast +from typing import Any, Optional, cast import pytest from cloudflare import Cloudflare, AsyncCloudflare from tests.utils import assert_matches_type +from cloudflare.types.origin_post_quantum_encryption import ( + OriginPostQuantumEncryptionGetResponse, + OriginPostQuantumEncryptionUpdateResponse, +) base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -23,7 +27,9 @@ def test_method_update(self, client: Cloudflare) -> None: zone_id="023e105f4ecef8ad9ca31a8372d0c353", value="preferred", ) - assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) + assert_matches_type( + Optional[OriginPostQuantumEncryptionUpdateResponse], origin_post_quantum_encryption, path=["response"] + ) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -36,7 +42,9 @@ def test_raw_response_update(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = response.parse() - assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) + assert_matches_type( + Optional[OriginPostQuantumEncryptionUpdateResponse], origin_post_quantum_encryption, path=["response"] + ) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -49,7 +57,9 @@ def test_streaming_response_update(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = response.parse() - assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) + assert_matches_type( + Optional[OriginPostQuantumEncryptionUpdateResponse], origin_post_quantum_encryption, path=["response"] + ) assert cast(Any, response.is_closed) is True @@ -68,7 +78,9 @@ def test_method_get(self, client: Cloudflare) -> None: origin_post_quantum_encryption = client.origin_post_quantum_encryption.get( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) + assert_matches_type( + Optional[OriginPostQuantumEncryptionGetResponse], origin_post_quantum_encryption, path=["response"] + ) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -80,7 +92,9 @@ def test_raw_response_get(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = response.parse() - assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) + assert_matches_type( + Optional[OriginPostQuantumEncryptionGetResponse], origin_post_quantum_encryption, path=["response"] + ) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -92,7 +106,9 @@ def test_streaming_response_get(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = response.parse() - assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) + assert_matches_type( + Optional[OriginPostQuantumEncryptionGetResponse], origin_post_quantum_encryption, path=["response"] + ) assert cast(Any, response.is_closed) is True @@ -115,7 +131,9 @@ async def test_method_update(self, async_client: AsyncCloudflare) -> None: zone_id="023e105f4ecef8ad9ca31a8372d0c353", value="preferred", ) - assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) + assert_matches_type( + Optional[OriginPostQuantumEncryptionUpdateResponse], origin_post_quantum_encryption, path=["response"] + ) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -128,7 +146,9 @@ async def test_raw_response_update(self, async_client: AsyncCloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = await response.parse() - assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) + assert_matches_type( + Optional[OriginPostQuantumEncryptionUpdateResponse], origin_post_quantum_encryption, path=["response"] + ) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -141,7 +161,9 @@ async def test_streaming_response_update(self, async_client: AsyncCloudflare) -> assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = await response.parse() - assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) + assert_matches_type( + Optional[OriginPostQuantumEncryptionUpdateResponse], origin_post_quantum_encryption, path=["response"] + ) assert cast(Any, response.is_closed) is True @@ -160,7 +182,9 @@ async def test_method_get(self, async_client: AsyncCloudflare) -> None: origin_post_quantum_encryption = await async_client.origin_post_quantum_encryption.get( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) + assert_matches_type( + Optional[OriginPostQuantumEncryptionGetResponse], origin_post_quantum_encryption, path=["response"] + ) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -172,7 +196,9 @@ async def test_raw_response_get(self, async_client: AsyncCloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = await response.parse() - assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) + assert_matches_type( + Optional[OriginPostQuantumEncryptionGetResponse], origin_post_quantum_encryption, path=["response"] + ) @pytest.mark.skip(reason="TODO: investigate broken test") @parametrize @@ -184,7 +210,9 @@ async def test_streaming_response_get(self, async_client: AsyncCloudflare) -> No assert response.http_request.headers.get("X-Stainless-Lang") == "python" origin_post_quantum_encryption = await response.parse() - assert_matches_type(object, origin_post_quantum_encryption, path=["response"]) + assert_matches_type( + Optional[OriginPostQuantumEncryptionGetResponse], origin_post_quantum_encryption, path=["response"] + ) assert cast(Any, response.is_closed) is True diff --git a/tests/api_resources/test_rulesets.py b/tests/api_resources/test_rulesets.py index c38998ae6f8..e6d105de5c9 100644 --- a/tests/api_resources/test_rulesets.py +++ b/tests/api_resources/test_rulesets.py @@ -61,7 +61,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, "expression": "ip.src ne 1.1.1.1", - "logging": {}, + "logging": {"enabled": True}, "ratelimit": { "characteristics": ["ip.src"], "period": 10, @@ -166,7 +166,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, "expression": "ip.src ne 1.1.1.1", - "logging": {}, + "logging": {"enabled": True}, "ratelimit": { "characteristics": ["ip.src"], "period": 10, @@ -465,7 +465,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, "expression": "ip.src ne 1.1.1.1", - "logging": {}, + "logging": {"enabled": True}, "ratelimit": { "characteristics": ["ip.src"], "period": 10, @@ -570,7 +570,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare "username_expression": 'url_decode(http.request.body.form[\\"username\\"][0])', }, "expression": "ip.src ne 1.1.1.1", - "logging": {}, + "logging": {"enabled": True}, "ratelimit": { "characteristics": ["ip.src"], "period": 10, diff --git a/tests/api_resources/workers/scripts/test_content.py b/tests/api_resources/workers/scripts/test_content.py index 6188600c698..9f7629d9227 100644 --- a/tests/api_resources/workers/scripts/test_content.py +++ b/tests/api_resources/workers/scripts/test_content.py @@ -41,7 +41,10 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: content = client.workers.scripts.content.update( script_name="this-is_my_script-01", account_id="023e105f4ecef8ad9ca31a8372d0c353", - metadata={}, + metadata={ + "body_part": "worker.js", + "main_module": "worker.js", + }, cf_worker_body_part="CF-WORKER-BODY-PART", cf_worker_main_module_part="CF-WORKER-MAIN-MODULE-PART", ) @@ -180,7 +183,10 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare content = await async_client.workers.scripts.content.update( script_name="this-is_my_script-01", account_id="023e105f4ecef8ad9ca31a8372d0c353", - metadata={}, + metadata={ + "body_part": "worker.js", + "main_module": "worker.js", + }, cf_worker_body_part="CF-WORKER-BODY-PART", cf_worker_main_module_part="CF-WORKER-MAIN-MODULE-PART", ) diff --git a/tests/api_resources/workers/scripts/test_deployments.py b/tests/api_resources/workers/scripts/test_deployments.py index 41d2acd9aa9..45203082efa 100644 --- a/tests/api_resources/workers/scripts/test_deployments.py +++ b/tests/api_resources/workers/scripts/test_deployments.py @@ -9,7 +9,10 @@ from cloudflare import Cloudflare, AsyncCloudflare from tests.utils import assert_matches_type -from cloudflare.types.workers.scripts import DeploymentGetResponse, DeploymentCreateResponse +from cloudflare.types.workers.scripts import ( + DeploymentGetResponse, + DeploymentCreateResponse, +) base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -45,7 +48,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: } ], force=True, - annotations={}, + annotations={"workers_message": "Deploy bug fix."}, ) assert_matches_type(Optional[DeploymentCreateResponse], deployment, path=["response"]) @@ -197,7 +200,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare } ], force=True, - annotations={}, + annotations={"workers_message": "Deploy bug fix."}, ) assert_matches_type(Optional[DeploymentCreateResponse], deployment, path=["response"]) diff --git a/tests/api_resources/workers_for_platforms/dispatch/namespaces/scripts/test_content.py b/tests/api_resources/workers_for_platforms/dispatch/namespaces/scripts/test_content.py index c5ebe011840..fb5fb964885 100644 --- a/tests/api_resources/workers_for_platforms/dispatch/namespaces/scripts/test_content.py +++ b/tests/api_resources/workers_for_platforms/dispatch/namespaces/scripts/test_content.py @@ -43,7 +43,10 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: script_name="this-is_my_script-01", account_id="023e105f4ecef8ad9ca31a8372d0c353", dispatch_namespace="my-dispatch-namespace", - metadata={}, + metadata={ + "body_part": "worker.js", + "main_module": "worker.js", + }, cf_worker_body_part="CF-WORKER-BODY-PART", cf_worker_main_module_part="CF-WORKER-MAIN-MODULE-PART", ) @@ -208,7 +211,10 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare script_name="this-is_my_script-01", account_id="023e105f4ecef8ad9ca31a8372d0c353", dispatch_namespace="my-dispatch-namespace", - metadata={}, + metadata={ + "body_part": "worker.js", + "main_module": "worker.js", + }, cf_worker_body_part="CF-WORKER-BODY-PART", cf_worker_main_module_part="CF-WORKER-MAIN-MODULE-PART", ) diff --git a/tests/api_resources/zaraz/test_config.py b/tests/api_resources/zaraz/test_config.py index 510848d1158..15a39c60cac 100644 --- a/tests/api_resources/zaraz/test_config.py +++ b/tests/api_resources/zaraz/test_config.py @@ -103,9 +103,23 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: "permissions": ["string"], "settings": {"foo": "string"}, "type": "component", - "actions": {}, + "actions": { + "foo": { + "action_type": "actionType", + "blocking_triggers": ["string"], + "data": {}, + "firing_triggers": ["string"], + } + }, "default_purpose": "defaultPurpose", - "neo_events": [{}], + "neo_events": [ + { + "action_type": "actionType", + "blocking_triggers": ["string"], + "data": {}, + "firing_triggers": ["string"], + } + ], "vendor_name": "vendorName", "vendor_policy_url": "vendorPolicyUrl", } @@ -148,7 +162,11 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: }, consent={ "enabled": True, - "button_text_translations": {}, + "button_text_translations": { + "accept_all": {"foo": "string"}, + "confirm_my_choices": {"foo": "string"}, + "reject_all": {"foo": "string"}, + }, "company_email": "companyEmail", "company_name": "companyName", "company_street_address": "companyStreetAddress", @@ -469,9 +487,23 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare "permissions": ["string"], "settings": {"foo": "string"}, "type": "component", - "actions": {}, + "actions": { + "foo": { + "action_type": "actionType", + "blocking_triggers": ["string"], + "data": {}, + "firing_triggers": ["string"], + } + }, "default_purpose": "defaultPurpose", - "neo_events": [{}], + "neo_events": [ + { + "action_type": "actionType", + "blocking_triggers": ["string"], + "data": {}, + "firing_triggers": ["string"], + } + ], "vendor_name": "vendorName", "vendor_policy_url": "vendorPolicyUrl", } @@ -514,7 +546,11 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare }, consent={ "enabled": True, - "button_text_translations": {}, + "button_text_translations": { + "accept_all": {"foo": "string"}, + "confirm_my_choices": {"foo": "string"}, + "reject_all": {"foo": "string"}, + }, "company_email": "companyEmail", "company_name": "companyName", "company_street_address": "companyStreetAddress", diff --git a/tests/api_resources/zero_trust/access/test_applications.py b/tests/api_resources/zero_trust/access/test_applications.py index 11d8fbb7c9b..7f6ea79f332 100644 --- a/tests/api_resources/zero_trust/access/test_applications.py +++ b/tests/api_resources/zero_trust/access/test_applications.py @@ -233,7 +233,7 @@ def test_method_create_with_all_params_overload_2(self, client: Cloudflare) -> N ], "default_relay_state": "https://example.com", "idp_entity_id": "https://example.cloudflareaccess.com", - "name_id_format": {}, + "name_id_format": "id", "name_id_transform_jsonata": "$substringBefore(email, '@') & '+sandbox@' & $substringAfter(email, '@')", "public_key": "example unique name", "saml_attribute_transform_jsonata": "$ ~>| groups | {'group_name': name} |", @@ -1603,7 +1603,7 @@ def test_method_update_with_all_params_overload_2(self, client: Cloudflare) -> N ], "default_relay_state": "https://example.com", "idp_entity_id": "https://example.cloudflareaccess.com", - "name_id_format": {}, + "name_id_format": "id", "name_id_transform_jsonata": "$substringBefore(email, '@') & '+sandbox@' & $substringAfter(email, '@')", "public_key": "example unique name", "saml_attribute_transform_jsonata": "$ ~>| groups | {'group_name': name} |", @@ -3351,7 +3351,7 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn ], "default_relay_state": "https://example.com", "idp_entity_id": "https://example.cloudflareaccess.com", - "name_id_format": {}, + "name_id_format": "id", "name_id_transform_jsonata": "$substringBefore(email, '@') & '+sandbox@' & $substringAfter(email, '@')", "public_key": "example unique name", "saml_attribute_transform_jsonata": "$ ~>| groups | {'group_name': name} |", @@ -4721,7 +4721,7 @@ async def test_method_update_with_all_params_overload_2(self, async_client: Asyn ], "default_relay_state": "https://example.com", "idp_entity_id": "https://example.cloudflareaccess.com", - "name_id_format": {}, + "name_id_format": "id", "name_id_transform_jsonata": "$substringBefore(email, '@') & '+sandbox@' & $substringAfter(email, '@')", "public_key": "example unique name", "saml_attribute_transform_jsonata": "$ ~>| groups | {'group_name': name} |", diff --git a/tests/api_resources/zero_trust/devices/test_posture.py b/tests/api_resources/zero_trust/devices/test_posture.py index 0a3d257eeef..dfd84e15205 100644 --- a/tests/api_resources/zero_trust/devices/test_posture.py +++ b/tests/api_resources/zero_trust/devices/test_posture.py @@ -39,7 +39,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: description="The rule for admin serial numbers", expiration="1h", input={ - "operating_system": {}, + "operating_system": "windows", "path": "/bin/cat", "exists": True, "sha256": "https://api.us-2.crowdstrike.com", @@ -107,7 +107,7 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: description="The rule for admin serial numbers", expiration="1h", input={ - "operating_system": {}, + "operating_system": "windows", "path": "/bin/cat", "exists": True, "sha256": "https://api.us-2.crowdstrike.com", @@ -322,7 +322,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare description="The rule for admin serial numbers", expiration="1h", input={ - "operating_system": {}, + "operating_system": "windows", "path": "/bin/cat", "exists": True, "sha256": "https://api.us-2.crowdstrike.com", @@ -390,7 +390,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare description="The rule for admin serial numbers", expiration="1h", input={ - "operating_system": {}, + "operating_system": "windows", "path": "/bin/cat", "exists": True, "sha256": "https://api.us-2.crowdstrike.com", diff --git a/tests/api_resources/zero_trust/gateway/test_configurations.py b/tests/api_resources/zero_trust/gateway/test_configurations.py index ed1067a6058..20db0e2f65a 100644 --- a/tests/api_resources/zero_trust/gateway/test_configurations.py +++ b/tests/api_resources/zero_trust/gateway/test_configurations.py @@ -32,7 +32,51 @@ def test_method_update(self, client: Cloudflare) -> None: def test_method_update_with_all_params(self, client: Cloudflare) -> None: configuration = client.zero_trust.gateway.configurations.update( account_id="699d98642c564d2e855e9661899b7252", - settings={}, + settings={ + "activity_log": {"enabled": True}, + "antivirus": { + "enabled_download_phase": False, + "enabled_upload_phase": False, + "fail_closed": False, + "notification_settings": { + "enabled": True, + "msg": "msg", + "support_url": "support_url", + }, + }, + "block_page": { + "background_color": "background_color", + "enabled": True, + "footer_text": "--footer--", + "header_text": "--header--", + "include_context": True, + "logo_path": "https://logos.com/a.png", + "mailto_address": "admin@example.com", + "mailto_subject": "Blocked User Inquiry", + "mode": "customized_block_page", + "name": "Cloudflare", + "suppress_footer": False, + "target_uri": "https://example.com", + }, + "body_scanning": {"inspection_mode": "deep"}, + "browser_isolation": { + "non_identity_enabled": True, + "url_browser_isolation_enabled": True, + }, + "certificate": {"id": "d1b364c5-1311-466e-a194-f0e943e0799f"}, + "custom_certificate": { + "enabled": True, + "id": "d1b364c5-1311-466e-a194-f0e943e0799f", + }, + "extended_email_matching": {"enabled": True}, + "fips": {"tls": True}, + "protocol_detection": {"enabled": True}, + "sandbox": { + "enabled": True, + "fallback_action": "allow", + }, + "tls_decrypt": {"enabled": True}, + }, ) assert_matches_type(Optional[ConfigurationUpdateResponse], configuration, path=["response"]) @@ -78,7 +122,51 @@ def test_method_edit(self, client: Cloudflare) -> None: def test_method_edit_with_all_params(self, client: Cloudflare) -> None: configuration = client.zero_trust.gateway.configurations.edit( account_id="699d98642c564d2e855e9661899b7252", - settings={}, + settings={ + "activity_log": {"enabled": True}, + "antivirus": { + "enabled_download_phase": False, + "enabled_upload_phase": False, + "fail_closed": False, + "notification_settings": { + "enabled": True, + "msg": "msg", + "support_url": "support_url", + }, + }, + "block_page": { + "background_color": "background_color", + "enabled": True, + "footer_text": "--footer--", + "header_text": "--header--", + "include_context": True, + "logo_path": "https://logos.com/a.png", + "mailto_address": "admin@example.com", + "mailto_subject": "Blocked User Inquiry", + "mode": "customized_block_page", + "name": "Cloudflare", + "suppress_footer": False, + "target_uri": "https://example.com", + }, + "body_scanning": {"inspection_mode": "deep"}, + "browser_isolation": { + "non_identity_enabled": True, + "url_browser_isolation_enabled": True, + }, + "certificate": {"id": "d1b364c5-1311-466e-a194-f0e943e0799f"}, + "custom_certificate": { + "enabled": True, + "id": "d1b364c5-1311-466e-a194-f0e943e0799f", + }, + "extended_email_matching": {"enabled": True}, + "fips": {"tls": True}, + "protocol_detection": {"enabled": True}, + "sandbox": { + "enabled": True, + "fallback_action": "allow", + }, + "tls_decrypt": {"enabled": True}, + }, ) assert_matches_type(Optional[ConfigurationEditResponse], configuration, path=["response"]) @@ -166,7 +254,51 @@ async def test_method_update(self, async_client: AsyncCloudflare) -> None: async def test_method_update_with_all_params(self, async_client: AsyncCloudflare) -> None: configuration = await async_client.zero_trust.gateway.configurations.update( account_id="699d98642c564d2e855e9661899b7252", - settings={}, + settings={ + "activity_log": {"enabled": True}, + "antivirus": { + "enabled_download_phase": False, + "enabled_upload_phase": False, + "fail_closed": False, + "notification_settings": { + "enabled": True, + "msg": "msg", + "support_url": "support_url", + }, + }, + "block_page": { + "background_color": "background_color", + "enabled": True, + "footer_text": "--footer--", + "header_text": "--header--", + "include_context": True, + "logo_path": "https://logos.com/a.png", + "mailto_address": "admin@example.com", + "mailto_subject": "Blocked User Inquiry", + "mode": "customized_block_page", + "name": "Cloudflare", + "suppress_footer": False, + "target_uri": "https://example.com", + }, + "body_scanning": {"inspection_mode": "deep"}, + "browser_isolation": { + "non_identity_enabled": True, + "url_browser_isolation_enabled": True, + }, + "certificate": {"id": "d1b364c5-1311-466e-a194-f0e943e0799f"}, + "custom_certificate": { + "enabled": True, + "id": "d1b364c5-1311-466e-a194-f0e943e0799f", + }, + "extended_email_matching": {"enabled": True}, + "fips": {"tls": True}, + "protocol_detection": {"enabled": True}, + "sandbox": { + "enabled": True, + "fallback_action": "allow", + }, + "tls_decrypt": {"enabled": True}, + }, ) assert_matches_type(Optional[ConfigurationUpdateResponse], configuration, path=["response"]) @@ -212,7 +344,51 @@ async def test_method_edit(self, async_client: AsyncCloudflare) -> None: async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) -> None: configuration = await async_client.zero_trust.gateway.configurations.edit( account_id="699d98642c564d2e855e9661899b7252", - settings={}, + settings={ + "activity_log": {"enabled": True}, + "antivirus": { + "enabled_download_phase": False, + "enabled_upload_phase": False, + "fail_closed": False, + "notification_settings": { + "enabled": True, + "msg": "msg", + "support_url": "support_url", + }, + }, + "block_page": { + "background_color": "background_color", + "enabled": True, + "footer_text": "--footer--", + "header_text": "--header--", + "include_context": True, + "logo_path": "https://logos.com/a.png", + "mailto_address": "admin@example.com", + "mailto_subject": "Blocked User Inquiry", + "mode": "customized_block_page", + "name": "Cloudflare", + "suppress_footer": False, + "target_uri": "https://example.com", + }, + "body_scanning": {"inspection_mode": "deep"}, + "browser_isolation": { + "non_identity_enabled": True, + "url_browser_isolation_enabled": True, + }, + "certificate": {"id": "d1b364c5-1311-466e-a194-f0e943e0799f"}, + "custom_certificate": { + "enabled": True, + "id": "d1b364c5-1311-466e-a194-f0e943e0799f", + }, + "extended_email_matching": {"enabled": True}, + "fips": {"tls": True}, + "protocol_detection": {"enabled": True}, + "sandbox": { + "enabled": True, + "fallback_action": "allow", + }, + "tls_decrypt": {"enabled": True}, + }, ) assert_matches_type(Optional[ConfigurationEditResponse], configuration, path=["response"]) diff --git a/tests/api_resources/zero_trust/gateway/test_logging.py b/tests/api_resources/zero_trust/gateway/test_logging.py index 2153e100e15..a157696ec07 100644 --- a/tests/api_resources/zero_trust/gateway/test_logging.py +++ b/tests/api_resources/zero_trust/gateway/test_logging.py @@ -29,7 +29,11 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: logging = client.zero_trust.gateway.logging.update( account_id="699d98642c564d2e855e9661899b7252", redact_pii=True, - settings_by_rule_type={}, + settings_by_rule_type={ + "dns": {}, + "http": {}, + "l4": {}, + }, ) assert_matches_type(Optional[LoggingSetting], logging, path=["response"]) @@ -118,7 +122,11 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare logging = await async_client.zero_trust.gateway.logging.update( account_id="699d98642c564d2e855e9661899b7252", redact_pii=True, - settings_by_rule_type={}, + settings_by_rule_type={ + "dns": {}, + "http": {}, + "l4": {}, + }, ) assert_matches_type(Optional[LoggingSetting], logging, path=["response"]) diff --git a/tests/api_resources/zero_trust/test_identity_providers.py b/tests/api_resources/zero_trust/test_identity_providers.py index eccd3d83ba2..fc69af496c7 100644 --- a/tests/api_resources/zero_trust/test_identity_providers.py +++ b/tests/api_resources/zero_trust/test_identity_providers.py @@ -28,7 +28,7 @@ def test_method_create_overload_1(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -48,9 +48,14 @@ def test_method_create_with_all_params_overload_1(self, client: Cloudflare) -> N "support_groups": True, }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -60,7 +65,7 @@ def test_raw_response_create_overload_1(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -75,7 +80,7 @@ def test_streaming_response_create_overload_1(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -93,7 +98,7 @@ def test_path_params_create_overload_1(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -101,7 +106,7 @@ def test_path_params_create_overload_1(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -111,7 +116,7 @@ def test_method_create_overload_2(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -129,9 +134,14 @@ def test_method_create_with_all_params_overload_2(self, client: Cloudflare) -> N "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -141,7 +151,7 @@ def test_raw_response_create_overload_2(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -156,7 +166,7 @@ def test_streaming_response_create_overload_2(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -174,7 +184,7 @@ def test_path_params_create_overload_2(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -182,7 +192,7 @@ def test_path_params_create_overload_2(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -192,7 +202,7 @@ def test_method_create_overload_3(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -206,9 +216,14 @@ def test_method_create_with_all_params_overload_3(self, client: Cloudflare) -> N "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -218,7 +233,7 @@ def test_raw_response_create_overload_3(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -233,7 +248,7 @@ def test_streaming_response_create_overload_3(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -251,7 +266,7 @@ def test_path_params_create_overload_3(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -259,7 +274,7 @@ def test_path_params_create_overload_3(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -269,7 +284,7 @@ def test_method_create_overload_4(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -283,9 +298,14 @@ def test_method_create_with_all_params_overload_4(self, client: Cloudflare) -> N "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -295,7 +315,7 @@ def test_raw_response_create_overload_4(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -310,7 +330,7 @@ def test_streaming_response_create_overload_4(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -328,7 +348,7 @@ def test_path_params_create_overload_4(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -336,7 +356,7 @@ def test_path_params_create_overload_4(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -346,7 +366,7 @@ def test_method_create_overload_5(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -362,9 +382,14 @@ def test_method_create_with_all_params_overload_5(self, client: Cloudflare) -> N "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -374,7 +399,7 @@ def test_raw_response_create_overload_5(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -389,7 +414,7 @@ def test_streaming_response_create_overload_5(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -407,7 +432,7 @@ def test_path_params_create_overload_5(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -415,7 +440,7 @@ def test_path_params_create_overload_5(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -425,7 +450,7 @@ def test_method_create_overload_6(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -442,9 +467,14 @@ def test_method_create_with_all_params_overload_6(self, client: Cloudflare) -> N "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -454,7 +484,7 @@ def test_raw_response_create_overload_6(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -469,7 +499,7 @@ def test_streaming_response_create_overload_6(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -487,7 +517,7 @@ def test_path_params_create_overload_6(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -495,7 +525,7 @@ def test_path_params_create_overload_6(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -505,7 +535,7 @@ def test_method_create_overload_7(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -519,9 +549,14 @@ def test_method_create_with_all_params_overload_7(self, client: Cloudflare) -> N "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -531,7 +566,7 @@ def test_raw_response_create_overload_7(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -546,7 +581,7 @@ def test_streaming_response_create_overload_7(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -564,7 +599,7 @@ def test_path_params_create_overload_7(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -572,7 +607,7 @@ def test_path_params_create_overload_7(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -582,7 +617,7 @@ def test_method_create_overload_8(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -603,9 +638,14 @@ def test_method_create_with_all_params_overload_8(self, client: Cloudflare) -> N "token_url": "https://accounts.google.com/o/oauth2/token", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -615,7 +655,7 @@ def test_raw_response_create_overload_8(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -630,7 +670,7 @@ def test_streaming_response_create_overload_8(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -648,7 +688,7 @@ def test_path_params_create_overload_8(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -656,7 +696,7 @@ def test_path_params_create_overload_8(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -666,7 +706,7 @@ def test_method_create_overload_9(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -684,9 +724,14 @@ def test_method_create_with_all_params_overload_9(self, client: Cloudflare) -> N "okta_account": "https://dev-abc123.oktapreview.com", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -696,7 +741,7 @@ def test_raw_response_create_overload_9(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -711,7 +756,7 @@ def test_streaming_response_create_overload_9(self, client: Cloudflare) -> None: with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -729,7 +774,7 @@ def test_path_params_create_overload_9(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -737,7 +782,7 @@ def test_path_params_create_overload_9(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -747,7 +792,7 @@ def test_method_create_overload_10(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -764,9 +809,14 @@ def test_method_create_with_all_params_overload_10(self, client: Cloudflare) -> "onelogin_account": "https://mycompany.onelogin.com", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -776,7 +826,7 @@ def test_raw_response_create_overload_10(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -791,7 +841,7 @@ def test_streaming_response_create_overload_10(self, client: Cloudflare) -> None with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -809,7 +859,7 @@ def test_path_params_create_overload_10(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -817,7 +867,7 @@ def test_path_params_create_overload_10(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -827,7 +877,7 @@ def test_method_create_overload_11(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -844,9 +894,14 @@ def test_method_create_with_all_params_overload_11(self, client: Cloudflare) -> "ping_env_id": "342b5660-0c32-4936-a5a4-ce21fae57b0a", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -856,7 +911,7 @@ def test_raw_response_create_overload_11(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -871,7 +926,7 @@ def test_streaming_response_create_overload_11(self, client: Cloudflare) -> None with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -889,7 +944,7 @@ def test_path_params_create_overload_11(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -897,7 +952,7 @@ def test_path_params_create_overload_11(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -907,7 +962,7 @@ def test_method_create_overload_12(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -931,9 +986,14 @@ def test_method_create_with_all_params_overload_12(self, client: Cloudflare) -> "sso_target_url": "https://edgeaccess.org/idp/saml/login", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -943,7 +1003,7 @@ def test_raw_response_create_overload_12(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -958,7 +1018,7 @@ def test_streaming_response_create_overload_12(self, client: Cloudflare) -> None with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -976,7 +1036,7 @@ def test_path_params_create_overload_12(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -984,7 +1044,7 @@ def test_path_params_create_overload_12(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -994,7 +1054,7 @@ def test_method_create_overload_13(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1008,9 +1068,14 @@ def test_method_create_with_all_params_overload_13(self, client: Cloudflare) -> "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1020,7 +1085,7 @@ def test_raw_response_create_overload_13(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1035,7 +1100,7 @@ def test_streaming_response_create_overload_13(self, client: Cloudflare) -> None with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -1053,7 +1118,7 @@ def test_path_params_create_overload_13(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -1061,7 +1126,7 @@ def test_path_params_create_overload_13(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1071,7 +1136,7 @@ def test_method_create_overload_14(self, client: Cloudflare) -> None: identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1082,9 +1147,14 @@ def test_method_create_with_all_params_overload_14(self, client: Cloudflare) -> identity_provider = client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1094,7 +1164,7 @@ def test_raw_response_create_overload_14(self, client: Cloudflare) -> None: response = client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1109,7 +1179,7 @@ def test_streaming_response_create_overload_14(self, client: Cloudflare) -> None with client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -1127,7 +1197,7 @@ def test_path_params_create_overload_14(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -1135,7 +1205,7 @@ def test_path_params_create_overload_14(self, client: Cloudflare) -> None: client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1146,7 +1216,7 @@ def test_method_update_overload_1(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1167,9 +1237,14 @@ def test_method_update_with_all_params_overload_1(self, client: Cloudflare) -> N "support_groups": True, }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1180,7 +1255,7 @@ def test_raw_response_update_overload_1(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1196,7 +1271,7 @@ def test_streaming_response_update_overload_1(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -1215,7 +1290,7 @@ def test_path_params_update_overload_1(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1224,7 +1299,7 @@ def test_path_params_update_overload_1(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -1233,7 +1308,7 @@ def test_path_params_update_overload_1(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1244,7 +1319,7 @@ def test_method_update_overload_2(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1263,9 +1338,14 @@ def test_method_update_with_all_params_overload_2(self, client: Cloudflare) -> N "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1276,7 +1356,7 @@ def test_raw_response_update_overload_2(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1292,7 +1372,7 @@ def test_streaming_response_update_overload_2(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -1311,7 +1391,7 @@ def test_path_params_update_overload_2(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1320,7 +1400,7 @@ def test_path_params_update_overload_2(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -1329,7 +1409,7 @@ def test_path_params_update_overload_2(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1340,7 +1420,7 @@ def test_method_update_overload_3(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1355,9 +1435,14 @@ def test_method_update_with_all_params_overload_3(self, client: Cloudflare) -> N "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1368,7 +1453,7 @@ def test_raw_response_update_overload_3(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1384,7 +1469,7 @@ def test_streaming_response_update_overload_3(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -1403,7 +1488,7 @@ def test_path_params_update_overload_3(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1412,7 +1497,7 @@ def test_path_params_update_overload_3(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -1421,7 +1506,7 @@ def test_path_params_update_overload_3(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1432,7 +1517,7 @@ def test_method_update_overload_4(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1447,9 +1532,14 @@ def test_method_update_with_all_params_overload_4(self, client: Cloudflare) -> N "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1460,7 +1550,7 @@ def test_raw_response_update_overload_4(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1476,7 +1566,7 @@ def test_streaming_response_update_overload_4(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -1495,7 +1585,7 @@ def test_path_params_update_overload_4(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1504,7 +1594,7 @@ def test_path_params_update_overload_4(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -1513,7 +1603,7 @@ def test_path_params_update_overload_4(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1524,7 +1614,7 @@ def test_method_update_overload_5(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1541,9 +1631,14 @@ def test_method_update_with_all_params_overload_5(self, client: Cloudflare) -> N "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1554,7 +1649,7 @@ def test_raw_response_update_overload_5(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1570,7 +1665,7 @@ def test_streaming_response_update_overload_5(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -1589,7 +1684,7 @@ def test_path_params_update_overload_5(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1598,7 +1693,7 @@ def test_path_params_update_overload_5(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -1607,7 +1702,7 @@ def test_path_params_update_overload_5(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1618,7 +1713,7 @@ def test_method_update_overload_6(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1636,9 +1731,14 @@ def test_method_update_with_all_params_overload_6(self, client: Cloudflare) -> N "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1649,7 +1749,7 @@ def test_raw_response_update_overload_6(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1665,7 +1765,7 @@ def test_streaming_response_update_overload_6(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -1684,7 +1784,7 @@ def test_path_params_update_overload_6(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1693,7 +1793,7 @@ def test_path_params_update_overload_6(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -1702,7 +1802,7 @@ def test_path_params_update_overload_6(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1713,7 +1813,7 @@ def test_method_update_overload_7(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1728,9 +1828,14 @@ def test_method_update_with_all_params_overload_7(self, client: Cloudflare) -> N "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1741,7 +1846,7 @@ def test_raw_response_update_overload_7(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1757,7 +1862,7 @@ def test_streaming_response_update_overload_7(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -1776,7 +1881,7 @@ def test_path_params_update_overload_7(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1785,7 +1890,7 @@ def test_path_params_update_overload_7(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -1794,7 +1899,7 @@ def test_path_params_update_overload_7(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1805,7 +1910,7 @@ def test_method_update_overload_8(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1827,9 +1932,14 @@ def test_method_update_with_all_params_overload_8(self, client: Cloudflare) -> N "token_url": "https://accounts.google.com/o/oauth2/token", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1840,7 +1950,7 @@ def test_raw_response_update_overload_8(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1856,7 +1966,7 @@ def test_streaming_response_update_overload_8(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -1875,7 +1985,7 @@ def test_path_params_update_overload_8(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1884,7 +1994,7 @@ def test_path_params_update_overload_8(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -1893,7 +2003,7 @@ def test_path_params_update_overload_8(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1904,7 +2014,7 @@ def test_method_update_overload_9(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1923,9 +2033,14 @@ def test_method_update_with_all_params_overload_9(self, client: Cloudflare) -> N "okta_account": "https://dev-abc123.oktapreview.com", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -1936,7 +2051,7 @@ def test_raw_response_update_overload_9(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1952,7 +2067,7 @@ def test_streaming_response_update_overload_9(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -1971,7 +2086,7 @@ def test_path_params_update_overload_9(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -1980,7 +2095,7 @@ def test_path_params_update_overload_9(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -1989,7 +2104,7 @@ def test_path_params_update_overload_9(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2000,7 +2115,7 @@ def test_method_update_overload_10(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2018,9 +2133,14 @@ def test_method_update_with_all_params_overload_10(self, client: Cloudflare) -> "onelogin_account": "https://mycompany.onelogin.com", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2031,7 +2151,7 @@ def test_raw_response_update_overload_10(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2047,7 +2167,7 @@ def test_streaming_response_update_overload_10(self, client: Cloudflare) -> None identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -2066,7 +2186,7 @@ def test_path_params_update_overload_10(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2075,7 +2195,7 @@ def test_path_params_update_overload_10(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -2084,7 +2204,7 @@ def test_path_params_update_overload_10(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2095,7 +2215,7 @@ def test_method_update_overload_11(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2113,9 +2233,14 @@ def test_method_update_with_all_params_overload_11(self, client: Cloudflare) -> "ping_env_id": "342b5660-0c32-4936-a5a4-ce21fae57b0a", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2126,7 +2251,7 @@ def test_raw_response_update_overload_11(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2142,7 +2267,7 @@ def test_streaming_response_update_overload_11(self, client: Cloudflare) -> None identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -2161,7 +2286,7 @@ def test_path_params_update_overload_11(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2170,7 +2295,7 @@ def test_path_params_update_overload_11(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -2179,7 +2304,7 @@ def test_path_params_update_overload_11(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2190,7 +2315,7 @@ def test_method_update_overload_12(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2215,9 +2340,14 @@ def test_method_update_with_all_params_overload_12(self, client: Cloudflare) -> "sso_target_url": "https://edgeaccess.org/idp/saml/login", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2228,7 +2358,7 @@ def test_raw_response_update_overload_12(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2244,7 +2374,7 @@ def test_streaming_response_update_overload_12(self, client: Cloudflare) -> None identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -2263,7 +2393,7 @@ def test_path_params_update_overload_12(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2272,7 +2402,7 @@ def test_path_params_update_overload_12(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -2281,7 +2411,7 @@ def test_path_params_update_overload_12(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2292,7 +2422,7 @@ def test_method_update_overload_13(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2307,9 +2437,14 @@ def test_method_update_with_all_params_overload_13(self, client: Cloudflare) -> "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2320,7 +2455,7 @@ def test_raw_response_update_overload_13(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2336,7 +2471,7 @@ def test_streaming_response_update_overload_13(self, client: Cloudflare) -> None identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -2355,7 +2490,7 @@ def test_path_params_update_overload_13(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2364,7 +2499,7 @@ def test_path_params_update_overload_13(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -2373,7 +2508,7 @@ def test_path_params_update_overload_13(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2384,7 +2519,7 @@ def test_method_update_overload_14(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2396,9 +2531,14 @@ def test_method_update_with_all_params_overload_14(self, client: Cloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2409,7 +2549,7 @@ def test_raw_response_update_overload_14(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2425,7 +2565,7 @@ def test_streaming_response_update_overload_14(self, client: Cloudflare) -> None identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -2444,7 +2584,7 @@ def test_path_params_update_overload_14(self, client: Cloudflare) -> None: identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2453,7 +2593,7 @@ def test_path_params_update_overload_14(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -2462,7 +2602,7 @@ def test_path_params_update_overload_14(self, client: Cloudflare) -> None: identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2666,7 +2806,7 @@ async def test_method_create_overload_1(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2686,9 +2826,14 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn "support_groups": True, }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2698,7 +2843,7 @@ async def test_raw_response_create_overload_1(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2713,7 +2858,7 @@ async def test_streaming_response_create_overload_1(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -2731,7 +2876,7 @@ async def test_path_params_create_overload_1(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -2739,7 +2884,7 @@ async def test_path_params_create_overload_1(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2749,7 +2894,7 @@ async def test_method_create_overload_2(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2767,9 +2912,14 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2779,7 +2929,7 @@ async def test_raw_response_create_overload_2(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2794,7 +2944,7 @@ async def test_streaming_response_create_overload_2(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -2812,7 +2962,7 @@ async def test_path_params_create_overload_2(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -2820,7 +2970,7 @@ async def test_path_params_create_overload_2(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2830,7 +2980,7 @@ async def test_method_create_overload_3(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2844,9 +2994,14 @@ async def test_method_create_with_all_params_overload_3(self, async_client: Asyn "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2856,7 +3011,7 @@ async def test_raw_response_create_overload_3(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2871,7 +3026,7 @@ async def test_streaming_response_create_overload_3(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -2889,7 +3044,7 @@ async def test_path_params_create_overload_3(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -2897,7 +3052,7 @@ async def test_path_params_create_overload_3(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2907,7 +3062,7 @@ async def test_method_create_overload_4(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2921,9 +3076,14 @@ async def test_method_create_with_all_params_overload_4(self, async_client: Asyn "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -2933,7 +3093,7 @@ async def test_raw_response_create_overload_4(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2948,7 +3108,7 @@ async def test_streaming_response_create_overload_4(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -2966,7 +3126,7 @@ async def test_path_params_create_overload_4(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -2974,7 +3134,7 @@ async def test_path_params_create_overload_4(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -2984,7 +3144,7 @@ async def test_method_create_overload_5(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3000,9 +3160,14 @@ async def test_method_create_with_all_params_overload_5(self, async_client: Asyn "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3012,7 +3177,7 @@ async def test_raw_response_create_overload_5(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3027,7 +3192,7 @@ async def test_streaming_response_create_overload_5(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -3045,7 +3210,7 @@ async def test_path_params_create_overload_5(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -3053,7 +3218,7 @@ async def test_path_params_create_overload_5(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3063,7 +3228,7 @@ async def test_method_create_overload_6(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3080,9 +3245,14 @@ async def test_method_create_with_all_params_overload_6(self, async_client: Asyn "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3092,7 +3262,7 @@ async def test_raw_response_create_overload_6(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3107,7 +3277,7 @@ async def test_streaming_response_create_overload_6(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -3125,7 +3295,7 @@ async def test_path_params_create_overload_6(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -3133,7 +3303,7 @@ async def test_path_params_create_overload_6(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3143,7 +3313,7 @@ async def test_method_create_overload_7(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3157,9 +3327,14 @@ async def test_method_create_with_all_params_overload_7(self, async_client: Asyn "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3169,7 +3344,7 @@ async def test_raw_response_create_overload_7(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3184,7 +3359,7 @@ async def test_streaming_response_create_overload_7(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -3202,7 +3377,7 @@ async def test_path_params_create_overload_7(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -3210,7 +3385,7 @@ async def test_path_params_create_overload_7(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3220,7 +3395,7 @@ async def test_method_create_overload_8(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3241,9 +3416,14 @@ async def test_method_create_with_all_params_overload_8(self, async_client: Asyn "token_url": "https://accounts.google.com/o/oauth2/token", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3253,7 +3433,7 @@ async def test_raw_response_create_overload_8(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3268,7 +3448,7 @@ async def test_streaming_response_create_overload_8(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -3286,7 +3466,7 @@ async def test_path_params_create_overload_8(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -3294,7 +3474,7 @@ async def test_path_params_create_overload_8(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3304,7 +3484,7 @@ async def test_method_create_overload_9(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3322,9 +3502,14 @@ async def test_method_create_with_all_params_overload_9(self, async_client: Asyn "okta_account": "https://dev-abc123.oktapreview.com", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3334,7 +3519,7 @@ async def test_raw_response_create_overload_9(self, async_client: AsyncCloudflar response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3349,7 +3534,7 @@ async def test_streaming_response_create_overload_9(self, async_client: AsyncClo async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -3367,7 +3552,7 @@ async def test_path_params_create_overload_9(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -3375,7 +3560,7 @@ async def test_path_params_create_overload_9(self, async_client: AsyncCloudflare await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3385,7 +3570,7 @@ async def test_method_create_overload_10(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3402,9 +3587,14 @@ async def test_method_create_with_all_params_overload_10(self, async_client: Asy "onelogin_account": "https://mycompany.onelogin.com", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3414,7 +3604,7 @@ async def test_raw_response_create_overload_10(self, async_client: AsyncCloudfla response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3429,7 +3619,7 @@ async def test_streaming_response_create_overload_10(self, async_client: AsyncCl async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -3447,7 +3637,7 @@ async def test_path_params_create_overload_10(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -3455,7 +3645,7 @@ async def test_path_params_create_overload_10(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3465,7 +3655,7 @@ async def test_method_create_overload_11(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3482,9 +3672,14 @@ async def test_method_create_with_all_params_overload_11(self, async_client: Asy "ping_env_id": "342b5660-0c32-4936-a5a4-ce21fae57b0a", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3494,7 +3689,7 @@ async def test_raw_response_create_overload_11(self, async_client: AsyncCloudfla response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3509,7 +3704,7 @@ async def test_streaming_response_create_overload_11(self, async_client: AsyncCl async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -3527,7 +3722,7 @@ async def test_path_params_create_overload_11(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -3535,7 +3730,7 @@ async def test_path_params_create_overload_11(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3545,7 +3740,7 @@ async def test_method_create_overload_12(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3569,9 +3764,14 @@ async def test_method_create_with_all_params_overload_12(self, async_client: Asy "sso_target_url": "https://edgeaccess.org/idp/saml/login", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3581,7 +3781,7 @@ async def test_raw_response_create_overload_12(self, async_client: AsyncCloudfla response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3596,7 +3796,7 @@ async def test_streaming_response_create_overload_12(self, async_client: AsyncCl async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -3614,7 +3814,7 @@ async def test_path_params_create_overload_12(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -3622,7 +3822,7 @@ async def test_path_params_create_overload_12(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3632,7 +3832,7 @@ async def test_method_create_overload_13(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3646,9 +3846,14 @@ async def test_method_create_with_all_params_overload_13(self, async_client: Asy "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3658,7 +3863,7 @@ async def test_raw_response_create_overload_13(self, async_client: AsyncCloudfla response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3673,7 +3878,7 @@ async def test_streaming_response_create_overload_13(self, async_client: AsyncCl async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -3691,7 +3896,7 @@ async def test_path_params_create_overload_13(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -3699,7 +3904,7 @@ async def test_path_params_create_overload_13(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3709,7 +3914,7 @@ async def test_method_create_overload_14(self, async_client: AsyncCloudflare) -> identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3720,9 +3925,14 @@ async def test_method_create_with_all_params_overload_14(self, async_client: Asy identity_provider = await async_client.zero_trust.identity_providers.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3732,7 +3942,7 @@ async def test_raw_response_create_overload_14(self, async_client: AsyncCloudfla response = await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3747,7 +3957,7 @@ async def test_streaming_response_create_overload_14(self, async_client: AsyncCl async with async_client.zero_trust.identity_providers.with_streaming_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -3765,7 +3975,7 @@ async def test_path_params_create_overload_14(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -3773,7 +3983,7 @@ async def test_path_params_create_overload_14(self, async_client: AsyncCloudflar await async_client.zero_trust.identity_providers.with_raw_response.create( config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3784,7 +3994,7 @@ async def test_method_update_overload_1(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3805,9 +4015,14 @@ async def test_method_update_with_all_params_overload_1(self, async_client: Asyn "support_groups": True, }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3818,7 +4033,7 @@ async def test_raw_response_update_overload_1(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3834,7 +4049,7 @@ async def test_streaming_response_update_overload_1(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -3853,7 +4068,7 @@ async def test_path_params_update_overload_1(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3862,7 +4077,7 @@ async def test_path_params_update_overload_1(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -3871,7 +4086,7 @@ async def test_path_params_update_overload_1(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3882,7 +4097,7 @@ async def test_method_update_overload_2(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3901,9 +4116,14 @@ async def test_method_update_with_all_params_overload_2(self, async_client: Asyn "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3914,7 +4134,7 @@ async def test_raw_response_update_overload_2(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3930,7 +4150,7 @@ async def test_streaming_response_update_overload_2(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -3949,7 +4169,7 @@ async def test_path_params_update_overload_2(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3958,7 +4178,7 @@ async def test_path_params_update_overload_2(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -3967,7 +4187,7 @@ async def test_path_params_update_overload_2(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -3978,7 +4198,7 @@ async def test_method_update_overload_3(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -3993,9 +4213,14 @@ async def test_method_update_with_all_params_overload_3(self, async_client: Asyn "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4006,7 +4231,7 @@ async def test_raw_response_update_overload_3(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4022,7 +4247,7 @@ async def test_streaming_response_update_overload_3(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -4041,7 +4266,7 @@ async def test_path_params_update_overload_3(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4050,7 +4275,7 @@ async def test_path_params_update_overload_3(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -4059,7 +4284,7 @@ async def test_path_params_update_overload_3(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4070,7 +4295,7 @@ async def test_method_update_overload_4(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4085,9 +4310,14 @@ async def test_method_update_with_all_params_overload_4(self, async_client: Asyn "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4098,7 +4328,7 @@ async def test_raw_response_update_overload_4(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4114,7 +4344,7 @@ async def test_streaming_response_update_overload_4(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -4133,7 +4363,7 @@ async def test_path_params_update_overload_4(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4142,7 +4372,7 @@ async def test_path_params_update_overload_4(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -4151,7 +4381,7 @@ async def test_path_params_update_overload_4(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4162,7 +4392,7 @@ async def test_method_update_overload_5(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4179,9 +4409,14 @@ async def test_method_update_with_all_params_overload_5(self, async_client: Asyn "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4192,7 +4427,7 @@ async def test_raw_response_update_overload_5(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4208,7 +4443,7 @@ async def test_streaming_response_update_overload_5(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -4227,7 +4462,7 @@ async def test_path_params_update_overload_5(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4236,7 +4471,7 @@ async def test_path_params_update_overload_5(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -4245,7 +4480,7 @@ async def test_path_params_update_overload_5(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4256,7 +4491,7 @@ async def test_method_update_overload_6(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4274,9 +4509,14 @@ async def test_method_update_with_all_params_overload_6(self, async_client: Asyn "email_claim_name": "custom_claim_name", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4287,7 +4527,7 @@ async def test_raw_response_update_overload_6(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4303,7 +4543,7 @@ async def test_streaming_response_update_overload_6(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -4322,7 +4562,7 @@ async def test_path_params_update_overload_6(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4331,7 +4571,7 @@ async def test_path_params_update_overload_6(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -4340,7 +4580,7 @@ async def test_path_params_update_overload_6(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4351,7 +4591,7 @@ async def test_method_update_overload_7(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4366,9 +4606,14 @@ async def test_method_update_with_all_params_overload_7(self, async_client: Asyn "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4379,7 +4624,7 @@ async def test_raw_response_update_overload_7(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4395,7 +4640,7 @@ async def test_streaming_response_update_overload_7(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -4414,7 +4659,7 @@ async def test_path_params_update_overload_7(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4423,7 +4668,7 @@ async def test_path_params_update_overload_7(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -4432,7 +4677,7 @@ async def test_path_params_update_overload_7(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4443,7 +4688,7 @@ async def test_method_update_overload_8(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4465,9 +4710,14 @@ async def test_method_update_with_all_params_overload_8(self, async_client: Asyn "token_url": "https://accounts.google.com/o/oauth2/token", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4478,7 +4728,7 @@ async def test_raw_response_update_overload_8(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4494,7 +4744,7 @@ async def test_streaming_response_update_overload_8(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -4513,7 +4763,7 @@ async def test_path_params_update_overload_8(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4522,7 +4772,7 @@ async def test_path_params_update_overload_8(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -4531,7 +4781,7 @@ async def test_path_params_update_overload_8(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4542,7 +4792,7 @@ async def test_method_update_overload_9(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4561,9 +4811,14 @@ async def test_method_update_with_all_params_overload_9(self, async_client: Asyn "okta_account": "https://dev-abc123.oktapreview.com", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4574,7 +4829,7 @@ async def test_raw_response_update_overload_9(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4590,7 +4845,7 @@ async def test_streaming_response_update_overload_9(self, async_client: AsyncClo identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -4609,7 +4864,7 @@ async def test_path_params_update_overload_9(self, async_client: AsyncCloudflare identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4618,7 +4873,7 @@ async def test_path_params_update_overload_9(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -4627,7 +4882,7 @@ async def test_path_params_update_overload_9(self, async_client: AsyncCloudflare identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4638,7 +4893,7 @@ async def test_method_update_overload_10(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4656,9 +4911,14 @@ async def test_method_update_with_all_params_overload_10(self, async_client: Asy "onelogin_account": "https://mycompany.onelogin.com", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4669,7 +4929,7 @@ async def test_raw_response_update_overload_10(self, async_client: AsyncCloudfla identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4685,7 +4945,7 @@ async def test_streaming_response_update_overload_10(self, async_client: AsyncCl identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -4704,7 +4964,7 @@ async def test_path_params_update_overload_10(self, async_client: AsyncCloudflar identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4713,7 +4973,7 @@ async def test_path_params_update_overload_10(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -4722,7 +4982,7 @@ async def test_path_params_update_overload_10(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4733,7 +4993,7 @@ async def test_method_update_overload_11(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4751,9 +5011,14 @@ async def test_method_update_with_all_params_overload_11(self, async_client: Asy "ping_env_id": "342b5660-0c32-4936-a5a4-ce21fae57b0a", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4764,7 +5029,7 @@ async def test_raw_response_update_overload_11(self, async_client: AsyncCloudfla identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4780,7 +5045,7 @@ async def test_streaming_response_update_overload_11(self, async_client: AsyncCl identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -4799,7 +5064,7 @@ async def test_path_params_update_overload_11(self, async_client: AsyncCloudflar identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4808,7 +5073,7 @@ async def test_path_params_update_overload_11(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -4817,7 +5082,7 @@ async def test_path_params_update_overload_11(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4828,7 +5093,7 @@ async def test_method_update_overload_12(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4853,9 +5118,14 @@ async def test_method_update_with_all_params_overload_12(self, async_client: Asy "sso_target_url": "https://edgeaccess.org/idp/saml/login", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4866,7 +5136,7 @@ async def test_raw_response_update_overload_12(self, async_client: AsyncCloudfla identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4882,7 +5152,7 @@ async def test_streaming_response_update_overload_12(self, async_client: AsyncCl identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -4901,7 +5171,7 @@ async def test_path_params_update_overload_12(self, async_client: AsyncCloudflar identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4910,7 +5180,7 @@ async def test_path_params_update_overload_12(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -4919,7 +5189,7 @@ async def test_path_params_update_overload_12(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4930,7 +5200,7 @@ async def test_method_update_overload_13(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4945,9 +5215,14 @@ async def test_method_update_with_all_params_overload_13(self, async_client: Asy "client_secret": "", }, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -4958,7 +5233,7 @@ async def test_raw_response_update_overload_13(self, async_client: AsyncCloudfla identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -4974,7 +5249,7 @@ async def test_streaming_response_update_overload_13(self, async_client: AsyncCl identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -4993,7 +5268,7 @@ async def test_path_params_update_overload_13(self, async_client: AsyncCloudflar identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -5002,7 +5277,7 @@ async def test_path_params_update_overload_13(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -5011,7 +5286,7 @@ async def test_path_params_update_overload_13(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -5022,7 +5297,7 @@ async def test_method_update_overload_14(self, async_client: AsyncCloudflare) -> identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -5034,9 +5309,14 @@ async def test_method_update_with_all_params_overload_14(self, async_client: Asy identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", - scim_config={}, + scim_config={ + "enabled": True, + "identity_update_behavior": "automatic", + "seat_deprovision": True, + "user_deprovision": True, + }, ) assert_matches_type(Optional[IdentityProvider], identity_provider, path=["response"]) @@ -5047,7 +5327,7 @@ async def test_raw_response_update_overload_14(self, async_client: AsyncCloudfla identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -5063,7 +5343,7 @@ async def test_streaming_response_update_overload_14(self, async_client: AsyncCl identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) as response: assert not response.is_closed @@ -5082,7 +5362,7 @@ async def test_path_params_update_overload_14(self, async_client: AsyncCloudflar identity_provider_id="", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) @@ -5091,7 +5371,7 @@ async def test_path_params_update_overload_14(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="", ) @@ -5100,7 +5380,7 @@ async def test_path_params_update_overload_14(self, async_client: AsyncCloudflar identity_provider_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", config={}, name="Widget Corps IDP", - type={}, + type="onetimepin", account_id="account_id", ) diff --git a/tests/api_resources/zones/test_holds.py b/tests/api_resources/zones/test_holds.py index 95aa58b2720..b34e5066342 100644 --- a/tests/api_resources/zones/test_holds.py +++ b/tests/api_resources/zones/test_holds.py @@ -9,6 +9,7 @@ from cloudflare import Cloudflare, AsyncCloudflare from tests.utils import assert_matches_type +from cloudflare.types.zones import ZoneHold base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -21,7 +22,7 @@ def test_method_create(self, client: Cloudflare) -> None: hold = client.zones.holds.create( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize def test_method_create_with_all_params(self, client: Cloudflare) -> None: @@ -29,7 +30,7 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: zone_id="023e105f4ecef8ad9ca31a8372d0c353", include_subdomains=True, ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize def test_raw_response_create(self, client: Cloudflare) -> None: @@ -40,7 +41,7 @@ def test_raw_response_create(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize def test_streaming_response_create(self, client: Cloudflare) -> None: @@ -51,7 +52,7 @@ def test_streaming_response_create(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -67,7 +68,7 @@ def test_method_delete(self, client: Cloudflare) -> None: hold = client.zones.holds.delete( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize def test_method_delete_with_all_params(self, client: Cloudflare) -> None: @@ -75,7 +76,7 @@ def test_method_delete_with_all_params(self, client: Cloudflare) -> None: zone_id="023e105f4ecef8ad9ca31a8372d0c353", hold_after="hold_after", ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize def test_raw_response_delete(self, client: Cloudflare) -> None: @@ -86,7 +87,7 @@ def test_raw_response_delete(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize def test_streaming_response_delete(self, client: Cloudflare) -> None: @@ -97,7 +98,7 @@ def test_streaming_response_delete(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -113,7 +114,7 @@ def test_method_edit(self, client: Cloudflare) -> None: hold = client.zones.holds.edit( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize def test_method_edit_with_all_params(self, client: Cloudflare) -> None: @@ -122,7 +123,7 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: hold_after="2023-01-31T15:56:36+00:00", include_subdomains=True, ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize def test_raw_response_edit(self, client: Cloudflare) -> None: @@ -133,7 +134,7 @@ def test_raw_response_edit(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize def test_streaming_response_edit(self, client: Cloudflare) -> None: @@ -144,7 +145,7 @@ def test_streaming_response_edit(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -160,7 +161,7 @@ def test_method_get(self, client: Cloudflare) -> None: hold = client.zones.holds.get( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize def test_raw_response_get(self, client: Cloudflare) -> None: @@ -171,7 +172,7 @@ def test_raw_response_get(self, client: Cloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize def test_streaming_response_get(self, client: Cloudflare) -> None: @@ -182,7 +183,7 @@ def test_streaming_response_get(self, client: Cloudflare) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -202,7 +203,7 @@ async def test_method_create(self, async_client: AsyncCloudflare) -> None: hold = await async_client.zones.holds.create( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize async def test_method_create_with_all_params(self, async_client: AsyncCloudflare) -> None: @@ -210,7 +211,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare zone_id="023e105f4ecef8ad9ca31a8372d0c353", include_subdomains=True, ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize async def test_raw_response_create(self, async_client: AsyncCloudflare) -> None: @@ -221,7 +222,7 @@ async def test_raw_response_create(self, async_client: AsyncCloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize async def test_streaming_response_create(self, async_client: AsyncCloudflare) -> None: @@ -232,7 +233,7 @@ async def test_streaming_response_create(self, async_client: AsyncCloudflare) -> assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -248,7 +249,7 @@ async def test_method_delete(self, async_client: AsyncCloudflare) -> None: hold = await async_client.zones.holds.delete( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize async def test_method_delete_with_all_params(self, async_client: AsyncCloudflare) -> None: @@ -256,7 +257,7 @@ async def test_method_delete_with_all_params(self, async_client: AsyncCloudflare zone_id="023e105f4ecef8ad9ca31a8372d0c353", hold_after="hold_after", ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize async def test_raw_response_delete(self, async_client: AsyncCloudflare) -> None: @@ -267,7 +268,7 @@ async def test_raw_response_delete(self, async_client: AsyncCloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize async def test_streaming_response_delete(self, async_client: AsyncCloudflare) -> None: @@ -278,7 +279,7 @@ async def test_streaming_response_delete(self, async_client: AsyncCloudflare) -> assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -294,7 +295,7 @@ async def test_method_edit(self, async_client: AsyncCloudflare) -> None: hold = await async_client.zones.holds.edit( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) -> None: @@ -303,7 +304,7 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) hold_after="2023-01-31T15:56:36+00:00", include_subdomains=True, ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize async def test_raw_response_edit(self, async_client: AsyncCloudflare) -> None: @@ -314,7 +315,7 @@ async def test_raw_response_edit(self, async_client: AsyncCloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize async def test_streaming_response_edit(self, async_client: AsyncCloudflare) -> None: @@ -325,7 +326,7 @@ async def test_streaming_response_edit(self, async_client: AsyncCloudflare) -> N assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) assert cast(Any, response.is_closed) is True @@ -341,7 +342,7 @@ async def test_method_get(self, async_client: AsyncCloudflare) -> None: hold = await async_client.zones.holds.get( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize async def test_raw_response_get(self, async_client: AsyncCloudflare) -> None: @@ -352,7 +353,7 @@ async def test_raw_response_get(self, async_client: AsyncCloudflare) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) @parametrize async def test_streaming_response_get(self, async_client: AsyncCloudflare) -> None: @@ -363,7 +364,7 @@ async def test_streaming_response_get(self, async_client: AsyncCloudflare) -> No assert response.http_request.headers.get("X-Stainless-Lang") == "python" hold = await response.parse() - assert_matches_type(object, hold, path=["response"]) + assert_matches_type(ZoneHold, hold, path=["response"]) assert cast(Any, response.is_closed) is True From fb7086348131c0d9de51dbd7d2b2a431c6323688 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:06 -0400 Subject: [PATCH 151/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 0f343dec8f6..21a0cd2b806 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-270122f270548b1d47f7e3ac3552ef65417230c5ec71e8cfb6cd5031e7eaa188.yml openapi_spec_hash: 01925ed2891006b54e44074457d99a71 -config_hash: f01b56f70c651f15e93a85ce451aa063 +config_hash: da55c5b48addf6c0e323c1da0f89e503 From 318370f35675a8624ee1661c18314c464929b060 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:06 -0400 Subject: [PATCH 152/849] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 21a0cd2b806..f4375a2b798 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-270122f270548b1d47f7e3ac3552ef65417230c5ec71e8cfb6cd5031e7eaa188.yml openapi_spec_hash: 01925ed2891006b54e44074457d99a71 -config_hash: da55c5b48addf6c0e323c1da0f89e503 +config_hash: af2dbb6a6332cef477c4697db6a78d79 From 02785f03577c287a77819e55876e103d9fa5a76b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:06 -0400 Subject: [PATCH 153/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index f4375a2b798..ea30acdddfc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-270122f270548b1d47f7e3ac3552ef65417230c5ec71e8cfb6cd5031e7eaa188.yml -openapi_spec_hash: 01925ed2891006b54e44074457d99a71 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-55b9bbeace02701cebe9c5981296b4f959142756104ecaf1fafe2e219e8ff4a0.yml +openapi_spec_hash: 5a88c6383d0ae18185eeafe93dfe793f config_hash: af2dbb6a6332cef477c4697db6a78d79 From b03d706b2c96805ec5d6ae4b5708125403be3b95 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:07 -0400 Subject: [PATCH 154/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index ea30acdddfc..f4375a2b798 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-55b9bbeace02701cebe9c5981296b4f959142756104ecaf1fafe2e219e8ff4a0.yml -openapi_spec_hash: 5a88c6383d0ae18185eeafe93dfe793f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-270122f270548b1d47f7e3ac3552ef65417230c5ec71e8cfb6cd5031e7eaa188.yml +openapi_spec_hash: 01925ed2891006b54e44074457d99a71 config_hash: af2dbb6a6332cef477c4697db6a78d79 From b9d21e2cced6cc96f71564b1cc61f9e1352cd03c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:07 -0400 Subject: [PATCH 155/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index f4375a2b798..ea30acdddfc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-270122f270548b1d47f7e3ac3552ef65417230c5ec71e8cfb6cd5031e7eaa188.yml -openapi_spec_hash: 01925ed2891006b54e44074457d99a71 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-55b9bbeace02701cebe9c5981296b4f959142756104ecaf1fafe2e219e8ff4a0.yml +openapi_spec_hash: 5a88c6383d0ae18185eeafe93dfe793f config_hash: af2dbb6a6332cef477c4697db6a78d79 From 678a4cc7c1ffa5130f40dd548fd9b20e54eb65c6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:07 -0400 Subject: [PATCH 156/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index ea30acdddfc..14a1d989c73 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-55b9bbeace02701cebe9c5981296b4f959142756104ecaf1fafe2e219e8ff4a0.yml -openapi_spec_hash: 5a88c6383d0ae18185eeafe93dfe793f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2eafa515caf876b73ee511fd6343ce557abe8da65ed2a7dea27f97bc189c6960.yml +openapi_spec_hash: 3d35043f975462029d2f41ff0ed7b95c config_hash: af2dbb6a6332cef477c4697db6a78d79 From 82bd59aabdb7dfacebfe2b77a61c7f153f6a42f7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:07 -0400 Subject: [PATCH 157/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 14a1d989c73..562fdcfc0eb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2eafa515caf876b73ee511fd6343ce557abe8da65ed2a7dea27f97bc189c6960.yml -openapi_spec_hash: 3d35043f975462029d2f41ff0ed7b95c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-28bfb1f9fa323f1e2503dcf069eb2bf19b1d198bd84c5ac8a644bfb3862f7141.yml +openapi_spec_hash: 6e5a25837c8877afc37a1b2fd2b158bd config_hash: af2dbb6a6332cef477c4697db6a78d79 From 13cb87db4e5849e183de6aec8a182aecbd5bbe79 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:07 -0400 Subject: [PATCH 158/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 562fdcfc0eb..6089623754c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-28bfb1f9fa323f1e2503dcf069eb2bf19b1d198bd84c5ac8a644bfb3862f7141.yml -openapi_spec_hash: 6e5a25837c8877afc37a1b2fd2b158bd +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-41fe438a8476b6b3f3f3c58db0c637c78776e7de8f9aeab33c016ea1e82cb858.yml +openapi_spec_hash: 575f9f796eace51d52c51f55c114f874 config_hash: af2dbb6a6332cef477c4697db6a78d79 From 4b85e7c4229203592e6b1d36c8ad13c78926cb02 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:07 -0400 Subject: [PATCH 159/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6089623754c..562fdcfc0eb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-41fe438a8476b6b3f3f3c58db0c637c78776e7de8f9aeab33c016ea1e82cb858.yml -openapi_spec_hash: 575f9f796eace51d52c51f55c114f874 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-28bfb1f9fa323f1e2503dcf069eb2bf19b1d198bd84c5ac8a644bfb3862f7141.yml +openapi_spec_hash: 6e5a25837c8877afc37a1b2fd2b158bd config_hash: af2dbb6a6332cef477c4697db6a78d79 From cbe322c5ced4e05278cf83bc8de994d941c19059 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:07 -0400 Subject: [PATCH 160/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 562fdcfc0eb..603687a066d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-28bfb1f9fa323f1e2503dcf069eb2bf19b1d198bd84c5ac8a644bfb3862f7141.yml -openapi_spec_hash: 6e5a25837c8877afc37a1b2fd2b158bd +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1632324f7b6ff975da251df437669cd5ef135edab414239deed6237c928620f4.yml +openapi_spec_hash: 5a4e9309a9e2b0785ad7855709678eac config_hash: af2dbb6a6332cef477c4697db6a78d79 From e7e279ce7f174af94870d66cf962bed9c66074f7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:07 -0400 Subject: [PATCH 161/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 603687a066d..aa88e15576e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-1632324f7b6ff975da251df437669cd5ef135edab414239deed6237c928620f4.yml -openapi_spec_hash: 5a4e9309a9e2b0785ad7855709678eac +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-207bba6f1025362e551af0a2c985a238e79a39ba77a3bb2409860c460a6b0ebb.yml +openapi_spec_hash: 1c47fb5f534351c71c50844d391924fa config_hash: af2dbb6a6332cef477c4697db6a78d79 From 79e06acb258052397477ebc1065f6bf8397ab99b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:07 -0400 Subject: [PATCH 162/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index aa88e15576e..dba7f043ced 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-207bba6f1025362e551af0a2c985a238e79a39ba77a3bb2409860c460a6b0ebb.yml -openapi_spec_hash: 1c47fb5f534351c71c50844d391924fa +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-8e0d69d79e70e111c4087ed0d10990dcfac0f773c0ba90972f3866c35ee5c263.yml +openapi_spec_hash: 3e6db406daa52bb8d8eaabc4dc379804 config_hash: af2dbb6a6332cef477c4697db6a78d79 From e5bc8e40a2f08929705ec809bc842fddfae30490 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:08 -0400 Subject: [PATCH 163/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index dba7f043ced..bf4f97fb6a5 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-8e0d69d79e70e111c4087ed0d10990dcfac0f773c0ba90972f3866c35ee5c263.yml -openapi_spec_hash: 3e6db406daa52bb8d8eaabc4dc379804 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b8d0a0d5c74a2a7ab10a968e311f682c56dda081444aa456216500f7ee37abe4.yml +openapi_spec_hash: 42da689dd948f1131747c4129e361ff6 config_hash: af2dbb6a6332cef477c4697db6a78d79 From 1eed34f82ffa03ac180e2efa1928cac3d62f4455 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:08 -0400 Subject: [PATCH 164/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index bf4f97fb6a5..81eb5528e34 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-b8d0a0d5c74a2a7ab10a968e311f682c56dda081444aa456216500f7ee37abe4.yml -openapi_spec_hash: 42da689dd948f1131747c4129e361ff6 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-35b2251d1c4c00b0a56c568bbd49353dfb573050be1a6ba5df9b0f3f4b7a8337.yml +openapi_spec_hash: e7c99588938493962766287246eaadaf config_hash: af2dbb6a6332cef477c4697db6a78d79 From 7be27ccd6af8e8fb96d0c83e0e4f5fa34fabb814 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:08 -0400 Subject: [PATCH 165/849] feat(api): api update (#2585) --- .stats.yml | 4 +- .../zero_trust/gateway/logging_setting.py | 41 +++++++++++++++---- .../gateway/logging_update_params.py | 41 +++++++++++++++---- .../zero_trust/gateway/test_logging.py | 30 +++++++++++--- 4 files changed, 94 insertions(+), 22 deletions(-) diff --git a/.stats.yml b/.stats.yml index 81eb5528e34..3ed3d6478e9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-35b2251d1c4c00b0a56c568bbd49353dfb573050be1a6ba5df9b0f3f4b7a8337.yml -openapi_spec_hash: e7c99588938493962766287246eaadaf +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f928427b3d44df551039f12f8194f38fa13706ce4f7ba91bc60e862867c9bae1.yml +openapi_spec_hash: c229613f61a9d35463cf425768e0e44a config_hash: af2dbb6a6332cef477c4697db6a78d79 diff --git a/src/cloudflare/types/zero_trust/gateway/logging_setting.py b/src/cloudflare/types/zero_trust/gateway/logging_setting.py index 7fd32c437a6..d16eab012c7 100644 --- a/src/cloudflare/types/zero_trust/gateway/logging_setting.py +++ b/src/cloudflare/types/zero_trust/gateway/logging_setting.py @@ -4,18 +4,45 @@ from ...._models import BaseModel -__all__ = ["LoggingSetting", "SettingsByRuleType"] +__all__ = [ + "LoggingSetting", + "SettingsByRuleType", + "SettingsByRuleTypeDNS", + "SettingsByRuleTypeHTTP", + "SettingsByRuleTypeL4", +] + + +class SettingsByRuleTypeDNS(BaseModel): + log_all: Optional[bool] = None + """Log all requests to this service.""" + + log_blocks: Optional[bool] = None + """Log only blocking requests to this service.""" + + +class SettingsByRuleTypeHTTP(BaseModel): + log_all: Optional[bool] = None + """Log all requests to this service.""" + + log_blocks: Optional[bool] = None + """Log only blocking requests to this service.""" + + +class SettingsByRuleTypeL4(BaseModel): + log_all: Optional[bool] = None + """Log all requests to this service.""" + + log_blocks: Optional[bool] = None + """Log only blocking requests to this service.""" class SettingsByRuleType(BaseModel): - dns: Optional[object] = None - """Logging settings for DNS firewall.""" + dns: Optional[SettingsByRuleTypeDNS] = None - http: Optional[object] = None - """Logging settings for HTTP/HTTPS firewall.""" + http: Optional[SettingsByRuleTypeHTTP] = None - l4: Optional[object] = None - """Logging settings for Network firewall.""" + l4: Optional[SettingsByRuleTypeL4] = None class LoggingSetting(BaseModel): diff --git a/src/cloudflare/types/zero_trust/gateway/logging_update_params.py b/src/cloudflare/types/zero_trust/gateway/logging_update_params.py index de1cb4dfeb6..3347ef4edad 100644 --- a/src/cloudflare/types/zero_trust/gateway/logging_update_params.py +++ b/src/cloudflare/types/zero_trust/gateway/logging_update_params.py @@ -4,7 +4,13 @@ from typing_extensions import Required, TypedDict -__all__ = ["LoggingUpdateParams", "SettingsByRuleType"] +__all__ = [ + "LoggingUpdateParams", + "SettingsByRuleType", + "SettingsByRuleTypeDNS", + "SettingsByRuleTypeHTTP", + "SettingsByRuleTypeL4", +] class LoggingUpdateParams(TypedDict, total=False): @@ -20,12 +26,33 @@ class LoggingUpdateParams(TypedDict, total=False): """Logging settings by rule type.""" +class SettingsByRuleTypeDNS(TypedDict, total=False): + log_all: bool + """Log all requests to this service.""" + + log_blocks: bool + """Log only blocking requests to this service.""" + + +class SettingsByRuleTypeHTTP(TypedDict, total=False): + log_all: bool + """Log all requests to this service.""" + + log_blocks: bool + """Log only blocking requests to this service.""" + + +class SettingsByRuleTypeL4(TypedDict, total=False): + log_all: bool + """Log all requests to this service.""" + + log_blocks: bool + """Log only blocking requests to this service.""" + + class SettingsByRuleType(TypedDict, total=False): - dns: object - """Logging settings for DNS firewall.""" + dns: SettingsByRuleTypeDNS - http: object - """Logging settings for HTTP/HTTPS firewall.""" + http: SettingsByRuleTypeHTTP - l4: object - """Logging settings for Network firewall.""" + l4: SettingsByRuleTypeL4 diff --git a/tests/api_resources/zero_trust/gateway/test_logging.py b/tests/api_resources/zero_trust/gateway/test_logging.py index a157696ec07..7c780cb3d9f 100644 --- a/tests/api_resources/zero_trust/gateway/test_logging.py +++ b/tests/api_resources/zero_trust/gateway/test_logging.py @@ -30,9 +30,18 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: account_id="699d98642c564d2e855e9661899b7252", redact_pii=True, settings_by_rule_type={ - "dns": {}, - "http": {}, - "l4": {}, + "dns": { + "log_all": False, + "log_blocks": True, + }, + "http": { + "log_all": False, + "log_blocks": True, + }, + "l4": { + "log_all": False, + "log_blocks": True, + }, }, ) assert_matches_type(Optional[LoggingSetting], logging, path=["response"]) @@ -123,9 +132,18 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare account_id="699d98642c564d2e855e9661899b7252", redact_pii=True, settings_by_rule_type={ - "dns": {}, - "http": {}, - "l4": {}, + "dns": { + "log_all": False, + "log_blocks": True, + }, + "http": { + "log_all": False, + "log_blocks": True, + }, + "l4": { + "log_all": False, + "log_blocks": True, + }, }, ) assert_matches_type(Optional[LoggingSetting], logging, path=["response"]) From 6452b4fc1c54b657e13910f6e2f53fb2ec8d4635 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:08 -0400 Subject: [PATCH 166/849] feat(api): api update (#2586) --- .stats.yml | 4 +-- src/cloudflare/resources/stream/copy.py | 30 ++----------------- src/cloudflare/resources/stream/stream.py | 6 ++-- .../types/stream/copy_create_params.py | 7 ----- .../types/stream/stream_create_params.py | 3 +- tests/api_resources/stream/test_copy.py | 2 -- 6 files changed, 10 insertions(+), 42 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3ed3d6478e9..0d40eeb9137 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f928427b3d44df551039f12f8194f38fa13706ce4f7ba91bc60e862867c9bae1.yml -openapi_spec_hash: c229613f61a9d35463cf425768e0e44a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4e988c584e8eacb13347475cb6ac38171cedd948f5101b03c37ec712341b9d7a.yml +openapi_spec_hash: c4e86fdb536ff8299ffc1faed7e3e573 config_hash: af2dbb6a6332cef477c4697db6a78d79 diff --git a/src/cloudflare/resources/stream/copy.py b/src/cloudflare/resources/stream/copy.py index 965cb784ff4..e8d868cafef 100644 --- a/src/cloudflare/resources/stream/copy.py +++ b/src/cloudflare/resources/stream/copy.py @@ -63,7 +63,6 @@ def create( thumbnail_timestamp_pct: float | NotGiven = NOT_GIVEN, watermark: copy_create_params.Watermark | NotGiven = NOT_GIVEN, upload_creator: str | NotGiven = NOT_GIVEN, - upload_metadata: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -104,10 +103,6 @@ def create( upload_creator: A user-defined identifier for the media creator. - upload_metadata: Comma-separated key-value pairs following the TUS protocol specification. Values - are Base-64 encoded. Supported keys: `name`, `requiresignedurls`, - `allowedorigins`, `thumbnailtimestamppct`, `watermark`, `scheduleddeletion`. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -118,15 +113,7 @@ def create( """ if not account_id: raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - extra_headers = { - **strip_not_given( - { - "Upload-Creator": upload_creator, - "Upload-Metadata": upload_metadata, - } - ), - **(extra_headers or {}), - } + extra_headers = {**strip_not_given({"Upload-Creator": upload_creator}), **(extra_headers or {})} return self._post( f"/accounts/{account_id}/stream/copy", body=maybe_transform( @@ -186,7 +173,6 @@ async def create( thumbnail_timestamp_pct: float | NotGiven = NOT_GIVEN, watermark: copy_create_params.Watermark | NotGiven = NOT_GIVEN, upload_creator: str | NotGiven = NOT_GIVEN, - upload_metadata: str | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -227,10 +213,6 @@ async def create( upload_creator: A user-defined identifier for the media creator. - upload_metadata: Comma-separated key-value pairs following the TUS protocol specification. Values - are Base-64 encoded. Supported keys: `name`, `requiresignedurls`, - `allowedorigins`, `thumbnailtimestamppct`, `watermark`, `scheduleddeletion`. - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -241,15 +223,7 @@ async def create( """ if not account_id: raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") - extra_headers = { - **strip_not_given( - { - "Upload-Creator": upload_creator, - "Upload-Metadata": upload_metadata, - } - ), - **(extra_headers or {}), - } + extra_headers = {**strip_not_given({"Upload-Creator": upload_creator}), **(extra_headers or {})} return await self._post( f"/accounts/{account_id}/stream/copy", body=await async_maybe_transform( diff --git a/src/cloudflare/resources/stream/stream.py b/src/cloudflare/resources/stream/stream.py index fc59818a20b..a4e5a4a3d9a 100644 --- a/src/cloudflare/resources/stream/stream.py +++ b/src/cloudflare/resources/stream/stream.py @@ -248,7 +248,8 @@ def create( upload_metadata: Comma-separated key-value pairs following the TUS protocol specification. Values are Base-64 encoded. Supported keys: `name`, `requiresignedurls`, - `allowedorigins`, `thumbnailtimestamppct`, `watermark`, `scheduleddeletion`. + `allowedorigins`, `thumbnailtimestamppct`, `watermark`, `scheduleddeletion`, + `maxdurationseconds`. extra_headers: Send extra headers @@ -658,7 +659,8 @@ async def create( upload_metadata: Comma-separated key-value pairs following the TUS protocol specification. Values are Base-64 encoded. Supported keys: `name`, `requiresignedurls`, - `allowedorigins`, `thumbnailtimestamppct`, `watermark`, `scheduleddeletion`. + `allowedorigins`, `thumbnailtimestamppct`, `watermark`, `scheduleddeletion`, + `maxdurationseconds`. extra_headers: Send extra headers diff --git a/src/cloudflare/types/stream/copy_create_params.py b/src/cloudflare/types/stream/copy_create_params.py index 94338a1f17b..ee46df0e8c8 100644 --- a/src/cloudflare/types/stream/copy_create_params.py +++ b/src/cloudflare/types/stream/copy_create_params.py @@ -68,13 +68,6 @@ class CopyCreateParams(TypedDict, total=False): upload_creator: Annotated[str, PropertyInfo(alias="Upload-Creator")] """A user-defined identifier for the media creator.""" - upload_metadata: Annotated[str, PropertyInfo(alias="Upload-Metadata")] - """Comma-separated key-value pairs following the TUS protocol specification. - - Values are Base-64 encoded. Supported keys: `name`, `requiresignedurls`, - `allowedorigins`, `thumbnailtimestamppct`, `watermark`, `scheduleddeletion`. - """ - class Watermark(TypedDict, total=False): uid: str diff --git a/src/cloudflare/types/stream/stream_create_params.py b/src/cloudflare/types/stream/stream_create_params.py index dc2ee3a19a9..b81859c0fbd 100644 --- a/src/cloudflare/types/stream/stream_create_params.py +++ b/src/cloudflare/types/stream/stream_create_params.py @@ -41,5 +41,6 @@ class StreamCreateParams(TypedDict, total=False): """Comma-separated key-value pairs following the TUS protocol specification. Values are Base-64 encoded. Supported keys: `name`, `requiresignedurls`, - `allowedorigins`, `thumbnailtimestamppct`, `watermark`, `scheduleddeletion`. + `allowedorigins`, `thumbnailtimestamppct`, `watermark`, `scheduleddeletion`, + `maxdurationseconds`. """ diff --git a/tests/api_resources/stream/test_copy.py b/tests/api_resources/stream/test_copy.py index fa2c1cdd5b1..c2d65c32f2e 100644 --- a/tests/api_resources/stream/test_copy.py +++ b/tests/api_resources/stream/test_copy.py @@ -39,7 +39,6 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: thumbnail_timestamp_pct=0.529241, watermark={"uid": "ea95132c15732412d22c1476fa83f27a"}, upload_creator="creator-id_abcde12345", - upload_metadata="name aGVsbG8gd29ybGQ=, requiresignedurls, allowedorigins ZXhhbXBsZS5jb20sdGVzdC5jb20=", ) assert_matches_type(Optional[Video], copy, path=["response"]) @@ -102,7 +101,6 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare thumbnail_timestamp_pct=0.529241, watermark={"uid": "ea95132c15732412d22c1476fa83f27a"}, upload_creator="creator-id_abcde12345", - upload_metadata="name aGVsbG8gd29ybGQ=, requiresignedurls, allowedorigins ZXhhbXBsZS5jb20sdGVzdC5jb20=", ) assert_matches_type(Optional[Video], copy, path=["response"]) From 8d92a4da2d5df6c1971f335007773e770b3a4399 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:08 -0400 Subject: [PATCH 167/849] feat(api): api update (#2587) --- .stats.yml | 4 +- .../resources/waiting_rooms/events/events.py | 67 +++++++++++++++++++ src/cloudflare/types/waiting_rooms/event.py | 13 ++++ .../waiting_rooms/event_create_params.py | 14 +++- .../types/waiting_rooms/event_edit_params.py | 14 +++- .../waiting_rooms/event_update_params.py | 14 +++- src/cloudflare/types/zones/type.py | 2 +- .../waiting_rooms/test_events.py | 12 ++++ 8 files changed, 134 insertions(+), 6 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0d40eeb9137..ea1ce66616c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4e988c584e8eacb13347475cb6ac38171cedd948f5101b03c37ec712341b9d7a.yml -openapi_spec_hash: c4e86fdb536ff8299ffc1faed7e3e573 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-3f1027f7740afd5fbb6aa554575dd2fd7dd68c0d7c394c68b5515753860eaf8e.yml +openapi_spec_hash: fbe090182fbea3b046b951f6f4fb3b33 config_hash: af2dbb6a6332cef477c4697db6a78d79 diff --git a/src/cloudflare/resources/waiting_rooms/events/events.py b/src/cloudflare/resources/waiting_rooms/events/events.py index df0401a67ba..bb1f278936a 100644 --- a/src/cloudflare/resources/waiting_rooms/events/events.py +++ b/src/cloudflare/resources/waiting_rooms/events/events.py @@ -3,6 +3,7 @@ from __future__ import annotations from typing import Type, Optional, cast +from typing_extensions import Literal import httpx @@ -79,6 +80,9 @@ def create( shuffle_at_event_start: bool | NotGiven = NOT_GIVEN, suspended: bool | NotGiven = NOT_GIVEN, total_active_users: Optional[int] | NotGiven = NOT_GIVEN, + turnstile_action: Optional[Literal["log", "infinite_queue"]] | NotGiven = NOT_GIVEN, + turnstile_mode: Optional[Literal["off", "invisible", "visible_non_interactive", "visible_managed"]] + | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -143,6 +147,12 @@ def create( 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. + turnstile_action: If set, the event will override the waiting room's `turnstile_action` property + while it is active. If null, the event will inherit it. + + turnstile_mode: If set, the event will override the waiting room's `turnstile_mode` property + while it is active. If null, the event will inherit it. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -172,6 +182,8 @@ def create( "shuffle_at_event_start": shuffle_at_event_start, "suspended": suspended, "total_active_users": total_active_users, + "turnstile_action": turnstile_action, + "turnstile_mode": turnstile_mode, }, event_create_params.EventCreateParams, ), @@ -204,6 +216,9 @@ def update( shuffle_at_event_start: bool | NotGiven = NOT_GIVEN, suspended: bool | NotGiven = NOT_GIVEN, total_active_users: Optional[int] | NotGiven = NOT_GIVEN, + turnstile_action: Optional[Literal["log", "infinite_queue"]] | NotGiven = NOT_GIVEN, + turnstile_mode: Optional[Literal["off", "invisible", "visible_non_interactive", "visible_managed"]] + | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -262,6 +277,12 @@ def update( 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. + turnstile_action: If set, the event will override the waiting room's `turnstile_action` property + while it is active. If null, the event will inherit it. + + turnstile_mode: If set, the event will override the waiting room's `turnstile_mode` property + while it is active. If null, the event will inherit it. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -293,6 +314,8 @@ def update( "shuffle_at_event_start": shuffle_at_event_start, "suspended": suspended, "total_active_users": total_active_users, + "turnstile_action": turnstile_action, + "turnstile_mode": turnstile_mode, }, event_update_params.EventUpdateParams, ), @@ -425,6 +448,9 @@ def edit( shuffle_at_event_start: bool | NotGiven = NOT_GIVEN, suspended: bool | NotGiven = NOT_GIVEN, total_active_users: Optional[int] | NotGiven = NOT_GIVEN, + turnstile_action: Optional[Literal["log", "infinite_queue"]] | NotGiven = NOT_GIVEN, + turnstile_mode: Optional[Literal["off", "invisible", "visible_non_interactive", "visible_managed"]] + | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -483,6 +509,12 @@ def edit( 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. + turnstile_action: If set, the event will override the waiting room's `turnstile_action` property + while it is active. If null, the event will inherit it. + + turnstile_mode: If set, the event will override the waiting room's `turnstile_mode` property + while it is active. If null, the event will inherit it. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -514,6 +546,8 @@ def edit( "shuffle_at_event_start": shuffle_at_event_start, "suspended": suspended, "total_active_users": total_active_users, + "turnstile_action": turnstile_action, + "turnstile_mode": turnstile_mode, }, event_edit_params.EventEditParams, ), @@ -615,6 +649,9 @@ async def create( shuffle_at_event_start: bool | NotGiven = NOT_GIVEN, suspended: bool | NotGiven = NOT_GIVEN, total_active_users: Optional[int] | NotGiven = NOT_GIVEN, + turnstile_action: Optional[Literal["log", "infinite_queue"]] | NotGiven = NOT_GIVEN, + turnstile_mode: Optional[Literal["off", "invisible", "visible_non_interactive", "visible_managed"]] + | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -679,6 +716,12 @@ async def create( 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. + turnstile_action: If set, the event will override the waiting room's `turnstile_action` property + while it is active. If null, the event will inherit it. + + turnstile_mode: If set, the event will override the waiting room's `turnstile_mode` property + while it is active. If null, the event will inherit it. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -708,6 +751,8 @@ async def create( "shuffle_at_event_start": shuffle_at_event_start, "suspended": suspended, "total_active_users": total_active_users, + "turnstile_action": turnstile_action, + "turnstile_mode": turnstile_mode, }, event_create_params.EventCreateParams, ), @@ -740,6 +785,9 @@ async def update( shuffle_at_event_start: bool | NotGiven = NOT_GIVEN, suspended: bool | NotGiven = NOT_GIVEN, total_active_users: Optional[int] | NotGiven = NOT_GIVEN, + turnstile_action: Optional[Literal["log", "infinite_queue"]] | NotGiven = NOT_GIVEN, + turnstile_mode: Optional[Literal["off", "invisible", "visible_non_interactive", "visible_managed"]] + | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -798,6 +846,12 @@ async def update( 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. + turnstile_action: If set, the event will override the waiting room's `turnstile_action` property + while it is active. If null, the event will inherit it. + + turnstile_mode: If set, the event will override the waiting room's `turnstile_mode` property + while it is active. If null, the event will inherit it. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -829,6 +883,8 @@ async def update( "shuffle_at_event_start": shuffle_at_event_start, "suspended": suspended, "total_active_users": total_active_users, + "turnstile_action": turnstile_action, + "turnstile_mode": turnstile_mode, }, event_update_params.EventUpdateParams, ), @@ -961,6 +1017,9 @@ async def edit( shuffle_at_event_start: bool | NotGiven = NOT_GIVEN, suspended: bool | NotGiven = NOT_GIVEN, total_active_users: Optional[int] | NotGiven = NOT_GIVEN, + turnstile_action: Optional[Literal["log", "infinite_queue"]] | NotGiven = NOT_GIVEN, + turnstile_mode: Optional[Literal["off", "invisible", "visible_non_interactive", "visible_managed"]] + | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1019,6 +1078,12 @@ async def edit( 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. + turnstile_action: If set, the event will override the waiting room's `turnstile_action` property + while it is active. If null, the event will inherit it. + + turnstile_mode: If set, the event will override the waiting room's `turnstile_mode` property + while it is active. If null, the event will inherit it. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1050,6 +1115,8 @@ async def edit( "shuffle_at_event_start": shuffle_at_event_start, "suspended": suspended, "total_active_users": total_active_users, + "turnstile_action": turnstile_action, + "turnstile_mode": turnstile_mode, }, event_edit_params.EventEditParams, ), diff --git a/src/cloudflare/types/waiting_rooms/event.py b/src/cloudflare/types/waiting_rooms/event.py index 682983566d1..5a8e9cea0f2 100644 --- a/src/cloudflare/types/waiting_rooms/event.py +++ b/src/cloudflare/types/waiting_rooms/event.py @@ -2,6 +2,7 @@ from typing import Optional from datetime import datetime +from typing_extensions import Literal from ..._models import BaseModel @@ -95,3 +96,15 @@ class Event(BaseModel): 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. """ + + turnstile_action: Optional[Literal["log", "infinite_queue"]] = None + """ + If set, the event will override the waiting room's `turnstile_action` property + while it is active. If null, the event will inherit it. + """ + + turnstile_mode: Optional[Literal["off", "invisible", "visible_non_interactive", "visible_managed"]] = None + """ + If set, the event will override the waiting room's `turnstile_mode` property + while it is active. If null, the event will inherit it. + """ diff --git a/src/cloudflare/types/waiting_rooms/event_create_params.py b/src/cloudflare/types/waiting_rooms/event_create_params.py index b4da24a3fd9..3fc6518545b 100644 --- a/src/cloudflare/types/waiting_rooms/event_create_params.py +++ b/src/cloudflare/types/waiting_rooms/event_create_params.py @@ -3,7 +3,7 @@ from __future__ import annotations from typing import Optional -from typing_extensions import Required, TypedDict +from typing_extensions import Literal, Required, TypedDict __all__ = ["EventCreateParams"] @@ -92,3 +92,15 @@ class EventCreateParams(TypedDict, total=False): 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. """ + + turnstile_action: Optional[Literal["log", "infinite_queue"]] + """ + If set, the event will override the waiting room's `turnstile_action` property + while it is active. If null, the event will inherit it. + """ + + turnstile_mode: Optional[Literal["off", "invisible", "visible_non_interactive", "visible_managed"]] + """ + If set, the event will override the waiting room's `turnstile_mode` property + while it is active. If null, the event will inherit it. + """ diff --git a/src/cloudflare/types/waiting_rooms/event_edit_params.py b/src/cloudflare/types/waiting_rooms/event_edit_params.py index 3078d7cc905..f2c0baa516f 100644 --- a/src/cloudflare/types/waiting_rooms/event_edit_params.py +++ b/src/cloudflare/types/waiting_rooms/event_edit_params.py @@ -3,7 +3,7 @@ from __future__ import annotations from typing import Optional -from typing_extensions import Required, TypedDict +from typing_extensions import Literal, Required, TypedDict __all__ = ["EventEditParams"] @@ -94,3 +94,15 @@ class EventEditParams(TypedDict, total=False): 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. """ + + turnstile_action: Optional[Literal["log", "infinite_queue"]] + """ + If set, the event will override the waiting room's `turnstile_action` property + while it is active. If null, the event will inherit it. + """ + + turnstile_mode: Optional[Literal["off", "invisible", "visible_non_interactive", "visible_managed"]] + """ + If set, the event will override the waiting room's `turnstile_mode` property + while it is active. If null, the event will inherit it. + """ diff --git a/src/cloudflare/types/waiting_rooms/event_update_params.py b/src/cloudflare/types/waiting_rooms/event_update_params.py index 50b5fda9b82..bd863be2723 100644 --- a/src/cloudflare/types/waiting_rooms/event_update_params.py +++ b/src/cloudflare/types/waiting_rooms/event_update_params.py @@ -3,7 +3,7 @@ from __future__ import annotations from typing import Optional -from typing_extensions import Required, TypedDict +from typing_extensions import Literal, Required, TypedDict __all__ = ["EventUpdateParams"] @@ -94,3 +94,15 @@ class EventUpdateParams(TypedDict, total=False): 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. """ + + turnstile_action: Optional[Literal["log", "infinite_queue"]] + """ + If set, the event will override the waiting room's `turnstile_action` property + while it is active. If null, the event will inherit it. + """ + + turnstile_mode: Optional[Literal["off", "invisible", "visible_non_interactive", "visible_managed"]] + """ + If set, the event will override the waiting room's `turnstile_mode` property + while it is active. If null, the event will inherit it. + """ diff --git a/src/cloudflare/types/zones/type.py b/src/cloudflare/types/zones/type.py index c4add61b16b..7a0bbfd2082 100644 --- a/src/cloudflare/types/zones/type.py +++ b/src/cloudflare/types/zones/type.py @@ -4,4 +4,4 @@ __all__ = ["Type"] -Type: TypeAlias = Literal["full", "partial", "secondary"] +Type: TypeAlias = Literal["full", "partial", "secondary", "internal"] diff --git a/tests/api_resources/waiting_rooms/test_events.py b/tests/api_resources/waiting_rooms/test_events.py index a47a21dc598..a626488d2e3 100644 --- a/tests/api_resources/waiting_rooms/test_events.py +++ b/tests/api_resources/waiting_rooms/test_events.py @@ -50,6 +50,8 @@ def test_method_create_with_all_params(self, client: Cloudflare) -> None: shuffle_at_event_start=True, suspended=True, total_active_users=200, + turnstile_action="log", + turnstile_mode="off", ) assert_matches_type(Event, event, path=["response"]) @@ -136,6 +138,8 @@ def test_method_update_with_all_params(self, client: Cloudflare) -> None: shuffle_at_event_start=True, suspended=True, total_active_users=200, + turnstile_action="log", + turnstile_mode="off", ) assert_matches_type(Event, event, path=["response"]) @@ -354,6 +358,8 @@ def test_method_edit_with_all_params(self, client: Cloudflare) -> None: shuffle_at_event_start=True, suspended=True, total_active_users=200, + turnstile_action="log", + turnstile_mode="off", ) assert_matches_type(Event, event, path=["response"]) @@ -516,6 +522,8 @@ async def test_method_create_with_all_params(self, async_client: AsyncCloudflare shuffle_at_event_start=True, suspended=True, total_active_users=200, + turnstile_action="log", + turnstile_mode="off", ) assert_matches_type(Event, event, path=["response"]) @@ -602,6 +610,8 @@ async def test_method_update_with_all_params(self, async_client: AsyncCloudflare shuffle_at_event_start=True, suspended=True, total_active_users=200, + turnstile_action="log", + turnstile_mode="off", ) assert_matches_type(Event, event, path=["response"]) @@ -820,6 +830,8 @@ async def test_method_edit_with_all_params(self, async_client: AsyncCloudflare) shuffle_at_event_start=True, suspended=True, total_active_users=200, + turnstile_action="log", + turnstile_mode="off", ) assert_matches_type(Event, event, path=["response"]) From 9838d9baf9f39eeeea31425d638779868dda647f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:08 -0400 Subject: [PATCH 168/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index ea1ce66616c..6719d4973de 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-3f1027f7740afd5fbb6aa554575dd2fd7dd68c0d7c394c68b5515753860eaf8e.yml -openapi_spec_hash: fbe090182fbea3b046b951f6f4fb3b33 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-810e4823e40cd529db136eda0ab3556a49d24d72fb5b5add87e82e73954d5582.yml +openapi_spec_hash: 87de256d3ca667e8292fc260d7d604eb config_hash: af2dbb6a6332cef477c4697db6a78d79 From 396ca15298b3e295603adf254f5a5b5309109c05 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:08 -0400 Subject: [PATCH 169/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6719d4973de..f57fa30f252 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-810e4823e40cd529db136eda0ab3556a49d24d72fb5b5add87e82e73954d5582.yml -openapi_spec_hash: 87de256d3ca667e8292fc260d7d604eb +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-dfa188a2b6e206fe003ffa4af584f8d8697a948aee134b60c0bb63e7f7a071b7.yml +openapi_spec_hash: 03354467f3438f37c500675014e2b4c7 config_hash: af2dbb6a6332cef477c4697db6a78d79 From ae86458bccab77d0b2110576f4e513a274415be5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:08 -0400 Subject: [PATCH 170/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index f57fa30f252..6719d4973de 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-dfa188a2b6e206fe003ffa4af584f8d8697a948aee134b60c0bb63e7f7a071b7.yml -openapi_spec_hash: 03354467f3438f37c500675014e2b4c7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-810e4823e40cd529db136eda0ab3556a49d24d72fb5b5add87e82e73954d5582.yml +openapi_spec_hash: 87de256d3ca667e8292fc260d7d604eb config_hash: af2dbb6a6332cef477c4697db6a78d79 From 0f82140267774a9ab8ae8f3755730d1e23c257e0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:08 -0400 Subject: [PATCH 171/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6719d4973de..a17c2d683ed 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-810e4823e40cd529db136eda0ab3556a49d24d72fb5b5add87e82e73954d5582.yml -openapi_spec_hash: 87de256d3ca667e8292fc260d7d604eb +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-538c994d7acb0d4a7958dadaf8e97aa356852e833792c9c813f141926ebfd6e9.yml +openapi_spec_hash: 934551a564bb3e2397ccda1962aa1aa3 config_hash: af2dbb6a6332cef477c4697db6a78d79 From db9441e9d6bf27e1ec8a0a0c87f70175c899158d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:09 -0400 Subject: [PATCH 172/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index a17c2d683ed..107e090e05c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-538c994d7acb0d4a7958dadaf8e97aa356852e833792c9c813f141926ebfd6e9.yml -openapi_spec_hash: 934551a564bb3e2397ccda1962aa1aa3 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4eaabd786934a621624c9f0795f39354f5d2b6e99aab17fc8430719789a3f494.yml +openapi_spec_hash: ad19e24e8bd97bdd9130963e467a7913 config_hash: af2dbb6a6332cef477c4697db6a78d79 From f27a611160f91b8ad149c44717182f7e63ab14ac Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:09 -0400 Subject: [PATCH 173/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 107e090e05c..376ba76acba 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-4eaabd786934a621624c9f0795f39354f5d2b6e99aab17fc8430719789a3f494.yml -openapi_spec_hash: ad19e24e8bd97bdd9130963e467a7913 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2dd56bdbc7a949dc3a775d5d8007304436551579b430c15b9b5593b8afba6b51.yml +openapi_spec_hash: 2bbf03bf41a0053304815c2d9a30ffe3 config_hash: af2dbb6a6332cef477c4697db6a78d79 From ab879fc241358a40f6a71002b2f34acab3ed0e36 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:09 -0400 Subject: [PATCH 174/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 376ba76acba..139438c8681 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-2dd56bdbc7a949dc3a775d5d8007304436551579b430c15b9b5593b8afba6b51.yml -openapi_spec_hash: 2bbf03bf41a0053304815c2d9a30ffe3 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f13b8d8da4008e9091b8ded53a587d517f9a426a75e6b5e14a062aceaa8791a8.yml +openapi_spec_hash: 41e60f8c9bdd42867030502d9369c3bd config_hash: af2dbb6a6332cef477c4697db6a78d79 From 5ee7ad1b4847072cbfc3a9aa49d8ad5249aacada Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:09 -0400 Subject: [PATCH 175/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 139438c8681..07f499b2a95 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-f13b8d8da4008e9091b8ded53a587d517f9a426a75e6b5e14a062aceaa8791a8.yml -openapi_spec_hash: 41e60f8c9bdd42867030502d9369c3bd +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d2ce013615ee092e877f6373c0dc43b6af71fc9f67563de2dece933e172aa7a0.yml +openapi_spec_hash: 317e73ed212f3e8b5ec8d0a10febacb5 config_hash: af2dbb6a6332cef477c4697db6a78d79 From 84a30d75eb0be0ba21f5f2b8e3baea6c60124ac5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:09 -0400 Subject: [PATCH 176/849] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 07f499b2a95..4f762b88ca6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 1664 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-d2ce013615ee092e877f6373c0dc43b6af71fc9f67563de2dece933e172aa7a0.yml -openapi_spec_hash: 317e73ed212f3e8b5ec8d0a10febacb5 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e6020a67e862bf0a579c6977605f8e28657d6b161f107192512ac660a3b01858.yml +openapi_spec_hash: 4e7b96ee4e75204fc2667400a1bf84ec config_hash: af2dbb6a6332cef477c4697db6a78d79 From 725b74610bb4fd46efaa97959084dc79f8f1f4e1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:09 -0400 Subject: [PATCH 177/849] feat(r2): add super_slurper endpoints (#2588) --- .stats.yml | 4 +- api.md | 58 ++ src/cloudflare/resources/r2/__init__.py | 14 + src/cloudflare/resources/r2/r2.py | 32 + .../resources/r2/super_slurper/__init__.py | 47 + .../r2/super_slurper/connectivity_precheck.py | 494 ++++++++++ .../r2/super_slurper/jobs/__init__.py | 33 + .../resources/r2/super_slurper/jobs/jobs.py | 891 ++++++++++++++++++ .../resources/r2/super_slurper/jobs/logs.py | 198 ++++ .../r2/super_slurper/super_slurper.py | 134 +++ .../types/r2/super_slurper/__init__.py | 22 + .../connectivity_precheck_source_params.py | 76 ++ .../connectivity_precheck_source_response.py | 14 + .../connectivity_precheck_target_params.py | 28 + .../connectivity_precheck_target_response.py | 14 + .../super_slurper/job_abort_all_response.py | 7 + .../r2/super_slurper/job_abort_response.py | 7 + .../r2/super_slurper/job_create_params.py | 97 ++ .../r2/super_slurper/job_create_response.py | 13 + .../r2/super_slurper/job_get_response.py | 73 ++ .../types/r2/super_slurper/job_list_params.py | 15 + .../r2/super_slurper/job_list_response.py | 73 ++ .../r2/super_slurper/job_pause_response.py | 7 + .../r2/super_slurper/job_progress_response.py | 26 + .../r2/super_slurper/job_resume_response.py | 7 + .../types/r2/super_slurper/jobs/__init__.py | 6 + .../r2/super_slurper/jobs/log_list_params.py | 15 + .../super_slurper/jobs/log_list_response.py | 40 + .../r2/super_slurper/__init__.py | 1 + .../r2/super_slurper/jobs/__init__.py | 1 + .../r2/super_slurper/jobs/test_logs.py | 139 +++ .../test_connectivity_precheck.py | 439 +++++++++ .../r2/super_slurper/test_jobs.py | 806 ++++++++++++++++ 33 files changed, 3829 insertions(+), 2 deletions(-) create mode 100644 src/cloudflare/resources/r2/super_slurper/__init__.py create mode 100644 src/cloudflare/resources/r2/super_slurper/connectivity_precheck.py create mode 100644 src/cloudflare/resources/r2/super_slurper/jobs/__init__.py create mode 100644 src/cloudflare/resources/r2/super_slurper/jobs/jobs.py create mode 100644 src/cloudflare/resources/r2/super_slurper/jobs/logs.py create mode 100644 src/cloudflare/resources/r2/super_slurper/super_slurper.py create mode 100644 src/cloudflare/types/r2/super_slurper/__init__.py create mode 100644 src/cloudflare/types/r2/super_slurper/connectivity_precheck_source_params.py create mode 100644 src/cloudflare/types/r2/super_slurper/connectivity_precheck_source_response.py create mode 100644 src/cloudflare/types/r2/super_slurper/connectivity_precheck_target_params.py create mode 100644 src/cloudflare/types/r2/super_slurper/connectivity_precheck_target_response.py create mode 100644 src/cloudflare/types/r2/super_slurper/job_abort_all_response.py create mode 100644 src/cloudflare/types/r2/super_slurper/job_abort_response.py create mode 100644 src/cloudflare/types/r2/super_slurper/job_create_params.py create mode 100644 src/cloudflare/types/r2/super_slurper/job_create_response.py create mode 100644 src/cloudflare/types/r2/super_slurper/job_get_response.py create mode 100644 src/cloudflare/types/r2/super_slurper/job_list_params.py create mode 100644 src/cloudflare/types/r2/super_slurper/job_list_response.py create mode 100644 src/cloudflare/types/r2/super_slurper/job_pause_response.py create mode 100644 src/cloudflare/types/r2/super_slurper/job_progress_response.py create mode 100644 src/cloudflare/types/r2/super_slurper/job_resume_response.py create mode 100644 src/cloudflare/types/r2/super_slurper/jobs/__init__.py create mode 100644 src/cloudflare/types/r2/super_slurper/jobs/log_list_params.py create mode 100644 src/cloudflare/types/r2/super_slurper/jobs/log_list_response.py create mode 100644 tests/api_resources/r2/super_slurper/__init__.py create mode 100644 tests/api_resources/r2/super_slurper/jobs/__init__.py create mode 100644 tests/api_resources/r2/super_slurper/jobs/test_logs.py create mode 100644 tests/api_resources/r2/super_slurper/test_connectivity_precheck.py create mode 100644 tests/api_resources/r2/super_slurper/test_jobs.py diff --git a/.stats.yml b/.stats.yml index 4f762b88ca6..a44bc87b82e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 1664 +configured_endpoints: 1675 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e6020a67e862bf0a579c6977605f8e28657d6b161f107192512ac660a3b01858.yml openapi_spec_hash: 4e7b96ee4e75204fc2667400a1bf84ec -config_hash: af2dbb6a6332cef477c4697db6a78d79 +config_hash: 168e7bdbb3c1078b03a9370043cdf57e diff --git a/api.md b/api.md index d3f325677c8..87da860ac13 100644 --- a/api.md +++ b/api.md @@ -4965,6 +4965,64 @@ Methods: - client.r2.temporary_credentials.create(\*, account_id, \*\*params) -> TemporaryCredentialCreateResponse +## SuperSlurper + +### Jobs + +Types: + +```python +from cloudflare.types.r2.super_slurper import ( + JobCreateResponse, + JobListResponse, + JobAbortResponse, + JobAbortAllResponse, + JobGetResponse, + JobPauseResponse, + JobProgressResponse, + JobResumeResponse, +) +``` + +Methods: + +- client.r2.super_slurper.jobs.create(\*, account_id, \*\*params) -> Optional[JobCreateResponse] +- client.r2.super_slurper.jobs.list(\*, account_id, \*\*params) -> SyncSinglePage[JobListResponse] +- client.r2.super_slurper.jobs.abort(job_id, \*, account_id) -> str +- client.r2.super_slurper.jobs.abort_all(\*, account_id) -> str +- client.r2.super_slurper.jobs.get(job_id, \*, account_id) -> Optional[JobGetResponse] +- client.r2.super_slurper.jobs.pause(job_id, \*, account_id) -> str +- client.r2.super_slurper.jobs.progress(job_id, \*, account_id) -> Optional[JobProgressResponse] +- client.r2.super_slurper.jobs.resume(job_id, \*, account_id) -> str + +#### Logs + +Types: + +```python +from cloudflare.types.r2.super_slurper.jobs import LogListResponse +``` + +Methods: + +- client.r2.super_slurper.jobs.logs.list(job_id, \*, account_id, \*\*params) -> SyncSinglePage[LogListResponse] + +### ConnectivityPrecheck + +Types: + +```python +from cloudflare.types.r2.super_slurper import ( + ConnectivityPrecheckSourceResponse, + ConnectivityPrecheckTargetResponse, +) +``` + +Methods: + +- client.r2.super_slurper.connectivity_precheck.source(\*, account_id, \*\*params) -> Optional[ConnectivityPrecheckSourceResponse] +- client.r2.super_slurper.connectivity_precheck.target(\*, account_id, \*\*params) -> Optional[ConnectivityPrecheckTargetResponse] + # WorkersForPlatforms ## Dispatch diff --git a/src/cloudflare/resources/r2/__init__.py b/src/cloudflare/resources/r2/__init__.py index a6d06d8825e..113a102740f 100644 --- a/src/cloudflare/resources/r2/__init__.py +++ b/src/cloudflare/resources/r2/__init__.py @@ -16,6 +16,14 @@ BucketsResourceWithStreamingResponse, AsyncBucketsResourceWithStreamingResponse, ) +from .super_slurper import ( + SuperSlurperResource, + AsyncSuperSlurperResource, + SuperSlurperResourceWithRawResponse, + AsyncSuperSlurperResourceWithRawResponse, + SuperSlurperResourceWithStreamingResponse, + AsyncSuperSlurperResourceWithStreamingResponse, +) from .temporary_credentials import ( TemporaryCredentialsResource, AsyncTemporaryCredentialsResource, @@ -38,6 +46,12 @@ "AsyncTemporaryCredentialsResourceWithRawResponse", "TemporaryCredentialsResourceWithStreamingResponse", "AsyncTemporaryCredentialsResourceWithStreamingResponse", + "SuperSlurperResource", + "AsyncSuperSlurperResource", + "SuperSlurperResourceWithRawResponse", + "AsyncSuperSlurperResourceWithRawResponse", + "SuperSlurperResourceWithStreamingResponse", + "AsyncSuperSlurperResourceWithStreamingResponse", "R2Resource", "AsyncR2Resource", "R2ResourceWithRawResponse", diff --git a/src/cloudflare/resources/r2/r2.py b/src/cloudflare/resources/r2/r2.py index 63c7b95c21e..cf0e49106d0 100644 --- a/src/cloudflare/resources/r2/r2.py +++ b/src/cloudflare/resources/r2/r2.py @@ -20,6 +20,14 @@ TemporaryCredentialsResourceWithStreamingResponse, AsyncTemporaryCredentialsResourceWithStreamingResponse, ) +from .super_slurper.super_slurper import ( + SuperSlurperResource, + AsyncSuperSlurperResource, + SuperSlurperResourceWithRawResponse, + AsyncSuperSlurperResourceWithRawResponse, + SuperSlurperResourceWithStreamingResponse, + AsyncSuperSlurperResourceWithStreamingResponse, +) __all__ = ["R2Resource", "AsyncR2Resource"] @@ -33,6 +41,10 @@ def buckets(self) -> BucketsResource: def temporary_credentials(self) -> TemporaryCredentialsResource: return TemporaryCredentialsResource(self._client) + @cached_property + def super_slurper(self) -> SuperSlurperResource: + return SuperSlurperResource(self._client) + @cached_property def with_raw_response(self) -> R2ResourceWithRawResponse: """ @@ -62,6 +74,10 @@ def buckets(self) -> AsyncBucketsResource: def temporary_credentials(self) -> AsyncTemporaryCredentialsResource: return AsyncTemporaryCredentialsResource(self._client) + @cached_property + def super_slurper(self) -> AsyncSuperSlurperResource: + return AsyncSuperSlurperResource(self._client) + @cached_property def with_raw_response(self) -> AsyncR2ResourceWithRawResponse: """ @@ -94,6 +110,10 @@ def buckets(self) -> BucketsResourceWithRawResponse: def temporary_credentials(self) -> TemporaryCredentialsResourceWithRawResponse: return TemporaryCredentialsResourceWithRawResponse(self._r2.temporary_credentials) + @cached_property + def super_slurper(self) -> SuperSlurperResourceWithRawResponse: + return SuperSlurperResourceWithRawResponse(self._r2.super_slurper) + class AsyncR2ResourceWithRawResponse: def __init__(self, r2: AsyncR2Resource) -> None: @@ -107,6 +127,10 @@ def buckets(self) -> AsyncBucketsResourceWithRawResponse: def temporary_credentials(self) -> AsyncTemporaryCredentialsResourceWithRawResponse: return AsyncTemporaryCredentialsResourceWithRawResponse(self._r2.temporary_credentials) + @cached_property + def super_slurper(self) -> AsyncSuperSlurperResourceWithRawResponse: + return AsyncSuperSlurperResourceWithRawResponse(self._r2.super_slurper) + class R2ResourceWithStreamingResponse: def __init__(self, r2: R2Resource) -> None: @@ -120,6 +144,10 @@ def buckets(self) -> BucketsResourceWithStreamingResponse: def temporary_credentials(self) -> TemporaryCredentialsResourceWithStreamingResponse: return TemporaryCredentialsResourceWithStreamingResponse(self._r2.temporary_credentials) + @cached_property + def super_slurper(self) -> SuperSlurperResourceWithStreamingResponse: + return SuperSlurperResourceWithStreamingResponse(self._r2.super_slurper) + class AsyncR2ResourceWithStreamingResponse: def __init__(self, r2: AsyncR2Resource) -> None: @@ -132,3 +160,7 @@ def buckets(self) -> AsyncBucketsResourceWithStreamingResponse: @cached_property def temporary_credentials(self) -> AsyncTemporaryCredentialsResourceWithStreamingResponse: return AsyncTemporaryCredentialsResourceWithStreamingResponse(self._r2.temporary_credentials) + + @cached_property + def super_slurper(self) -> AsyncSuperSlurperResourceWithStreamingResponse: + return AsyncSuperSlurperResourceWithStreamingResponse(self._r2.super_slurper) diff --git a/src/cloudflare/resources/r2/super_slurper/__init__.py b/src/cloudflare/resources/r2/super_slurper/__init__.py new file mode 100644 index 00000000000..42bcb91e3ea --- /dev/null +++ b/src/cloudflare/resources/r2/super_slurper/__init__.py @@ -0,0 +1,47 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from .jobs import ( + JobsResource, + AsyncJobsResource, + JobsResourceWithRawResponse, + AsyncJobsResourceWithRawResponse, + JobsResourceWithStreamingResponse, + AsyncJobsResourceWithStreamingResponse, +) +from .super_slurper import ( + SuperSlurperResource, + AsyncSuperSlurperResource, + SuperSlurperResourceWithRawResponse, + AsyncSuperSlurperResourceWithRawResponse, + SuperSlurperResourceWithStreamingResponse, + AsyncSuperSlurperResourceWithStreamingResponse, +) +from .connectivity_precheck import ( + ConnectivityPrecheckResource, + AsyncConnectivityPrecheckResource, + ConnectivityPrecheckResourceWithRawResponse, + AsyncConnectivityPrecheckResourceWithRawResponse, + ConnectivityPrecheckResourceWithStreamingResponse, + AsyncConnectivityPrecheckResourceWithStreamingResponse, +) + +__all__ = [ + "JobsResource", + "AsyncJobsResource", + "JobsResourceWithRawResponse", + "AsyncJobsResourceWithRawResponse", + "JobsResourceWithStreamingResponse", + "AsyncJobsResourceWithStreamingResponse", + "ConnectivityPrecheckResource", + "AsyncConnectivityPrecheckResource", + "ConnectivityPrecheckResourceWithRawResponse", + "AsyncConnectivityPrecheckResourceWithRawResponse", + "ConnectivityPrecheckResourceWithStreamingResponse", + "AsyncConnectivityPrecheckResourceWithStreamingResponse", + "SuperSlurperResource", + "AsyncSuperSlurperResource", + "SuperSlurperResourceWithRawResponse", + "AsyncSuperSlurperResourceWithRawResponse", + "SuperSlurperResourceWithStreamingResponse", + "AsyncSuperSlurperResourceWithStreamingResponse", +] diff --git a/src/cloudflare/resources/r2/super_slurper/connectivity_precheck.py b/src/cloudflare/resources/r2/super_slurper/connectivity_precheck.py new file mode 100644 index 00000000000..1517bc8f01e --- /dev/null +++ b/src/cloudflare/resources/r2/super_slurper/connectivity_precheck.py @@ -0,0 +1,494 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Type, Optional, cast +from typing_extensions import Literal, overload + +import httpx + +from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven +from ...._utils import ( + required_args, + maybe_transform, + async_maybe_transform, +) +from ...._compat import cached_property +from ...._resource import SyncAPIResource, AsyncAPIResource +from ...._response import ( + to_raw_response_wrapper, + to_streamed_response_wrapper, + async_to_raw_response_wrapper, + async_to_streamed_response_wrapper, +) +from ...._wrappers import ResultWrapper +from ...._base_client import make_request_options +from ....types.r2.buckets import Provider +from ....types.r2.super_slurper import connectivity_precheck_source_params, connectivity_precheck_target_params +from ....types.r2.buckets.provider import Provider +from ....types.r2.super_slurper.connectivity_precheck_source_response import ConnectivityPrecheckSourceResponse +from ....types.r2.super_slurper.connectivity_precheck_target_response import ConnectivityPrecheckTargetResponse + +__all__ = ["ConnectivityPrecheckResource", "AsyncConnectivityPrecheckResource"] + + +class ConnectivityPrecheckResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> ConnectivityPrecheckResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return ConnectivityPrecheckResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> ConnectivityPrecheckResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return ConnectivityPrecheckResourceWithStreamingResponse(self) + + @overload + def source( + self, + *, + account_id: str, + bucket: str | NotGiven = NOT_GIVEN, + endpoint: Optional[str] | NotGiven = NOT_GIVEN, + secret: connectivity_precheck_source_params.R2SlurperS3SourceSchemaSecret | NotGiven = NOT_GIVEN, + vendor: Literal["s3"] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[ConnectivityPrecheckSourceResponse]: + """ + Check whether tokens are valid against the source bucket + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + + @overload + def source( + self, + *, + account_id: str, + bucket: str | NotGiven = NOT_GIVEN, + secret: connectivity_precheck_source_params.R2SlurperGcsSourceSchemaSecret | NotGiven = NOT_GIVEN, + vendor: Literal["gcs"] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[ConnectivityPrecheckSourceResponse]: + """ + Check whether tokens are valid against the source bucket + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + + @overload + def source( + self, + *, + account_id: str, + bucket: str | NotGiven = NOT_GIVEN, + jurisdiction: Literal["default", "eu", "fedramp"] | NotGiven = NOT_GIVEN, + secret: connectivity_precheck_source_params.R2SlurperR2SourceSchemaSecret | NotGiven = NOT_GIVEN, + vendor: Provider | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[ConnectivityPrecheckSourceResponse]: + """ + Check whether tokens are valid against the source bucket + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + + @required_args(["account_id"]) + def source( + self, + *, + account_id: str, + bucket: str | NotGiven = NOT_GIVEN, + endpoint: Optional[str] | NotGiven = NOT_GIVEN, + secret: connectivity_precheck_source_params.R2SlurperS3SourceSchemaSecret + | connectivity_precheck_source_params.R2SlurperGcsSourceSchemaSecret + | NotGiven = NOT_GIVEN, + vendor: Literal["s3"] | Literal["gcs"] | Provider | NotGiven = NOT_GIVEN, + jurisdiction: Literal["default", "eu", "fedramp"] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[ConnectivityPrecheckSourceResponse]: + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return self._put( + f"/accounts/{account_id}/slurper/source/connectivity-precheck", + body=maybe_transform( + { + "bucket": bucket, + "endpoint": endpoint, + "secret": secret, + "vendor": vendor, + "jurisdiction": jurisdiction, + }, + connectivity_precheck_source_params.ConnectivityPrecheckSourceParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[ConnectivityPrecheckSourceResponse]]._unwrapper, + ), + cast_to=cast( + Type[Optional[ConnectivityPrecheckSourceResponse]], ResultWrapper[ConnectivityPrecheckSourceResponse] + ), + ) + + def target( + self, + *, + account_id: str, + bucket: str | NotGiven = NOT_GIVEN, + jurisdiction: Literal["default", "eu", "fedramp"] | NotGiven = NOT_GIVEN, + secret: connectivity_precheck_target_params.Secret | NotGiven = NOT_GIVEN, + vendor: Provider | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[ConnectivityPrecheckTargetResponse]: + """ + Check whether tokens are valid against the target bucket + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return self._put( + f"/accounts/{account_id}/slurper/target/connectivity-precheck", + body=maybe_transform( + { + "bucket": bucket, + "jurisdiction": jurisdiction, + "secret": secret, + "vendor": vendor, + }, + connectivity_precheck_target_params.ConnectivityPrecheckTargetParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[ConnectivityPrecheckTargetResponse]]._unwrapper, + ), + cast_to=cast( + Type[Optional[ConnectivityPrecheckTargetResponse]], ResultWrapper[ConnectivityPrecheckTargetResponse] + ), + ) + + +class AsyncConnectivityPrecheckResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncConnectivityPrecheckResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return AsyncConnectivityPrecheckResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncConnectivityPrecheckResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return AsyncConnectivityPrecheckResourceWithStreamingResponse(self) + + @overload + async def source( + self, + *, + account_id: str, + bucket: str | NotGiven = NOT_GIVEN, + endpoint: Optional[str] | NotGiven = NOT_GIVEN, + secret: connectivity_precheck_source_params.R2SlurperS3SourceSchemaSecret | NotGiven = NOT_GIVEN, + vendor: Literal["s3"] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[ConnectivityPrecheckSourceResponse]: + """ + Check whether tokens are valid against the source bucket + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + + @overload + async def source( + self, + *, + account_id: str, + bucket: str | NotGiven = NOT_GIVEN, + secret: connectivity_precheck_source_params.R2SlurperGcsSourceSchemaSecret | NotGiven = NOT_GIVEN, + vendor: Literal["gcs"] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[ConnectivityPrecheckSourceResponse]: + """ + Check whether tokens are valid against the source bucket + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + + @overload + async def source( + self, + *, + account_id: str, + bucket: str | NotGiven = NOT_GIVEN, + jurisdiction: Literal["default", "eu", "fedramp"] | NotGiven = NOT_GIVEN, + secret: connectivity_precheck_source_params.R2SlurperR2SourceSchemaSecret | NotGiven = NOT_GIVEN, + vendor: Provider | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[ConnectivityPrecheckSourceResponse]: + """ + Check whether tokens are valid against the source bucket + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + + @required_args(["account_id"]) + async def source( + self, + *, + account_id: str, + bucket: str | NotGiven = NOT_GIVEN, + endpoint: Optional[str] | NotGiven = NOT_GIVEN, + secret: connectivity_precheck_source_params.R2SlurperS3SourceSchemaSecret + | connectivity_precheck_source_params.R2SlurperGcsSourceSchemaSecret + | NotGiven = NOT_GIVEN, + vendor: Literal["s3"] | Literal["gcs"] | Provider | NotGiven = NOT_GIVEN, + jurisdiction: Literal["default", "eu", "fedramp"] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[ConnectivityPrecheckSourceResponse]: + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return await self._put( + f"/accounts/{account_id}/slurper/source/connectivity-precheck", + body=await async_maybe_transform( + { + "bucket": bucket, + "endpoint": endpoint, + "secret": secret, + "vendor": vendor, + "jurisdiction": jurisdiction, + }, + connectivity_precheck_source_params.ConnectivityPrecheckSourceParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[ConnectivityPrecheckSourceResponse]]._unwrapper, + ), + cast_to=cast( + Type[Optional[ConnectivityPrecheckSourceResponse]], ResultWrapper[ConnectivityPrecheckSourceResponse] + ), + ) + + async def target( + self, + *, + account_id: str, + bucket: str | NotGiven = NOT_GIVEN, + jurisdiction: Literal["default", "eu", "fedramp"] | NotGiven = NOT_GIVEN, + secret: connectivity_precheck_target_params.Secret | NotGiven = NOT_GIVEN, + vendor: Provider | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[ConnectivityPrecheckTargetResponse]: + """ + Check whether tokens are valid against the target bucket + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return await self._put( + f"/accounts/{account_id}/slurper/target/connectivity-precheck", + body=await async_maybe_transform( + { + "bucket": bucket, + "jurisdiction": jurisdiction, + "secret": secret, + "vendor": vendor, + }, + connectivity_precheck_target_params.ConnectivityPrecheckTargetParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[ConnectivityPrecheckTargetResponse]]._unwrapper, + ), + cast_to=cast( + Type[Optional[ConnectivityPrecheckTargetResponse]], ResultWrapper[ConnectivityPrecheckTargetResponse] + ), + ) + + +class ConnectivityPrecheckResourceWithRawResponse: + def __init__(self, connectivity_precheck: ConnectivityPrecheckResource) -> None: + self._connectivity_precheck = connectivity_precheck + + self.source = to_raw_response_wrapper( + connectivity_precheck.source, + ) + self.target = to_raw_response_wrapper( + connectivity_precheck.target, + ) + + +class AsyncConnectivityPrecheckResourceWithRawResponse: + def __init__(self, connectivity_precheck: AsyncConnectivityPrecheckResource) -> None: + self._connectivity_precheck = connectivity_precheck + + self.source = async_to_raw_response_wrapper( + connectivity_precheck.source, + ) + self.target = async_to_raw_response_wrapper( + connectivity_precheck.target, + ) + + +class ConnectivityPrecheckResourceWithStreamingResponse: + def __init__(self, connectivity_precheck: ConnectivityPrecheckResource) -> None: + self._connectivity_precheck = connectivity_precheck + + self.source = to_streamed_response_wrapper( + connectivity_precheck.source, + ) + self.target = to_streamed_response_wrapper( + connectivity_precheck.target, + ) + + +class AsyncConnectivityPrecheckResourceWithStreamingResponse: + def __init__(self, connectivity_precheck: AsyncConnectivityPrecheckResource) -> None: + self._connectivity_precheck = connectivity_precheck + + self.source = async_to_streamed_response_wrapper( + connectivity_precheck.source, + ) + self.target = async_to_streamed_response_wrapper( + connectivity_precheck.target, + ) diff --git a/src/cloudflare/resources/r2/super_slurper/jobs/__init__.py b/src/cloudflare/resources/r2/super_slurper/jobs/__init__.py new file mode 100644 index 00000000000..067feb63fab --- /dev/null +++ b/src/cloudflare/resources/r2/super_slurper/jobs/__init__.py @@ -0,0 +1,33 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from .jobs import ( + JobsResource, + AsyncJobsResource, + JobsResourceWithRawResponse, + AsyncJobsResourceWithRawResponse, + JobsResourceWithStreamingResponse, + AsyncJobsResourceWithStreamingResponse, +) +from .logs import ( + LogsResource, + AsyncLogsResource, + LogsResourceWithRawResponse, + AsyncLogsResourceWithRawResponse, + LogsResourceWithStreamingResponse, + AsyncLogsResourceWithStreamingResponse, +) + +__all__ = [ + "LogsResource", + "AsyncLogsResource", + "LogsResourceWithRawResponse", + "AsyncLogsResourceWithRawResponse", + "LogsResourceWithStreamingResponse", + "AsyncLogsResourceWithStreamingResponse", + "JobsResource", + "AsyncJobsResource", + "JobsResourceWithRawResponse", + "AsyncJobsResourceWithRawResponse", + "JobsResourceWithStreamingResponse", + "AsyncJobsResourceWithStreamingResponse", +] diff --git a/src/cloudflare/resources/r2/super_slurper/jobs/jobs.py b/src/cloudflare/resources/r2/super_slurper/jobs/jobs.py new file mode 100644 index 00000000000..15467dc7d4e --- /dev/null +++ b/src/cloudflare/resources/r2/super_slurper/jobs/jobs.py @@ -0,0 +1,891 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Type, Optional, cast + +import httpx + +from .logs import ( + LogsResource, + AsyncLogsResource, + LogsResourceWithRawResponse, + AsyncLogsResourceWithRawResponse, + LogsResourceWithStreamingResponse, + AsyncLogsResourceWithStreamingResponse, +) +from ....._types import NOT_GIVEN, Body, Query, Headers, NotGiven +from ....._utils import ( + maybe_transform, + async_maybe_transform, +) +from ....._compat import cached_property +from ....._resource import SyncAPIResource, AsyncAPIResource +from ....._response import ( + to_raw_response_wrapper, + to_streamed_response_wrapper, + async_to_raw_response_wrapper, + async_to_streamed_response_wrapper, +) +from ....._wrappers import ResultWrapper +from .....pagination import SyncSinglePage, AsyncSinglePage +from ....._base_client import AsyncPaginator, make_request_options +from .....types.r2.super_slurper import job_list_params, job_create_params +from .....types.r2.super_slurper.job_get_response import JobGetResponse +from .....types.r2.super_slurper.job_list_response import JobListResponse +from .....types.r2.super_slurper.job_abort_response import JobAbortResponse +from .....types.r2.super_slurper.job_pause_response import JobPauseResponse +from .....types.r2.super_slurper.job_create_response import JobCreateResponse +from .....types.r2.super_slurper.job_resume_response import JobResumeResponse +from .....types.r2.super_slurper.job_progress_response import JobProgressResponse +from .....types.r2.super_slurper.job_abort_all_response import JobAbortAllResponse + +__all__ = ["JobsResource", "AsyncJobsResource"] + + +class JobsResource(SyncAPIResource): + @cached_property + def logs(self) -> LogsResource: + return LogsResource(self._client) + + @cached_property + def with_raw_response(self) -> JobsResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return JobsResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> JobsResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return JobsResourceWithStreamingResponse(self) + + def create( + self, + *, + account_id: str, + overwrite: bool | NotGiven = NOT_GIVEN, + source: job_create_params.Source | NotGiven = NOT_GIVEN, + target: job_create_params.Target | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[JobCreateResponse]: + """ + Create a job + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return self._post( + f"/accounts/{account_id}/slurper/jobs", + body=maybe_transform( + { + "overwrite": overwrite, + "source": source, + "target": target, + }, + job_create_params.JobCreateParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobCreateResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[JobCreateResponse]], ResultWrapper[JobCreateResponse]), + ) + + def list( + self, + *, + account_id: str, + limit: int | NotGiven = NOT_GIVEN, + offset: int | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> SyncSinglePage[JobListResponse]: + """ + List jobs + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return self._get_api_list( + f"/accounts/{account_id}/slurper/jobs", + page=SyncSinglePage[JobListResponse], + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "limit": limit, + "offset": offset, + }, + job_list_params.JobListParams, + ), + ), + model=JobListResponse, + ) + + def abort( + self, + job_id: str, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> str: + """ + Abort a job + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not job_id: + raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}") + return self._put( + f"/accounts/{account_id}/slurper/jobs/{job_id}/abort", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobAbortResponse]]._unwrapper, + ), + cast_to=cast(Type[str], ResultWrapper[str]), + ) + + def abort_all( + self, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> str: + """ + Abort all jobs + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return self._put( + f"/accounts/{account_id}/slurper/jobs/abortAll", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobAbortAllResponse]]._unwrapper, + ), + cast_to=cast(Type[str], ResultWrapper[str]), + ) + + def get( + self, + job_id: str, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[JobGetResponse]: + """ + Get job details + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not job_id: + raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}") + return self._get( + f"/accounts/{account_id}/slurper/jobs/{job_id}", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobGetResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[JobGetResponse]], ResultWrapper[JobGetResponse]), + ) + + def pause( + self, + job_id: str, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> str: + """ + Pause a job + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not job_id: + raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}") + return self._put( + f"/accounts/{account_id}/slurper/jobs/{job_id}/pause", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobPauseResponse]]._unwrapper, + ), + cast_to=cast(Type[str], ResultWrapper[str]), + ) + + def progress( + self, + job_id: str, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[JobProgressResponse]: + """ + Get job progress + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not job_id: + raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}") + return self._get( + f"/accounts/{account_id}/slurper/jobs/{job_id}/progress", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobProgressResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[JobProgressResponse]], ResultWrapper[JobProgressResponse]), + ) + + def resume( + self, + job_id: str, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> str: + """ + Resume a job + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not job_id: + raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}") + return self._put( + f"/accounts/{account_id}/slurper/jobs/{job_id}/resume", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobResumeResponse]]._unwrapper, + ), + cast_to=cast(Type[str], ResultWrapper[str]), + ) + + +class AsyncJobsResource(AsyncAPIResource): + @cached_property + def logs(self) -> AsyncLogsResource: + return AsyncLogsResource(self._client) + + @cached_property + def with_raw_response(self) -> AsyncJobsResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return AsyncJobsResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncJobsResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return AsyncJobsResourceWithStreamingResponse(self) + + async def create( + self, + *, + account_id: str, + overwrite: bool | NotGiven = NOT_GIVEN, + source: job_create_params.Source | NotGiven = NOT_GIVEN, + target: job_create_params.Target | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[JobCreateResponse]: + """ + Create a job + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return await self._post( + f"/accounts/{account_id}/slurper/jobs", + body=await async_maybe_transform( + { + "overwrite": overwrite, + "source": source, + "target": target, + }, + job_create_params.JobCreateParams, + ), + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobCreateResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[JobCreateResponse]], ResultWrapper[JobCreateResponse]), + ) + + def list( + self, + *, + account_id: str, + limit: int | NotGiven = NOT_GIVEN, + offset: int | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> AsyncPaginator[JobListResponse, AsyncSinglePage[JobListResponse]]: + """ + List jobs + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return self._get_api_list( + f"/accounts/{account_id}/slurper/jobs", + page=AsyncSinglePage[JobListResponse], + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "limit": limit, + "offset": offset, + }, + job_list_params.JobListParams, + ), + ), + model=JobListResponse, + ) + + async def abort( + self, + job_id: str, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> str: + """ + Abort a job + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not job_id: + raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}") + return await self._put( + f"/accounts/{account_id}/slurper/jobs/{job_id}/abort", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobAbortResponse]]._unwrapper, + ), + cast_to=cast(Type[str], ResultWrapper[str]), + ) + + async def abort_all( + self, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> str: + """ + Abort all jobs + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + return await self._put( + f"/accounts/{account_id}/slurper/jobs/abortAll", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobAbortAllResponse]]._unwrapper, + ), + cast_to=cast(Type[str], ResultWrapper[str]), + ) + + async def get( + self, + job_id: str, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[JobGetResponse]: + """ + Get job details + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not job_id: + raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}") + return await self._get( + f"/accounts/{account_id}/slurper/jobs/{job_id}", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobGetResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[JobGetResponse]], ResultWrapper[JobGetResponse]), + ) + + async def pause( + self, + job_id: str, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> str: + """ + Pause a job + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not job_id: + raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}") + return await self._put( + f"/accounts/{account_id}/slurper/jobs/{job_id}/pause", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobPauseResponse]]._unwrapper, + ), + cast_to=cast(Type[str], ResultWrapper[str]), + ) + + async def progress( + self, + job_id: str, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Optional[JobProgressResponse]: + """ + Get job progress + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not job_id: + raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}") + return await self._get( + f"/accounts/{account_id}/slurper/jobs/{job_id}/progress", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobProgressResponse]]._unwrapper, + ), + cast_to=cast(Type[Optional[JobProgressResponse]], ResultWrapper[JobProgressResponse]), + ) + + async def resume( + self, + job_id: str, + *, + account_id: str, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> str: + """ + Resume a job + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not job_id: + raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}") + return await self._put( + f"/accounts/{account_id}/slurper/jobs/{job_id}/resume", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=ResultWrapper[Optional[JobResumeResponse]]._unwrapper, + ), + cast_to=cast(Type[str], ResultWrapper[str]), + ) + + +class JobsResourceWithRawResponse: + def __init__(self, jobs: JobsResource) -> None: + self._jobs = jobs + + self.create = to_raw_response_wrapper( + jobs.create, + ) + self.list = to_raw_response_wrapper( + jobs.list, + ) + self.abort = to_raw_response_wrapper( + jobs.abort, + ) + self.abort_all = to_raw_response_wrapper( + jobs.abort_all, + ) + self.get = to_raw_response_wrapper( + jobs.get, + ) + self.pause = to_raw_response_wrapper( + jobs.pause, + ) + self.progress = to_raw_response_wrapper( + jobs.progress, + ) + self.resume = to_raw_response_wrapper( + jobs.resume, + ) + + @cached_property + def logs(self) -> LogsResourceWithRawResponse: + return LogsResourceWithRawResponse(self._jobs.logs) + + +class AsyncJobsResourceWithRawResponse: + def __init__(self, jobs: AsyncJobsResource) -> None: + self._jobs = jobs + + self.create = async_to_raw_response_wrapper( + jobs.create, + ) + self.list = async_to_raw_response_wrapper( + jobs.list, + ) + self.abort = async_to_raw_response_wrapper( + jobs.abort, + ) + self.abort_all = async_to_raw_response_wrapper( + jobs.abort_all, + ) + self.get = async_to_raw_response_wrapper( + jobs.get, + ) + self.pause = async_to_raw_response_wrapper( + jobs.pause, + ) + self.progress = async_to_raw_response_wrapper( + jobs.progress, + ) + self.resume = async_to_raw_response_wrapper( + jobs.resume, + ) + + @cached_property + def logs(self) -> AsyncLogsResourceWithRawResponse: + return AsyncLogsResourceWithRawResponse(self._jobs.logs) + + +class JobsResourceWithStreamingResponse: + def __init__(self, jobs: JobsResource) -> None: + self._jobs = jobs + + self.create = to_streamed_response_wrapper( + jobs.create, + ) + self.list = to_streamed_response_wrapper( + jobs.list, + ) + self.abort = to_streamed_response_wrapper( + jobs.abort, + ) + self.abort_all = to_streamed_response_wrapper( + jobs.abort_all, + ) + self.get = to_streamed_response_wrapper( + jobs.get, + ) + self.pause = to_streamed_response_wrapper( + jobs.pause, + ) + self.progress = to_streamed_response_wrapper( + jobs.progress, + ) + self.resume = to_streamed_response_wrapper( + jobs.resume, + ) + + @cached_property + def logs(self) -> LogsResourceWithStreamingResponse: + return LogsResourceWithStreamingResponse(self._jobs.logs) + + +class AsyncJobsResourceWithStreamingResponse: + def __init__(self, jobs: AsyncJobsResource) -> None: + self._jobs = jobs + + self.create = async_to_streamed_response_wrapper( + jobs.create, + ) + self.list = async_to_streamed_response_wrapper( + jobs.list, + ) + self.abort = async_to_streamed_response_wrapper( + jobs.abort, + ) + self.abort_all = async_to_streamed_response_wrapper( + jobs.abort_all, + ) + self.get = async_to_streamed_response_wrapper( + jobs.get, + ) + self.pause = async_to_streamed_response_wrapper( + jobs.pause, + ) + self.progress = async_to_streamed_response_wrapper( + jobs.progress, + ) + self.resume = async_to_streamed_response_wrapper( + jobs.resume, + ) + + @cached_property + def logs(self) -> AsyncLogsResourceWithStreamingResponse: + return AsyncLogsResourceWithStreamingResponse(self._jobs.logs) diff --git a/src/cloudflare/resources/r2/super_slurper/jobs/logs.py b/src/cloudflare/resources/r2/super_slurper/jobs/logs.py new file mode 100644 index 00000000000..bb8d0886aa5 --- /dev/null +++ b/src/cloudflare/resources/r2/super_slurper/jobs/logs.py @@ -0,0 +1,198 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import httpx + +from ....._types import NOT_GIVEN, Body, Query, Headers, NotGiven +from ....._utils import maybe_transform +from ....._compat import cached_property +from ....._resource import SyncAPIResource, AsyncAPIResource +from ....._response import ( + to_raw_response_wrapper, + to_streamed_response_wrapper, + async_to_raw_response_wrapper, + async_to_streamed_response_wrapper, +) +from .....pagination import SyncSinglePage, AsyncSinglePage +from ....._base_client import AsyncPaginator, make_request_options +from .....types.r2.super_slurper.jobs import log_list_params +from .....types.r2.super_slurper.jobs.log_list_response import LogListResponse + +__all__ = ["LogsResource", "AsyncLogsResource"] + + +class LogsResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> LogsResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return LogsResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> LogsResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return LogsResourceWithStreamingResponse(self) + + def list( + self, + job_id: str, + *, + account_id: str, + limit: int | NotGiven = NOT_GIVEN, + offset: int | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> SyncSinglePage[LogListResponse]: + """ + Get job logs + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not job_id: + raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}") + return self._get_api_list( + f"/accounts/{account_id}/slurper/jobs/{job_id}/logs", + page=SyncSinglePage[LogListResponse], + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "limit": limit, + "offset": offset, + }, + log_list_params.LogListParams, + ), + ), + model=LogListResponse, + ) + + +class AsyncLogsResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncLogsResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return AsyncLogsResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncLogsResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return AsyncLogsResourceWithStreamingResponse(self) + + def list( + self, + job_id: str, + *, + account_id: str, + limit: int | NotGiven = NOT_GIVEN, + offset: int | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> AsyncPaginator[LogListResponse, AsyncSinglePage[LogListResponse]]: + """ + Get job logs + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not account_id: + raise ValueError(f"Expected a non-empty value for `account_id` but received {account_id!r}") + if not job_id: + raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}") + return self._get_api_list( + f"/accounts/{account_id}/slurper/jobs/{job_id}/logs", + page=AsyncSinglePage[LogListResponse], + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "limit": limit, + "offset": offset, + }, + log_list_params.LogListParams, + ), + ), + model=LogListResponse, + ) + + +class LogsResourceWithRawResponse: + def __init__(self, logs: LogsResource) -> None: + self._logs = logs + + self.list = to_raw_response_wrapper( + logs.list, + ) + + +class AsyncLogsResourceWithRawResponse: + def __init__(self, logs: AsyncLogsResource) -> None: + self._logs = logs + + self.list = async_to_raw_response_wrapper( + logs.list, + ) + + +class LogsResourceWithStreamingResponse: + def __init__(self, logs: LogsResource) -> None: + self._logs = logs + + self.list = to_streamed_response_wrapper( + logs.list, + ) + + +class AsyncLogsResourceWithStreamingResponse: + def __init__(self, logs: AsyncLogsResource) -> None: + self._logs = logs + + self.list = async_to_streamed_response_wrapper( + logs.list, + ) diff --git a/src/cloudflare/resources/r2/super_slurper/super_slurper.py b/src/cloudflare/resources/r2/super_slurper/super_slurper.py new file mode 100644 index 00000000000..3e4820a8dbc --- /dev/null +++ b/src/cloudflare/resources/r2/super_slurper/super_slurper.py @@ -0,0 +1,134 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from .jobs.jobs import ( + JobsResource, + AsyncJobsResource, + JobsResourceWithRawResponse, + AsyncJobsResourceWithRawResponse, + JobsResourceWithStreamingResponse, + AsyncJobsResourceWithStreamingResponse, +) +from ...._compat import cached_property +from ...._resource import SyncAPIResource, AsyncAPIResource +from .connectivity_precheck import ( + ConnectivityPrecheckResource, + AsyncConnectivityPrecheckResource, + ConnectivityPrecheckResourceWithRawResponse, + AsyncConnectivityPrecheckResourceWithRawResponse, + ConnectivityPrecheckResourceWithStreamingResponse, + AsyncConnectivityPrecheckResourceWithStreamingResponse, +) + +__all__ = ["SuperSlurperResource", "AsyncSuperSlurperResource"] + + +class SuperSlurperResource(SyncAPIResource): + @cached_property + def jobs(self) -> JobsResource: + return JobsResource(self._client) + + @cached_property + def connectivity_precheck(self) -> ConnectivityPrecheckResource: + return ConnectivityPrecheckResource(self._client) + + @cached_property + def with_raw_response(self) -> SuperSlurperResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return SuperSlurperResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> SuperSlurperResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return SuperSlurperResourceWithStreamingResponse(self) + + +class AsyncSuperSlurperResource(AsyncAPIResource): + @cached_property + def jobs(self) -> AsyncJobsResource: + return AsyncJobsResource(self._client) + + @cached_property + def connectivity_precheck(self) -> AsyncConnectivityPrecheckResource: + return AsyncConnectivityPrecheckResource(self._client) + + @cached_property + def with_raw_response(self) -> AsyncSuperSlurperResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return AsyncSuperSlurperResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncSuperSlurperResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return AsyncSuperSlurperResourceWithStreamingResponse(self) + + +class SuperSlurperResourceWithRawResponse: + def __init__(self, super_slurper: SuperSlurperResource) -> None: + self._super_slurper = super_slurper + + @cached_property + def jobs(self) -> JobsResourceWithRawResponse: + return JobsResourceWithRawResponse(self._super_slurper.jobs) + + @cached_property + def connectivity_precheck(self) -> ConnectivityPrecheckResourceWithRawResponse: + return ConnectivityPrecheckResourceWithRawResponse(self._super_slurper.connectivity_precheck) + + +class AsyncSuperSlurperResourceWithRawResponse: + def __init__(self, super_slurper: AsyncSuperSlurperResource) -> None: + self._super_slurper = super_slurper + + @cached_property + def jobs(self) -> AsyncJobsResourceWithRawResponse: + return AsyncJobsResourceWithRawResponse(self._super_slurper.jobs) + + @cached_property + def connectivity_precheck(self) -> AsyncConnectivityPrecheckResourceWithRawResponse: + return AsyncConnectivityPrecheckResourceWithRawResponse(self._super_slurper.connectivity_precheck) + + +class SuperSlurperResourceWithStreamingResponse: + def __init__(self, super_slurper: SuperSlurperResource) -> None: + self._super_slurper = super_slurper + + @cached_property + def jobs(self) -> JobsResourceWithStreamingResponse: + return JobsResourceWithStreamingResponse(self._super_slurper.jobs) + + @cached_property + def connectivity_precheck(self) -> ConnectivityPrecheckResourceWithStreamingResponse: + return ConnectivityPrecheckResourceWithStreamingResponse(self._super_slurper.connectivity_precheck) + + +class AsyncSuperSlurperResourceWithStreamingResponse: + def __init__(self, super_slurper: AsyncSuperSlurperResource) -> None: + self._super_slurper = super_slurper + + @cached_property + def jobs(self) -> AsyncJobsResourceWithStreamingResponse: + return AsyncJobsResourceWithStreamingResponse(self._super_slurper.jobs) + + @cached_property + def connectivity_precheck(self) -> AsyncConnectivityPrecheckResourceWithStreamingResponse: + return AsyncConnectivityPrecheckResourceWithStreamingResponse(self._super_slurper.connectivity_precheck) diff --git a/src/cloudflare/types/r2/super_slurper/__init__.py b/src/cloudflare/types/r2/super_slurper/__init__.py new file mode 100644 index 00000000000..1c490b08ede --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/__init__.py @@ -0,0 +1,22 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from .job_list_params import JobListParams as JobListParams +from .job_get_response import JobGetResponse as JobGetResponse +from .job_create_params import JobCreateParams as JobCreateParams +from .job_list_response import JobListResponse as JobListResponse +from .job_abort_response import JobAbortResponse as JobAbortResponse +from .job_pause_response import JobPauseResponse as JobPauseResponse +from .job_create_response import JobCreateResponse as JobCreateResponse +from .job_resume_response import JobResumeResponse as JobResumeResponse +from .job_progress_response import JobProgressResponse as JobProgressResponse +from .job_abort_all_response import JobAbortAllResponse as JobAbortAllResponse +from .connectivity_precheck_source_params import ConnectivityPrecheckSourceParams as ConnectivityPrecheckSourceParams +from .connectivity_precheck_target_params import ConnectivityPrecheckTargetParams as ConnectivityPrecheckTargetParams +from .connectivity_precheck_source_response import ( + ConnectivityPrecheckSourceResponse as ConnectivityPrecheckSourceResponse, +) +from .connectivity_precheck_target_response import ( + ConnectivityPrecheckTargetResponse as ConnectivityPrecheckTargetResponse, +) diff --git a/src/cloudflare/types/r2/super_slurper/connectivity_precheck_source_params.py b/src/cloudflare/types/r2/super_slurper/connectivity_precheck_source_params.py new file mode 100644 index 00000000000..3255b63442a --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/connectivity_precheck_source_params.py @@ -0,0 +1,76 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Union, Optional +from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict + +from ...._utils import PropertyInfo +from ..buckets.provider import Provider + +__all__ = [ + "ConnectivityPrecheckSourceParams", + "R2SlurperS3SourceSchema", + "R2SlurperS3SourceSchemaSecret", + "R2SlurperGcsSourceSchema", + "R2SlurperGcsSourceSchemaSecret", + "R2SlurperR2SourceSchema", + "R2SlurperR2SourceSchemaSecret", +] + + +class R2SlurperS3SourceSchema(TypedDict, total=False): + account_id: Required[str] + + bucket: str + + endpoint: Optional[str] + + secret: R2SlurperS3SourceSchemaSecret + + vendor: Literal["s3"] + + +class R2SlurperS3SourceSchemaSecret(TypedDict, total=False): + access_key_id: Annotated[str, PropertyInfo(alias="accessKeyId")] + + secret_access_key: Annotated[str, PropertyInfo(alias="secretAccessKey")] + + +class R2SlurperGcsSourceSchema(TypedDict, total=False): + account_id: Required[str] + + bucket: str + + secret: R2SlurperGcsSourceSchemaSecret + + vendor: Literal["gcs"] + + +class R2SlurperGcsSourceSchemaSecret(TypedDict, total=False): + client_email: Annotated[str, PropertyInfo(alias="clientEmail")] + + private_key: Annotated[str, PropertyInfo(alias="privateKey")] + + +class R2SlurperR2SourceSchema(TypedDict, total=False): + account_id: Required[str] + + bucket: str + + jurisdiction: Literal["default", "eu", "fedramp"] + + secret: R2SlurperR2SourceSchemaSecret + + vendor: Provider + + +class R2SlurperR2SourceSchemaSecret(TypedDict, total=False): + access_key_id: Annotated[str, PropertyInfo(alias="accessKeyId")] + + secret_access_key: Annotated[str, PropertyInfo(alias="secretAccessKey")] + + +ConnectivityPrecheckSourceParams: TypeAlias = Union[ + R2SlurperS3SourceSchema, R2SlurperGcsSourceSchema, R2SlurperR2SourceSchema +] diff --git a/src/cloudflare/types/r2/super_slurper/connectivity_precheck_source_response.py b/src/cloudflare/types/r2/super_slurper/connectivity_precheck_source_response.py new file mode 100644 index 00000000000..660bb1d0423 --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/connectivity_precheck_source_response.py @@ -0,0 +1,14 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import Literal + +from pydantic import Field as FieldInfo + +from ...._models import BaseModel + +__all__ = ["ConnectivityPrecheckSourceResponse"] + + +class ConnectivityPrecheckSourceResponse(BaseModel): + connectivity_status: Optional[Literal["success", "error"]] = FieldInfo(alias="connectivityStatus", default=None) diff --git a/src/cloudflare/types/r2/super_slurper/connectivity_precheck_target_params.py b/src/cloudflare/types/r2/super_slurper/connectivity_precheck_target_params.py new file mode 100644 index 00000000000..95c24ec8b1e --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/connectivity_precheck_target_params.py @@ -0,0 +1,28 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Literal, Required, Annotated, TypedDict + +from ...._utils import PropertyInfo +from ..buckets.provider import Provider + +__all__ = ["ConnectivityPrecheckTargetParams", "Secret"] + + +class ConnectivityPrecheckTargetParams(TypedDict, total=False): + account_id: Required[str] + + bucket: str + + jurisdiction: Literal["default", "eu", "fedramp"] + + secret: Secret + + vendor: Provider + + +class Secret(TypedDict, total=False): + access_key_id: Annotated[str, PropertyInfo(alias="accessKeyId")] + + secret_access_key: Annotated[str, PropertyInfo(alias="secretAccessKey")] diff --git a/src/cloudflare/types/r2/super_slurper/connectivity_precheck_target_response.py b/src/cloudflare/types/r2/super_slurper/connectivity_precheck_target_response.py new file mode 100644 index 00000000000..112d57473c1 --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/connectivity_precheck_target_response.py @@ -0,0 +1,14 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import Literal + +from pydantic import Field as FieldInfo + +from ...._models import BaseModel + +__all__ = ["ConnectivityPrecheckTargetResponse"] + + +class ConnectivityPrecheckTargetResponse(BaseModel): + connectivity_status: Optional[Literal["success", "error"]] = FieldInfo(alias="connectivityStatus", default=None) diff --git a/src/cloudflare/types/r2/super_slurper/job_abort_all_response.py b/src/cloudflare/types/r2/super_slurper/job_abort_all_response.py new file mode 100644 index 00000000000..d7cb978d9c3 --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/job_abort_all_response.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import TypeAlias + +__all__ = ["JobAbortAllResponse"] + +JobAbortAllResponse: TypeAlias = str diff --git a/src/cloudflare/types/r2/super_slurper/job_abort_response.py b/src/cloudflare/types/r2/super_slurper/job_abort_response.py new file mode 100644 index 00000000000..92552827913 --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/job_abort_response.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import TypeAlias + +__all__ = ["JobAbortResponse"] + +JobAbortResponse: TypeAlias = str diff --git a/src/cloudflare/types/r2/super_slurper/job_create_params.py b/src/cloudflare/types/r2/super_slurper/job_create_params.py new file mode 100644 index 00000000000..6fe24df7fa6 --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/job_create_params.py @@ -0,0 +1,97 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Union, Optional +from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict + +from ...._utils import PropertyInfo +from ..buckets.provider import Provider + +__all__ = [ + "JobCreateParams", + "Source", + "SourceR2SlurperS3SourceSchema", + "SourceR2SlurperS3SourceSchemaSecret", + "SourceR2SlurperGcsSourceSchema", + "SourceR2SlurperGcsSourceSchemaSecret", + "SourceR2SlurperR2SourceSchema", + "SourceR2SlurperR2SourceSchemaSecret", + "Target", + "TargetSecret", +] + + +class JobCreateParams(TypedDict, total=False): + account_id: Required[str] + + overwrite: bool + + source: Source + + target: Target + + +class SourceR2SlurperS3SourceSchemaSecret(TypedDict, total=False): + access_key_id: Annotated[str, PropertyInfo(alias="accessKeyId")] + + secret_access_key: Annotated[str, PropertyInfo(alias="secretAccessKey")] + + +class SourceR2SlurperS3SourceSchema(TypedDict, total=False): + bucket: str + + endpoint: Optional[str] + + secret: SourceR2SlurperS3SourceSchemaSecret + + vendor: Literal["s3"] + + +class SourceR2SlurperGcsSourceSchemaSecret(TypedDict, total=False): + client_email: Annotated[str, PropertyInfo(alias="clientEmail")] + + private_key: Annotated[str, PropertyInfo(alias="privateKey")] + + +class SourceR2SlurperGcsSourceSchema(TypedDict, total=False): + bucket: str + + secret: SourceR2SlurperGcsSourceSchemaSecret + + vendor: Literal["gcs"] + + +class SourceR2SlurperR2SourceSchemaSecret(TypedDict, total=False): + access_key_id: Annotated[str, PropertyInfo(alias="accessKeyId")] + + secret_access_key: Annotated[str, PropertyInfo(alias="secretAccessKey")] + + +class SourceR2SlurperR2SourceSchema(TypedDict, total=False): + bucket: str + + jurisdiction: Literal["default", "eu", "fedramp"] + + secret: SourceR2SlurperR2SourceSchemaSecret + + vendor: Provider + + +Source: TypeAlias = Union[SourceR2SlurperS3SourceSchema, SourceR2SlurperGcsSourceSchema, SourceR2SlurperR2SourceSchema] + + +class TargetSecret(TypedDict, total=False): + access_key_id: Annotated[str, PropertyInfo(alias="accessKeyId")] + + secret_access_key: Annotated[str, PropertyInfo(alias="secretAccessKey")] + + +class Target(TypedDict, total=False): + bucket: str + + jurisdiction: Literal["default", "eu", "fedramp"] + + secret: TargetSecret + + vendor: Provider diff --git a/src/cloudflare/types/r2/super_slurper/job_create_response.py b/src/cloudflare/types/r2/super_slurper/job_create_response.py new file mode 100644 index 00000000000..4e66e633e79 --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/job_create_response.py @@ -0,0 +1,13 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional + +from pydantic import Field as FieldInfo + +from ...._models import BaseModel + +__all__ = ["JobCreateResponse"] + + +class JobCreateResponse(BaseModel): + job_id: Optional[str] = FieldInfo(alias="jobId", default=None) diff --git a/src/cloudflare/types/r2/super_slurper/job_get_response.py b/src/cloudflare/types/r2/super_slurper/job_get_response.py new file mode 100644 index 00000000000..7edbdd93c93 --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/job_get_response.py @@ -0,0 +1,73 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Union, Optional +from typing_extensions import Literal, TypeAlias + +from pydantic import Field as FieldInfo + +from ...._models import BaseModel +from ..buckets.provider import Provider + +__all__ = [ + "JobGetResponse", + "Source", + "SourceS3SourceResponseSchema", + "SourceGcsSourceResponseSchema", + "SourceR2SourceResponseSchema", + "Target", +] + + +class SourceS3SourceResponseSchema(BaseModel): + bucket: Optional[str] = None + + endpoint: Optional[str] = None + + path_prefix: Optional[str] = FieldInfo(alias="pathPrefix", default=None) + + vendor: Optional[Literal["s3"]] = None + + +class SourceGcsSourceResponseSchema(BaseModel): + bucket: Optional[str] = None + + path_prefix: Optional[str] = FieldInfo(alias="pathPrefix", default=None) + + vendor: Optional[Literal["gcs"]] = None + + +class SourceR2SourceResponseSchema(BaseModel): + bucket: Optional[str] = None + + jurisdiction: Optional[Literal["default", "eu", "fedramp"]] = None + + path_prefix: Optional[str] = FieldInfo(alias="pathPrefix", default=None) + + vendor: Optional[Provider] = None + + +Source: TypeAlias = Union[SourceS3SourceResponseSchema, SourceGcsSourceResponseSchema, SourceR2SourceResponseSchema] + + +class Target(BaseModel): + bucket: Optional[str] = None + + jurisdiction: Optional[Literal["default", "eu", "fedramp"]] = None + + vendor: Optional[Provider] = None + + +class JobGetResponse(BaseModel): + id: Optional[str] = None + + created_at: Optional[str] = FieldInfo(alias="createdAt", default=None) + + finished_at: Optional[str] = FieldInfo(alias="finishedAt", default=None) + + overwrite: Optional[bool] = None + + source: Optional[Source] = None + + status: Optional[Literal["running", "paused", "aborted", "completed"]] = None + + target: Optional[Target] = None diff --git a/src/cloudflare/types/r2/super_slurper/job_list_params.py b/src/cloudflare/types/r2/super_slurper/job_list_params.py new file mode 100644 index 00000000000..f1b0e487eb0 --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/job_list_params.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["JobListParams"] + + +class JobListParams(TypedDict, total=False): + account_id: Required[str] + + limit: int + + offset: int diff --git a/src/cloudflare/types/r2/super_slurper/job_list_response.py b/src/cloudflare/types/r2/super_slurper/job_list_response.py new file mode 100644 index 00000000000..ca016e7aa47 --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/job_list_response.py @@ -0,0 +1,73 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Union, Optional +from typing_extensions import Literal, TypeAlias + +from pydantic import Field as FieldInfo + +from ...._models import BaseModel +from ..buckets.provider import Provider + +__all__ = [ + "JobListResponse", + "Source", + "SourceS3SourceResponseSchema", + "SourceGcsSourceResponseSchema", + "SourceR2SourceResponseSchema", + "Target", +] + + +class SourceS3SourceResponseSchema(BaseModel): + bucket: Optional[str] = None + + endpoint: Optional[str] = None + + path_prefix: Optional[str] = FieldInfo(alias="pathPrefix", default=None) + + vendor: Optional[Literal["s3"]] = None + + +class SourceGcsSourceResponseSchema(BaseModel): + bucket: Optional[str] = None + + path_prefix: Optional[str] = FieldInfo(alias="pathPrefix", default=None) + + vendor: Optional[Literal["gcs"]] = None + + +class SourceR2SourceResponseSchema(BaseModel): + bucket: Optional[str] = None + + jurisdiction: Optional[Literal["default", "eu", "fedramp"]] = None + + path_prefix: Optional[str] = FieldInfo(alias="pathPrefix", default=None) + + vendor: Optional[Provider] = None + + +Source: TypeAlias = Union[SourceS3SourceResponseSchema, SourceGcsSourceResponseSchema, SourceR2SourceResponseSchema] + + +class Target(BaseModel): + bucket: Optional[str] = None + + jurisdiction: Optional[Literal["default", "eu", "fedramp"]] = None + + vendor: Optional[Provider] = None + + +class JobListResponse(BaseModel): + id: Optional[str] = None + + created_at: Optional[str] = FieldInfo(alias="createdAt", default=None) + + finished_at: Optional[str] = FieldInfo(alias="finishedAt", default=None) + + overwrite: Optional[bool] = None + + source: Optional[Source] = None + + status: Optional[Literal["running", "paused", "aborted", "completed"]] = None + + target: Optional[Target] = None diff --git a/src/cloudflare/types/r2/super_slurper/job_pause_response.py b/src/cloudflare/types/r2/super_slurper/job_pause_response.py new file mode 100644 index 00000000000..d9f144201e2 --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/job_pause_response.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import TypeAlias + +__all__ = ["JobPauseResponse"] + +JobPauseResponse: TypeAlias = str diff --git a/src/cloudflare/types/r2/super_slurper/job_progress_response.py b/src/cloudflare/types/r2/super_slurper/job_progress_response.py new file mode 100644 index 00000000000..0580765a9ea --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/job_progress_response.py @@ -0,0 +1,26 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import Literal + +from pydantic import Field as FieldInfo + +from ...._models import BaseModel + +__all__ = ["JobProgressResponse"] + + +class JobProgressResponse(BaseModel): + id: Optional[str] = None + + created_at: Optional[str] = FieldInfo(alias="createdAt", default=None) + + failed_objects: Optional[int] = FieldInfo(alias="failedObjects", default=None) + + objects: Optional[int] = None + + skipped_objects: Optional[int] = FieldInfo(alias="skippedObjects", default=None) + + status: Optional[Literal["running", "paused", "aborted", "completed"]] = None + + transferred_objects: Optional[int] = FieldInfo(alias="transferredObjects", default=None) diff --git a/src/cloudflare/types/r2/super_slurper/job_resume_response.py b/src/cloudflare/types/r2/super_slurper/job_resume_response.py new file mode 100644 index 00000000000..fb430019b9f --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/job_resume_response.py @@ -0,0 +1,7 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing_extensions import TypeAlias + +__all__ = ["JobResumeResponse"] + +JobResumeResponse: TypeAlias = str diff --git a/src/cloudflare/types/r2/super_slurper/jobs/__init__.py b/src/cloudflare/types/r2/super_slurper/jobs/__init__.py new file mode 100644 index 00000000000..84992c3c21c --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/jobs/__init__.py @@ -0,0 +1,6 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from .log_list_params import LogListParams as LogListParams +from .log_list_response import LogListResponse as LogListResponse diff --git a/src/cloudflare/types/r2/super_slurper/jobs/log_list_params.py b/src/cloudflare/types/r2/super_slurper/jobs/log_list_params.py new file mode 100644 index 00000000000..ff059a25e3c --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/jobs/log_list_params.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["LogListParams"] + + +class LogListParams(TypedDict, total=False): + account_id: Required[str] + + limit: int + + offset: int diff --git a/src/cloudflare/types/r2/super_slurper/jobs/log_list_response.py b/src/cloudflare/types/r2/super_slurper/jobs/log_list_response.py new file mode 100644 index 00000000000..c38aac2fb89 --- /dev/null +++ b/src/cloudflare/types/r2/super_slurper/jobs/log_list_response.py @@ -0,0 +1,40 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import Literal + +from pydantic import Field as FieldInfo + +from ....._models import BaseModel + +__all__ = ["LogListResponse"] + + +class LogListResponse(BaseModel): + created_at: Optional[str] = FieldInfo(alias="createdAt", default=None) + + job: Optional[str] = None + + log_type: Optional[ + Literal[ + "migrationStart", + "migrationComplete", + "migrationAbort", + "migrationError", + "migrationPause", + "migrationResume", + "migrationErrorFailedContinuation", + "importErrorRetryExhaustion", + "importSkippedStorageClass", + "importSkippedOversized", + "importSkippedEmptyObject", + "importSkippedUnsupportedContentType", + "importSkippedExcludedContentType", + "importSkippedInvalidMedia", + "importSkippedRequiresRetrieval", + ] + ] = FieldInfo(alias="logType", default=None) + + message: Optional[str] = None + + object_key: Optional[str] = FieldInfo(alias="objectKey", default=None) diff --git a/tests/api_resources/r2/super_slurper/__init__.py b/tests/api_resources/r2/super_slurper/__init__.py new file mode 100644 index 00000000000..fd8019a9a1a --- /dev/null +++ b/tests/api_resources/r2/super_slurper/__init__.py @@ -0,0 +1 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. diff --git a/tests/api_resources/r2/super_slurper/jobs/__init__.py b/tests/api_resources/r2/super_slurper/jobs/__init__.py new file mode 100644 index 00000000000..fd8019a9a1a --- /dev/null +++ b/tests/api_resources/r2/super_slurper/jobs/__init__.py @@ -0,0 +1 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. diff --git a/tests/api_resources/r2/super_slurper/jobs/test_logs.py b/tests/api_resources/r2/super_slurper/jobs/test_logs.py new file mode 100644 index 00000000000..bb5edeb70f3 --- /dev/null +++ b/tests/api_resources/r2/super_slurper/jobs/test_logs.py @@ -0,0 +1,139 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import os +from typing import Any, cast + +import pytest + +from cloudflare import Cloudflare, AsyncCloudflare +from tests.utils import assert_matches_type +from cloudflare.pagination import SyncSinglePage, AsyncSinglePage +from cloudflare.types.r2.super_slurper.jobs import LogListResponse + +base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") + + +class TestLogs: + parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + def test_method_list(self, client: Cloudflare) -> None: + log = client.r2.super_slurper.jobs.logs.list( + job_id="jobId", + account_id="account_id", + ) + assert_matches_type(SyncSinglePage[LogListResponse], log, path=["response"]) + + @parametrize + def test_method_list_with_all_params(self, client: Cloudflare) -> None: + log = client.r2.super_slurper.jobs.logs.list( + job_id="jobId", + account_id="account_id", + limit=50, + offset=0, + ) + assert_matches_type(SyncSinglePage[LogListResponse], log, path=["response"]) + + @parametrize + def test_raw_response_list(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.jobs.logs.with_raw_response.list( + job_id="jobId", + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + log = response.parse() + assert_matches_type(SyncSinglePage[LogListResponse], log, path=["response"]) + + @parametrize + def test_streaming_response_list(self, client: Cloudflare) -> None: + with client.r2.super_slurper.jobs.logs.with_streaming_response.list( + job_id="jobId", + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + log = response.parse() + assert_matches_type(SyncSinglePage[LogListResponse], log, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_list(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.jobs.logs.with_raw_response.list( + job_id="jobId", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"): + client.r2.super_slurper.jobs.logs.with_raw_response.list( + job_id="", + account_id="account_id", + ) + + +class TestAsyncLogs: + parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + async def test_method_list(self, async_client: AsyncCloudflare) -> None: + log = await async_client.r2.super_slurper.jobs.logs.list( + job_id="jobId", + account_id="account_id", + ) + assert_matches_type(AsyncSinglePage[LogListResponse], log, path=["response"]) + + @parametrize + async def test_method_list_with_all_params(self, async_client: AsyncCloudflare) -> None: + log = await async_client.r2.super_slurper.jobs.logs.list( + job_id="jobId", + account_id="account_id", + limit=50, + offset=0, + ) + assert_matches_type(AsyncSinglePage[LogListResponse], log, path=["response"]) + + @parametrize + async def test_raw_response_list(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.jobs.logs.with_raw_response.list( + job_id="jobId", + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + log = await response.parse() + assert_matches_type(AsyncSinglePage[LogListResponse], log, path=["response"]) + + @parametrize + async def test_streaming_response_list(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.jobs.logs.with_streaming_response.list( + job_id="jobId", + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + log = await response.parse() + assert_matches_type(AsyncSinglePage[LogListResponse], log, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_list(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.jobs.logs.with_raw_response.list( + job_id="jobId", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"): + await async_client.r2.super_slurper.jobs.logs.with_raw_response.list( + job_id="", + account_id="account_id", + ) diff --git a/tests/api_resources/r2/super_slurper/test_connectivity_precheck.py b/tests/api_resources/r2/super_slurper/test_connectivity_precheck.py new file mode 100644 index 00000000000..c3f1403cc88 --- /dev/null +++ b/tests/api_resources/r2/super_slurper/test_connectivity_precheck.py @@ -0,0 +1,439 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import os +from typing import Any, Optional, cast + +import pytest + +from cloudflare import Cloudflare, AsyncCloudflare +from tests.utils import assert_matches_type +from cloudflare.types.r2.super_slurper import ( + ConnectivityPrecheckSourceResponse, + ConnectivityPrecheckTargetResponse, +) + +base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") + + +class TestConnectivityPrecheck: + parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + def test_method_source_overload_1(self, client: Cloudflare) -> None: + connectivity_precheck = client.r2.super_slurper.connectivity_precheck.source( + account_id="account_id", + ) + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + def test_method_source_with_all_params_overload_1(self, client: Cloudflare) -> None: + connectivity_precheck = client.r2.super_slurper.connectivity_precheck.source( + account_id="account_id", + bucket="bucket", + endpoint="endpoint", + secret={ + "access_key_id": "accessKeyId", + "secret_access_key": "secretAccessKey", + }, + vendor="s3", + ) + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + def test_raw_response_source_overload_1(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.connectivity_precheck.with_raw_response.source( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + connectivity_precheck = response.parse() + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + def test_streaming_response_source_overload_1(self, client: Cloudflare) -> None: + with client.r2.super_slurper.connectivity_precheck.with_streaming_response.source( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + connectivity_precheck = response.parse() + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_source_overload_1(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.connectivity_precheck.with_raw_response.source( + account_id="", + ) + + @parametrize + def test_method_source_overload_2(self, client: Cloudflare) -> None: + connectivity_precheck = client.r2.super_slurper.connectivity_precheck.source( + account_id="account_id", + ) + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + def test_method_source_with_all_params_overload_2(self, client: Cloudflare) -> None: + connectivity_precheck = client.r2.super_slurper.connectivity_precheck.source( + account_id="account_id", + bucket="bucket", + secret={ + "client_email": "clientEmail", + "private_key": "privateKey", + }, + vendor="gcs", + ) + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + def test_raw_response_source_overload_2(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.connectivity_precheck.with_raw_response.source( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + connectivity_precheck = response.parse() + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + def test_streaming_response_source_overload_2(self, client: Cloudflare) -> None: + with client.r2.super_slurper.connectivity_precheck.with_streaming_response.source( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + connectivity_precheck = response.parse() + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_source_overload_2(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.connectivity_precheck.with_raw_response.source( + account_id="", + ) + + @parametrize + def test_method_source_overload_3(self, client: Cloudflare) -> None: + connectivity_precheck = client.r2.super_slurper.connectivity_precheck.source( + account_id="account_id", + ) + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + def test_method_source_with_all_params_overload_3(self, client: Cloudflare) -> None: + connectivity_precheck = client.r2.super_slurper.connectivity_precheck.source( + account_id="account_id", + bucket="bucket", + jurisdiction="default", + secret={ + "access_key_id": "accessKeyId", + "secret_access_key": "secretAccessKey", + }, + vendor="r2", + ) + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + def test_raw_response_source_overload_3(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.connectivity_precheck.with_raw_response.source( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + connectivity_precheck = response.parse() + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + def test_streaming_response_source_overload_3(self, client: Cloudflare) -> None: + with client.r2.super_slurper.connectivity_precheck.with_streaming_response.source( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + connectivity_precheck = response.parse() + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_source_overload_3(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.connectivity_precheck.with_raw_response.source( + account_id="", + ) + + @parametrize + def test_method_target(self, client: Cloudflare) -> None: + connectivity_precheck = client.r2.super_slurper.connectivity_precheck.target( + account_id="account_id", + ) + assert_matches_type(Optional[ConnectivityPrecheckTargetResponse], connectivity_precheck, path=["response"]) + + @parametrize + def test_method_target_with_all_params(self, client: Cloudflare) -> None: + connectivity_precheck = client.r2.super_slurper.connectivity_precheck.target( + account_id="account_id", + bucket="bucket", + jurisdiction="default", + secret={ + "access_key_id": "accessKeyId", + "secret_access_key": "secretAccessKey", + }, + vendor="r2", + ) + assert_matches_type(Optional[ConnectivityPrecheckTargetResponse], connectivity_precheck, path=["response"]) + + @parametrize + def test_raw_response_target(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.connectivity_precheck.with_raw_response.target( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + connectivity_precheck = response.parse() + assert_matches_type(Optional[ConnectivityPrecheckTargetResponse], connectivity_precheck, path=["response"]) + + @parametrize + def test_streaming_response_target(self, client: Cloudflare) -> None: + with client.r2.super_slurper.connectivity_precheck.with_streaming_response.target( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + connectivity_precheck = response.parse() + assert_matches_type(Optional[ConnectivityPrecheckTargetResponse], connectivity_precheck, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_target(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.connectivity_precheck.with_raw_response.target( + account_id="", + ) + + +class TestAsyncConnectivityPrecheck: + parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + async def test_method_source_overload_1(self, async_client: AsyncCloudflare) -> None: + connectivity_precheck = await async_client.r2.super_slurper.connectivity_precheck.source( + account_id="account_id", + ) + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + async def test_method_source_with_all_params_overload_1(self, async_client: AsyncCloudflare) -> None: + connectivity_precheck = await async_client.r2.super_slurper.connectivity_precheck.source( + account_id="account_id", + bucket="bucket", + endpoint="endpoint", + secret={ + "access_key_id": "accessKeyId", + "secret_access_key": "secretAccessKey", + }, + vendor="s3", + ) + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + async def test_raw_response_source_overload_1(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.connectivity_precheck.with_raw_response.source( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + connectivity_precheck = await response.parse() + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + async def test_streaming_response_source_overload_1(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.connectivity_precheck.with_streaming_response.source( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + connectivity_precheck = await response.parse() + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_source_overload_1(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.connectivity_precheck.with_raw_response.source( + account_id="", + ) + + @parametrize + async def test_method_source_overload_2(self, async_client: AsyncCloudflare) -> None: + connectivity_precheck = await async_client.r2.super_slurper.connectivity_precheck.source( + account_id="account_id", + ) + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + async def test_method_source_with_all_params_overload_2(self, async_client: AsyncCloudflare) -> None: + connectivity_precheck = await async_client.r2.super_slurper.connectivity_precheck.source( + account_id="account_id", + bucket="bucket", + secret={ + "client_email": "clientEmail", + "private_key": "privateKey", + }, + vendor="gcs", + ) + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + async def test_raw_response_source_overload_2(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.connectivity_precheck.with_raw_response.source( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + connectivity_precheck = await response.parse() + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + async def test_streaming_response_source_overload_2(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.connectivity_precheck.with_streaming_response.source( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + connectivity_precheck = await response.parse() + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_source_overload_2(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.connectivity_precheck.with_raw_response.source( + account_id="", + ) + + @parametrize + async def test_method_source_overload_3(self, async_client: AsyncCloudflare) -> None: + connectivity_precheck = await async_client.r2.super_slurper.connectivity_precheck.source( + account_id="account_id", + ) + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + async def test_method_source_with_all_params_overload_3(self, async_client: AsyncCloudflare) -> None: + connectivity_precheck = await async_client.r2.super_slurper.connectivity_precheck.source( + account_id="account_id", + bucket="bucket", + jurisdiction="default", + secret={ + "access_key_id": "accessKeyId", + "secret_access_key": "secretAccessKey", + }, + vendor="r2", + ) + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + async def test_raw_response_source_overload_3(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.connectivity_precheck.with_raw_response.source( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + connectivity_precheck = await response.parse() + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + @parametrize + async def test_streaming_response_source_overload_3(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.connectivity_precheck.with_streaming_response.source( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + connectivity_precheck = await response.parse() + assert_matches_type(Optional[ConnectivityPrecheckSourceResponse], connectivity_precheck, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_source_overload_3(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.connectivity_precheck.with_raw_response.source( + account_id="", + ) + + @parametrize + async def test_method_target(self, async_client: AsyncCloudflare) -> None: + connectivity_precheck = await async_client.r2.super_slurper.connectivity_precheck.target( + account_id="account_id", + ) + assert_matches_type(Optional[ConnectivityPrecheckTargetResponse], connectivity_precheck, path=["response"]) + + @parametrize + async def test_method_target_with_all_params(self, async_client: AsyncCloudflare) -> None: + connectivity_precheck = await async_client.r2.super_slurper.connectivity_precheck.target( + account_id="account_id", + bucket="bucket", + jurisdiction="default", + secret={ + "access_key_id": "accessKeyId", + "secret_access_key": "secretAccessKey", + }, + vendor="r2", + ) + assert_matches_type(Optional[ConnectivityPrecheckTargetResponse], connectivity_precheck, path=["response"]) + + @parametrize + async def test_raw_response_target(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.connectivity_precheck.with_raw_response.target( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + connectivity_precheck = await response.parse() + assert_matches_type(Optional[ConnectivityPrecheckTargetResponse], connectivity_precheck, path=["response"]) + + @parametrize + async def test_streaming_response_target(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.connectivity_precheck.with_streaming_response.target( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + connectivity_precheck = await response.parse() + assert_matches_type(Optional[ConnectivityPrecheckTargetResponse], connectivity_precheck, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_target(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.connectivity_precheck.with_raw_response.target( + account_id="", + ) diff --git a/tests/api_resources/r2/super_slurper/test_jobs.py b/tests/api_resources/r2/super_slurper/test_jobs.py new file mode 100644 index 00000000000..3d028c848e4 --- /dev/null +++ b/tests/api_resources/r2/super_slurper/test_jobs.py @@ -0,0 +1,806 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import os +from typing import Any, Optional, cast + +import pytest + +from cloudflare import Cloudflare, AsyncCloudflare +from tests.utils import assert_matches_type +from cloudflare.pagination import SyncSinglePage, AsyncSinglePage +from cloudflare.types.r2.super_slurper import ( + JobGetResponse, + JobListResponse, + JobCreateResponse, + JobProgressResponse, +) + +base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") + + +class TestJobs: + parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + def test_method_create(self, client: Cloudflare) -> None: + job = client.r2.super_slurper.jobs.create( + account_id="account_id", + ) + assert_matches_type(Optional[JobCreateResponse], job, path=["response"]) + + @parametrize + def test_method_create_with_all_params(self, client: Cloudflare) -> None: + job = client.r2.super_slurper.jobs.create( + account_id="account_id", + overwrite=True, + source={ + "bucket": "bucket", + "endpoint": "endpoint", + "secret": { + "access_key_id": "accessKeyId", + "secret_access_key": "secretAccessKey", + }, + "vendor": "s3", + }, + target={ + "bucket": "bucket", + "jurisdiction": "default", + "secret": { + "access_key_id": "accessKeyId", + "secret_access_key": "secretAccessKey", + }, + "vendor": "r2", + }, + ) + assert_matches_type(Optional[JobCreateResponse], job, path=["response"]) + + @parametrize + def test_raw_response_create(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.jobs.with_raw_response.create( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = response.parse() + assert_matches_type(Optional[JobCreateResponse], job, path=["response"]) + + @parametrize + def test_streaming_response_create(self, client: Cloudflare) -> None: + with client.r2.super_slurper.jobs.with_streaming_response.create( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = response.parse() + assert_matches_type(Optional[JobCreateResponse], job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_create(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.create( + account_id="", + ) + + @parametrize + def test_method_list(self, client: Cloudflare) -> None: + job = client.r2.super_slurper.jobs.list( + account_id="account_id", + ) + assert_matches_type(SyncSinglePage[JobListResponse], job, path=["response"]) + + @parametrize + def test_method_list_with_all_params(self, client: Cloudflare) -> None: + job = client.r2.super_slurper.jobs.list( + account_id="account_id", + limit=50, + offset=0, + ) + assert_matches_type(SyncSinglePage[JobListResponse], job, path=["response"]) + + @parametrize + def test_raw_response_list(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.jobs.with_raw_response.list( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = response.parse() + assert_matches_type(SyncSinglePage[JobListResponse], job, path=["response"]) + + @parametrize + def test_streaming_response_list(self, client: Cloudflare) -> None: + with client.r2.super_slurper.jobs.with_streaming_response.list( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = response.parse() + assert_matches_type(SyncSinglePage[JobListResponse], job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_list(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.list( + account_id="", + ) + + @parametrize + def test_method_abort(self, client: Cloudflare) -> None: + job = client.r2.super_slurper.jobs.abort( + job_id="jobId", + account_id="account_id", + ) + assert_matches_type(str, job, path=["response"]) + + @parametrize + def test_raw_response_abort(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.jobs.with_raw_response.abort( + job_id="jobId", + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = response.parse() + assert_matches_type(str, job, path=["response"]) + + @parametrize + def test_streaming_response_abort(self, client: Cloudflare) -> None: + with client.r2.super_slurper.jobs.with_streaming_response.abort( + job_id="jobId", + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = response.parse() + assert_matches_type(str, job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_abort(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.abort( + job_id="jobId", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.abort( + job_id="", + account_id="account_id", + ) + + @parametrize + def test_method_abort_all(self, client: Cloudflare) -> None: + job = client.r2.super_slurper.jobs.abort_all( + account_id="account_id", + ) + assert_matches_type(str, job, path=["response"]) + + @parametrize + def test_raw_response_abort_all(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.jobs.with_raw_response.abort_all( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = response.parse() + assert_matches_type(str, job, path=["response"]) + + @parametrize + def test_streaming_response_abort_all(self, client: Cloudflare) -> None: + with client.r2.super_slurper.jobs.with_streaming_response.abort_all( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = response.parse() + assert_matches_type(str, job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_abort_all(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.abort_all( + account_id="", + ) + + @parametrize + def test_method_get(self, client: Cloudflare) -> None: + job = client.r2.super_slurper.jobs.get( + job_id="jobId", + account_id="account_id", + ) + assert_matches_type(Optional[JobGetResponse], job, path=["response"]) + + @parametrize + def test_raw_response_get(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.jobs.with_raw_response.get( + job_id="jobId", + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = response.parse() + assert_matches_type(Optional[JobGetResponse], job, path=["response"]) + + @parametrize + def test_streaming_response_get(self, client: Cloudflare) -> None: + with client.r2.super_slurper.jobs.with_streaming_response.get( + job_id="jobId", + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = response.parse() + assert_matches_type(Optional[JobGetResponse], job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_get(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.get( + job_id="jobId", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.get( + job_id="", + account_id="account_id", + ) + + @parametrize + def test_method_pause(self, client: Cloudflare) -> None: + job = client.r2.super_slurper.jobs.pause( + job_id="jobId", + account_id="account_id", + ) + assert_matches_type(str, job, path=["response"]) + + @parametrize + def test_raw_response_pause(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.jobs.with_raw_response.pause( + job_id="jobId", + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = response.parse() + assert_matches_type(str, job, path=["response"]) + + @parametrize + def test_streaming_response_pause(self, client: Cloudflare) -> None: + with client.r2.super_slurper.jobs.with_streaming_response.pause( + job_id="jobId", + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = response.parse() + assert_matches_type(str, job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_pause(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.pause( + job_id="jobId", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.pause( + job_id="", + account_id="account_id", + ) + + @parametrize + def test_method_progress(self, client: Cloudflare) -> None: + job = client.r2.super_slurper.jobs.progress( + job_id="jobId", + account_id="account_id", + ) + assert_matches_type(Optional[JobProgressResponse], job, path=["response"]) + + @parametrize + def test_raw_response_progress(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.jobs.with_raw_response.progress( + job_id="jobId", + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = response.parse() + assert_matches_type(Optional[JobProgressResponse], job, path=["response"]) + + @parametrize + def test_streaming_response_progress(self, client: Cloudflare) -> None: + with client.r2.super_slurper.jobs.with_streaming_response.progress( + job_id="jobId", + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = response.parse() + assert_matches_type(Optional[JobProgressResponse], job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_progress(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.progress( + job_id="jobId", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.progress( + job_id="", + account_id="account_id", + ) + + @parametrize + def test_method_resume(self, client: Cloudflare) -> None: + job = client.r2.super_slurper.jobs.resume( + job_id="jobId", + account_id="account_id", + ) + assert_matches_type(str, job, path=["response"]) + + @parametrize + def test_raw_response_resume(self, client: Cloudflare) -> None: + response = client.r2.super_slurper.jobs.with_raw_response.resume( + job_id="jobId", + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = response.parse() + assert_matches_type(str, job, path=["response"]) + + @parametrize + def test_streaming_response_resume(self, client: Cloudflare) -> None: + with client.r2.super_slurper.jobs.with_streaming_response.resume( + job_id="jobId", + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = response.parse() + assert_matches_type(str, job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_resume(self, client: Cloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.resume( + job_id="jobId", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"): + client.r2.super_slurper.jobs.with_raw_response.resume( + job_id="", + account_id="account_id", + ) + + +class TestAsyncJobs: + parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + async def test_method_create(self, async_client: AsyncCloudflare) -> None: + job = await async_client.r2.super_slurper.jobs.create( + account_id="account_id", + ) + assert_matches_type(Optional[JobCreateResponse], job, path=["response"]) + + @parametrize + async def test_method_create_with_all_params(self, async_client: AsyncCloudflare) -> None: + job = await async_client.r2.super_slurper.jobs.create( + account_id="account_id", + overwrite=True, + source={ + "bucket": "bucket", + "endpoint": "endpoint", + "secret": { + "access_key_id": "accessKeyId", + "secret_access_key": "secretAccessKey", + }, + "vendor": "s3", + }, + target={ + "bucket": "bucket", + "jurisdiction": "default", + "secret": { + "access_key_id": "accessKeyId", + "secret_access_key": "secretAccessKey", + }, + "vendor": "r2", + }, + ) + assert_matches_type(Optional[JobCreateResponse], job, path=["response"]) + + @parametrize + async def test_raw_response_create(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.jobs.with_raw_response.create( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = await response.parse() + assert_matches_type(Optional[JobCreateResponse], job, path=["response"]) + + @parametrize + async def test_streaming_response_create(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.jobs.with_streaming_response.create( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = await response.parse() + assert_matches_type(Optional[JobCreateResponse], job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_create(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.create( + account_id="", + ) + + @parametrize + async def test_method_list(self, async_client: AsyncCloudflare) -> None: + job = await async_client.r2.super_slurper.jobs.list( + account_id="account_id", + ) + assert_matches_type(AsyncSinglePage[JobListResponse], job, path=["response"]) + + @parametrize + async def test_method_list_with_all_params(self, async_client: AsyncCloudflare) -> None: + job = await async_client.r2.super_slurper.jobs.list( + account_id="account_id", + limit=50, + offset=0, + ) + assert_matches_type(AsyncSinglePage[JobListResponse], job, path=["response"]) + + @parametrize + async def test_raw_response_list(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.jobs.with_raw_response.list( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = await response.parse() + assert_matches_type(AsyncSinglePage[JobListResponse], job, path=["response"]) + + @parametrize + async def test_streaming_response_list(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.jobs.with_streaming_response.list( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = await response.parse() + assert_matches_type(AsyncSinglePage[JobListResponse], job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_list(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.list( + account_id="", + ) + + @parametrize + async def test_method_abort(self, async_client: AsyncCloudflare) -> None: + job = await async_client.r2.super_slurper.jobs.abort( + job_id="jobId", + account_id="account_id", + ) + assert_matches_type(str, job, path=["response"]) + + @parametrize + async def test_raw_response_abort(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.jobs.with_raw_response.abort( + job_id="jobId", + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = await response.parse() + assert_matches_type(str, job, path=["response"]) + + @parametrize + async def test_streaming_response_abort(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.jobs.with_streaming_response.abort( + job_id="jobId", + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = await response.parse() + assert_matches_type(str, job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_abort(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.abort( + job_id="jobId", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.abort( + job_id="", + account_id="account_id", + ) + + @parametrize + async def test_method_abort_all(self, async_client: AsyncCloudflare) -> None: + job = await async_client.r2.super_slurper.jobs.abort_all( + account_id="account_id", + ) + assert_matches_type(str, job, path=["response"]) + + @parametrize + async def test_raw_response_abort_all(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.jobs.with_raw_response.abort_all( + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = await response.parse() + assert_matches_type(str, job, path=["response"]) + + @parametrize + async def test_streaming_response_abort_all(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.jobs.with_streaming_response.abort_all( + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = await response.parse() + assert_matches_type(str, job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_abort_all(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.abort_all( + account_id="", + ) + + @parametrize + async def test_method_get(self, async_client: AsyncCloudflare) -> None: + job = await async_client.r2.super_slurper.jobs.get( + job_id="jobId", + account_id="account_id", + ) + assert_matches_type(Optional[JobGetResponse], job, path=["response"]) + + @parametrize + async def test_raw_response_get(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.jobs.with_raw_response.get( + job_id="jobId", + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = await response.parse() + assert_matches_type(Optional[JobGetResponse], job, path=["response"]) + + @parametrize + async def test_streaming_response_get(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.jobs.with_streaming_response.get( + job_id="jobId", + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = await response.parse() + assert_matches_type(Optional[JobGetResponse], job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_get(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.get( + job_id="jobId", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.get( + job_id="", + account_id="account_id", + ) + + @parametrize + async def test_method_pause(self, async_client: AsyncCloudflare) -> None: + job = await async_client.r2.super_slurper.jobs.pause( + job_id="jobId", + account_id="account_id", + ) + assert_matches_type(str, job, path=["response"]) + + @parametrize + async def test_raw_response_pause(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.jobs.with_raw_response.pause( + job_id="jobId", + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = await response.parse() + assert_matches_type(str, job, path=["response"]) + + @parametrize + async def test_streaming_response_pause(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.jobs.with_streaming_response.pause( + job_id="jobId", + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = await response.parse() + assert_matches_type(str, job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_pause(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.pause( + job_id="jobId", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.pause( + job_id="", + account_id="account_id", + ) + + @parametrize + async def test_method_progress(self, async_client: AsyncCloudflare) -> None: + job = await async_client.r2.super_slurper.jobs.progress( + job_id="jobId", + account_id="account_id", + ) + assert_matches_type(Optional[JobProgressResponse], job, path=["response"]) + + @parametrize + async def test_raw_response_progress(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.jobs.with_raw_response.progress( + job_id="jobId", + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = await response.parse() + assert_matches_type(Optional[JobProgressResponse], job, path=["response"]) + + @parametrize + async def test_streaming_response_progress(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.jobs.with_streaming_response.progress( + job_id="jobId", + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = await response.parse() + assert_matches_type(Optional[JobProgressResponse], job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_progress(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.progress( + job_id="jobId", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.progress( + job_id="", + account_id="account_id", + ) + + @parametrize + async def test_method_resume(self, async_client: AsyncCloudflare) -> None: + job = await async_client.r2.super_slurper.jobs.resume( + job_id="jobId", + account_id="account_id", + ) + assert_matches_type(str, job, path=["response"]) + + @parametrize + async def test_raw_response_resume(self, async_client: AsyncCloudflare) -> None: + response = await async_client.r2.super_slurper.jobs.with_raw_response.resume( + job_id="jobId", + account_id="account_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + job = await response.parse() + assert_matches_type(str, job, path=["response"]) + + @parametrize + async def test_streaming_response_resume(self, async_client: AsyncCloudflare) -> None: + async with async_client.r2.super_slurper.jobs.with_streaming_response.resume( + job_id="jobId", + account_id="account_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + job = await response.parse() + assert_matches_type(str, job, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_resume(self, async_client: AsyncCloudflare) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `account_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.resume( + job_id="jobId", + account_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `job_id` but received ''"): + await async_client.r2.super_slurper.jobs.with_raw_response.resume( + job_id="", + account_id="account_id", + ) From b9e8e83157f02f2941bff572dcce9fa989a922f9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 09:47:09 -0400 Subject: [PATCH 178/849] feat(browser_rendering): add json, links and markdown support (#2589) --- .stats.yml | 4 +- api.md | 36 ++ .../resources/browser_rendering/__init__.py | 42 ++ .../browser_rendering/browser_rendering.py | 96 ++++ .../resources/browser_rendering/json.py | 450 ++++++++++++++++++ .../resources/browser_rendering/links.py | 442 +++++++++++++++++ .../resources/browser_rendering/markdown.py | 444 +++++++++++++++++ .../types/browser_rendering/__init__.py | 6 + .../browser_rendering/json_create_params.py | 253 ++++++++++ .../browser_rendering/json_create_response.py | 8 + .../browser_rendering/link_create_params.py | 240 ++++++++++ .../browser_rendering/link_create_response.py | 8 + .../markdown_create_params.py | 238 +++++++++ .../markdown_create_response.py | 7 + .../browser_rendering/test_json.py | 260 ++++++++++ .../browser_rendering/test_links.py | 252 ++++++++++ .../browser_rendering/test_markdown.py | 249 ++++++++++ 17 files changed, 3033 insertions(+), 2 deletions(-) create mode 100644 src/cloudflare/resources/browser_rendering/json.py create mode 100644 src/cloudflare/resources/browser_rendering/links.py create mode 100644 src/cloudflare/resources/browser_rendering/markdown.py create mode 100644 src/cloudflare/types/browser_rendering/json_create_params.py create mode 100644 src/cloudflare/types/browser_rendering/json_create_response.py create mode 100644 src/cloudflare/types/browser_rendering/link_create_params.py create mode 100644 src/cloudflare/types/browser_rendering/link_create_response.py create mode 100644 src/cloudflare/types/browser_rendering/markdown_create_params.py create mode 100644 src/cloudflare/types/browser_rendering/markdown_create_response.py create mode 100644 tests/api_resources/browser_rendering/test_json.py create mode 100644 tests/api_resources/browser_rendering/test_links.py create mode 100644 tests/api_resources/browser_rendering/test_markdown.py diff --git a/.stats.yml b/.stats.yml index a44bc87b82e..87d71cccd27 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 1675 +configured_endpoints: 1678 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cloudflare%2Fcloudflare-e6020a67e862bf0a579c6977605f8e28657d6b161f107192512ac660a3b01858.yml openapi_spec_hash: 4e7b96ee4e75204fc2667400a1bf84ec -config_hash: 168e7bdbb3c1078b03a9370043cdf57e +config_hash: 3ece0d947c96cf13d886f57d8451c3f2 diff --git a/api.md b/api.md index 87da860ac13..2742f258f2c 100644 --- a/api.md +++ b/api.md @@ -9614,6 +9614,42 @@ Methods: - client.browser_rendering.snapshot.create(\*, account_id, \*\*params) -> Optional[SnapshotCreateResponse] +## Json + +Types: + +```python +from cloudflare.types.browser_rendering import JsonCreateResponse +``` + +Methods: + +- client.browser_rendering.json.create(\*, account_id, \*\*params) -> JsonCreateResponse + +## Links + +Types: + +```python +from cloudflare.types.browser_rendering import LinkCreateResponse +``` + +Methods: + +- client.browser_rendering.links.create(\*, account_id, \*\*params) -> LinkCreateResponse + +## Markdown + +Types: + +```python +from cloudflare.types.browser_rendering import MarkdownCreateResponse +``` + +Methods: + +- client.browser_rendering.markdown.create(\*, account_id, \*\*params) -> str + # CustomPages Types: diff --git a/src/cloudflare/resources/browser_rendering/__init__.py b/src/cloudflare/resources/browser_rendering/__init__.py index d42a51797d4..ca6102ced41 100644 --- a/src/cloudflare/resources/browser_rendering/__init__.py +++ b/src/cloudflare/resources/browser_rendering/__init__.py @@ -8,6 +8,22 @@ PDFResourceWithStreamingResponse, AsyncPDFResourceWithStreamingResponse, ) +from .json import ( + JsonResource, + AsyncJsonResource, + JsonResourceWithRawResponse, + AsyncJsonResourceWithRawResponse, + JsonResourceWithStreamingResponse, + AsyncJsonResourceWithStreamingResponse, +) +from .links import ( + LinksResource, + AsyncLinksResource, + LinksResourceWithRawResponse, + AsyncLinksResourceWithRawResponse, + LinksResourceWithStreamingResponse, + AsyncLinksResourceWithStreamingResponse, +) from .scrape import ( ScrapeResource, AsyncScrapeResource, @@ -24,6 +40,14 @@ ContentResourceWithStreamingResponse, AsyncContentResourceWithStreamingResponse, ) +from .markdown import ( + MarkdownResource, + AsyncMarkdownResource, + MarkdownResourceWithRawResponse, + AsyncMarkdownResourceWithRawResponse, + MarkdownResourceWithStreamingResponse, + AsyncMarkdownResourceWithStreamingResponse, +) from .snapshot import ( SnapshotResource, AsyncSnapshotResource, @@ -80,6 +104,24 @@ "AsyncSnapshotResourceWithRawResponse", "SnapshotResourceWithStreamingResponse", "AsyncSnapshotResourceWithStreamingResponse", + "JsonResource", + "AsyncJsonResource", + "JsonResourceWithRawResponse", + "AsyncJsonResourceWithRawResponse", + "JsonResourceWithStreamingResponse", + "AsyncJsonResourceWithStreamingResponse", + "LinksResource", + "AsyncLinksResource", + "LinksResourceWithRawResponse", + "AsyncLinksResourceWithRawResponse", + "LinksResourceWithStreamingResponse", + "AsyncLinksResourceWithStreamingResponse", + "MarkdownResource", + "AsyncMarkdownResource", + "MarkdownResourceWithRawResponse", + "AsyncMarkdownResourceWithRawResponse", + "MarkdownResourceWithStreamingResponse", + "AsyncMarkdownResourceWithStreamingResponse", "BrowserRenderingResource", "AsyncBrowserRenderingResource", "BrowserRenderingResourceWithRawResponse", diff --git a/src/cloudflare/resources/browser_rendering/browser_rendering.py b/src/cloudflare/resources/browser_rendering/browser_rendering.py index b597be3813f..bee931f57df 100644 --- a/src/cloudflare/resources/browser_rendering/browser_rendering.py +++ b/src/cloudflare/resources/browser_rendering/browser_rendering.py @@ -10,6 +10,22 @@ PDFResourceWithStreamingResponse, AsyncPDFResourceWithStreamingResponse, ) +from .json import ( + JsonResource, + AsyncJsonResource, + JsonResourceWithRawResponse, + AsyncJsonResourceWithRawResponse, + JsonResourceWithStreamingResponse, + AsyncJsonResourceWithStreamingResponse, +) +from .links import ( + LinksResource, + AsyncLinksResource, + LinksResourceWithRawResponse, + AsyncLinksResourceWithRawResponse, + LinksResourceWithStreamingResponse, + AsyncLinksResourceWithStreamingResponse, +) from .scrape import ( ScrapeResource, AsyncScrapeResource, @@ -26,6 +42,14 @@ ContentResourceWithStreamingResponse, AsyncContentResourceWithStreamingResponse, ) +from .markdown import ( + MarkdownResource, + AsyncMarkdownResource, + MarkdownResourceWithRawResponse, + AsyncMarkdownResourceWithRawResponse, + MarkdownResourceWithStreamingResponse, + AsyncMarkdownResourceWithStreamingResponse, +) from .snapshot import ( SnapshotResource, AsyncSnapshotResource, @@ -69,6 +93,18 @@ def screenshot(self) -> ScreenshotResource: def snapshot(self) -> SnapshotResource: return SnapshotResource(self._client) + @cached_property + def json(self) -> JsonResource: + return JsonResource(self._client) + + @cached_property + def links(self) -> LinksResource: + return LinksResource(self._client) + + @cached_property + def markdown(self) -> MarkdownResource: + return MarkdownResource(self._client) + @cached_property def with_raw_response(self) -> BrowserRenderingResourceWithRawResponse: """ @@ -110,6 +146,18 @@ def screenshot(self) -> AsyncScreenshotResource: def snapshot(self) -> AsyncSnapshotResource: return AsyncSnapshotResource(self._client) + @cached_property + def json(self) -> AsyncJsonResource: + return AsyncJsonResource(self._client) + + @cached_property + def links(self) -> AsyncLinksResource: + return AsyncLinksResource(self._client) + + @cached_property + def markdown(self) -> AsyncMarkdownResource: + return AsyncMarkdownResource(self._client) + @cached_property def with_raw_response(self) -> AsyncBrowserRenderingResourceWithRawResponse: """ @@ -154,6 +202,18 @@ def screenshot(self) -> ScreenshotResourceWithRawResponse: def snapshot(self) -> SnapshotResourceWithRawResponse: return SnapshotResourceWithRawResponse(self._browser_rendering.snapshot) + @cached_property + def json(self) -> JsonResourceWithRawResponse: + return JsonResourceWithRawResponse(self._browser_rendering.json) + + @cached_property + def links(self) -> LinksResourceWithRawResponse: + return LinksResourceWithRawResponse(self._browser_rendering.links) + + @cached_property + def markdown(self) -> MarkdownResourceWithRawResponse: + return MarkdownResourceWithRawResponse(self._browser_rendering.markdown) + class AsyncBrowserRenderingResourceWithRawResponse: def __init__(self, browser_rendering: AsyncBrowserRenderingResource) -> None: @@ -179,6 +239,18 @@ def screenshot(self) -> AsyncScreenshotResourceWithRawResponse: def snapshot(self) -> AsyncSnapshotResourceWithRawResponse: return AsyncSnapshotResourceWithRawResponse(self._browser_rendering.snapshot) + @cached_property + def json(self) -> AsyncJsonResourceWithRawResponse: + return AsyncJsonResourceWithRawResponse(self._browser_rendering.json) + + @cached_property + def links(self) -> AsyncLinksResourceWithRawResponse: + return AsyncLinksResourceWithRawResponse(self._browser_rendering.links) + + @cached_property + def markdown(self) -> AsyncMarkdownResourceWithRawResponse: + return AsyncMarkdownResourceWithRawResponse(self._browser_rendering.markdown) + class BrowserRenderingResourceWithStreamingResponse: def __init__(self, browser_rendering: BrowserRenderingResource) -> None: @@ -204,6 +276,18 @@ def screenshot(self) -> ScreenshotResourceWithStreamingResponse: def snapshot(self) -> SnapshotResourceWithStreamingResponse: return SnapshotResourceWithStreamingResponse(self._browser_rendering.snapshot) + @cached_property + def json(self) -> JsonResourceWithStreamingResponse: + return JsonResourceWithStreamingResponse(self._browser_rendering.json) + + @cached_property + def links(self) -> LinksResourceWithStreamingResponse: + return LinksResourceWithStreamingResponse(self._browser_rendering.links) + + @cached_property + def markdown(self) -> MarkdownResourceWithStreamingResponse: + return MarkdownResourceWithStreamingResponse(self._browser_rendering.markdown) + class AsyncBrowserRenderingResourceWithStreamingResponse: def __init__(self, browser_rendering: AsyncBrowserRenderingResource) -> None: @@ -228,3 +312,15 @@ def screenshot(self) -> AsyncScreenshotResourceWithStreamingResponse: @cached_property def snapshot(self) -> AsyncSnapshotResourceWithStreamingResponse: return AsyncSnapshotResourceWithStreamingResponse(self._browser_rendering.snapshot) + + @cached_property + def json(self) -> AsyncJsonResourceWithStreamingResponse: + return AsyncJsonResourceWithStreamingResponse(self._browser_rendering.json) + + @cached_property + def links(self) -> AsyncLinksResourceWithStreamingResponse: + return AsyncLinksResourceWithStreamingResponse(self._browser_rendering.links) + + @cached_property + def markdown(self) -> AsyncMarkdownResourceWithStreamingResponse: + return AsyncMarkdownResourceWithStreamingResponse(self._browser_rendering.markdown) diff --git a/src/cloudflare/resources/browser_rendering/json.py b/src/cloudflare/resources/browser_rendering/json.py new file mode 100644 index 00000000000..270a5479323 --- /dev/null +++ b/src/cloudflare/resources/browser_rendering/json.py @@ -0,0 +1,450 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Dict, List, Type, Iterable, cast +from typing_extensions import Literal + +import httpx + +from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven +from ..._utils import ( + maybe_transform, + async_maybe_transform, +) +from ..._compat import cached_property +from ..._resource import SyncAPIResource, AsyncAPIResource +from ..._response import ( + to_raw_response_wrapper, + to_streamed_response_wrapper, + async_to_raw_response_wrapper, + async_to_streamed_response_wrapper, +) +from ..._wrappers import ResultWrapper +from ..._base_client import make_request_options +from ...types.browser_rendering import json_create_params +from ...types.browser_rendering.json_create_response import JsonCreateResponse + +__all__ = ["JsonResource", "AsyncJsonResource"] + + +class JsonResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> JsonResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#accessing-raw-response-data-eg-headers + """ + return JsonResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> JsonResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/cloudflare/cloudflare-python#with_streaming_response + """ + return JsonResourceWithStreamingResponse(self) + + def create( + self, + *, + account_id: str, + cache_ttl: float | NotGiven = NOT_GIVEN, + add_script_tag: Iterable[json_create_params.AddScriptTag] | NotGiven = NOT_GIVEN, + add_style_tag: Iterable[json_create_params.AddStyleTag] | NotGiven = NOT_GIVEN, + allow_request_pattern: List[str] | NotGiven = NOT_GIVEN, + allow_resource_types: List[ + Literal[ + "document", + "stylesheet", + "image", + "media", + "font", + "script", + "texttrack", + "xhr", + "fetch", + "prefetch", + "eventsource", + "websocket", + "manifest", + "signedexchange", + "ping", + "cspviolationreport", + "preflight", + "other", + ] + ] + | NotGiven = NOT_GIVEN, + authenticate: json_create_params.Authenticate | NotGiven = NOT_GIVEN, + best_attempt: bool | NotGiven = NOT_GIVEN, + cookies: Iterable[json_create_params.Cookie] | NotGiven = NOT_GIVEN, + emulate_media_type: str | NotGiven = NOT_GIVEN, + goto_options: json_create_params.GotoOptions | NotGiven = NOT_GIVEN, + html: str | NotGiven = NOT_GIVEN, + prompt: str | NotGiven = NOT_GIVEN, + reject_request_pattern: List[str] | NotGiven = NOT_GIVEN, + reject_resource_types: List[ + Literal[ + "document", + "stylesheet", + "image", + "media", + "font", + "script", + "texttrack", + "xhr", + "fetch", + "prefetch", + "eventsource", + "websocket", + "manifest", + "signedexchange", + "ping", + "cspviolationreport", + "preflight", + "other", + ] + ] + | NotGiven = NOT_GIVEN, + response_format: json_create_params.ResponseFormat | NotGiven = NOT_GIVEN, + set_extra_http_headers: Dict[str, str] | NotGiven = NOT_GIVEN, + set_java_script_enabled: bool | NotGiven = NOT_GIVEN, + url: str | NotGiven = NOT_GIVEN, + user_agent: str | NotGiven = NOT_GIVEN, + viewport: json_create_params.Viewport | NotGiven = NOT_GIVEN, + wait_for_selector: json_create_params.WaitForSelector | NotGiven = NOT_GIVEN, + wait_for_timeout: float | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> JsonCreateResponse: + """Gets json from a webpage from a provided URL or HTML. + + Pass `prompt` or `schema` + in the body. Control page loading with `gotoOptions` and `waitFor*` options. + + Args: + account_id: Account ID. + + cache_ttl: Cache TTL default is 5s. Set to 0 to disable. + + add_script_tag: Adds a `