From bdfe0bb5f72f8f71d0139eb4f4b9862ad75757d0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 08:38:12 +0000 Subject: [PATCH 01/38] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index d690e547..338dc952 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-0c766e6ecf7e97b4bad1f4ee664a81ab3f3c76e655993623084f9cf9517097cd.yml openapi_spec_hash: 1a1ec9ecc3cdf29e91d4dd75570af164 -config_hash: e660d386571b7b7f97e632d15f98719f +config_hash: 399dda838c78c5d92532b7efcaaa0345 From 7ba1c2b6e552361374c7e5a36892e4240d7bb4c4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 16:11:17 +0000 Subject: [PATCH 02/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 338dc952..de1acd46 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-0c766e6ecf7e97b4bad1f4ee664a81ab3f3c76e655993623084f9cf9517097cd.yml -openapi_spec_hash: 1a1ec9ecc3cdf29e91d4dd75570af164 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-c9b7984d78ad4599fbfda87055912f937e234a8db4463c8c6aa7023662c7a280.yml +openapi_spec_hash: 0be98adf8c9c2ad45390fc965c4e4f17 config_hash: 399dda838c78c5d92532b7efcaaa0345 From f3e0cd259a85a0f86c04d859ee61818e94635b8d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 18:12:39 +0000 Subject: [PATCH 03/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index de1acd46..3841261a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-c9b7984d78ad4599fbfda87055912f937e234a8db4463c8c6aa7023662c7a280.yml -openapi_spec_hash: 0be98adf8c9c2ad45390fc965c4e4f17 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-2e22746e28cb0e7e02f3d050b6df3be6966f53cfd8501b504c66ea635ffed487.yml +openapi_spec_hash: bbc0673615cc3ed39ab62932c9406848 config_hash: 399dda838c78c5d92532b7efcaaa0345 From 4b6fc837f628c598a49847834749d205fbbd3efa Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 4 Oct 2025 08:11:20 +0000 Subject: [PATCH 04/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3841261a..fded566f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-2e22746e28cb0e7e02f3d050b6df3be6966f53cfd8501b504c66ea635ffed487.yml -openapi_spec_hash: bbc0673615cc3ed39ab62932c9406848 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-940761106582fbda3f1fc709e3e7f6cfaee308f45fb6fe8a1529c5571c5e06e1.yml +openapi_spec_hash: 850248fd937d6ac4eb4017b570da7446 config_hash: 399dda838c78c5d92532b7efcaaa0345 From 1f1580fd9521e2d548be83ddb89f61e21b62a119 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 4 Oct 2025 12:13:50 +0000 Subject: [PATCH 05/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index fded566f..8356373a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-940761106582fbda3f1fc709e3e7f6cfaee308f45fb6fe8a1529c5571c5e06e1.yml -openapi_spec_hash: 850248fd937d6ac4eb4017b570da7446 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-86e7b639591decc4bdeef6bec058e750ac5c8afefea4c383a53d853fb60412f0.yml +openapi_spec_hash: b5d1e86bd11c6137ece128c96e1fe125 config_hash: 399dda838c78c5d92532b7efcaaa0345 From cb83d83dfcf5f2f037227cd9393a1e7b5d797983 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 5 Oct 2025 06:12:10 +0000 Subject: [PATCH 06/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8356373a..3eb0ba44 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-86e7b639591decc4bdeef6bec058e750ac5c8afefea4c383a53d853fb60412f0.yml -openapi_spec_hash: b5d1e86bd11c6137ece128c96e1fe125 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-26735f8194ab02771e7175495b584d0f18ee300f28e08ab29a80f86b3ff23c15.yml +openapi_spec_hash: 3c1f9758d286f95709cb1c40bc6c4dc2 config_hash: 399dda838c78c5d92532b7efcaaa0345 From 2d6d6e167db145fe0ec04a08ebc1d28c41d6028b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 5 Oct 2025 08:11:10 +0000 Subject: [PATCH 07/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3eb0ba44..39a75be7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-26735f8194ab02771e7175495b584d0f18ee300f28e08ab29a80f86b3ff23c15.yml -openapi_spec_hash: 3c1f9758d286f95709cb1c40bc6c4dc2 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-06897786d30f23263f01d0528289fbbef0360413a60b1b1d19318f1bdbcb33ae.yml +openapi_spec_hash: aaec1260698ff557bf644c1771178282 config_hash: 399dda838c78c5d92532b7efcaaa0345 From 7cac9aee96ceb344cdc972590cb372973c54ea94 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 5 Oct 2025 12:13:35 +0000 Subject: [PATCH 08/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 39a75be7..fee4016c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-06897786d30f23263f01d0528289fbbef0360413a60b1b1d19318f1bdbcb33ae.yml -openapi_spec_hash: aaec1260698ff557bf644c1771178282 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-33a8162d42e72250da01c56166d9153a4ad4392d03c6b3687d78ffa26e3aefb1.yml +openapi_spec_hash: 12d84581238923977f42a1d76b8a6296 config_hash: 399dda838c78c5d92532b7efcaaa0345 From 470588b013a7bb98f6dd8930c0089ec93eda45dd Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 5 Oct 2025 16:10:07 +0000 Subject: [PATCH 09/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index fee4016c..4072aabe 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-33a8162d42e72250da01c56166d9153a4ad4392d03c6b3687d78ffa26e3aefb1.yml -openapi_spec_hash: 12d84581238923977f42a1d76b8a6296 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-734f9dcd472890369cd87bea9ef232d22a24c0cd3034f340504015e436367190.yml +openapi_spec_hash: e7f6ab41615673c45d6adb3936b20611 config_hash: 399dda838c78c5d92532b7efcaaa0345 From 9ea75587521a248846de674cc6d24acf47363ef8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 6 Oct 2025 08:12:53 +0000 Subject: [PATCH 10/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 4072aabe..43b5aab5 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-734f9dcd472890369cd87bea9ef232d22a24c0cd3034f340504015e436367190.yml -openapi_spec_hash: e7f6ab41615673c45d6adb3936b20611 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-766962d8bf15f6a5e5ff09bbe313b1a18e79f1db04aadeeffb47733ec844082b.yml +openapi_spec_hash: 470d7b26ee2e2dd6f79d4b3bf73f598c config_hash: 399dda838c78c5d92532b7efcaaa0345 From 80dc13e7923c010c34a7b9fc050841adc538d634 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 6 Oct 2025 08:54:55 +0000 Subject: [PATCH 11/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 43b5aab5..a2bcdaae 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-766962d8bf15f6a5e5ff09bbe313b1a18e79f1db04aadeeffb47733ec844082b.yml -openapi_spec_hash: 470d7b26ee2e2dd6f79d4b3bf73f598c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-13bd5c49d79b761f75f39c52b2913b634772f4548854c7ea7fabd8edc9004437.yml +openapi_spec_hash: 60578a4e7dbad87ddf1c7601f341037f config_hash: 399dda838c78c5d92532b7efcaaa0345 From f80a55bf22ff04be53e689eeff2cedda19cd2288 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 6 Oct 2025 09:32:03 +0000 Subject: [PATCH 12/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index a2bcdaae..6d907b1f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-13bd5c49d79b761f75f39c52b2913b634772f4548854c7ea7fabd8edc9004437.yml -openapi_spec_hash: 60578a4e7dbad87ddf1c7601f341037f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-70c64c5e903dc3750a97f27c301e4ad16af9588b46592707c02765f9043c3c51.yml +openapi_spec_hash: 83c6750d9e652bc18366e53d331d97cf config_hash: 399dda838c78c5d92532b7efcaaa0345 From 939a64735987e7908a711c2d73fdc66f197049b0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 6 Oct 2025 10:11:46 +0000 Subject: [PATCH 13/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6d907b1f..202ad72a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-70c64c5e903dc3750a97f27c301e4ad16af9588b46592707c02765f9043c3c51.yml -openapi_spec_hash: 83c6750d9e652bc18366e53d331d97cf +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-22bbef253f2956b3c6b7b4b809fa8b89dba489b8af41b29d43a2aec20b783ec1.yml +openapi_spec_hash: 39ed3f8ee69486683f458fc9bf7672d1 config_hash: 399dda838c78c5d92532b7efcaaa0345 From 8eedd0251f0519932ccc9034383e56bbf385d4a4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 6 Oct 2025 13:11:34 +0000 Subject: [PATCH 14/38] feat(api): aggregated API specs update --- .stats.yml | 4 +- .../resources/cloud/billing_reservations.py | 53 ++++-- .../resources/cloud/instances/instances.py | 6 +- src/gcore/types/cloud/instance_list_params.py | 2 +- .../cloud/test_billing_reservations.py | 160 ++++++++++-------- 5 files changed, 135 insertions(+), 90 deletions(-) diff --git a/.stats.yml b/.stats.yml index 202ad72a..f64973ad 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-22bbef253f2956b3c6b7b4b809fa8b89dba489b8af41b29d43a2aec20b783ec1.yml -openapi_spec_hash: 39ed3f8ee69486683f458fc9bf7672d1 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-9d544c0c6403897f31c25f5630228b123f6542f9ac7deee6ef2bade239c637c2.yml +openapi_spec_hash: 504c8bea0ced4e280b59f75422f29764 config_hash: 399dda838c78c5d92532b7efcaaa0345 diff --git a/src/gcore/resources/cloud/billing_reservations.py b/src/gcore/resources/cloud/billing_reservations.py index ed15046f..5a2dd6b5 100644 --- a/src/gcore/resources/cloud/billing_reservations.py +++ b/src/gcore/resources/cloud/billing_reservations.py @@ -2,6 +2,7 @@ from __future__ import annotations +import typing_extensions from typing import List, Union from datetime import date, datetime from typing_extensions import Literal @@ -46,6 +47,7 @@ def with_streaming_response(self) -> BillingReservationsResourceWithStreamingRes """ return BillingReservationsResourceWithStreamingResponse(self) + @typing_extensions.deprecated("deprecated") def list( self, *, @@ -150,6 +152,7 @@ def list( model=BillingReservation, ) + @typing_extensions.deprecated("deprecated") def get( self, reservation_id: int, @@ -206,6 +209,7 @@ def with_streaming_response(self) -> AsyncBillingReservationsResourceWithStreami """ return AsyncBillingReservationsResourceWithStreamingResponse(self) + @typing_extensions.deprecated("deprecated") def list( self, *, @@ -310,6 +314,7 @@ def list( model=BillingReservation, ) + @typing_extensions.deprecated("deprecated") async def get( self, reservation_id: int, @@ -350,11 +355,15 @@ class BillingReservationsResourceWithRawResponse: def __init__(self, billing_reservations: BillingReservationsResource) -> None: self._billing_reservations = billing_reservations - self.list = to_raw_response_wrapper( - billing_reservations.list, + self.list = ( # pyright: ignore[reportDeprecated] + to_raw_response_wrapper( + billing_reservations.list, # pyright: ignore[reportDeprecated], + ) ) - self.get = to_raw_response_wrapper( - billing_reservations.get, + self.get = ( # pyright: ignore[reportDeprecated] + to_raw_response_wrapper( + billing_reservations.get, # pyright: ignore[reportDeprecated], + ) ) @@ -362,11 +371,15 @@ class AsyncBillingReservationsResourceWithRawResponse: def __init__(self, billing_reservations: AsyncBillingReservationsResource) -> None: self._billing_reservations = billing_reservations - self.list = async_to_raw_response_wrapper( - billing_reservations.list, + self.list = ( # pyright: ignore[reportDeprecated] + async_to_raw_response_wrapper( + billing_reservations.list, # pyright: ignore[reportDeprecated], + ) ) - self.get = async_to_raw_response_wrapper( - billing_reservations.get, + self.get = ( # pyright: ignore[reportDeprecated] + async_to_raw_response_wrapper( + billing_reservations.get, # pyright: ignore[reportDeprecated], + ) ) @@ -374,11 +387,15 @@ class BillingReservationsResourceWithStreamingResponse: def __init__(self, billing_reservations: BillingReservationsResource) -> None: self._billing_reservations = billing_reservations - self.list = to_streamed_response_wrapper( - billing_reservations.list, + self.list = ( # pyright: ignore[reportDeprecated] + to_streamed_response_wrapper( + billing_reservations.list, # pyright: ignore[reportDeprecated], + ) ) - self.get = to_streamed_response_wrapper( - billing_reservations.get, + self.get = ( # pyright: ignore[reportDeprecated] + to_streamed_response_wrapper( + billing_reservations.get, # pyright: ignore[reportDeprecated], + ) ) @@ -386,9 +403,13 @@ class AsyncBillingReservationsResourceWithStreamingResponse: def __init__(self, billing_reservations: AsyncBillingReservationsResource) -> None: self._billing_reservations = billing_reservations - self.list = async_to_streamed_response_wrapper( - billing_reservations.list, + self.list = ( # pyright: ignore[reportDeprecated] + async_to_streamed_response_wrapper( + billing_reservations.list, # pyright: ignore[reportDeprecated], + ) ) - self.get = async_to_streamed_response_wrapper( - billing_reservations.get, + self.get = ( # pyright: ignore[reportDeprecated] + async_to_streamed_response_wrapper( + billing_reservations.get, # pyright: ignore[reportDeprecated], + ) ) diff --git a/src/gcore/resources/cloud/instances/instances.py b/src/gcore/resources/cloud/instances/instances.py index fd1f3a36..ceb67d73 100644 --- a/src/gcore/resources/cloud/instances/instances.py +++ b/src/gcore/resources/cloud/instances/instances.py @@ -405,7 +405,8 @@ def list( offset: int | Omit = omit, only_isolated: bool | Omit = omit, only_with_fixed_external_ip: bool | Omit = omit, - order_by: Literal["created.asc", "created.desc", "name.asc", "name.desc"] | Omit = omit, + order_by: Literal["created.asc", "created.desc", "name.asc", "name.desc", "status.asc", "status.desc"] + | Omit = omit, profile_name: str | Omit = omit, protection_status: Literal["Active", "Queued", "Error"] | Omit = omit, status: Literal[ @@ -1811,7 +1812,8 @@ def list( offset: int | Omit = omit, only_isolated: bool | Omit = omit, only_with_fixed_external_ip: bool | Omit = omit, - order_by: Literal["created.asc", "created.desc", "name.asc", "name.desc"] | Omit = omit, + order_by: Literal["created.asc", "created.desc", "name.asc", "name.desc", "status.asc", "status.desc"] + | Omit = omit, profile_name: str | Omit = omit, protection_status: Literal["Active", "Queued", "Error"] | Omit = omit, status: Literal[ diff --git a/src/gcore/types/cloud/instance_list_params.py b/src/gcore/types/cloud/instance_list_params.py index 17c76f8f..1d321ffc 100644 --- a/src/gcore/types/cloud/instance_list_params.py +++ b/src/gcore/types/cloud/instance_list_params.py @@ -82,7 +82,7 @@ class InstanceListParams(TypedDict, total=False): only_with_fixed_external_ip: bool """Return bare metals only with external fixed IP addresses.""" - order_by: Literal["created.asc", "created.desc", "name.asc", "name.desc"] + order_by: Literal["created.asc", "created.desc", "name.asc", "name.desc", "status.asc", "status.desc"] """Order by field and direction.""" profile_name: str diff --git a/tests/api_resources/cloud/test_billing_reservations.py b/tests/api_resources/cloud/test_billing_reservations.py index 9053b82d..64ab5b9a 100644 --- a/tests/api_resources/cloud/test_billing_reservations.py +++ b/tests/api_resources/cloud/test_billing_reservations.py @@ -13,6 +13,8 @@ from gcore.pagination import SyncOffsetPage, AsyncOffsetPage from gcore.types.cloud import BillingReservation +# pyright: reportDeprecated=false + base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -21,30 +23,35 @@ class TestBillingReservations: @parametrize def test_method_list(self, client: Gcore) -> None: - billing_reservation = client.cloud.billing_reservations.list() + with pytest.warns(DeprecationWarning): + billing_reservation = client.cloud.billing_reservations.list() + assert_matches_type(SyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) @parametrize def test_method_list_with_all_params(self, client: Gcore) -> None: - billing_reservation = client.cloud.billing_reservations.list( - activated_from=parse_date("2019-12-27"), - activated_to=parse_date("2019-12-27"), - created_from=parse_datetime("2019-12-27T18:11:19.117Z"), - created_to=parse_datetime("2019-12-27T18:11:19.117Z"), - deactivated_from=parse_date("2019-12-27"), - deactivated_to=parse_date("2019-12-27"), - limit=1, - metric_name="metric_name", - offset=0, - order_by="active_from.asc", - region_id=0, - status=["ACTIVATED"], - ) + with pytest.warns(DeprecationWarning): + billing_reservation = client.cloud.billing_reservations.list( + activated_from=parse_date("2019-12-27"), + activated_to=parse_date("2019-12-27"), + created_from=parse_datetime("2019-12-27T18:11:19.117Z"), + created_to=parse_datetime("2019-12-27T18:11:19.117Z"), + deactivated_from=parse_date("2019-12-27"), + deactivated_to=parse_date("2019-12-27"), + limit=1, + metric_name="metric_name", + offset=0, + order_by="active_from.asc", + region_id=0, + status=["ACTIVATED"], + ) + assert_matches_type(SyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) @parametrize def test_raw_response_list(self, client: Gcore) -> None: - response = client.cloud.billing_reservations.with_raw_response.list() + with pytest.warns(DeprecationWarning): + response = client.cloud.billing_reservations.with_raw_response.list() assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -53,27 +60,31 @@ def test_raw_response_list(self, client: Gcore) -> None: @parametrize def test_streaming_response_list(self, client: Gcore) -> None: - with client.cloud.billing_reservations.with_streaming_response.list() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + with client.cloud.billing_reservations.with_streaming_response.list() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - billing_reservation = response.parse() - assert_matches_type(SyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) + billing_reservation = response.parse() + assert_matches_type(SyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize def test_method_get(self, client: Gcore) -> None: - billing_reservation = client.cloud.billing_reservations.get( - 0, - ) + with pytest.warns(DeprecationWarning): + billing_reservation = client.cloud.billing_reservations.get( + 0, + ) + assert_matches_type(BillingReservation, billing_reservation, path=["response"]) @parametrize def test_raw_response_get(self, client: Gcore) -> None: - response = client.cloud.billing_reservations.with_raw_response.get( - 0, - ) + with pytest.warns(DeprecationWarning): + response = client.cloud.billing_reservations.with_raw_response.get( + 0, + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -82,14 +93,15 @@ def test_raw_response_get(self, client: Gcore) -> None: @parametrize def test_streaming_response_get(self, client: Gcore) -> None: - with client.cloud.billing_reservations.with_streaming_response.get( - 0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + with client.cloud.billing_reservations.with_streaming_response.get( + 0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - billing_reservation = response.parse() - assert_matches_type(BillingReservation, billing_reservation, path=["response"]) + billing_reservation = response.parse() + assert_matches_type(BillingReservation, billing_reservation, path=["response"]) assert cast(Any, response.is_closed) is True @@ -101,30 +113,35 @@ class TestAsyncBillingReservations: @parametrize async def test_method_list(self, async_client: AsyncGcore) -> None: - billing_reservation = await async_client.cloud.billing_reservations.list() + with pytest.warns(DeprecationWarning): + billing_reservation = await async_client.cloud.billing_reservations.list() + assert_matches_type(AsyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) @parametrize async def test_method_list_with_all_params(self, async_client: AsyncGcore) -> None: - billing_reservation = await async_client.cloud.billing_reservations.list( - activated_from=parse_date("2019-12-27"), - activated_to=parse_date("2019-12-27"), - created_from=parse_datetime("2019-12-27T18:11:19.117Z"), - created_to=parse_datetime("2019-12-27T18:11:19.117Z"), - deactivated_from=parse_date("2019-12-27"), - deactivated_to=parse_date("2019-12-27"), - limit=1, - metric_name="metric_name", - offset=0, - order_by="active_from.asc", - region_id=0, - status=["ACTIVATED"], - ) + with pytest.warns(DeprecationWarning): + billing_reservation = await async_client.cloud.billing_reservations.list( + activated_from=parse_date("2019-12-27"), + activated_to=parse_date("2019-12-27"), + created_from=parse_datetime("2019-12-27T18:11:19.117Z"), + created_to=parse_datetime("2019-12-27T18:11:19.117Z"), + deactivated_from=parse_date("2019-12-27"), + deactivated_to=parse_date("2019-12-27"), + limit=1, + metric_name="metric_name", + offset=0, + order_by="active_from.asc", + region_id=0, + status=["ACTIVATED"], + ) + assert_matches_type(AsyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) @parametrize async def test_raw_response_list(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.billing_reservations.with_raw_response.list() + with pytest.warns(DeprecationWarning): + response = await async_client.cloud.billing_reservations.with_raw_response.list() assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -133,27 +150,31 @@ async def test_raw_response_list(self, async_client: AsyncGcore) -> None: @parametrize async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.billing_reservations.with_streaming_response.list() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + async with async_client.cloud.billing_reservations.with_streaming_response.list() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - billing_reservation = await response.parse() - assert_matches_type(AsyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) + billing_reservation = await response.parse() + assert_matches_type(AsyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize async def test_method_get(self, async_client: AsyncGcore) -> None: - billing_reservation = await async_client.cloud.billing_reservations.get( - 0, - ) + with pytest.warns(DeprecationWarning): + billing_reservation = await async_client.cloud.billing_reservations.get( + 0, + ) + assert_matches_type(BillingReservation, billing_reservation, path=["response"]) @parametrize async def test_raw_response_get(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.billing_reservations.with_raw_response.get( - 0, - ) + with pytest.warns(DeprecationWarning): + response = await async_client.cloud.billing_reservations.with_raw_response.get( + 0, + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -162,13 +183,14 @@ async def test_raw_response_get(self, async_client: AsyncGcore) -> None: @parametrize async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.billing_reservations.with_streaming_response.get( - 0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - billing_reservation = await response.parse() - assert_matches_type(BillingReservation, billing_reservation, path=["response"]) + with pytest.warns(DeprecationWarning): + async with async_client.cloud.billing_reservations.with_streaming_response.get( + 0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + billing_reservation = await response.parse() + assert_matches_type(BillingReservation, billing_reservation, path=["response"]) assert cast(Any, response.is_closed) is True From c8e06a9c4db67838c190b7f985fa99e2ee1bc9f4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 7 Oct 2025 12:15:51 +0000 Subject: [PATCH 15/38] feat(api): aggregated API specs update --- .stats.yml | 4 +- src/gcore/_client.py | 10 +- src/gcore/resources/cdn/audit_log.py | 16 +- src/gcore/resources/cdn/cdn.py | 28 +-- src/gcore/resources/cdn/certificates.py | 56 ++---- src/gcore/resources/cdn/ip_ranges.py | 12 +- src/gcore/resources/cdn/logs/logs.py | 16 +- src/gcore/resources/cdn/logs/settings.py | 32 +-- .../resources/cdn/logs_uploader/configs.py | 56 ++---- .../resources/cdn/logs_uploader/policies.py | 56 ++---- .../resources/cdn/logs_uploader/targets.py | 56 ++---- src/gcore/resources/cdn/metrics.py | 8 +- src/gcore/resources/cdn/network_capacity.py | 8 +- src/gcore/resources/cdn/origin_groups.py | 44 ++--- .../resources/cdn/resources/resources.py | 64 ++---- src/gcore/resources/cdn/resources/rules.py | 48 ++--- src/gcore/resources/cdn/resources/shield.py | 16 +- src/gcore/resources/cdn/rule_templates.py | 48 ++--- src/gcore/resources/cdn/shields.py | 8 +- src/gcore/resources/cdn/statistics.py | 48 ++--- .../resources/cdn/trusted_ca_certificates.py | 40 +--- src/gcore/resources/cloud/audit_logs.py | 8 +- .../resources/cloud/baremetal/flavors.py | 8 +- src/gcore/resources/cloud/baremetal/images.py | 8 +- .../resources/cloud/baremetal/servers.py | 24 +-- .../resources/cloud/billing_reservations.py | 16 +- src/gcore/resources/cloud/cost_reports.py | 24 +-- .../cloud/file_shares/access_rules.py | 24 +-- .../cloud/file_shares/file_shares.py | 48 ++--- src/gcore/resources/cloud/floating_ips.py | 56 ++---- .../cloud/gpu_baremetal_clusters/flavors.py | 8 +- .../gpu_baremetal_clusters.py | 72 ++----- .../cloud/gpu_baremetal_clusters/images.py | 32 +-- .../gpu_baremetal_clusters/interfaces.py | 8 +- .../cloud/gpu_baremetal_clusters/servers.py | 56 ++---- .../resources/cloud/inference/api_keys.py | 40 +--- .../inference/applications/deployments.py | 40 +--- .../cloud/inference/applications/templates.py | 16 +- .../inference/deployments/deployments.py | 64 ++---- .../cloud/inference/deployments/logs.py | 8 +- .../resources/cloud/inference/flavors.py | 16 +- .../resources/cloud/inference/inference.py | 8 +- .../cloud/inference/registry_credentials.py | 40 +--- .../resources/cloud/inference/secrets.py | 40 +--- .../resources/cloud/instances/flavors.py | 8 +- src/gcore/resources/cloud/instances/images.py | 48 ++--- .../resources/cloud/instances/instances.py | 112 +++-------- .../resources/cloud/instances/interfaces.py | 24 +-- .../resources/cloud/instances/metrics.py | 8 +- src/gcore/resources/cloud/ip_ranges.py | 8 +- .../resources/cloud/k8s/clusters/clusters.py | 72 ++----- .../resources/cloud/k8s/clusters/nodes.py | 16 +- .../cloud/k8s/clusters/pools/nodes.py | 16 +- .../cloud/k8s/clusters/pools/pools.py | 48 ++--- src/gcore/resources/cloud/k8s/flavors.py | 8 +- src/gcore/resources/cloud/k8s/k8s.py | 8 +- .../resources/cloud/load_balancers/flavors.py | 8 +- .../load_balancers/l7_policies/l7_policies.py | 40 +--- .../cloud/load_balancers/l7_policies/rules.py | 40 +--- .../cloud/load_balancers/listeners.py | 40 +--- .../cloud/load_balancers/load_balancers.py | 56 ++---- .../resources/cloud/load_balancers/metrics.py | 8 +- .../load_balancers/pools/health_monitors.py | 16 +- .../cloud/load_balancers/pools/members.py | 16 +- .../cloud/load_balancers/pools/pools.py | 40 +--- .../cloud/load_balancers/statuses.py | 16 +- .../resources/cloud/networks/networks.py | 40 +--- src/gcore/resources/cloud/networks/routers.py | 56 ++---- src/gcore/resources/cloud/networks/subnets.py | 40 +--- src/gcore/resources/cloud/placement_groups.py | 32 +-- src/gcore/resources/cloud/projects.py | 32 +-- src/gcore/resources/cloud/quotas/quotas.py | 24 +-- src/gcore/resources/cloud/quotas/requests.py | 32 +-- src/gcore/resources/cloud/regions.py | 12 +- .../resources/cloud/registries/artifacts.py | 16 +- .../resources/cloud/registries/registries.py | 40 +--- .../cloud/registries/repositories.py | 16 +- src/gcore/resources/cloud/registries/tags.py | 8 +- src/gcore/resources/cloud/registries/users.py | 48 ++--- .../reserved_fixed_ips/reserved_fixed_ips.py | 40 +--- .../resources/cloud/reserved_fixed_ips/vip.py | 40 +--- src/gcore/resources/cloud/secrets.py | 32 +-- .../resources/cloud/security_groups/rules.py | 24 +-- .../cloud/security_groups/security_groups.py | 56 ++---- src/gcore/resources/cloud/ssh_keys.py | 40 +--- src/gcore/resources/cloud/tasks.py | 28 +-- src/gcore/resources/cloud/usage_reports.py | 8 +- .../resources/cloud/users/role_assignments.py | 32 +-- src/gcore/resources/cloud/volumes.py | 80 ++------ src/gcore/resources/dns/dns.py | 12 +- src/gcore/resources/dns/locations.py | 28 +-- src/gcore/resources/dns/metrics.py | 8 +- src/gcore/resources/dns/pickers/pickers.py | 4 +- src/gcore/resources/dns/pickers/presets.py | 8 +- src/gcore/resources/dns/zones/dnssec.py | 16 +- src/gcore/resources/dns/zones/rrsets.py | 48 ++--- src/gcore/resources/dns/zones/zones.py | 80 +++----- src/gcore/resources/fastedge/apps/apps.py | 40 ++-- src/gcore/resources/fastedge/apps/logs.py | 8 +- src/gcore/resources/fastedge/binaries.py | 32 +-- src/gcore/resources/fastedge/fastedge.py | 4 +- src/gcore/resources/fastedge/kv_stores.py | 32 +-- src/gcore/resources/fastedge/secrets.py | 48 ++--- src/gcore/resources/fastedge/statistics.py | 16 +- src/gcore/resources/fastedge/templates.py | 40 +--- src/gcore/resources/iam/api_tokens.py | 32 +-- src/gcore/resources/iam/iam.py | 4 +- src/gcore/resources/iam/users.py | 36 +--- src/gcore/resources/security/bgp_announces.py | 16 +- src/gcore/resources/security/events.py | 8 +- .../resources/security/profile_templates.py | 8 +- src/gcore/resources/security/profiles.py | 48 ++--- .../resources/storage/buckets/buckets.py | 24 +-- src/gcore/resources/storage/buckets/cors.py | 16 +- .../resources/storage/buckets/lifecycle.py | 16 +- src/gcore/resources/storage/buckets/policy.py | 24 +-- src/gcore/resources/storage/credentials.py | 8 +- src/gcore/resources/storage/locations.py | 8 +- src/gcore/resources/storage/statistics.py | 16 +- src/gcore/resources/storage/storage.py | 64 ++---- src/gcore/resources/streaming/ai_tasks.py | 28 +-- src/gcore/resources/streaming/broadcasts.py | 48 ++--- src/gcore/resources/streaming/directories.py | 40 +--- src/gcore/resources/streaming/players.py | 40 ++-- src/gcore/resources/streaming/playlists.py | 48 ++--- src/gcore/resources/streaming/quality_sets.py | 16 +- src/gcore/resources/streaming/restreams.py | 40 +--- src/gcore/resources/streaming/statistics.py | 184 +++++------------- .../resources/streaming/streams/overlays.py | 48 ++--- .../resources/streaming/streams/streams.py | 72 ++----- .../resources/streaming/videos/subtitles.py | 40 +--- .../resources/streaming/videos/videos.py | 56 ++---- src/gcore/resources/waap/advanced_rules.py | 8 +- src/gcore/resources/waap/custom_page_sets.py | 48 ++--- .../resources/waap/domains/advanced_rules.py | 48 ++--- .../resources/waap/domains/api_discovery.py | 48 ++--- .../resources/waap/domains/api_path_groups.py | 8 +- src/gcore/resources/waap/domains/api_paths.py | 40 +--- .../resources/waap/domains/custom_rules.py | 56 ++---- src/gcore/resources/waap/domains/domains.py | 44 ++--- .../resources/waap/domains/firewall_rules.py | 56 ++---- .../waap/domains/insight_silences.py | 40 +--- src/gcore/resources/waap/domains/insights.py | 24 +-- src/gcore/resources/waap/domains/settings.py | 16 +- .../resources/waap/domains/statistics.py | 48 ++--- src/gcore/resources/waap/insights.py | 8 +- src/gcore/resources/waap/ip_info/ip_info.py | 64 ++---- src/gcore/resources/waap/ip_info/metrics.py | 8 +- src/gcore/resources/waap/organizations.py | 8 +- src/gcore/resources/waap/statistics.py | 8 +- src/gcore/resources/waap/tags.py | 4 +- src/gcore/resources/waap/waap.py | 4 +- 152 files changed, 1230 insertions(+), 3540 deletions(-) diff --git a/.stats.yml b/.stats.yml index f64973ad..dac0e15a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-9d544c0c6403897f31c25f5630228b123f6542f9ac7deee6ef2bade239c637c2.yml -openapi_spec_hash: 504c8bea0ced4e280b59f75422f29764 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-0783502211f81fa32d09abbc34b4678c3d8e7dc885194ad89102ca02bcdc0cc6.yml +openapi_spec_hash: aa485ffac6ffc8cb771ddb451a65a71b config_hash: 399dda838c78c5d92532b7efcaaa0345 diff --git a/src/gcore/_client.py b/src/gcore/_client.py index 3aaf9b6f..4df8dcc0 100644 --- a/src/gcore/_client.py +++ b/src/gcore/_client.py @@ -115,7 +115,6 @@ def __init__( if base_url is None: base_url = os.environ.get("GCORE_BASE_URL") - self._base_url_overridden = base_url is not None if base_url is None: base_url = f"https://api.gcore.com" @@ -201,7 +200,7 @@ def copy( params = set_default_query http_client = http_client or self._client - client = self.__class__( + return self.__class__( api_key=api_key or self.api_key, cloud_project_id=cloud_project_id or self.cloud_project_id, cloud_region_id=cloud_region_id or self.cloud_region_id, @@ -214,8 +213,6 @@ def copy( default_query=params, **_extra_kwargs, ) - client._base_url_overridden = self._base_url_overridden or base_url is not None - return client # Alias for `copy` for nicer inline usage, e.g. # client.with_options(timeout=10).foo.create(...) @@ -347,7 +344,6 @@ def __init__( if base_url is None: base_url = os.environ.get("GCORE_BASE_URL") - self._base_url_overridden = base_url is not None if base_url is None: base_url = f"https://api.gcore.com" @@ -433,7 +429,7 @@ def copy( params = set_default_query http_client = http_client or self._client - client = self.__class__( + return self.__class__( api_key=api_key or self.api_key, cloud_project_id=cloud_project_id or self.cloud_project_id, cloud_region_id=cloud_region_id or self.cloud_region_id, @@ -446,8 +442,6 @@ def copy( default_query=params, **_extra_kwargs, ) - client._base_url_overridden = self._base_url_overridden or base_url is not None - return client # Alias for `copy` for nicer inline usage, e.g. # client.with_options(timeout=10).foo.create(...) diff --git a/src/gcore/resources/cdn/audit_log.py b/src/gcore/resources/cdn/audit_log.py index 1df531f5..f39a518f 100644 --- a/src/gcore/resources/cdn/audit_log.py +++ b/src/gcore/resources/cdn/audit_log.py @@ -125,9 +125,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cdn/activity_log/requests" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/activity_log/requests", + "/cdn/activity_log/requests", page=SyncOffsetPage[CdnAuditLogEntry], options=make_request_options( extra_headers=extra_headers, @@ -180,9 +178,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cdn/activity_log/requests/{log_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/activity_log/requests/{log_id}", + f"/cdn/activity_log/requests/{log_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -293,9 +289,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cdn/activity_log/requests" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/activity_log/requests", + "/cdn/activity_log/requests", page=AsyncOffsetPage[CdnAuditLogEntry], options=make_request_options( extra_headers=extra_headers, @@ -348,9 +342,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cdn/activity_log/requests/{log_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/activity_log/requests/{log_id}", + f"/cdn/activity_log/requests/{log_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cdn/cdn.py b/src/gcore/resources/cdn/cdn.py index 430498dc..152610ba 100644 --- a/src/gcore/resources/cdn/cdn.py +++ b/src/gcore/resources/cdn/cdn.py @@ -213,9 +213,7 @@ def get_account_limits( ) -> CdnAccountLimits: """Get information about CDN service limits.""" return self._get( - "/cdn/clients/me/limits" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/clients/me/limits", + "/cdn/clients/me/limits", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -234,7 +232,7 @@ def get_account_overview( ) -> CdnAccount: """Get information about CDN service.""" return self._get( - "/cdn/clients/me" if self._client._base_url_overridden else "https://api.gcore.com//cdn/clients/me", + "/cdn/clients/me", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -253,9 +251,7 @@ def get_available_features( ) -> CdnAvailableFeatures: """Get information about available CDN features.""" return self._get( - "/cdn/clients/me/features" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/clients/me/features", + "/cdn/clients/me/features", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -335,7 +331,7 @@ def list_purge_statuses( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cdn/purge_statuses" if self._client._base_url_overridden else "https://api.gcore.com//cdn/purge_statuses", + "/cdn/purge_statuses", page=SyncOffsetPageCdn[PurgeStatus], options=make_request_options( extra_headers=extra_headers, @@ -386,7 +382,7 @@ def update_account( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - "/cdn/clients/me" if self._client._base_url_overridden else "https://api.gcore.com//cdn/clients/me", + "/cdn/clients/me", body=maybe_transform( {"utilization_level": utilization_level}, cdn_update_account_params.CdnUpdateAccountParams ), @@ -481,9 +477,7 @@ async def get_account_limits( ) -> CdnAccountLimits: """Get information about CDN service limits.""" return await self._get( - "/cdn/clients/me/limits" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/clients/me/limits", + "/cdn/clients/me/limits", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -502,7 +496,7 @@ async def get_account_overview( ) -> CdnAccount: """Get information about CDN service.""" return await self._get( - "/cdn/clients/me" if self._client._base_url_overridden else "https://api.gcore.com//cdn/clients/me", + "/cdn/clients/me", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -521,9 +515,7 @@ async def get_available_features( ) -> CdnAvailableFeatures: """Get information about available CDN features.""" return await self._get( - "/cdn/clients/me/features" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/clients/me/features", + "/cdn/clients/me/features", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -603,7 +595,7 @@ def list_purge_statuses( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cdn/purge_statuses" if self._client._base_url_overridden else "https://api.gcore.com//cdn/purge_statuses", + "/cdn/purge_statuses", page=AsyncOffsetPageCdn[PurgeStatus], options=make_request_options( extra_headers=extra_headers, @@ -654,7 +646,7 @@ async def update_account( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - "/cdn/clients/me" if self._client._base_url_overridden else "https://api.gcore.com//cdn/clients/me", + "/cdn/clients/me", body=await async_maybe_transform( {"utilization_level": utilization_level}, cdn_update_account_params.CdnUpdateAccountParams ), diff --git a/src/gcore/resources/cdn/certificates.py b/src/gcore/resources/cdn/certificates.py index 343090f3..5b299f13 100644 --- a/src/gcore/resources/cdn/certificates.py +++ b/src/gcore/resources/cdn/certificates.py @@ -164,7 +164,7 @@ def create( ) -> None: extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - "/cdn/sslData" if self._client._base_url_overridden else "https://api.gcore.com//cdn/sslData", + "/cdn/sslData", body=maybe_transform( { "name": name, @@ -221,7 +221,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/sslData" if self._client._base_url_overridden else "https://api.gcore.com//cdn/sslData", + "/cdn/sslData", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -264,9 +264,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cdn/sslData/{ssl_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslData/{ssl_id}", + f"/cdn/sslData/{ssl_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -299,9 +297,7 @@ def force_retry( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/cdn/sslData/{cert_id}/force-retry" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslData/{cert_id}/force-retry", + f"/cdn/sslData/{cert_id}/force-retry", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -332,9 +328,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cdn/sslData/{ssl_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslData/{ssl_id}", + f"/cdn/sslData/{ssl_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -369,9 +363,7 @@ def get_status( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cdn/sslData/{cert_id}/status" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslData/{cert_id}/status", + f"/cdn/sslData/{cert_id}/status", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -409,9 +401,7 @@ def renew( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/cdn/sslData/{cert_id}/renew" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslData/{cert_id}/renew", + f"/cdn/sslData/{cert_id}/renew", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -466,9 +456,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/cdn/sslData/{ssl_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslData/{ssl_id}", + f"/cdn/sslData/{ssl_id}", body=maybe_transform( { "name": name, @@ -619,7 +607,7 @@ async def create( ) -> None: extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - "/cdn/sslData" if self._client._base_url_overridden else "https://api.gcore.com//cdn/sslData", + "/cdn/sslData", body=await async_maybe_transform( { "name": name, @@ -676,7 +664,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/sslData" if self._client._base_url_overridden else "https://api.gcore.com//cdn/sslData", + "/cdn/sslData", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -719,9 +707,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cdn/sslData/{ssl_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslData/{ssl_id}", + f"/cdn/sslData/{ssl_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -754,9 +740,7 @@ async def force_retry( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/cdn/sslData/{cert_id}/force-retry" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslData/{cert_id}/force-retry", + f"/cdn/sslData/{cert_id}/force-retry", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -787,9 +771,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cdn/sslData/{ssl_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslData/{ssl_id}", + f"/cdn/sslData/{ssl_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -824,9 +806,7 @@ async def get_status( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cdn/sslData/{cert_id}/status" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslData/{cert_id}/status", + f"/cdn/sslData/{cert_id}/status", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -866,9 +846,7 @@ async def renew( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/cdn/sslData/{cert_id}/renew" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslData/{cert_id}/renew", + f"/cdn/sslData/{cert_id}/renew", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -923,9 +901,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/cdn/sslData/{ssl_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslData/{ssl_id}", + f"/cdn/sslData/{ssl_id}", body=await async_maybe_transform( { "name": name, diff --git a/src/gcore/resources/cdn/ip_ranges.py b/src/gcore/resources/cdn/ip_ranges.py index 1480fb8e..606e9b83 100644 --- a/src/gcore/resources/cdn/ip_ranges.py +++ b/src/gcore/resources/cdn/ip_ranges.py @@ -60,9 +60,7 @@ def list( This request does not require authorization. """ return self._get( - "/cdn/public-net-list" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/public-net-list", + "/cdn/public-net-list", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -90,7 +88,7 @@ def list_ips( This request does not require authorization. """ return self._get( - "/cdn/public-ip-list" if self._client._base_url_overridden else "https://api.gcore.com//cdn/public-ip-list", + "/cdn/public-ip-list", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -138,9 +136,7 @@ async def list( This request does not require authorization. """ return await self._get( - "/cdn/public-net-list" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/public-net-list", + "/cdn/public-net-list", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -168,7 +164,7 @@ async def list_ips( This request does not require authorization. """ return await self._get( - "/cdn/public-ip-list" if self._client._base_url_overridden else "https://api.gcore.com//cdn/public-ip-list", + "/cdn/public-ip-list", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cdn/logs/logs.py b/src/gcore/resources/cdn/logs/logs.py index 9466b36b..123c80e6 100644 --- a/src/gcore/resources/cdn/logs/logs.py +++ b/src/gcore/resources/cdn/logs/logs.py @@ -309,9 +309,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cdn/advanced/v1/logs" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/advanced/v1/logs", + "/cdn/advanced/v1/logs", page=SyncOffsetPageCdnLogs[Data], options=make_request_options( extra_headers=extra_headers, @@ -627,9 +625,7 @@ def download( """ extra_headers = {"Accept": "application/zip", **(extra_headers or {})} return self._get( - "/cdn/advanced/v1/logs/download" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/advanced/v1/logs/download", + "/cdn/advanced/v1/logs/download", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -968,9 +964,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cdn/advanced/v1/logs" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/advanced/v1/logs", + "/cdn/advanced/v1/logs", page=AsyncOffsetPageCdnLogs[Data], options=make_request_options( extra_headers=extra_headers, @@ -1286,9 +1280,7 @@ async def download( """ extra_headers = {"Accept": "application/zip", **(extra_headers or {})} return await self._get( - "/cdn/advanced/v1/logs/download" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/advanced/v1/logs/download", + "/cdn/advanced/v1/logs/download", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/cdn/logs/settings.py b/src/gcore/resources/cdn/logs/settings.py index 81624fb2..94e81d6c 100644 --- a/src/gcore/resources/cdn/logs/settings.py +++ b/src/gcore/resources/cdn/logs/settings.py @@ -214,9 +214,7 @@ def create( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - "/cdn/raw_log_settings" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/raw_log_settings", + "/cdn/raw_log_settings", body=maybe_transform( { "all_resources_bucket": all_resources_bucket, @@ -424,9 +422,7 @@ def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._put( - "/cdn/raw_log_settings" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/raw_log_settings", + "/cdn/raw_log_settings", body=maybe_transform( { "all_resources_bucket": all_resources_bucket, @@ -485,9 +481,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - "/cdn/raw_log_settings" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/raw_log_settings", + "/cdn/raw_log_settings", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -506,9 +500,7 @@ def get( ) -> LogSettings: """Get information about raw logs feature settings.""" return self._get( - "/cdn/raw_log_settings" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/raw_log_settings", + "/cdn/raw_log_settings", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -707,9 +699,7 @@ async def create( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - "/cdn/raw_log_settings" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/raw_log_settings", + "/cdn/raw_log_settings", body=await async_maybe_transform( { "all_resources_bucket": all_resources_bucket, @@ -917,9 +907,7 @@ async def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._put( - "/cdn/raw_log_settings" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/raw_log_settings", + "/cdn/raw_log_settings", body=await async_maybe_transform( { "all_resources_bucket": all_resources_bucket, @@ -978,9 +966,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - "/cdn/raw_log_settings" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/raw_log_settings", + "/cdn/raw_log_settings", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -999,9 +985,7 @@ async def get( ) -> LogSettings: """Get information about raw logs feature settings.""" return await self._get( - "/cdn/raw_log_settings" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/raw_log_settings", + "/cdn/raw_log_settings", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cdn/logs_uploader/configs.py b/src/gcore/resources/cdn/logs_uploader/configs.py index 34dfc89b..66fb217f 100644 --- a/src/gcore/resources/cdn/logs_uploader/configs.py +++ b/src/gcore/resources/cdn/logs_uploader/configs.py @@ -93,9 +93,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cdn/logs_uploader/configs" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/configs", + "/cdn/logs_uploader/configs", body=maybe_transform( { "name": name, @@ -157,9 +155,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/cdn/logs_uploader/configs/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/configs/{id}", + f"/cdn/logs_uploader/configs/{id}", body=maybe_transform( { "enabled": enabled, @@ -206,9 +202,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/logs_uploader/configs" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/configs", + "/cdn/logs_uploader/configs", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -255,9 +249,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cdn/logs_uploader/configs/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/configs/{id}", + f"/cdn/logs_uploader/configs/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -288,9 +280,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cdn/logs_uploader/configs/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/configs/{id}", + f"/cdn/logs_uploader/configs/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -341,9 +331,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/cdn/logs_uploader/configs/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/configs/{id}", + f"/cdn/logs_uploader/configs/{id}", body=maybe_transform( { "name": name, @@ -385,9 +373,7 @@ def validate( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/cdn/logs_uploader/configs/{id}/validate" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/configs/{id}/validate", + f"/cdn/logs_uploader/configs/{id}/validate", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -458,9 +444,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cdn/logs_uploader/configs" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/configs", + "/cdn/logs_uploader/configs", body=await async_maybe_transform( { "name": name, @@ -522,9 +506,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/cdn/logs_uploader/configs/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/configs/{id}", + f"/cdn/logs_uploader/configs/{id}", body=await async_maybe_transform( { "enabled": enabled, @@ -571,9 +553,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/logs_uploader/configs" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/configs", + "/cdn/logs_uploader/configs", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -620,9 +600,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cdn/logs_uploader/configs/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/configs/{id}", + f"/cdn/logs_uploader/configs/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -653,9 +631,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cdn/logs_uploader/configs/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/configs/{id}", + f"/cdn/logs_uploader/configs/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -706,9 +682,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/cdn/logs_uploader/configs/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/configs/{id}", + f"/cdn/logs_uploader/configs/{id}", body=await async_maybe_transform( { "name": name, @@ -750,9 +724,7 @@ async def validate( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/cdn/logs_uploader/configs/{id}/validate" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/configs/{id}/validate", + f"/cdn/logs_uploader/configs/{id}/validate", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cdn/logs_uploader/policies.py b/src/gcore/resources/cdn/logs_uploader/policies.py index 141db85a..1ea24646 100644 --- a/src/gcore/resources/cdn/logs_uploader/policies.py +++ b/src/gcore/resources/cdn/logs_uploader/policies.py @@ -120,9 +120,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cdn/logs_uploader/policies" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/policies", + "/cdn/logs_uploader/policies", body=maybe_transform( { "date_format": date_format, @@ -220,9 +218,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/cdn/logs_uploader/policies/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/policies/{id}", + f"/cdn/logs_uploader/policies/{id}", body=maybe_transform( { "date_format": date_format, @@ -278,9 +274,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/logs_uploader/policies" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/policies", + "/cdn/logs_uploader/policies", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -327,9 +321,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cdn/logs_uploader/policies/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/policies/{id}", + f"/cdn/logs_uploader/policies/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -360,9 +352,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cdn/logs_uploader/policies/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/policies/{id}", + f"/cdn/logs_uploader/policies/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -381,9 +371,7 @@ def list_fields( ) -> PolicyListFieldsResponse: """Get list of available fields for logs uploader policy.""" return self._get( - "/cdn/logs_uploader/policies/fields" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/policies/fields", + "/cdn/logs_uploader/policies/fields", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -461,9 +449,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/cdn/logs_uploader/policies/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/policies/{id}", + f"/cdn/logs_uploader/policies/{id}", body=maybe_transform( { "date_format": date_format, @@ -581,9 +567,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cdn/logs_uploader/policies" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/policies", + "/cdn/logs_uploader/policies", body=await async_maybe_transform( { "date_format": date_format, @@ -681,9 +665,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/cdn/logs_uploader/policies/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/policies/{id}", + f"/cdn/logs_uploader/policies/{id}", body=await async_maybe_transform( { "date_format": date_format, @@ -739,9 +721,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/logs_uploader/policies" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/policies", + "/cdn/logs_uploader/policies", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -788,9 +768,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cdn/logs_uploader/policies/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/policies/{id}", + f"/cdn/logs_uploader/policies/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -821,9 +799,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cdn/logs_uploader/policies/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/policies/{id}", + f"/cdn/logs_uploader/policies/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -842,9 +818,7 @@ async def list_fields( ) -> PolicyListFieldsResponse: """Get list of available fields for logs uploader policy.""" return await self._get( - "/cdn/logs_uploader/policies/fields" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/policies/fields", + "/cdn/logs_uploader/policies/fields", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -922,9 +896,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/cdn/logs_uploader/policies/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/policies/{id}", + f"/cdn/logs_uploader/policies/{id}", body=await async_maybe_transform( { "date_format": date_format, diff --git a/src/gcore/resources/cdn/logs_uploader/targets.py b/src/gcore/resources/cdn/logs_uploader/targets.py index 1b5b90fa..c0eba285 100644 --- a/src/gcore/resources/cdn/logs_uploader/targets.py +++ b/src/gcore/resources/cdn/logs_uploader/targets.py @@ -86,9 +86,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cdn/logs_uploader/targets" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/targets", + "/cdn/logs_uploader/targets", body=maybe_transform( { "config": config, @@ -141,9 +139,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/cdn/logs_uploader/targets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/targets/{id}", + f"/cdn/logs_uploader/targets/{id}", body=maybe_transform( { "config": config, @@ -188,9 +184,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/logs_uploader/targets" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/targets", + "/cdn/logs_uploader/targets", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -237,9 +231,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cdn/logs_uploader/targets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/targets/{id}", + f"/cdn/logs_uploader/targets/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -270,9 +262,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cdn/logs_uploader/targets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/targets/{id}", + f"/cdn/logs_uploader/targets/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -315,9 +305,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/cdn/logs_uploader/targets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/targets/{id}", + f"/cdn/logs_uploader/targets/{id}", body=maybe_transform( { "config": config, @@ -357,9 +345,7 @@ def validate( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/cdn/logs_uploader/targets/{id}/validate" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/targets/{id}/validate", + f"/cdn/logs_uploader/targets/{id}/validate", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -422,9 +408,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cdn/logs_uploader/targets" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/targets", + "/cdn/logs_uploader/targets", body=await async_maybe_transform( { "config": config, @@ -477,9 +461,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/cdn/logs_uploader/targets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/targets/{id}", + f"/cdn/logs_uploader/targets/{id}", body=await async_maybe_transform( { "config": config, @@ -524,9 +506,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/logs_uploader/targets" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/logs_uploader/targets", + "/cdn/logs_uploader/targets", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -573,9 +553,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cdn/logs_uploader/targets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/targets/{id}", + f"/cdn/logs_uploader/targets/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -606,9 +584,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cdn/logs_uploader/targets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/targets/{id}", + f"/cdn/logs_uploader/targets/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -651,9 +627,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/cdn/logs_uploader/targets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/targets/{id}", + f"/cdn/logs_uploader/targets/{id}", body=await async_maybe_transform( { "config": config, @@ -693,9 +667,7 @@ async def validate( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/cdn/logs_uploader/targets/{id}/validate" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/logs_uploader/targets/{id}/validate", + f"/cdn/logs_uploader/targets/{id}/validate", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cdn/metrics.py b/src/gcore/resources/cdn/metrics.py index 4d32d90a..d1c551bd 100644 --- a/src/gcore/resources/cdn/metrics.py +++ b/src/gcore/resources/cdn/metrics.py @@ -182,9 +182,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cdn/advanced/v1/metrics" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/advanced/v1/metrics", + "/cdn/advanced/v1/metrics", body=maybe_transform( { "from_": from_, @@ -362,9 +360,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cdn/advanced/v1/metrics" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/advanced/v1/metrics", + "/cdn/advanced/v1/metrics", body=await async_maybe_transform( { "from_": from_, diff --git a/src/gcore/resources/cdn/network_capacity.py b/src/gcore/resources/cdn/network_capacity.py index 30acd2bb..870849d3 100644 --- a/src/gcore/resources/cdn/network_capacity.py +++ b/src/gcore/resources/cdn/network_capacity.py @@ -51,9 +51,7 @@ def list( ) -> NetworkCapacity: """Get network capacity per country.""" return self._get( - "/cdn/advanced/v1/capacity" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/advanced/v1/capacity", + "/cdn/advanced/v1/capacity", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -93,9 +91,7 @@ async def list( ) -> NetworkCapacity: """Get network capacity per country.""" return await self._get( - "/cdn/advanced/v1/capacity" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/advanced/v1/capacity", + "/cdn/advanced/v1/capacity", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cdn/origin_groups.py b/src/gcore/resources/cdn/origin_groups.py index aa98a961..fd8beae5 100644 --- a/src/gcore/resources/cdn/origin_groups.py +++ b/src/gcore/resources/cdn/origin_groups.py @@ -201,9 +201,7 @@ def create( return cast( OriginGroups, self._post( - "/cdn/origin_groups" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/origin_groups", + "/cdn/origin_groups", body=maybe_transform( { "name": name, @@ -382,9 +380,7 @@ def update( return cast( OriginGroups, self._patch( - f"/cdn/origin_groups/{origin_group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/origin_groups/{origin_group_id}", + f"/cdn/origin_groups/{origin_group_id}", body=maybe_transform( { "name": name, @@ -441,7 +437,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/origin_groups" if self._client._base_url_overridden else "https://api.gcore.com//cdn/origin_groups", + "/cdn/origin_groups", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -484,9 +480,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cdn/origin_groups/{origin_group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/origin_groups/{origin_group_id}", + f"/cdn/origin_groups/{origin_group_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -519,9 +513,7 @@ def get( return cast( OriginGroups, self._get( - f"/cdn/origin_groups/{origin_group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/origin_groups/{origin_group_id}", + f"/cdn/origin_groups/{origin_group_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -692,9 +684,7 @@ def replace( return cast( OriginGroups, self._put( - f"/cdn/origin_groups/{origin_group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/origin_groups/{origin_group_id}", + f"/cdn/origin_groups/{origin_group_id}", body=maybe_transform( { "auth_type": auth_type, @@ -886,9 +876,7 @@ async def create( return cast( OriginGroups, await self._post( - "/cdn/origin_groups" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/origin_groups", + "/cdn/origin_groups", body=await async_maybe_transform( { "name": name, @@ -1067,9 +1055,7 @@ async def update( return cast( OriginGroups, await self._patch( - f"/cdn/origin_groups/{origin_group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/origin_groups/{origin_group_id}", + f"/cdn/origin_groups/{origin_group_id}", body=await async_maybe_transform( { "name": name, @@ -1126,7 +1112,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/origin_groups" if self._client._base_url_overridden else "https://api.gcore.com//cdn/origin_groups", + "/cdn/origin_groups", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1169,9 +1155,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cdn/origin_groups/{origin_group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/origin_groups/{origin_group_id}", + f"/cdn/origin_groups/{origin_group_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1204,9 +1188,7 @@ async def get( return cast( OriginGroups, await self._get( - f"/cdn/origin_groups/{origin_group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/origin_groups/{origin_group_id}", + f"/cdn/origin_groups/{origin_group_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1377,9 +1359,7 @@ async def replace( return cast( OriginGroups, await self._put( - f"/cdn/origin_groups/{origin_group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/origin_groups/{origin_group_id}", + f"/cdn/origin_groups/{origin_group_id}", body=await async_maybe_transform( { "auth_type": auth_type, diff --git a/src/gcore/resources/cdn/resources/resources.py b/src/gcore/resources/cdn/resources/resources.py index 02065307..5dc03672 100644 --- a/src/gcore/resources/cdn/resources/resources.py +++ b/src/gcore/resources/cdn/resources/resources.py @@ -200,7 +200,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cdn/resources" if self._client._base_url_overridden else "https://api.gcore.com//cdn/resources", + "/cdn/resources", body=maybe_transform( { "cname": cname, @@ -327,9 +327,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/cdn/resources/{resource_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}", + f"/cdn/resources/{resource_id}", body=maybe_transform( { "active": active, @@ -461,7 +459,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/resources" if self._client._base_url_overridden else "https://api.gcore.com//cdn/resources", + "/cdn/resources", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -527,9 +525,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cdn/resources/{resource_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}", + f"/cdn/resources/{resource_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -560,9 +556,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cdn/resources/{resource_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}", + f"/cdn/resources/{resource_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -609,9 +603,7 @@ def prefetch( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/cdn/resources/{resource_id}/prefetch" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/prefetch", + f"/cdn/resources/{resource_id}/prefetch", body=maybe_transform({"paths": paths}, resource_prefetch_params.ResourcePrefetchParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -644,9 +636,7 @@ def prevalidate_ssl_le_certificate( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/cdn/resources/{resource_id}/ssl/le/pre-validate" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/ssl/le/pre-validate", + f"/cdn/resources/{resource_id}/ssl/le/pre-validate", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -821,9 +811,7 @@ def purge( ) -> None: extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/cdn/resources/{resource_id}/purge" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/purge", + f"/cdn/resources/{resource_id}/purge", body=maybe_transform( { "urls": urls, @@ -944,9 +932,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/cdn/resources/{resource_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}", + f"/cdn/resources/{resource_id}", body=maybe_transform( { "origin_group": origin_group, @@ -1124,7 +1110,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cdn/resources" if self._client._base_url_overridden else "https://api.gcore.com//cdn/resources", + "/cdn/resources", body=await async_maybe_transform( { "cname": cname, @@ -1251,9 +1237,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/cdn/resources/{resource_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}", + f"/cdn/resources/{resource_id}", body=await async_maybe_transform( { "active": active, @@ -1385,7 +1369,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/resources" if self._client._base_url_overridden else "https://api.gcore.com//cdn/resources", + "/cdn/resources", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1451,9 +1435,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cdn/resources/{resource_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}", + f"/cdn/resources/{resource_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1484,9 +1466,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cdn/resources/{resource_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}", + f"/cdn/resources/{resource_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1533,9 +1513,7 @@ async def prefetch( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/cdn/resources/{resource_id}/prefetch" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/prefetch", + f"/cdn/resources/{resource_id}/prefetch", body=await async_maybe_transform({"paths": paths}, resource_prefetch_params.ResourcePrefetchParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -1568,9 +1546,7 @@ async def prevalidate_ssl_le_certificate( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/cdn/resources/{resource_id}/ssl/le/pre-validate" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/ssl/le/pre-validate", + f"/cdn/resources/{resource_id}/ssl/le/pre-validate", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1745,9 +1721,7 @@ async def purge( ) -> None: extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/cdn/resources/{resource_id}/purge" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/purge", + f"/cdn/resources/{resource_id}/purge", body=await async_maybe_transform( { "urls": urls, @@ -1868,9 +1842,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/cdn/resources/{resource_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}", + f"/cdn/resources/{resource_id}", body=await async_maybe_transform( { "origin_group": origin_group, diff --git a/src/gcore/resources/cdn/resources/rules.py b/src/gcore/resources/cdn/resources/rules.py index 11dd3eda..88273cf0 100644 --- a/src/gcore/resources/cdn/resources/rules.py +++ b/src/gcore/resources/cdn/resources/rules.py @@ -130,9 +130,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/cdn/resources/{resource_id}/rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/rules", + f"/cdn/resources/{resource_id}/rules", body=maybe_transform( { "name": name, @@ -238,9 +236,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/cdn/resources/{resource_id}/rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/rules/{rule_id}", + f"/cdn/resources/{resource_id}/rules/{rule_id}", body=maybe_transform( { "active": active, @@ -284,9 +280,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cdn/resources/{resource_id}/rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/rules", + f"/cdn/resources/{resource_id}/rules", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -326,9 +320,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cdn/resources/{resource_id}/rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/rules/{rule_id}", + f"/cdn/resources/{resource_id}/rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -360,9 +352,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cdn/resources/{resource_id}/rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/rules/{rule_id}", + f"/cdn/resources/{resource_id}/rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -455,9 +445,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/cdn/resources/{resource_id}/rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/rules/{rule_id}", + f"/cdn/resources/{resource_id}/rules/{rule_id}", body=maybe_transform( { "rule": rule, @@ -583,9 +571,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/cdn/resources/{resource_id}/rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/rules", + f"/cdn/resources/{resource_id}/rules", body=await async_maybe_transform( { "name": name, @@ -691,9 +677,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/cdn/resources/{resource_id}/rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/rules/{rule_id}", + f"/cdn/resources/{resource_id}/rules/{rule_id}", body=await async_maybe_transform( { "active": active, @@ -737,9 +721,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cdn/resources/{resource_id}/rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/rules", + f"/cdn/resources/{resource_id}/rules", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -779,9 +761,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cdn/resources/{resource_id}/rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/rules/{rule_id}", + f"/cdn/resources/{resource_id}/rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -813,9 +793,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cdn/resources/{resource_id}/rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/rules/{rule_id}", + f"/cdn/resources/{resource_id}/rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -908,9 +886,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/cdn/resources/{resource_id}/rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/rules/{rule_id}", + f"/cdn/resources/{resource_id}/rules/{rule_id}", body=await async_maybe_transform( { "rule": rule, diff --git a/src/gcore/resources/cdn/resources/shield.py b/src/gcore/resources/cdn/resources/shield.py index 1d7d3bc9..cbb712d5 100644 --- a/src/gcore/resources/cdn/resources/shield.py +++ b/src/gcore/resources/cdn/resources/shield.py @@ -67,9 +67,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cdn/resources/{resource_id}/shielding_v2" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/shielding_v2", + f"/cdn/resources/{resource_id}/shielding_v2", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -105,9 +103,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/cdn/resources/{resource_id}/shielding_v2" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/shielding_v2", + f"/cdn/resources/{resource_id}/shielding_v2", body=maybe_transform({"shielding_pop": shielding_pop}, shield_replace_params.ShieldReplaceParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -160,9 +156,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cdn/resources/{resource_id}/shielding_v2" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/shielding_v2", + f"/cdn/resources/{resource_id}/shielding_v2", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -198,9 +192,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/cdn/resources/{resource_id}/shielding_v2" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/{resource_id}/shielding_v2", + f"/cdn/resources/{resource_id}/shielding_v2", body=await async_maybe_transform( {"shielding_pop": shielding_pop}, shield_replace_params.ShieldReplaceParams ), diff --git a/src/gcore/resources/cdn/rule_templates.py b/src/gcore/resources/cdn/rule_templates.py index a48777d2..326b7811 100644 --- a/src/gcore/resources/cdn/rule_templates.py +++ b/src/gcore/resources/cdn/rule_templates.py @@ -115,9 +115,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cdn/resources/rule_templates" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/resources/rule_templates", + "/cdn/resources/rule_templates", body=maybe_transform( { "rule": rule, @@ -206,9 +204,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/cdn/resources/rule_templates/{rule_template_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}", + f"/cdn/resources/rule_templates/{rule_template_id}", body=maybe_transform( { "name": name, @@ -238,9 +234,7 @@ def list( ) -> RuleTemplateList: """Get rule templates list""" return self._get( - "/cdn/resources/rule_templates" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/resources/rule_templates", + "/cdn/resources/rule_templates", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -272,9 +266,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cdn/resources/rule_templates/{rule_template_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}", + f"/cdn/resources/rule_templates/{rule_template_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -305,9 +297,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cdn/resources/rule_templates/{rule_template_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}", + f"/cdn/resources/rule_templates/{rule_template_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -385,9 +375,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/cdn/resources/rule_templates/{rule_template_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}", + f"/cdn/resources/rule_templates/{rule_template_id}", body=maybe_transform( { "rule": rule, @@ -496,9 +484,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cdn/resources/rule_templates" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/resources/rule_templates", + "/cdn/resources/rule_templates", body=await async_maybe_transform( { "rule": rule, @@ -587,9 +573,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/cdn/resources/rule_templates/{rule_template_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}", + f"/cdn/resources/rule_templates/{rule_template_id}", body=await async_maybe_transform( { "name": name, @@ -619,9 +603,7 @@ async def list( ) -> RuleTemplateList: """Get rule templates list""" return await self._get( - "/cdn/resources/rule_templates" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/resources/rule_templates", + "/cdn/resources/rule_templates", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -653,9 +635,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cdn/resources/rule_templates/{rule_template_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}", + f"/cdn/resources/rule_templates/{rule_template_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -686,9 +666,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cdn/resources/rule_templates/{rule_template_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}", + f"/cdn/resources/rule_templates/{rule_template_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -766,9 +744,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/cdn/resources/rule_templates/{rule_template_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/resources/rule_templates/{rule_template_id}", + f"/cdn/resources/rule_templates/{rule_template_id}", body=await async_maybe_transform( { "rule": rule, diff --git a/src/gcore/resources/cdn/shields.py b/src/gcore/resources/cdn/shields.py index cc6d7c38..07c64807 100644 --- a/src/gcore/resources/cdn/shields.py +++ b/src/gcore/resources/cdn/shields.py @@ -51,9 +51,7 @@ def list( ) -> ShieldListResponse: """Get information about all origin shielding locations available in the account.""" return self._get( - "/cdn/shieldingpop_v2" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/shieldingpop_v2", + "/cdn/shieldingpop_v2", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -93,9 +91,7 @@ async def list( ) -> ShieldListResponse: """Get information about all origin shielding locations available in the account.""" return await self._get( - "/cdn/shieldingpop_v2" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/shieldingpop_v2", + "/cdn/shieldingpop_v2", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cdn/statistics.py b/src/gcore/resources/cdn/statistics.py index 113ffff9..d07e9b46 100644 --- a/src/gcore/resources/cdn/statistics.py +++ b/src/gcore/resources/cdn/statistics.py @@ -105,9 +105,7 @@ def get_logs_usage_aggregated( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/statistics/raw_logs_usage/aggregated" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/statistics/raw_logs_usage/aggregated", + "/cdn/statistics/raw_logs_usage/aggregated", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -173,9 +171,7 @@ def get_logs_usage_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/statistics/raw_logs_usage/series" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/statistics/raw_logs_usage/series", + "/cdn/statistics/raw_logs_usage/series", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -351,9 +347,7 @@ def get_resource_usage_aggregated( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/statistics/aggregate/stats" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/statistics/aggregate/stats", + "/cdn/statistics/aggregate/stats", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -512,9 +506,7 @@ def get_resource_usage_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/statistics/series" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/statistics/series", + "/cdn/statistics/series", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -591,9 +583,7 @@ def get_shield_usage_aggregated( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/statistics/shield_usage/aggregated" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/statistics/shield_usage/aggregated", + "/cdn/statistics/shield_usage/aggregated", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -651,9 +641,7 @@ def get_shield_usage_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/statistics/shield_usage/series" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/statistics/shield_usage/series", + "/cdn/statistics/shield_usage/series", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -745,9 +733,7 @@ async def get_logs_usage_aggregated( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/statistics/raw_logs_usage/aggregated" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/statistics/raw_logs_usage/aggregated", + "/cdn/statistics/raw_logs_usage/aggregated", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -813,9 +799,7 @@ async def get_logs_usage_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/statistics/raw_logs_usage/series" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/statistics/raw_logs_usage/series", + "/cdn/statistics/raw_logs_usage/series", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -991,9 +975,7 @@ async def get_resource_usage_aggregated( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/statistics/aggregate/stats" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/statistics/aggregate/stats", + "/cdn/statistics/aggregate/stats", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1152,9 +1134,7 @@ async def get_resource_usage_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/statistics/series" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/statistics/series", + "/cdn/statistics/series", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1231,9 +1211,7 @@ async def get_shield_usage_aggregated( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/statistics/shield_usage/aggregated" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/statistics/shield_usage/aggregated", + "/cdn/statistics/shield_usage/aggregated", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1291,9 +1269,7 @@ async def get_shield_usage_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/statistics/shield_usage/series" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/statistics/shield_usage/series", + "/cdn/statistics/shield_usage/series", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/cdn/trusted_ca_certificates.py b/src/gcore/resources/cdn/trusted_ca_certificates.py index b8f83ff3..3ac42d0b 100644 --- a/src/gcore/resources/cdn/trusted_ca_certificates.py +++ b/src/gcore/resources/cdn/trusted_ca_certificates.py @@ -82,9 +82,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cdn/sslCertificates" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/sslCertificates", + "/cdn/sslCertificates", body=maybe_transform( { "name": name, @@ -138,9 +136,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/cdn/sslCertificates" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/sslCertificates", + "/cdn/sslCertificates", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -183,9 +179,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cdn/sslCertificates/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslCertificates/{id}", + f"/cdn/sslCertificates/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -216,9 +210,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cdn/sslCertificates/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslCertificates/{id}", + f"/cdn/sslCertificates/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -254,9 +246,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/cdn/sslCertificates/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslCertificates/{id}", + f"/cdn/sslCertificates/{id}", body=maybe_transform( {"name": name}, trusted_ca_certificate_replace_params.TrustedCaCertificateReplaceParams ), @@ -323,9 +313,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cdn/sslCertificates" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/sslCertificates", + "/cdn/sslCertificates", body=await async_maybe_transform( { "name": name, @@ -379,9 +367,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/cdn/sslCertificates" - if self._client._base_url_overridden - else "https://api.gcore.com//cdn/sslCertificates", + "/cdn/sslCertificates", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -424,9 +410,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cdn/sslCertificates/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslCertificates/{id}", + f"/cdn/sslCertificates/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -457,9 +441,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cdn/sslCertificates/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslCertificates/{id}", + f"/cdn/sslCertificates/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -495,9 +477,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/cdn/sslCertificates/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cdn/sslCertificates/{id}", + f"/cdn/sslCertificates/{id}", body=await async_maybe_transform( {"name": name}, trusted_ca_certificate_replace_params.TrustedCaCertificateReplaceParams ), diff --git a/src/gcore/resources/cloud/audit_logs.py b/src/gcore/resources/cloud/audit_logs.py index 0c1a5060..0e942e4e 100644 --- a/src/gcore/resources/cloud/audit_logs.py +++ b/src/gcore/resources/cloud/audit_logs.py @@ -206,9 +206,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v1/user_actions" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/user_actions", + "/cloud/v1/user_actions", page=SyncOffsetPage[AuditLogEntry], options=make_request_options( extra_headers=extra_headers, @@ -417,9 +415,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v1/user_actions" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/user_actions", + "/cloud/v1/user_actions", page=AsyncOffsetPage[AuditLogEntry], options=make_request_options( extra_headers=extra_headers, diff --git a/src/gcore/resources/cloud/baremetal/flavors.py b/src/gcore/resources/cloud/baremetal/flavors.py index 202234f1..454b0c7f 100644 --- a/src/gcore/resources/cloud/baremetal/flavors.py +++ b/src/gcore/resources/cloud/baremetal/flavors.py @@ -93,9 +93,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/bmflavors/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/bmflavors/{project_id}/{region_id}", + f"/cloud/v1/bmflavors/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -189,9 +187,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/bmflavors/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/bmflavors/{project_id}/{region_id}", + f"/cloud/v1/bmflavors/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/cloud/baremetal/images.py b/src/gcore/resources/cloud/baremetal/images.py index ddb9f507..16f4d22c 100644 --- a/src/gcore/resources/cloud/baremetal/images.py +++ b/src/gcore/resources/cloud/baremetal/images.py @@ -90,9 +90,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/bmimages/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/bmimages/{project_id}/{region_id}", + f"/cloud/v1/bmimages/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -180,9 +178,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/bmimages/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/bmimages/{project_id}/{region_id}", + f"/cloud/v1/bmimages/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/cloud/baremetal/servers.py b/src/gcore/resources/cloud/baremetal/servers.py index eb158861..a41d040d 100644 --- a/src/gcore/resources/cloud/baremetal/servers.py +++ b/src/gcore/resources/cloud/baremetal/servers.py @@ -161,9 +161,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/bminstances/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/bminstances/{project_id}/{region_id}", + f"/cloud/v1/bminstances/{project_id}/{region_id}", body=maybe_transform( { "flavor": flavor, @@ -301,9 +299,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/bminstances/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/bminstances/{project_id}/{region_id}", + f"/cloud/v1/bminstances/{project_id}/{region_id}", page=SyncOffsetPage[BaremetalServer], options=make_request_options( extra_headers=extra_headers, @@ -386,9 +382,7 @@ def rebuild( if not server_id: raise ValueError(f"Expected a non-empty value for `server_id` but received {server_id!r}") return self._post( - f"/cloud/v1/bminstances/{project_id}/{region_id}/{server_id}/rebuild" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/bminstances/{project_id}/{region_id}/{server_id}/rebuild", + f"/cloud/v1/bminstances/{project_id}/{region_id}/{server_id}/rebuild", body=maybe_transform( { "image_id": image_id, @@ -654,9 +648,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/bminstances/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/bminstances/{project_id}/{region_id}", + f"/cloud/v1/bminstances/{project_id}/{region_id}", body=await async_maybe_transform( { "flavor": flavor, @@ -794,9 +786,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/bminstances/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/bminstances/{project_id}/{region_id}", + f"/cloud/v1/bminstances/{project_id}/{region_id}", page=AsyncOffsetPage[BaremetalServer], options=make_request_options( extra_headers=extra_headers, @@ -879,9 +869,7 @@ async def rebuild( if not server_id: raise ValueError(f"Expected a non-empty value for `server_id` but received {server_id!r}") return await self._post( - f"/cloud/v1/bminstances/{project_id}/{region_id}/{server_id}/rebuild" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/bminstances/{project_id}/{region_id}/{server_id}/rebuild", + f"/cloud/v1/bminstances/{project_id}/{region_id}/{server_id}/rebuild", body=await async_maybe_transform( { "image_id": image_id, diff --git a/src/gcore/resources/cloud/billing_reservations.py b/src/gcore/resources/cloud/billing_reservations.py index 5a2dd6b5..dc107127 100644 --- a/src/gcore/resources/cloud/billing_reservations.py +++ b/src/gcore/resources/cloud/billing_reservations.py @@ -122,9 +122,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v1/reservations" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/reservations", + "/cloud/v1/reservations", page=SyncOffsetPage[BillingReservation], options=make_request_options( extra_headers=extra_headers, @@ -179,9 +177,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cloud/v1/reservations/{reservation_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reservations/{reservation_id}", + f"/cloud/v1/reservations/{reservation_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -284,9 +280,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v1/reservations" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/reservations", + "/cloud/v1/reservations", page=AsyncOffsetPage[BillingReservation], options=make_request_options( extra_headers=extra_headers, @@ -341,9 +335,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cloud/v1/reservations/{reservation_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reservations/{reservation_id}", + f"/cloud/v1/reservations/{reservation_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/cost_reports.py b/src/gcore/resources/cloud/cost_reports.py index 6871f862..1ee323ee 100644 --- a/src/gcore/resources/cloud/cost_reports.py +++ b/src/gcore/resources/cloud/cost_reports.py @@ -150,9 +150,7 @@ def get_aggregated( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cloud/v1/cost_report/totals" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/cost_report/totals", + "/cloud/v1/cost_report/totals", body=maybe_transform( { "time_from": time_from, @@ -263,9 +261,7 @@ def get_aggregated_monthly( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cloud/v1/reservation_cost_report/totals" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/reservation_cost_report/totals", + "/cloud/v1/reservation_cost_report/totals", body=maybe_transform( { "regions": regions, @@ -394,9 +390,7 @@ def get_detailed( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cloud/v1/cost_report/resources" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/cost_report/resources", + "/cloud/v1/cost_report/resources", body=maybe_transform( { "time_from": time_from, @@ -541,9 +535,7 @@ async def get_aggregated( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cloud/v1/cost_report/totals" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/cost_report/totals", + "/cloud/v1/cost_report/totals", body=await async_maybe_transform( { "time_from": time_from, @@ -654,9 +646,7 @@ async def get_aggregated_monthly( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cloud/v1/reservation_cost_report/totals" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/reservation_cost_report/totals", + "/cloud/v1/reservation_cost_report/totals", body=await async_maybe_transform( { "regions": regions, @@ -785,9 +775,7 @@ async def get_detailed( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cloud/v1/cost_report/resources" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/cost_report/resources", + "/cloud/v1/cost_report/resources", body=await async_maybe_transform( { "time_from": time_from, diff --git a/src/gcore/resources/cloud/file_shares/access_rules.py b/src/gcore/resources/cloud/file_shares/access_rules.py index fa8f4a08..6750a7c5 100644 --- a/src/gcore/resources/cloud/file_shares/access_rules.py +++ b/src/gcore/resources/cloud/file_shares/access_rules.py @@ -88,9 +88,7 @@ def create( if not file_share_id: raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}") return self._post( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule", body=maybe_transform( { "access_mode": access_mode, @@ -142,9 +140,7 @@ def list( if not file_share_id: raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}") return self._get( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -195,9 +191,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `access_rule_id` but received {access_rule_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule/{access_rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule/{access_rule_id}", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule/{access_rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -269,9 +263,7 @@ async def create( if not file_share_id: raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}") return await self._post( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule", body=await async_maybe_transform( { "access_mode": access_mode, @@ -323,9 +315,7 @@ async def list( if not file_share_id: raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}") return await self._get( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -376,9 +366,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `access_rule_id` but received {access_rule_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule/{access_rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule/{access_rule_id}", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule/{access_rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/file_shares/file_shares.py b/src/gcore/resources/cloud/file_shares/file_shares.py index 6451d59c..da32da6f 100644 --- a/src/gcore/resources/cloud/file_shares/file_shares.py +++ b/src/gcore/resources/cloud/file_shares/file_shares.py @@ -206,9 +206,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/file_shares/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}", + f"/cloud/v1/file_shares/{project_id}/{region_id}", body=maybe_transform( { "name": name, @@ -296,9 +294,7 @@ def update( if not file_share_id: raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}") return self._patch( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}", body=maybe_transform( { "name": name, @@ -359,9 +355,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/file_shares/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}", + f"/cloud/v1/file_shares/{project_id}/{region_id}", page=SyncOffsetPage[FileShare], options=make_request_options( extra_headers=extra_headers, @@ -419,9 +413,7 @@ def delete( if not file_share_id: raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}") return self._delete( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -466,9 +458,7 @@ def get( if not file_share_id: raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}") return self._get( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -516,9 +506,7 @@ def resize( if not file_share_id: raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}") return self._post( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend", body=maybe_transform({"size": size}, file_share_resize_params.FileShareResizeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -693,9 +681,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/file_shares/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}", + f"/cloud/v1/file_shares/{project_id}/{region_id}", body=await async_maybe_transform( { "name": name, @@ -783,9 +769,7 @@ async def update( if not file_share_id: raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}") return await self._patch( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}", body=await async_maybe_transform( { "name": name, @@ -846,9 +830,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/file_shares/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}", + f"/cloud/v1/file_shares/{project_id}/{region_id}", page=AsyncOffsetPage[FileShare], options=make_request_options( extra_headers=extra_headers, @@ -906,9 +888,7 @@ async def delete( if not file_share_id: raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}") return await self._delete( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -953,9 +933,7 @@ async def get( if not file_share_id: raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}") return await self._get( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1003,9 +981,7 @@ async def resize( if not file_share_id: raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}") return await self._post( - f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend", + f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend", body=await async_maybe_transform({"size": size}, file_share_resize_params.FileShareResizeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout diff --git a/src/gcore/resources/cloud/floating_ips.py b/src/gcore/resources/cloud/floating_ips.py index d969f166..a359f8f5 100644 --- a/src/gcore/resources/cloud/floating_ips.py +++ b/src/gcore/resources/cloud/floating_ips.py @@ -105,9 +105,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/floatingips/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}", + f"/cloud/v1/floatingips/{project_id}/{region_id}", body=maybe_transform( { "fixed_ip_address": fixed_ip_address, @@ -183,9 +181,7 @@ def update( if not floating_ip_id: raise ValueError(f"Expected a non-empty value for `floating_ip_id` but received {floating_ip_id!r}") return self._patch( - f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}", + f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}", body=maybe_transform({"tags": tags}, floating_ip_update_params.FloatingIPUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -239,9 +235,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/floatingips/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}", + f"/cloud/v1/floatingips/{project_id}/{region_id}", page=SyncOffsetPage[FloatingIPDetailed], options=make_request_options( extra_headers=extra_headers, @@ -299,9 +293,7 @@ def delete( if not floating_ip_id: raise ValueError(f"Expected a non-empty value for `floating_ip_id` but received {floating_ip_id!r}") return self._delete( - f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}", + f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -346,9 +338,7 @@ def assign( if not floating_ip_id: raise ValueError(f"Expected a non-empty value for `floating_ip_id` but received {floating_ip_id!r}") return self._post( - f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}/assign" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}/assign", + f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}/assign", body=maybe_transform( { "port_id": port_id, @@ -400,9 +390,7 @@ def get( if not floating_ip_id: raise ValueError(f"Expected a non-empty value for `floating_ip_id` but received {floating_ip_id!r}") return self._get( - f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}", + f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -441,9 +429,7 @@ def unassign( if not floating_ip_id: raise ValueError(f"Expected a non-empty value for `floating_ip_id` but received {floating_ip_id!r}") return self._post( - f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}/unassign" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}/unassign", + f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}/unassign", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -608,9 +594,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/floatingips/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}", + f"/cloud/v1/floatingips/{project_id}/{region_id}", body=await async_maybe_transform( { "fixed_ip_address": fixed_ip_address, @@ -686,9 +670,7 @@ async def update( if not floating_ip_id: raise ValueError(f"Expected a non-empty value for `floating_ip_id` but received {floating_ip_id!r}") return await self._patch( - f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}", + f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}", body=await async_maybe_transform({"tags": tags}, floating_ip_update_params.FloatingIPUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -742,9 +724,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/floatingips/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}", + f"/cloud/v1/floatingips/{project_id}/{region_id}", page=AsyncOffsetPage[FloatingIPDetailed], options=make_request_options( extra_headers=extra_headers, @@ -802,9 +782,7 @@ async def delete( if not floating_ip_id: raise ValueError(f"Expected a non-empty value for `floating_ip_id` but received {floating_ip_id!r}") return await self._delete( - f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}", + f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -849,9 +827,7 @@ async def assign( if not floating_ip_id: raise ValueError(f"Expected a non-empty value for `floating_ip_id` but received {floating_ip_id!r}") return await self._post( - f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}/assign" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}/assign", + f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}/assign", body=await async_maybe_transform( { "port_id": port_id, @@ -903,9 +879,7 @@ async def get( if not floating_ip_id: raise ValueError(f"Expected a non-empty value for `floating_ip_id` but received {floating_ip_id!r}") return await self._get( - f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}", + f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -944,9 +918,7 @@ async def unassign( if not floating_ip_id: raise ValueError(f"Expected a non-empty value for `floating_ip_id` but received {floating_ip_id!r}") return await self._post( - f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}/unassign" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}/unassign", + f"/cloud/v1/floatingips/{project_id}/{region_id}/{floating_ip_id}/unassign", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/gpu_baremetal_clusters/flavors.py b/src/gcore/resources/cloud/gpu_baremetal_clusters/flavors.py index dc44954b..19df3189 100644 --- a/src/gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +++ b/src/gcore/resources/cloud/gpu_baremetal_clusters/flavors.py @@ -80,9 +80,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/flavors" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/flavors", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/flavors", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -159,9 +157,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/flavors" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/flavors", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/flavors", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py b/src/gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py index 75e92cde..da31d27c 100644 --- a/src/gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +++ b/src/gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py @@ -158,9 +158,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters", body=maybe_transform( { "flavor": flavor, @@ -224,9 +222,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters", page=SyncOffsetPage[GPUBaremetalCluster], options=make_request_options( extra_headers=extra_headers, @@ -297,9 +293,7 @@ def delete( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return self._delete( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -384,9 +378,7 @@ def action( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return self._post( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/action" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/action", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/action", body=maybe_transform( { "action": action, @@ -438,9 +430,7 @@ def get( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return self._get( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -479,9 +469,7 @@ def powercycle_all_servers( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return self._post( - f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle", + f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -520,9 +508,7 @@ def reboot_all_servers( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return self._post( - f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot", + f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -574,9 +560,7 @@ def rebuild( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return self._post( - f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild", + f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild", body=maybe_transform( { "nodes": nodes, @@ -628,9 +612,7 @@ def resize( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return self._post( - f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize", + f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize", body=maybe_transform( {"instances_count": instances_count}, gpu_baremetal_cluster_resize_params.GPUBaremetalClusterResizeParams, @@ -889,9 +871,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters", body=await async_maybe_transform( { "flavor": flavor, @@ -955,9 +935,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters", page=AsyncOffsetPage[GPUBaremetalCluster], options=make_request_options( extra_headers=extra_headers, @@ -1028,9 +1006,7 @@ async def delete( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return await self._delete( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1115,9 +1091,7 @@ async def action( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return await self._post( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/action" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/action", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/action", body=await async_maybe_transform( { "action": action, @@ -1169,9 +1143,7 @@ async def get( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return await self._get( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1210,9 +1182,7 @@ async def powercycle_all_servers( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return await self._post( - f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle", + f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1251,9 +1221,7 @@ async def reboot_all_servers( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return await self._post( - f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot", + f"/cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1305,9 +1273,7 @@ async def rebuild( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return await self._post( - f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild", + f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/rebuild", body=await async_maybe_transform( { "nodes": nodes, @@ -1359,9 +1325,7 @@ async def resize( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return await self._post( - f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize", + f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/resize", body=await async_maybe_transform( {"instances_count": instances_count}, gpu_baremetal_cluster_resize_params.GPUBaremetalClusterResizeParams, diff --git a/src/gcore/resources/cloud/gpu_baremetal_clusters/images.py b/src/gcore/resources/cloud/gpu_baremetal_clusters/images.py index 00229194..7b550f98 100644 --- a/src/gcore/resources/cloud/gpu_baremetal_clusters/images.py +++ b/src/gcore/resources/cloud/gpu_baremetal_clusters/images.py @@ -79,9 +79,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/images", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -126,9 +124,7 @@ def delete( if not image_id: raise ValueError(f"Expected a non-empty value for `image_id` but received {image_id!r}") return self._delete( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images/{image_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/images/{image_id}", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images/{image_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -209,9 +205,7 @@ def get( if not image_id: raise ValueError(f"Expected a non-empty value for `image_id` but received {image_id!r}") return self._get( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images/{image_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/images/{image_id}", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images/{image_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -286,9 +280,7 @@ def upload( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/images", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images", body=maybe_transform( { "name": name, @@ -430,9 +422,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/images", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -477,9 +467,7 @@ async def delete( if not image_id: raise ValueError(f"Expected a non-empty value for `image_id` but received {image_id!r}") return await self._delete( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images/{image_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/images/{image_id}", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images/{image_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -560,9 +548,7 @@ async def get( if not image_id: raise ValueError(f"Expected a non-empty value for `image_id` but received {image_id!r}") return await self._get( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images/{image_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/images/{image_id}", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images/{image_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -637,9 +623,7 @@ async def upload( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/images", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/images", body=await async_maybe_transform( { "name": name, diff --git a/src/gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py b/src/gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py index c12ccc5f..63371d8e 100644 --- a/src/gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +++ b/src/gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py @@ -71,9 +71,7 @@ def list( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return self._get( - f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{cluster_id}/interfaces" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/{project_id}/{region_id}/{cluster_id}/interfaces", + f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{cluster_id}/interfaces", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -133,9 +131,7 @@ async def list( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return await self._get( - f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{cluster_id}/interfaces" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/{project_id}/{region_id}/{cluster_id}/interfaces", + f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{cluster_id}/interfaces", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/gpu_baremetal_clusters/servers.py b/src/gcore/resources/cloud/gpu_baremetal_clusters/servers.py index 38694509..cdbce6a7 100644 --- a/src/gcore/resources/cloud/gpu_baremetal_clusters/servers.py +++ b/src/gcore/resources/cloud/gpu_baremetal_clusters/servers.py @@ -143,9 +143,7 @@ def list( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return self._get_api_list( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/servers" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/servers", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/servers", page=SyncOffsetPage[GPUBaremetalClusterServer], options=make_request_options( extra_headers=extra_headers, @@ -211,9 +209,7 @@ def delete( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._delete( - f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/node/{instance_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/node/{instance_id}", + f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/node/{instance_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -492,9 +488,7 @@ def attach_interface( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._post( - f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/attach_interface" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/attach_interface", + f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/attach_interface", body=maybe_transform( { "ddos_profile": ddos_profile, @@ -553,9 +547,7 @@ def detach_interface( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._post( - f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/detach_interface" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/detach_interface", + f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/detach_interface", body=maybe_transform( { "ip_address": ip_address, @@ -601,9 +593,7 @@ def get_console( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._get( - f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/get_console" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/get_console", + f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/get_console", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -642,9 +632,7 @@ def powercycle( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._post( - f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/powercycle" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/powercycle", + f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/powercycle", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -683,9 +671,7 @@ def reboot( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._post( - f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/reboot" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/reboot", + f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/reboot", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -802,9 +788,7 @@ def list( if not cluster_id: raise ValueError(f"Expected a non-empty value for `cluster_id` but received {cluster_id!r}") return self._get_api_list( - f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/servers" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/servers", + f"/cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/servers", page=AsyncOffsetPage[GPUBaremetalClusterServer], options=make_request_options( extra_headers=extra_headers, @@ -870,9 +854,7 @@ async def delete( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._delete( - f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/node/{instance_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/node/{instance_id}", + f"/cloud/v1/ai/clusters/gpu/{project_id}/{region_id}/{cluster_id}/node/{instance_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1153,9 +1135,7 @@ async def attach_interface( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._post( - f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/attach_interface" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/attach_interface", + f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/attach_interface", body=await async_maybe_transform( { "ddos_profile": ddos_profile, @@ -1214,9 +1194,7 @@ async def detach_interface( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._post( - f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/detach_interface" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/detach_interface", + f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/detach_interface", body=await async_maybe_transform( { "ip_address": ip_address, @@ -1262,9 +1240,7 @@ async def get_console( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._get( - f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/get_console" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/get_console", + f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/get_console", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1303,9 +1279,7 @@ async def powercycle( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._post( - f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/powercycle" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/powercycle", + f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/powercycle", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1344,9 +1318,7 @@ async def reboot( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._post( - f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/reboot" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/reboot", + f"/cloud/v1/ai/clusters/{project_id}/{region_id}/{instance_id}/reboot", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/inference/api_keys.py b/src/gcore/resources/cloud/inference/api_keys.py index 2bca0a73..fcd8860c 100644 --- a/src/gcore/resources/cloud/inference/api_keys.py +++ b/src/gcore/resources/cloud/inference/api_keys.py @@ -84,9 +84,7 @@ def create( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._post( - f"/cloud/v3/inference/{project_id}/api_keys" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/api_keys", + f"/cloud/v3/inference/{project_id}/api_keys", body=maybe_transform( { "name": name, @@ -137,9 +135,7 @@ def update( if not api_key_name: raise ValueError(f"Expected a non-empty value for `api_key_name` but received {api_key_name!r}") return self._patch( - f"/cloud/v3/inference/{project_id}/api_keys/{api_key_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/api_keys/{api_key_name}", + f"/cloud/v3/inference/{project_id}/api_keys/{api_key_name}", body=maybe_transform({"description": description}, api_key_update_params.APIKeyUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -182,9 +178,7 @@ def list( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._get_api_list( - f"/cloud/v3/inference/{project_id}/api_keys" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/api_keys", + f"/cloud/v3/inference/{project_id}/api_keys", page=SyncOffsetPage[InferenceAPIKey], options=make_request_options( extra_headers=extra_headers, @@ -239,9 +233,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `api_key_name` but received {api_key_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v3/inference/{project_id}/api_keys/{api_key_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/api_keys/{api_key_name}", + f"/cloud/v3/inference/{project_id}/api_keys/{api_key_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -281,9 +273,7 @@ def get( if not api_key_name: raise ValueError(f"Expected a non-empty value for `api_key_name` but received {api_key_name!r}") return self._get( - f"/cloud/v3/inference/{project_id}/api_keys/{api_key_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/api_keys/{api_key_name}", + f"/cloud/v3/inference/{project_id}/api_keys/{api_key_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -350,9 +340,7 @@ async def create( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return await self._post( - f"/cloud/v3/inference/{project_id}/api_keys" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/api_keys", + f"/cloud/v3/inference/{project_id}/api_keys", body=await async_maybe_transform( { "name": name, @@ -403,9 +391,7 @@ async def update( if not api_key_name: raise ValueError(f"Expected a non-empty value for `api_key_name` but received {api_key_name!r}") return await self._patch( - f"/cloud/v3/inference/{project_id}/api_keys/{api_key_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/api_keys/{api_key_name}", + f"/cloud/v3/inference/{project_id}/api_keys/{api_key_name}", body=await async_maybe_transform({"description": description}, api_key_update_params.APIKeyUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -448,9 +434,7 @@ def list( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._get_api_list( - f"/cloud/v3/inference/{project_id}/api_keys" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/api_keys", + f"/cloud/v3/inference/{project_id}/api_keys", page=AsyncOffsetPage[InferenceAPIKey], options=make_request_options( extra_headers=extra_headers, @@ -505,9 +489,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `api_key_name` but received {api_key_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v3/inference/{project_id}/api_keys/{api_key_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/api_keys/{api_key_name}", + f"/cloud/v3/inference/{project_id}/api_keys/{api_key_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -547,9 +529,7 @@ async def get( if not api_key_name: raise ValueError(f"Expected a non-empty value for `api_key_name` but received {api_key_name!r}") return await self._get( - f"/cloud/v3/inference/{project_id}/api_keys/{api_key_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/api_keys/{api_key_name}", + f"/cloud/v3/inference/{project_id}/api_keys/{api_key_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/inference/applications/deployments.py b/src/gcore/resources/cloud/inference/applications/deployments.py index 717dbba4..7b62f2c2 100644 --- a/src/gcore/resources/cloud/inference/applications/deployments.py +++ b/src/gcore/resources/cloud/inference/applications/deployments.py @@ -93,9 +93,7 @@ def create( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._post( - f"/cloud/v3/inference/applications/{project_id}/deployments" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/applications/{project_id}/deployments", + f"/cloud/v3/inference/applications/{project_id}/deployments", body=maybe_transform( { "application_name": application_name, @@ -142,9 +140,7 @@ def list( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._get( - f"/cloud/v3/inference/applications/{project_id}/deployments" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/applications/{project_id}/deployments", + f"/cloud/v3/inference/applications/{project_id}/deployments", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -186,9 +182,7 @@ def delete( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return self._delete( - f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", + f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -232,9 +226,7 @@ def get( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return self._get( - f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", + f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -287,9 +279,7 @@ def patch( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return self._patch( - f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", + f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", body=maybe_transform( { "api_keys": api_keys, @@ -371,9 +361,7 @@ async def create( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return await self._post( - f"/cloud/v3/inference/applications/{project_id}/deployments" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/applications/{project_id}/deployments", + f"/cloud/v3/inference/applications/{project_id}/deployments", body=await async_maybe_transform( { "application_name": application_name, @@ -420,9 +408,7 @@ async def list( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return await self._get( - f"/cloud/v3/inference/applications/{project_id}/deployments" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/applications/{project_id}/deployments", + f"/cloud/v3/inference/applications/{project_id}/deployments", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -464,9 +450,7 @@ async def delete( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return await self._delete( - f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", + f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -510,9 +494,7 @@ async def get( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return await self._get( - f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", + f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -565,9 +547,7 @@ async def patch( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return await self._patch( - f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", + f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", body=await async_maybe_transform( { "api_keys": api_keys, diff --git a/src/gcore/resources/cloud/inference/applications/templates.py b/src/gcore/resources/cloud/inference/applications/templates.py index ab2fe2cb..d888a399 100644 --- a/src/gcore/resources/cloud/inference/applications/templates.py +++ b/src/gcore/resources/cloud/inference/applications/templates.py @@ -58,9 +58,7 @@ def list( required to create a fully functional application deployment. """ return self._get( - "/cloud/v3/inference/applications/catalog" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v3/inference/applications/catalog", + "/cloud/v3/inference/applications/catalog", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -99,9 +97,7 @@ def get( if not application_name: raise ValueError(f"Expected a non-empty value for `application_name` but received {application_name!r}") return self._get( - f"/cloud/v3/inference/applications/catalog/{application_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/applications/catalog/{application_name}", + f"/cloud/v3/inference/applications/catalog/{application_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -147,9 +143,7 @@ async def list( required to create a fully functional application deployment. """ return await self._get( - "/cloud/v3/inference/applications/catalog" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v3/inference/applications/catalog", + "/cloud/v3/inference/applications/catalog", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -188,9 +182,7 @@ async def get( if not application_name: raise ValueError(f"Expected a non-empty value for `application_name` but received {application_name!r}") return await self._get( - f"/cloud/v3/inference/applications/catalog/{application_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/applications/catalog/{application_name}", + f"/cloud/v3/inference/applications/catalog/{application_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/inference/deployments/deployments.py b/src/gcore/resources/cloud/inference/deployments/deployments.py index b5d41185..40f311ba 100644 --- a/src/gcore/resources/cloud/inference/deployments/deployments.py +++ b/src/gcore/resources/cloud/inference/deployments/deployments.py @@ -147,9 +147,7 @@ def create( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._post( - f"/cloud/v3/inference/{project_id}/deployments" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments", + f"/cloud/v3/inference/{project_id}/deployments", body=maybe_transform( { "containers": containers, @@ -265,9 +263,7 @@ def update( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return self._patch( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}", body=maybe_transform( { "api_keys": api_keys, @@ -329,9 +325,7 @@ def list( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._get_api_list( - f"/cloud/v3/inference/{project_id}/deployments" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments", + f"/cloud/v3/inference/{project_id}/deployments", page=SyncOffsetPage[InferenceDeployment], options=make_request_options( extra_headers=extra_headers, @@ -382,9 +376,7 @@ def delete( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return self._delete( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -424,9 +416,7 @@ def get( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return self._get( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -467,9 +457,7 @@ def get_api_key( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return self._get( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/apikey" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}/apikey", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/apikey", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -517,9 +505,7 @@ def start( raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/start" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}/start", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/start", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -567,9 +553,7 @@ def stop( raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/stop" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}/stop", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/stop", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -856,9 +840,7 @@ async def create( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return await self._post( - f"/cloud/v3/inference/{project_id}/deployments" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments", + f"/cloud/v3/inference/{project_id}/deployments", body=await async_maybe_transform( { "containers": containers, @@ -974,9 +956,7 @@ async def update( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return await self._patch( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}", body=await async_maybe_transform( { "api_keys": api_keys, @@ -1038,9 +1018,7 @@ def list( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._get_api_list( - f"/cloud/v3/inference/{project_id}/deployments" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments", + f"/cloud/v3/inference/{project_id}/deployments", page=AsyncOffsetPage[InferenceDeployment], options=make_request_options( extra_headers=extra_headers, @@ -1091,9 +1069,7 @@ async def delete( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return await self._delete( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1133,9 +1109,7 @@ async def get( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return await self._get( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1176,9 +1150,7 @@ async def get_api_key( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return await self._get( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/apikey" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}/apikey", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/apikey", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1226,9 +1198,7 @@ async def start( raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/start" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}/start", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/start", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1276,9 +1246,7 @@ async def stop( raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/stop" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}/stop", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/stop", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/inference/deployments/logs.py b/src/gcore/resources/cloud/inference/deployments/logs.py index e243a63a..3a46cbd0 100644 --- a/src/gcore/resources/cloud/inference/deployments/logs.py +++ b/src/gcore/resources/cloud/inference/deployments/logs.py @@ -91,9 +91,7 @@ def list( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return self._get_api_list( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/logs" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}/logs", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/logs", page=SyncOffsetPage[InferenceDeploymentLog], options=make_request_options( extra_headers=extra_headers, @@ -180,9 +178,7 @@ def list( if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") return self._get_api_list( - f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/logs" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/deployments/{deployment_name}/logs", + f"/cloud/v3/inference/{project_id}/deployments/{deployment_name}/logs", page=AsyncOffsetPage[InferenceDeploymentLog], options=make_request_options( extra_headers=extra_headers, diff --git a/src/gcore/resources/cloud/inference/flavors.py b/src/gcore/resources/cloud/inference/flavors.py index 6009835e..c9934320 100644 --- a/src/gcore/resources/cloud/inference/flavors.py +++ b/src/gcore/resources/cloud/inference/flavors.py @@ -73,9 +73,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v3/inference/flavors" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v3/inference/flavors", + "/cloud/v3/inference/flavors", page=SyncOffsetPage[InferenceFlavor], options=make_request_options( extra_headers=extra_headers, @@ -121,9 +119,7 @@ def get( if not flavor_name: raise ValueError(f"Expected a non-empty value for `flavor_name` but received {flavor_name!r}") return self._get( - f"/cloud/v3/inference/flavors/{flavor_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/flavors/{flavor_name}", + f"/cloud/v3/inference/flavors/{flavor_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -182,9 +178,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v3/inference/flavors" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v3/inference/flavors", + "/cloud/v3/inference/flavors", page=AsyncOffsetPage[InferenceFlavor], options=make_request_options( extra_headers=extra_headers, @@ -230,9 +224,7 @@ async def get( if not flavor_name: raise ValueError(f"Expected a non-empty value for `flavor_name` but received {flavor_name!r}") return await self._get( - f"/cloud/v3/inference/flavors/{flavor_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/flavors/{flavor_name}", + f"/cloud/v3/inference/flavors/{flavor_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/inference/inference.py b/src/gcore/resources/cloud/inference/inference.py index 8b2b1ca1..86dd2f3c 100644 --- a/src/gcore/resources/cloud/inference/inference.py +++ b/src/gcore/resources/cloud/inference/inference.py @@ -123,9 +123,7 @@ def get_capacity_by_region( ) -> InferenceRegionCapacityList: """Get inference capacity by region""" return self._get( - "/cloud/v3/inference/capacity" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v3/inference/capacity", + "/cloud/v3/inference/capacity", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -189,9 +187,7 @@ async def get_capacity_by_region( ) -> InferenceRegionCapacityList: """Get inference capacity by region""" return await self._get( - "/cloud/v3/inference/capacity" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v3/inference/capacity", + "/cloud/v3/inference/capacity", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/inference/registry_credentials.py b/src/gcore/resources/cloud/inference/registry_credentials.py index 0baea891..c34dfc0a 100644 --- a/src/gcore/resources/cloud/inference/registry_credentials.py +++ b/src/gcore/resources/cloud/inference/registry_credentials.py @@ -86,9 +86,7 @@ def create( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._post( - f"/cloud/v3/inference/{project_id}/registry_credentials" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/registry_credentials", + f"/cloud/v3/inference/{project_id}/registry_credentials", body=maybe_transform( { "name": name, @@ -139,9 +137,7 @@ def list( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._get_api_list( - f"/cloud/v3/inference/{project_id}/registry_credentials" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/registry_credentials", + f"/cloud/v3/inference/{project_id}/registry_credentials", page=SyncOffsetPage[InferenceRegistryCredentials], options=make_request_options( extra_headers=extra_headers, @@ -193,9 +189,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `credential_name` but received {credential_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v3/inference/{project_id}/registry_credentials/{credential_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/registry_credentials/{credential_name}", + f"/cloud/v3/inference/{project_id}/registry_credentials/{credential_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -235,9 +229,7 @@ def get( if not credential_name: raise ValueError(f"Expected a non-empty value for `credential_name` but received {credential_name!r}") return self._get( - f"/cloud/v3/inference/{project_id}/registry_credentials/{credential_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/registry_credentials/{credential_name}", + f"/cloud/v3/inference/{project_id}/registry_credentials/{credential_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -286,9 +278,7 @@ def replace( if not credential_name: raise ValueError(f"Expected a non-empty value for `credential_name` but received {credential_name!r}") return self._put( - f"/cloud/v3/inference/{project_id}/registry_credentials/{credential_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/registry_credentials/{credential_name}", + f"/cloud/v3/inference/{project_id}/registry_credentials/{credential_name}", body=maybe_transform( { "password": password, @@ -364,9 +354,7 @@ async def create( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return await self._post( - f"/cloud/v3/inference/{project_id}/registry_credentials" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/registry_credentials", + f"/cloud/v3/inference/{project_id}/registry_credentials", body=await async_maybe_transform( { "name": name, @@ -417,9 +405,7 @@ def list( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._get_api_list( - f"/cloud/v3/inference/{project_id}/registry_credentials" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/registry_credentials", + f"/cloud/v3/inference/{project_id}/registry_credentials", page=AsyncOffsetPage[InferenceRegistryCredentials], options=make_request_options( extra_headers=extra_headers, @@ -471,9 +457,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `credential_name` but received {credential_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v3/inference/{project_id}/registry_credentials/{credential_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/registry_credentials/{credential_name}", + f"/cloud/v3/inference/{project_id}/registry_credentials/{credential_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -513,9 +497,7 @@ async def get( if not credential_name: raise ValueError(f"Expected a non-empty value for `credential_name` but received {credential_name!r}") return await self._get( - f"/cloud/v3/inference/{project_id}/registry_credentials/{credential_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/registry_credentials/{credential_name}", + f"/cloud/v3/inference/{project_id}/registry_credentials/{credential_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -564,9 +546,7 @@ async def replace( if not credential_name: raise ValueError(f"Expected a non-empty value for `credential_name` but received {credential_name!r}") return await self._put( - f"/cloud/v3/inference/{project_id}/registry_credentials/{credential_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/registry_credentials/{credential_name}", + f"/cloud/v3/inference/{project_id}/registry_credentials/{credential_name}", body=await async_maybe_transform( { "password": password, diff --git a/src/gcore/resources/cloud/inference/secrets.py b/src/gcore/resources/cloud/inference/secrets.py index 9ff5126f..6b168d22 100644 --- a/src/gcore/resources/cloud/inference/secrets.py +++ b/src/gcore/resources/cloud/inference/secrets.py @@ -79,9 +79,7 @@ def create( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._post( - f"/cloud/v3/inference/{project_id}/secrets" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/secrets", + f"/cloud/v3/inference/{project_id}/secrets", body=maybe_transform( { "data": data, @@ -132,9 +130,7 @@ def list( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._get_api_list( - f"/cloud/v3/inference/{project_id}/secrets" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/secrets", + f"/cloud/v3/inference/{project_id}/secrets", page=SyncOffsetPage[InferenceSecret], options=make_request_options( extra_headers=extra_headers, @@ -186,9 +182,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `secret_name` but received {secret_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v3/inference/{project_id}/secrets/{secret_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/secrets/{secret_name}", + f"/cloud/v3/inference/{project_id}/secrets/{secret_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -228,9 +222,7 @@ def get( if not secret_name: raise ValueError(f"Expected a non-empty value for `secret_name` but received {secret_name!r}") return self._get( - f"/cloud/v3/inference/{project_id}/secrets/{secret_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/secrets/{secret_name}", + f"/cloud/v3/inference/{project_id}/secrets/{secret_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -276,9 +268,7 @@ def replace( if not secret_name: raise ValueError(f"Expected a non-empty value for `secret_name` but received {secret_name!r}") return self._put( - f"/cloud/v3/inference/{project_id}/secrets/{secret_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/secrets/{secret_name}", + f"/cloud/v3/inference/{project_id}/secrets/{secret_name}", body=maybe_transform( { "data": data, @@ -350,9 +340,7 @@ async def create( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return await self._post( - f"/cloud/v3/inference/{project_id}/secrets" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/secrets", + f"/cloud/v3/inference/{project_id}/secrets", body=await async_maybe_transform( { "data": data, @@ -403,9 +391,7 @@ def list( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._get_api_list( - f"/cloud/v3/inference/{project_id}/secrets" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/secrets", + f"/cloud/v3/inference/{project_id}/secrets", page=AsyncOffsetPage[InferenceSecret], options=make_request_options( extra_headers=extra_headers, @@ -457,9 +443,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `secret_name` but received {secret_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v3/inference/{project_id}/secrets/{secret_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/secrets/{secret_name}", + f"/cloud/v3/inference/{project_id}/secrets/{secret_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -499,9 +483,7 @@ async def get( if not secret_name: raise ValueError(f"Expected a non-empty value for `secret_name` but received {secret_name!r}") return await self._get( - f"/cloud/v3/inference/{project_id}/secrets/{secret_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/secrets/{secret_name}", + f"/cloud/v3/inference/{project_id}/secrets/{secret_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -547,9 +529,7 @@ async def replace( if not secret_name: raise ValueError(f"Expected a non-empty value for `secret_name` but received {secret_name!r}") return await self._put( - f"/cloud/v3/inference/{project_id}/secrets/{secret_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v3/inference/{project_id}/secrets/{secret_name}", + f"/cloud/v3/inference/{project_id}/secrets/{secret_name}", body=await async_maybe_transform( { "data": data, diff --git a/src/gcore/resources/cloud/instances/flavors.py b/src/gcore/resources/cloud/instances/flavors.py index 63158c8b..23ba0073 100644 --- a/src/gcore/resources/cloud/instances/flavors.py +++ b/src/gcore/resources/cloud/instances/flavors.py @@ -85,9 +85,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/flavors/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/flavors/{project_id}/{region_id}", + f"/cloud/v1/flavors/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -171,9 +169,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/flavors/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/flavors/{project_id}/{region_id}", + f"/cloud/v1/flavors/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/cloud/instances/images.py b/src/gcore/resources/cloud/instances/images.py index 16fc7ca0..e863821c 100644 --- a/src/gcore/resources/cloud/instances/images.py +++ b/src/gcore/resources/cloud/instances/images.py @@ -110,9 +110,7 @@ def update( if not image_id: raise ValueError(f"Expected a non-empty value for `image_id` but received {image_id!r}") return self._patch( - f"/cloud/v1/images/{project_id}/{region_id}/{image_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/images/{project_id}/{region_id}/{image_id}", + f"/cloud/v1/images/{project_id}/{region_id}/{image_id}", body=maybe_transform( { "hw_firmware_type": hw_firmware_type, @@ -178,9 +176,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/images/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/images/{project_id}/{region_id}", + f"/cloud/v1/images/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -234,9 +230,7 @@ def delete( if not image_id: raise ValueError(f"Expected a non-empty value for `image_id` but received {image_id!r}") return self._delete( - f"/cloud/v1/images/{project_id}/{region_id}/{image_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/images/{project_id}/{region_id}/{image_id}", + f"/cloud/v1/images/{project_id}/{region_id}/{image_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -342,9 +336,7 @@ def create_from_volume( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/images/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/images/{project_id}/{region_id}", + f"/cloud/v1/images/{project_id}/{region_id}", body=maybe_transform( { "name": name, @@ -461,9 +453,7 @@ def get( if not image_id: raise ValueError(f"Expected a non-empty value for `image_id` but received {image_id!r}") return self._get( - f"/cloud/v1/images/{project_id}/{region_id}/{image_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/images/{project_id}/{region_id}/{image_id}", + f"/cloud/v1/images/{project_id}/{region_id}/{image_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -546,9 +536,7 @@ def upload( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/downloadimage/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/downloadimage/{project_id}/{region_id}", + f"/cloud/v1/downloadimage/{project_id}/{region_id}", body=maybe_transform( { "name": name, @@ -714,9 +702,7 @@ async def update( if not image_id: raise ValueError(f"Expected a non-empty value for `image_id` but received {image_id!r}") return await self._patch( - f"/cloud/v1/images/{project_id}/{region_id}/{image_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/images/{project_id}/{region_id}/{image_id}", + f"/cloud/v1/images/{project_id}/{region_id}/{image_id}", body=await async_maybe_transform( { "hw_firmware_type": hw_firmware_type, @@ -782,9 +768,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/images/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/images/{project_id}/{region_id}", + f"/cloud/v1/images/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -838,9 +822,7 @@ async def delete( if not image_id: raise ValueError(f"Expected a non-empty value for `image_id` but received {image_id!r}") return await self._delete( - f"/cloud/v1/images/{project_id}/{region_id}/{image_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/images/{project_id}/{region_id}/{image_id}", + f"/cloud/v1/images/{project_id}/{region_id}/{image_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -946,9 +928,7 @@ async def create_from_volume( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/images/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/images/{project_id}/{region_id}", + f"/cloud/v1/images/{project_id}/{region_id}", body=await async_maybe_transform( { "name": name, @@ -1065,9 +1045,7 @@ async def get( if not image_id: raise ValueError(f"Expected a non-empty value for `image_id` but received {image_id!r}") return await self._get( - f"/cloud/v1/images/{project_id}/{region_id}/{image_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/images/{project_id}/{region_id}/{image_id}", + f"/cloud/v1/images/{project_id}/{region_id}/{image_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1150,9 +1128,7 @@ async def upload( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/downloadimage/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/downloadimage/{project_id}/{region_id}", + f"/cloud/v1/downloadimage/{project_id}/{region_id}", body=await async_maybe_transform( { "name": name, diff --git a/src/gcore/resources/cloud/instances/instances.py b/src/gcore/resources/cloud/instances/instances.py index ceb67d73..a407b862 100644 --- a/src/gcore/resources/cloud/instances/instances.py +++ b/src/gcore/resources/cloud/instances/instances.py @@ -235,9 +235,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v2/instances/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/instances/{project_id}/{region_id}", + f"/cloud/v2/instances/{project_id}/{region_id}", body=maybe_transform( { "flavor": flavor, @@ -374,9 +372,7 @@ def update( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._patch( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}", body=maybe_transform({"name": name}, instance_update_params.InstanceUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -526,9 +522,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/instances/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}", + f"/cloud/v1/instances/{project_id}/{region_id}", page=SyncOffsetPage[Instance], options=make_request_options( extra_headers=extra_headers, @@ -622,9 +616,7 @@ def delete( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._delete( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -775,9 +767,7 @@ def action( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._post( - f"/cloud/v2/instances/{project_id}/{region_id}/{instance_id}/action" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/instances/{project_id}/{region_id}/{instance_id}/action", + f"/cloud/v2/instances/{project_id}/{region_id}/{instance_id}/action", body=maybe_transform( { "action": action, @@ -947,9 +937,7 @@ def add_to_placement_group( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/put_into_servergroup" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/put_into_servergroup", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/put_into_servergroup", body=maybe_transform( {"servergroup_id": servergroup_id}, instance_add_to_placement_group_params.InstanceAddToPlacementGroupParams, @@ -1044,9 +1032,7 @@ def assign_security_group( raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/addsecuritygroup" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/addsecuritygroup", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/addsecuritygroup", body=maybe_transform( { "name": name, @@ -1092,9 +1078,7 @@ def disable_port_security( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return self._post( - f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/disable_port_security" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ports/{project_id}/{region_id}/{port_id}/disable_port_security", + f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/disable_port_security", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1133,9 +1117,7 @@ def enable_port_security( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return self._post( - f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/enable_port_security" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ports/{project_id}/{region_id}/{port_id}/enable_port_security", + f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/enable_port_security", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1191,9 +1173,7 @@ def get( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._get( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1235,9 +1215,7 @@ def get_console( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._get( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/get_console" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/get_console", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/get_console", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1284,9 +1262,7 @@ def remove_from_placement_group( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/remove_from_servergroup" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/remove_from_servergroup", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/remove_from_servergroup", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1368,9 +1344,7 @@ def resize( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/changeflavor" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/changeflavor", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/changeflavor", body=maybe_transform({"flavor_id": flavor_id}, instance_resize_params.InstanceResizeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -1462,9 +1436,7 @@ def unassign_security_group( raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/delsecuritygroup" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/delsecuritygroup", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/delsecuritygroup", body=maybe_transform( { "name": name, @@ -1642,9 +1614,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v2/instances/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/instances/{project_id}/{region_id}", + f"/cloud/v2/instances/{project_id}/{region_id}", body=await async_maybe_transform( { "flavor": flavor, @@ -1781,9 +1751,7 @@ async def update( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._patch( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}", body=await async_maybe_transform({"name": name}, instance_update_params.InstanceUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -1933,9 +1901,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/instances/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}", + f"/cloud/v1/instances/{project_id}/{region_id}", page=AsyncOffsetPage[Instance], options=make_request_options( extra_headers=extra_headers, @@ -2029,9 +1995,7 @@ async def delete( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._delete( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2182,9 +2146,7 @@ async def action( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._post( - f"/cloud/v2/instances/{project_id}/{region_id}/{instance_id}/action" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/instances/{project_id}/{region_id}/{instance_id}/action", + f"/cloud/v2/instances/{project_id}/{region_id}/{instance_id}/action", body=await async_maybe_transform( { "action": action, @@ -2354,9 +2316,7 @@ async def add_to_placement_group( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/put_into_servergroup" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/put_into_servergroup", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/put_into_servergroup", body=await async_maybe_transform( {"servergroup_id": servergroup_id}, instance_add_to_placement_group_params.InstanceAddToPlacementGroupParams, @@ -2451,9 +2411,7 @@ async def assign_security_group( raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/addsecuritygroup" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/addsecuritygroup", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/addsecuritygroup", body=await async_maybe_transform( { "name": name, @@ -2499,9 +2457,7 @@ async def disable_port_security( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return await self._post( - f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/disable_port_security" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ports/{project_id}/{region_id}/{port_id}/disable_port_security", + f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/disable_port_security", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -2540,9 +2496,7 @@ async def enable_port_security( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return await self._post( - f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/enable_port_security" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ports/{project_id}/{region_id}/{port_id}/enable_port_security", + f"/cloud/v1/ports/{project_id}/{region_id}/{port_id}/enable_port_security", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -2598,9 +2552,7 @@ async def get( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._get( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -2642,9 +2594,7 @@ async def get_console( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._get( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/get_console" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/get_console", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/get_console", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2691,9 +2641,7 @@ async def remove_from_placement_group( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/remove_from_servergroup" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/remove_from_servergroup", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/remove_from_servergroup", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -2775,9 +2723,7 @@ async def resize( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/changeflavor" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/changeflavor", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/changeflavor", body=await async_maybe_transform({"flavor_id": flavor_id}, instance_resize_params.InstanceResizeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -2869,9 +2815,7 @@ async def unassign_security_group( raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/delsecuritygroup" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/delsecuritygroup", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/delsecuritygroup", body=await async_maybe_transform( { "name": name, diff --git a/src/gcore/resources/cloud/instances/interfaces.py b/src/gcore/resources/cloud/instances/interfaces.py index cff96437..8336732b 100644 --- a/src/gcore/resources/cloud/instances/interfaces.py +++ b/src/gcore/resources/cloud/instances/interfaces.py @@ -77,9 +77,7 @@ def list( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._get( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/interfaces" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/interfaces", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/interfaces", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -311,9 +309,7 @@ def attach( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/attach_interface" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/attach_interface", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/attach_interface", body=maybe_transform( { "ddos_profile": ddos_profile, @@ -665,9 +661,7 @@ def detach( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/detach_interface" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/detach_interface", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/detach_interface", body=maybe_transform( { "ip_address": ip_address, @@ -734,9 +728,7 @@ async def list( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._get( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/interfaces" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/interfaces", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/interfaces", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -968,9 +960,7 @@ async def attach( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/attach_interface" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/attach_interface", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/attach_interface", body=await async_maybe_transform( { "ddos_profile": ddos_profile, @@ -1244,9 +1234,7 @@ async def detach( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/detach_interface" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/detach_interface", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/detach_interface", body=await async_maybe_transform( { "ip_address": ip_address, diff --git a/src/gcore/resources/cloud/instances/metrics.py b/src/gcore/resources/cloud/instances/metrics.py index 77f2ea82..c24b208c 100644 --- a/src/gcore/resources/cloud/instances/metrics.py +++ b/src/gcore/resources/cloud/instances/metrics.py @@ -87,9 +87,7 @@ def list( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/metrics" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/metrics", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/metrics", body=maybe_transform( { "time_interval": time_interval, @@ -168,9 +166,7 @@ async def list( if not instance_id: raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._post( - f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/metrics" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/instances/{project_id}/{region_id}/{instance_id}/metrics", + f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}/metrics", body=await async_maybe_transform( { "time_interval": time_interval, diff --git a/src/gcore/resources/cloud/ip_ranges.py b/src/gcore/resources/cloud/ip_ranges.py index 4e66a509..d807001b 100644 --- a/src/gcore/resources/cloud/ip_ranges.py +++ b/src/gcore/resources/cloud/ip_ranges.py @@ -70,9 +70,7 @@ def list( duplicate prefixes are not returned. """ return self._get( - "/cloud/public/v1/ipranges/egress" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/public/v1/ipranges/egress", + "/cloud/public/v1/ipranges/egress", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -131,9 +129,7 @@ async def list( duplicate prefixes are not returned. """ return await self._get( - "/cloud/public/v1/ipranges/egress" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/public/v1/ipranges/egress", + "/cloud/public/v1/ipranges/egress", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/k8s/clusters/clusters.py b/src/gcore/resources/cloud/k8s/clusters/clusters.py index 7399935c..cda6a936 100644 --- a/src/gcore/resources/cloud/k8s/clusters/clusters.py +++ b/src/gcore/resources/cloud/k8s/clusters/clusters.py @@ -216,9 +216,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}", body=maybe_transform( { "keypair": keypair, @@ -354,9 +352,7 @@ def update( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return self._patch( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}", body=maybe_transform( { "add_ons": add_ons, @@ -403,9 +399,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -447,9 +441,7 @@ def delete( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return self._delete( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -492,9 +484,7 @@ def get( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -533,9 +523,7 @@ def get_certificate( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/certificates" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/certificates", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/certificates", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -574,9 +562,7 @@ def get_kubeconfig( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/config" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/config", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/config", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -615,9 +601,7 @@ def list_versions_for_upgrade( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/upgrade_versions" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/upgrade_versions", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/upgrade_versions", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -659,9 +643,7 @@ def upgrade( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return self._post( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/upgrade" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/upgrade", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/upgrade", body=maybe_transform({"version": version}, cluster_upgrade_params.ClusterUpgradeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -837,9 +819,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}", body=await async_maybe_transform( { "keypair": keypair, @@ -975,9 +955,7 @@ async def update( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return await self._patch( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}", body=await async_maybe_transform( { "add_ons": add_ons, @@ -1024,9 +1002,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1068,9 +1044,7 @@ async def delete( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return await self._delete( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1113,9 +1087,7 @@ async def get( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return await self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1154,9 +1126,7 @@ async def get_certificate( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return await self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/certificates" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/certificates", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/certificates", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1195,9 +1165,7 @@ async def get_kubeconfig( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return await self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/config" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/config", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/config", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1236,9 +1204,7 @@ async def list_versions_for_upgrade( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return await self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/upgrade_versions" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/upgrade_versions", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/upgrade_versions", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1280,9 +1246,7 @@ async def upgrade( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return await self._post( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/upgrade" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/upgrade", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/upgrade", body=await async_maybe_transform({"version": version}, cluster_upgrade_params.ClusterUpgradeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout diff --git a/src/gcore/resources/cloud/k8s/clusters/nodes.py b/src/gcore/resources/cloud/k8s/clusters/nodes.py index 6ab3f1ba..4518d8b9 100644 --- a/src/gcore/resources/cloud/k8s/clusters/nodes.py +++ b/src/gcore/resources/cloud/k8s/clusters/nodes.py @@ -76,9 +76,7 @@ def list( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/instances" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/instances", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/instances", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -126,9 +124,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/instances/{instance_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/instances/{instance_id}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/instances/{instance_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -191,9 +187,7 @@ async def list( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return await self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/instances" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/instances", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/instances", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -241,9 +235,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/instances/{instance_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/instances/{instance_id}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/instances/{instance_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/k8s/clusters/pools/nodes.py b/src/gcore/resources/cloud/k8s/clusters/pools/nodes.py index fedba09c..797c0e6e 100644 --- a/src/gcore/resources/cloud/k8s/clusters/pools/nodes.py +++ b/src/gcore/resources/cloud/k8s/clusters/pools/nodes.py @@ -79,9 +79,7 @@ def list( if not pool_name: raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}") return self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/instances" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/instances", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/instances", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -132,9 +130,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/instances/{instance_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/instances/{instance_id}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/instances/{instance_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -200,9 +196,7 @@ async def list( if not pool_name: raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}") return await self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/instances" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/instances", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/instances", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -253,9 +247,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/instances/{instance_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/instances/{instance_id}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/instances/{instance_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/k8s/clusters/pools/pools.py b/src/gcore/resources/cloud/k8s/clusters/pools/pools.py index 38dfa4a7..72cb9321 100644 --- a/src/gcore/resources/cloud/k8s/clusters/pools/pools.py +++ b/src/gcore/resources/cloud/k8s/clusters/pools/pools.py @@ -130,9 +130,7 @@ def create( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return self._post( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools", body=maybe_transform( { "flavor_id": flavor_id, @@ -210,9 +208,7 @@ def update( if not pool_name: raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}") return self._patch( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}", body=maybe_transform( { "auto_healing_enabled": auto_healing_enabled, @@ -262,9 +258,7 @@ def list( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -306,9 +300,7 @@ def delete( if not pool_name: raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}") return self._delete( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -350,9 +342,7 @@ def get( if not pool_name: raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}") return self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -397,9 +387,7 @@ def resize( if not pool_name: raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}") return self._post( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/resize" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/resize", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/resize", body=maybe_transform({"node_count": node_count}, pool_resize_params.PoolResizeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -504,9 +492,7 @@ async def create( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return await self._post( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools", body=await async_maybe_transform( { "flavor_id": flavor_id, @@ -584,9 +570,7 @@ async def update( if not pool_name: raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}") return await self._patch( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}", body=await async_maybe_transform( { "auto_healing_enabled": auto_healing_enabled, @@ -636,9 +620,7 @@ async def list( if not cluster_name: raise ValueError(f"Expected a non-empty value for `cluster_name` but received {cluster_name!r}") return await self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -680,9 +662,7 @@ async def delete( if not pool_name: raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}") return await self._delete( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -724,9 +704,7 @@ async def get( if not pool_name: raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}") return await self._get( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -771,9 +749,7 @@ async def resize( if not pool_name: raise ValueError(f"Expected a non-empty value for `pool_name` but received {pool_name!r}") return await self._post( - f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/resize" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/resize", + f"/cloud/v2/k8s/clusters/{project_id}/{region_id}/{cluster_name}/pools/{pool_name}/resize", body=await async_maybe_transform({"node_count": node_count}, pool_resize_params.PoolResizeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout diff --git a/src/gcore/resources/cloud/k8s/flavors.py b/src/gcore/resources/cloud/k8s/flavors.py index 4996c836..0823633e 100644 --- a/src/gcore/resources/cloud/k8s/flavors.py +++ b/src/gcore/resources/cloud/k8s/flavors.py @@ -79,9 +79,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/k8s/{project_id}/{region_id}/flavors" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/k8s/{project_id}/{region_id}/flavors", + f"/cloud/v1/k8s/{project_id}/{region_id}/flavors", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -157,9 +155,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/k8s/{project_id}/{region_id}/flavors" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/k8s/{project_id}/{region_id}/flavors", + f"/cloud/v1/k8s/{project_id}/{region_id}/flavors", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/cloud/k8s/k8s.py b/src/gcore/resources/cloud/k8s/k8s.py index 2c10d310..f3ac5aff 100644 --- a/src/gcore/resources/cloud/k8s/k8s.py +++ b/src/gcore/resources/cloud/k8s/k8s.py @@ -92,9 +92,7 @@ def list_versions( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v2/k8s/{project_id}/{region_id}/create_versions" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/{project_id}/{region_id}/create_versions", + f"/cloud/v2/k8s/{project_id}/{region_id}/create_versions", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -159,9 +157,7 @@ async def list_versions( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v2/k8s/{project_id}/{region_id}/create_versions" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/k8s/{project_id}/{region_id}/create_versions", + f"/cloud/v2/k8s/{project_id}/{region_id}/create_versions", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/load_balancers/flavors.py b/src/gcore/resources/cloud/load_balancers/flavors.py index c24a04dd..8d126cd7 100644 --- a/src/gcore/resources/cloud/load_balancers/flavors.py +++ b/src/gcore/resources/cloud/load_balancers/flavors.py @@ -76,9 +76,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/lbflavors/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbflavors/{project_id}/{region_id}", + f"/cloud/v1/lbflavors/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -145,9 +143,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/lbflavors/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbflavors/{project_id}/{region_id}", + f"/cloud/v1/lbflavors/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py b/src/gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py index a82dce40..135534b2 100644 --- a/src/gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +++ b/src/gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py @@ -118,9 +118,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/l7policies/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}", body=maybe_transform( { "action": action, @@ -170,9 +168,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/l7policies/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -211,9 +207,7 @@ def delete( if not l7policy_id: raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}") return self._delete( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -252,9 +246,7 @@ def get( if not l7policy_id: raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}") return self._get( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -322,9 +314,7 @@ def replace( if not l7policy_id: raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}") return self._put( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}", body=maybe_transform( { "action": action, @@ -575,9 +565,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/l7policies/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}", body=await async_maybe_transform( { "action": action, @@ -627,9 +615,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/l7policies/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -668,9 +654,7 @@ async def delete( if not l7policy_id: raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}") return await self._delete( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -709,9 +693,7 @@ async def get( if not l7policy_id: raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}") return await self._get( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -779,9 +761,7 @@ async def replace( if not l7policy_id: raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}") return await self._put( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}", body=await async_maybe_transform( { "action": action, diff --git a/src/gcore/resources/cloud/load_balancers/l7_policies/rules.py b/src/gcore/resources/cloud/load_balancers/l7_policies/rules.py index 374c1173..023faf7a 100644 --- a/src/gcore/resources/cloud/load_balancers/l7_policies/rules.py +++ b/src/gcore/resources/cloud/load_balancers/l7_policies/rules.py @@ -106,9 +106,7 @@ def create( if not l7policy_id: raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}") return self._post( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules", body=maybe_transform( { "compare_type": compare_type, @@ -158,9 +156,7 @@ def list( if not l7policy_id: raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}") return self._get( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -202,9 +198,7 @@ def delete( if not l7rule_id: raise ValueError(f"Expected a non-empty value for `l7rule_id` but received {l7rule_id!r}") return self._delete( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -246,9 +240,7 @@ def get( if not l7rule_id: raise ValueError(f"Expected a non-empty value for `l7rule_id` but received {l7rule_id!r}") return self._get( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -320,9 +312,7 @@ def replace( if not l7rule_id: raise ValueError(f"Expected a non-empty value for `l7rule_id` but received {l7rule_id!r}") return self._put( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}", body=maybe_transform( { "compare_type": compare_type, @@ -585,9 +575,7 @@ async def create( if not l7policy_id: raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}") return await self._post( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules", body=await async_maybe_transform( { "compare_type": compare_type, @@ -637,9 +625,7 @@ async def list( if not l7policy_id: raise ValueError(f"Expected a non-empty value for `l7policy_id` but received {l7policy_id!r}") return await self._get( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -681,9 +667,7 @@ async def delete( if not l7rule_id: raise ValueError(f"Expected a non-empty value for `l7rule_id` but received {l7rule_id!r}") return await self._delete( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -725,9 +709,7 @@ async def get( if not l7rule_id: raise ValueError(f"Expected a non-empty value for `l7rule_id` but received {l7rule_id!r}") return await self._get( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -799,9 +781,7 @@ async def replace( if not l7rule_id: raise ValueError(f"Expected a non-empty value for `l7rule_id` but received {l7rule_id!r}") return await self._put( - f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}", + f"/cloud/v1/l7policies/{project_id}/{region_id}/{l7policy_id}/rules/{l7rule_id}", body=await async_maybe_transform( { "compare_type": compare_type, diff --git a/src/gcore/resources/cloud/load_balancers/listeners.py b/src/gcore/resources/cloud/load_balancers/listeners.py index 28652805..dff543de 100644 --- a/src/gcore/resources/cloud/load_balancers/listeners.py +++ b/src/gcore/resources/cloud/load_balancers/listeners.py @@ -127,9 +127,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/lblisteners/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lblisteners/{project_id}/{region_id}", + f"/cloud/v1/lblisteners/{project_id}/{region_id}", body=maybe_transform( { "loadbalancer_id": loadbalancer_id, @@ -221,9 +219,7 @@ def update( if not listener_id: raise ValueError(f"Expected a non-empty value for `listener_id` but received {listener_id!r}") return self._patch( - f"/cloud/v2/lblisteners/{project_id}/{region_id}/{listener_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/lblisteners/{project_id}/{region_id}/{listener_id}", + f"/cloud/v2/lblisteners/{project_id}/{region_id}/{listener_id}", body=maybe_transform( { "allowed_cidrs": allowed_cidrs, @@ -283,9 +279,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/lblisteners/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lblisteners/{project_id}/{region_id}", + f"/cloud/v1/lblisteners/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -340,9 +334,7 @@ def delete( if not listener_id: raise ValueError(f"Expected a non-empty value for `listener_id` but received {listener_id!r}") return self._delete( - f"/cloud/v1/lblisteners/{project_id}/{region_id}/{listener_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lblisteners/{project_id}/{region_id}/{listener_id}", + f"/cloud/v1/lblisteners/{project_id}/{region_id}/{listener_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -390,9 +382,7 @@ def get( if not listener_id: raise ValueError(f"Expected a non-empty value for `listener_id` but received {listener_id!r}") return self._get( - f"/cloud/v1/lblisteners/{project_id}/{region_id}/{listener_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lblisteners/{project_id}/{region_id}/{listener_id}", + f"/cloud/v1/lblisteners/{project_id}/{region_id}/{listener_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -660,9 +650,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/lblisteners/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lblisteners/{project_id}/{region_id}", + f"/cloud/v1/lblisteners/{project_id}/{region_id}", body=await async_maybe_transform( { "loadbalancer_id": loadbalancer_id, @@ -754,9 +742,7 @@ async def update( if not listener_id: raise ValueError(f"Expected a non-empty value for `listener_id` but received {listener_id!r}") return await self._patch( - f"/cloud/v2/lblisteners/{project_id}/{region_id}/{listener_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/lblisteners/{project_id}/{region_id}/{listener_id}", + f"/cloud/v2/lblisteners/{project_id}/{region_id}/{listener_id}", body=await async_maybe_transform( { "allowed_cidrs": allowed_cidrs, @@ -816,9 +802,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/lblisteners/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lblisteners/{project_id}/{region_id}", + f"/cloud/v1/lblisteners/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -873,9 +857,7 @@ async def delete( if not listener_id: raise ValueError(f"Expected a non-empty value for `listener_id` but received {listener_id!r}") return await self._delete( - f"/cloud/v1/lblisteners/{project_id}/{region_id}/{listener_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lblisteners/{project_id}/{region_id}/{listener_id}", + f"/cloud/v1/lblisteners/{project_id}/{region_id}/{listener_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -923,9 +905,7 @@ async def get( if not listener_id: raise ValueError(f"Expected a non-empty value for `listener_id` but received {listener_id!r}") return await self._get( - f"/cloud/v1/lblisteners/{project_id}/{region_id}/{listener_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lblisteners/{project_id}/{region_id}/{listener_id}", + f"/cloud/v1/lblisteners/{project_id}/{region_id}/{listener_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/cloud/load_balancers/load_balancers.py b/src/gcore/resources/cloud/load_balancers/load_balancers.py index e36d8665..cd013254 100644 --- a/src/gcore/resources/cloud/load_balancers/load_balancers.py +++ b/src/gcore/resources/cloud/load_balancers/load_balancers.py @@ -207,9 +207,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}", body=maybe_transform( { "flavor": flavor, @@ -301,9 +299,7 @@ def update( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return self._patch( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", body=maybe_transform( { "logging": logging, @@ -381,9 +377,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}", page=SyncOffsetPage[LoadBalancer], options=make_request_options( extra_headers=extra_headers, @@ -441,9 +435,7 @@ def delete( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return self._delete( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -485,9 +477,7 @@ def failover( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/failover" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/failover", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/failover", body=maybe_transform({"force": force}, load_balancer_failover_params.LoadBalancerFailoverParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -533,9 +523,7 @@ def get( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -587,9 +575,7 @@ def resize( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/resize" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/resize", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/resize", body=maybe_transform({"flavor": flavor}, load_balancer_resize_params.LoadBalancerResizeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -906,9 +892,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}", body=await async_maybe_transform( { "flavor": flavor, @@ -1000,9 +984,7 @@ async def update( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return await self._patch( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", body=await async_maybe_transform( { "logging": logging, @@ -1080,9 +1062,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}", page=AsyncOffsetPage[LoadBalancer], options=make_request_options( extra_headers=extra_headers, @@ -1140,9 +1120,7 @@ async def delete( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return await self._delete( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1184,9 +1162,7 @@ async def failover( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return await self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/failover" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/failover", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/failover", body=await async_maybe_transform( {"force": force}, load_balancer_failover_params.LoadBalancerFailoverParams ), @@ -1234,9 +1210,7 @@ async def get( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return await self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1288,9 +1262,7 @@ async def resize( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return await self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/resize" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/resize", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/resize", body=await async_maybe_transform({"flavor": flavor}, load_balancer_resize_params.LoadBalancerResizeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout diff --git a/src/gcore/resources/cloud/load_balancers/metrics.py b/src/gcore/resources/cloud/load_balancers/metrics.py index bedfa5eb..38ecf843 100644 --- a/src/gcore/resources/cloud/load_balancers/metrics.py +++ b/src/gcore/resources/cloud/load_balancers/metrics.py @@ -81,9 +81,7 @@ def list( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/metrics" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/metrics", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/metrics", body=maybe_transform( { "time_interval": time_interval, @@ -156,9 +154,7 @@ async def list( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return await self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/metrics" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/metrics", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/metrics", body=await async_maybe_transform( { "time_interval": time_interval, diff --git a/src/gcore/resources/cloud/load_balancers/pools/health_monitors.py b/src/gcore/resources/cloud/load_balancers/pools/health_monitors.py index c262d9a8..cc1baa93 100644 --- a/src/gcore/resources/cloud/load_balancers/pools/health_monitors.py +++ b/src/gcore/resources/cloud/load_balancers/pools/health_monitors.py @@ -115,9 +115,7 @@ def create( if not pool_id: raise ValueError(f"Expected a non-empty value for `pool_id` but received {pool_id!r}") return self._post( - f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor", + f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor", body=maybe_transform( { "delay": delay, @@ -179,9 +177,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `pool_id` but received {pool_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor", + f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -278,9 +274,7 @@ async def create( if not pool_id: raise ValueError(f"Expected a non-empty value for `pool_id` but received {pool_id!r}") return await self._post( - f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor", + f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor", body=await async_maybe_transform( { "delay": delay, @@ -342,9 +336,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `pool_id` but received {pool_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor", + f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/load_balancers/pools/members.py b/src/gcore/resources/cloud/load_balancers/pools/members.py index 2ef413c0..29d440f7 100644 --- a/src/gcore/resources/cloud/load_balancers/pools/members.py +++ b/src/gcore/resources/cloud/load_balancers/pools/members.py @@ -131,9 +131,7 @@ def add( if not pool_id: raise ValueError(f"Expected a non-empty value for `pool_id` but received {pool_id!r}") return self._post( - f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/member" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/member", + f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/member", body=maybe_transform( { "address": address, @@ -197,9 +195,7 @@ def remove( if not member_id: raise ValueError(f"Expected a non-empty value for `member_id` but received {member_id!r}") return self._delete( - f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/member/{member_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/member/{member_id}", + f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/member/{member_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -315,9 +311,7 @@ async def add( if not pool_id: raise ValueError(f"Expected a non-empty value for `pool_id` but received {pool_id!r}") return await self._post( - f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/member" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/member", + f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/member", body=await async_maybe_transform( { "address": address, @@ -381,9 +375,7 @@ async def remove( if not member_id: raise ValueError(f"Expected a non-empty value for `member_id` but received {member_id!r}") return await self._delete( - f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/member/{member_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/member/{member_id}", + f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/member/{member_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/load_balancers/pools/pools.py b/src/gcore/resources/cloud/load_balancers/pools/pools.py index b34a707e..18e7807a 100644 --- a/src/gcore/resources/cloud/load_balancers/pools/pools.py +++ b/src/gcore/resources/cloud/load_balancers/pools/pools.py @@ -147,9 +147,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/lbpools/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}", + f"/cloud/v1/lbpools/{project_id}/{region_id}", body=maybe_transform( { "lb_algorithm": lb_algorithm, @@ -267,9 +265,7 @@ def update( if not pool_id: raise ValueError(f"Expected a non-empty value for `pool_id` but received {pool_id!r}") return self._patch( - f"/cloud/v2/lbpools/{project_id}/{region_id}/{pool_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/lbpools/{project_id}/{region_id}/{pool_id}", + f"/cloud/v2/lbpools/{project_id}/{region_id}/{pool_id}", body=maybe_transform( { "ca_secret_id": ca_secret_id, @@ -335,9 +331,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/lbpools/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}", + f"/cloud/v1/lbpools/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -393,9 +387,7 @@ def delete( if not pool_id: raise ValueError(f"Expected a non-empty value for `pool_id` but received {pool_id!r}") return self._delete( - f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}", + f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -440,9 +432,7 @@ def get( if not pool_id: raise ValueError(f"Expected a non-empty value for `pool_id` but received {pool_id!r}") return self._get( - f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}", + f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -718,9 +708,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/lbpools/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}", + f"/cloud/v1/lbpools/{project_id}/{region_id}", body=await async_maybe_transform( { "lb_algorithm": lb_algorithm, @@ -838,9 +826,7 @@ async def update( if not pool_id: raise ValueError(f"Expected a non-empty value for `pool_id` but received {pool_id!r}") return await self._patch( - f"/cloud/v2/lbpools/{project_id}/{region_id}/{pool_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/lbpools/{project_id}/{region_id}/{pool_id}", + f"/cloud/v2/lbpools/{project_id}/{region_id}/{pool_id}", body=await async_maybe_transform( { "ca_secret_id": ca_secret_id, @@ -906,9 +892,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/lbpools/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}", + f"/cloud/v1/lbpools/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -964,9 +948,7 @@ async def delete( if not pool_id: raise ValueError(f"Expected a non-empty value for `pool_id` but received {pool_id!r}") return await self._delete( - f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}", + f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1011,9 +993,7 @@ async def get( if not pool_id: raise ValueError(f"Expected a non-empty value for `pool_id` but received {pool_id!r}") return await self._get( - f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}", + f"/cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/load_balancers/statuses.py b/src/gcore/resources/cloud/load_balancers/statuses.py index 97ac74d7..624132ba 100644 --- a/src/gcore/resources/cloud/load_balancers/statuses.py +++ b/src/gcore/resources/cloud/load_balancers/statuses.py @@ -69,9 +69,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/status" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/status", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/status", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -110,9 +108,7 @@ def get( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/status" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/status", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/status", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -169,9 +165,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/status" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/status", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/status", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -210,9 +204,7 @@ async def get( if not loadbalancer_id: raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") return await self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/status" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/status", + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/status", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/networks/networks.py b/src/gcore/resources/cloud/networks/networks.py index bc252d25..d2a7615a 100644 --- a/src/gcore/resources/cloud/networks/networks.py +++ b/src/gcore/resources/cloud/networks/networks.py @@ -120,9 +120,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/networks/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/networks/{project_id}/{region_id}", + f"/cloud/v1/networks/{project_id}/{region_id}", body=maybe_transform( { "name": name, @@ -255,9 +253,7 @@ def update( if not network_id: raise ValueError(f"Expected a non-empty value for `network_id` but received {network_id!r}") return self._patch( - f"/cloud/v1/networks/{project_id}/{region_id}/{network_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/networks/{project_id}/{region_id}/{network_id}", + f"/cloud/v1/networks/{project_id}/{region_id}/{network_id}", body=maybe_transform( { "name": name, @@ -324,9 +320,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/networks/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/networks/{project_id}/{region_id}", + f"/cloud/v1/networks/{project_id}/{region_id}", page=SyncOffsetPage[Network], options=make_request_options( extra_headers=extra_headers, @@ -386,9 +380,7 @@ def delete( if not network_id: raise ValueError(f"Expected a non-empty value for `network_id` but received {network_id!r}") return self._delete( - f"/cloud/v1/networks/{project_id}/{region_id}/{network_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/networks/{project_id}/{region_id}/{network_id}", + f"/cloud/v1/networks/{project_id}/{region_id}/{network_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -465,9 +457,7 @@ def get( if not network_id: raise ValueError(f"Expected a non-empty value for `network_id` but received {network_id!r}") return self._get( - f"/cloud/v1/networks/{project_id}/{region_id}/{network_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/networks/{project_id}/{region_id}/{network_id}", + f"/cloud/v1/networks/{project_id}/{region_id}/{network_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -552,9 +542,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/networks/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/networks/{project_id}/{region_id}", + f"/cloud/v1/networks/{project_id}/{region_id}", body=await async_maybe_transform( { "name": name, @@ -687,9 +675,7 @@ async def update( if not network_id: raise ValueError(f"Expected a non-empty value for `network_id` but received {network_id!r}") return await self._patch( - f"/cloud/v1/networks/{project_id}/{region_id}/{network_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/networks/{project_id}/{region_id}/{network_id}", + f"/cloud/v1/networks/{project_id}/{region_id}/{network_id}", body=await async_maybe_transform( { "name": name, @@ -756,9 +742,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/networks/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/networks/{project_id}/{region_id}", + f"/cloud/v1/networks/{project_id}/{region_id}", page=AsyncOffsetPage[Network], options=make_request_options( extra_headers=extra_headers, @@ -818,9 +802,7 @@ async def delete( if not network_id: raise ValueError(f"Expected a non-empty value for `network_id` but received {network_id!r}") return await self._delete( - f"/cloud/v1/networks/{project_id}/{region_id}/{network_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/networks/{project_id}/{region_id}/{network_id}", + f"/cloud/v1/networks/{project_id}/{region_id}/{network_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -897,9 +879,7 @@ async def get( if not network_id: raise ValueError(f"Expected a non-empty value for `network_id` but received {network_id!r}") return await self._get( - f"/cloud/v1/networks/{project_id}/{region_id}/{network_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/networks/{project_id}/{region_id}/{network_id}", + f"/cloud/v1/networks/{project_id}/{region_id}/{network_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/networks/routers.py b/src/gcore/resources/cloud/networks/routers.py index 018bfae0..52cf6cf8 100644 --- a/src/gcore/resources/cloud/networks/routers.py +++ b/src/gcore/resources/cloud/networks/routers.py @@ -92,9 +92,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/routers/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}", + f"/cloud/v1/routers/{project_id}/{region_id}", body=maybe_transform( { "name": name, @@ -151,9 +149,7 @@ def update( if not router_id: raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}") return self._patch( - f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}/{router_id}", + f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}", body=maybe_transform( { "external_gateway_info": external_gateway_info, @@ -203,9 +199,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/routers/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}", + f"/cloud/v1/routers/{project_id}/{region_id}", page=SyncOffsetPage[Router], options=make_request_options( extra_headers=extra_headers, @@ -255,9 +249,7 @@ def delete( if not router_id: raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}") return self._delete( - f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}/{router_id}", + f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -309,9 +301,7 @@ def attach_subnet( if not router_id: raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}") return self._post( - f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}/attach" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}/{router_id}/attach", + f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}/attach", body=maybe_transform( { "subnet_id": subnet_id, @@ -360,9 +350,7 @@ def detach_subnet( if not router_id: raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}") return self._post( - f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}/detach" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}/{router_id}/detach", + f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}/detach", body=maybe_transform({"subnet_id": subnet_id}, router_detach_subnet_params.RouterDetachSubnetParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -402,9 +390,7 @@ def get( if not router_id: raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}") return self._get( - f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}/{router_id}", + f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -473,9 +459,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/routers/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}", + f"/cloud/v1/routers/{project_id}/{region_id}", body=await async_maybe_transform( { "name": name, @@ -532,9 +516,7 @@ async def update( if not router_id: raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}") return await self._patch( - f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}/{router_id}", + f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}", body=await async_maybe_transform( { "external_gateway_info": external_gateway_info, @@ -584,9 +566,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/routers/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}", + f"/cloud/v1/routers/{project_id}/{region_id}", page=AsyncOffsetPage[Router], options=make_request_options( extra_headers=extra_headers, @@ -636,9 +616,7 @@ async def delete( if not router_id: raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}") return await self._delete( - f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}/{router_id}", + f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -690,9 +668,7 @@ async def attach_subnet( if not router_id: raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}") return await self._post( - f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}/attach" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}/{router_id}/attach", + f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}/attach", body=await async_maybe_transform( { "subnet_id": subnet_id, @@ -741,9 +717,7 @@ async def detach_subnet( if not router_id: raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}") return await self._post( - f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}/detach" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}/{router_id}/detach", + f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}/detach", body=await async_maybe_transform( {"subnet_id": subnet_id}, router_detach_subnet_params.RouterDetachSubnetParams ), @@ -785,9 +759,7 @@ async def get( if not router_id: raise ValueError(f"Expected a non-empty value for `router_id` but received {router_id!r}") return await self._get( - f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/routers/{project_id}/{region_id}/{router_id}", + f"/cloud/v1/routers/{project_id}/{region_id}/{router_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/networks/subnets.py b/src/gcore/resources/cloud/networks/subnets.py index f79cdcbd..4d24d7e2 100644 --- a/src/gcore/resources/cloud/networks/subnets.py +++ b/src/gcore/resources/cloud/networks/subnets.py @@ -125,9 +125,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/subnets/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/subnets/{project_id}/{region_id}", + f"/cloud/v1/subnets/{project_id}/{region_id}", body=maybe_transform( { "cidr": cidr, @@ -289,9 +287,7 @@ def update( if not subnet_id: raise ValueError(f"Expected a non-empty value for `subnet_id` but received {subnet_id!r}") return self._patch( - f"/cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}", + f"/cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}", body=maybe_transform( { "dns_nameservers": dns_nameservers, @@ -377,9 +373,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/subnets/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/subnets/{project_id}/{region_id}", + f"/cloud/v1/subnets/{project_id}/{region_id}", page=SyncOffsetPage[Subnet], options=make_request_options( extra_headers=extra_headers, @@ -439,9 +433,7 @@ def delete( if not subnet_id: raise ValueError(f"Expected a non-empty value for `subnet_id` but received {subnet_id!r}") return self._delete( - f"/cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}", + f"/cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -486,9 +478,7 @@ def get( if not subnet_id: raise ValueError(f"Expected a non-empty value for `subnet_id` but received {subnet_id!r}") return self._get( - f"/cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}", + f"/cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -592,9 +582,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/subnets/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/subnets/{project_id}/{region_id}", + f"/cloud/v1/subnets/{project_id}/{region_id}", body=await async_maybe_transform( { "cidr": cidr, @@ -756,9 +744,7 @@ async def update( if not subnet_id: raise ValueError(f"Expected a non-empty value for `subnet_id` but received {subnet_id!r}") return await self._patch( - f"/cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}", + f"/cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}", body=await async_maybe_transform( { "dns_nameservers": dns_nameservers, @@ -844,9 +830,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/subnets/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/subnets/{project_id}/{region_id}", + f"/cloud/v1/subnets/{project_id}/{region_id}", page=AsyncOffsetPage[Subnet], options=make_request_options( extra_headers=extra_headers, @@ -906,9 +890,7 @@ async def delete( if not subnet_id: raise ValueError(f"Expected a non-empty value for `subnet_id` but received {subnet_id!r}") return await self._delete( - f"/cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}", + f"/cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -953,9 +935,7 @@ async def get( if not subnet_id: raise ValueError(f"Expected a non-empty value for `subnet_id` but received {subnet_id!r}") return await self._get( - f"/cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}", + f"/cloud/v1/subnets/{project_id}/{region_id}/{subnet_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/placement_groups.py b/src/gcore/resources/cloud/placement_groups.py index d06de2c4..bb5119c8 100644 --- a/src/gcore/resources/cloud/placement_groups.py +++ b/src/gcore/resources/cloud/placement_groups.py @@ -80,9 +80,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/servergroups/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/servergroups/{project_id}/{region_id}", + f"/cloud/v1/servergroups/{project_id}/{region_id}", body=maybe_transform( { "name": name, @@ -125,9 +123,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/servergroups/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/servergroups/{project_id}/{region_id}", + f"/cloud/v1/servergroups/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -166,9 +162,7 @@ def delete( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return self._delete( - f"/cloud/v1/servergroups/{project_id}/{region_id}/{group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/servergroups/{project_id}/{region_id}/{group_id}", + f"/cloud/v1/servergroups/{project_id}/{region_id}/{group_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -207,9 +201,7 @@ def get( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return self._get( - f"/cloud/v1/servergroups/{project_id}/{region_id}/{group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/servergroups/{project_id}/{region_id}/{group_id}", + f"/cloud/v1/servergroups/{project_id}/{region_id}/{group_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -272,9 +264,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/servergroups/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/servergroups/{project_id}/{region_id}", + f"/cloud/v1/servergroups/{project_id}/{region_id}", body=await async_maybe_transform( { "name": name, @@ -317,9 +307,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/servergroups/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/servergroups/{project_id}/{region_id}", + f"/cloud/v1/servergroups/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -358,9 +346,7 @@ async def delete( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return await self._delete( - f"/cloud/v1/servergroups/{project_id}/{region_id}/{group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/servergroups/{project_id}/{region_id}/{group_id}", + f"/cloud/v1/servergroups/{project_id}/{region_id}/{group_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -399,9 +385,7 @@ async def get( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return await self._get( - f"/cloud/v1/servergroups/{project_id}/{region_id}/{group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/servergroups/{project_id}/{region_id}/{group_id}", + f"/cloud/v1/servergroups/{project_id}/{region_id}/{group_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/projects.py b/src/gcore/resources/cloud/projects.py index 316da27f..cb6c69b4 100644 --- a/src/gcore/resources/cloud/projects.py +++ b/src/gcore/resources/cloud/projects.py @@ -83,7 +83,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cloud/v1/projects" if self._client._base_url_overridden else "https://api.gcore.com//cloud/v1/projects", + "/cloud/v1/projects", body=maybe_transform( { "name": name, @@ -142,7 +142,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v1/projects" if self._client._base_url_overridden else "https://api.gcore.com//cloud/v1/projects", + "/cloud/v1/projects", page=SyncOffsetPage[Project], options=make_request_options( extra_headers=extra_headers, @@ -193,9 +193,7 @@ def delete( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._delete( - f"/cloud/v1/projects/{project_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/projects/{project_id}", + f"/cloud/v1/projects/{project_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -228,9 +226,7 @@ def get( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._get( - f"/cloud/v1/projects/{project_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/projects/{project_id}", + f"/cloud/v1/projects/{project_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -271,9 +267,7 @@ def replace( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._put( - f"/cloud/v1/projects/{project_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/projects/{project_id}", + f"/cloud/v1/projects/{project_id}", body=maybe_transform( { "name": name, @@ -345,7 +339,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cloud/v1/projects" if self._client._base_url_overridden else "https://api.gcore.com//cloud/v1/projects", + "/cloud/v1/projects", body=await async_maybe_transform( { "name": name, @@ -404,7 +398,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v1/projects" if self._client._base_url_overridden else "https://api.gcore.com//cloud/v1/projects", + "/cloud/v1/projects", page=AsyncOffsetPage[Project], options=make_request_options( extra_headers=extra_headers, @@ -455,9 +449,7 @@ async def delete( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return await self._delete( - f"/cloud/v1/projects/{project_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/projects/{project_id}", + f"/cloud/v1/projects/{project_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -490,9 +482,7 @@ async def get( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return await self._get( - f"/cloud/v1/projects/{project_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/projects/{project_id}", + f"/cloud/v1/projects/{project_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -533,9 +523,7 @@ async def replace( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return await self._put( - f"/cloud/v1/projects/{project_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/projects/{project_id}", + f"/cloud/v1/projects/{project_id}", body=await async_maybe_transform( { "name": name, diff --git a/src/gcore/resources/cloud/quotas/quotas.py b/src/gcore/resources/cloud/quotas/quotas.py index 3adb5a00..915d900d 100644 --- a/src/gcore/resources/cloud/quotas/quotas.py +++ b/src/gcore/resources/cloud/quotas/quotas.py @@ -65,9 +65,7 @@ def get_all( ) -> QuotaGetAllResponse: """Get combined client quotas, including both regional and global quotas.""" return self._get( - "/cloud/v2/client_quotas" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v2/client_quotas", + "/cloud/v2/client_quotas", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -105,9 +103,7 @@ def get_by_region( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v2/regional_quotas/{client_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/regional_quotas/{client_id}/{region_id}", + f"/cloud/v2/regional_quotas/{client_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -140,9 +136,7 @@ def get_global( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cloud/v2/global_quotas/{client_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/global_quotas/{client_id}", + f"/cloud/v2/global_quotas/{client_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -186,9 +180,7 @@ async def get_all( ) -> QuotaGetAllResponse: """Get combined client quotas, including both regional and global quotas.""" return await self._get( - "/cloud/v2/client_quotas" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v2/client_quotas", + "/cloud/v2/client_quotas", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -226,9 +218,7 @@ async def get_by_region( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v2/regional_quotas/{client_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/regional_quotas/{client_id}/{region_id}", + f"/cloud/v2/regional_quotas/{client_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -261,9 +251,7 @@ async def get_global( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cloud/v2/global_quotas/{client_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/global_quotas/{client_id}", + f"/cloud/v2/global_quotas/{client_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/quotas/requests.py b/src/gcore/resources/cloud/quotas/requests.py index 128238fc..6857110a 100644 --- a/src/gcore/resources/cloud/quotas/requests.py +++ b/src/gcore/resources/cloud/quotas/requests.py @@ -79,9 +79,7 @@ def create( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - "/cloud/v2/limits_request" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v2/limits_request", + "/cloud/v2/limits_request", body=maybe_transform( { "description": description, @@ -129,9 +127,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v2/limits_request" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v2/limits_request", + "/cloud/v2/limits_request", page=SyncOffsetPage[RequestListResponse], options=make_request_options( extra_headers=extra_headers, @@ -177,9 +173,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v2/limits_request/{request_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/limits_request/{request_id}", + f"/cloud/v2/limits_request/{request_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -212,9 +206,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/cloud/v2/limits_request/{request_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/limits_request/{request_id}", + f"/cloud/v2/limits_request/{request_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -275,9 +267,7 @@ async def create( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - "/cloud/v2/limits_request" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v2/limits_request", + "/cloud/v2/limits_request", body=await async_maybe_transform( { "description": description, @@ -325,9 +315,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v2/limits_request" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v2/limits_request", + "/cloud/v2/limits_request", page=AsyncOffsetPage[RequestListResponse], options=make_request_options( extra_headers=extra_headers, @@ -373,9 +361,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v2/limits_request/{request_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/limits_request/{request_id}", + f"/cloud/v2/limits_request/{request_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -408,9 +394,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/cloud/v2/limits_request/{request_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/limits_request/{request_id}", + f"/cloud/v2/limits_request/{request_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/regions.py b/src/gcore/resources/cloud/regions.py index c2ed0980..b9d06835 100644 --- a/src/gcore/resources/cloud/regions.py +++ b/src/gcore/resources/cloud/regions.py @@ -85,7 +85,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v1/regions" if self._client._base_url_overridden else "https://api.gcore.com//cloud/v1/regions", + "/cloud/v1/regions", page=SyncOffsetPage[Region], options=make_request_options( extra_headers=extra_headers, @@ -138,9 +138,7 @@ def get( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/regions/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/regions/{region_id}", + f"/cloud/v1/regions/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -213,7 +211,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v1/regions" if self._client._base_url_overridden else "https://api.gcore.com//cloud/v1/regions", + "/cloud/v1/regions", page=AsyncOffsetPage[Region], options=make_request_options( extra_headers=extra_headers, @@ -266,9 +264,7 @@ async def get( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/regions/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/regions/{region_id}", + f"/cloud/v1/regions/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/cloud/registries/artifacts.py b/src/gcore/resources/cloud/registries/artifacts.py index b9ed4772..4b07607a 100644 --- a/src/gcore/resources/cloud/registries/artifacts.py +++ b/src/gcore/resources/cloud/registries/artifacts.py @@ -72,9 +72,7 @@ def list( if not repository_name: raise ValueError(f"Expected a non-empty value for `repository_name` but received {repository_name!r}") return self._get( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -118,9 +116,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `digest` but received {digest!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts/{digest}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts/{digest}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts/{digest}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -181,9 +177,7 @@ async def list( if not repository_name: raise ValueError(f"Expected a non-empty value for `repository_name` but received {repository_name!r}") return await self._get( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -227,9 +221,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `digest` but received {digest!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts/{digest}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts/{digest}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts/{digest}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/registries/registries.py b/src/gcore/resources/cloud/registries/registries.py index 7d41597b..0ba3414e 100644 --- a/src/gcore/resources/cloud/registries/registries.py +++ b/src/gcore/resources/cloud/registries/registries.py @@ -129,9 +129,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/registries/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}", + f"/cloud/v1/registries/{project_id}/{region_id}", body=maybe_transform( { "name": name, @@ -174,9 +172,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/registries/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}", + f"/cloud/v1/registries/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -214,9 +210,7 @@ def delete( region_id = self._client._get_cloud_region_id_path_param() extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -253,9 +247,7 @@ def get( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -295,9 +287,7 @@ def resize( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._patch( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/resize" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/resize", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/resize", body=maybe_transform({"storage_limit": storage_limit}, registry_resize_params.RegistryResizeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -381,9 +371,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/registries/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}", + f"/cloud/v1/registries/{project_id}/{region_id}", body=await async_maybe_transform( { "name": name, @@ -426,9 +414,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/registries/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}", + f"/cloud/v1/registries/{project_id}/{region_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -466,9 +452,7 @@ async def delete( region_id = self._client._get_cloud_region_id_path_param() extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -505,9 +489,7 @@ async def get( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -547,9 +529,7 @@ async def resize( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._patch( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/resize" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/resize", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/resize", body=await async_maybe_transform( {"storage_limit": storage_limit}, registry_resize_params.RegistryResizeParams ), diff --git a/src/gcore/resources/cloud/registries/repositories.py b/src/gcore/resources/cloud/registries/repositories.py index 0a3a776d..d0c860a9 100644 --- a/src/gcore/resources/cloud/registries/repositories.py +++ b/src/gcore/resources/cloud/registries/repositories.py @@ -69,9 +69,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -112,9 +110,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `repository_name` but received {repository_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -172,9 +168,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -215,9 +209,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `repository_name` but received {repository_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/registries/tags.py b/src/gcore/resources/cloud/registries/tags.py index 9c1812de..74f68017 100644 --- a/src/gcore/resources/cloud/registries/tags.py +++ b/src/gcore/resources/cloud/registries/tags.py @@ -78,9 +78,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `tag_name` but received {tag_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts/{digest}/tags/{tag_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts/{digest}/tags/{tag_name}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts/{digest}/tags/{tag_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -148,9 +146,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `tag_name` but received {tag_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts/{digest}/tags/{tag_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts/{digest}/tags/{tag_name}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/repositories/{repository_name}/artifacts/{digest}/tags/{tag_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/registries/users.py b/src/gcore/resources/cloud/registries/users.py index c7f5e4e6..5225429a 100644 --- a/src/gcore/resources/cloud/registries/users.py +++ b/src/gcore/resources/cloud/registries/users.py @@ -92,9 +92,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users", body=maybe_transform( { "duration": duration, @@ -147,9 +145,7 @@ def update( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._patch( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}", body=maybe_transform( { "duration": duration, @@ -193,9 +189,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -234,9 +228,7 @@ def delete( region_id = self._client._get_cloud_region_id_path_param() extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -276,9 +268,7 @@ def create_multiple( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/batch" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/batch", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/batch", body=maybe_transform({"users": users}, user_create_multiple_params.UserCreateMultipleParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -317,9 +307,7 @@ def refresh_secret( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}/refresh_secret" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}/refresh_secret", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}/refresh_secret", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -393,9 +381,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users", body=await async_maybe_transform( { "duration": duration, @@ -448,9 +434,7 @@ async def update( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._patch( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}", body=await async_maybe_transform( { "duration": duration, @@ -494,9 +478,7 @@ async def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._get( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -535,9 +517,7 @@ async def delete( region_id = self._client._get_cloud_region_id_path_param() extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -577,9 +557,7 @@ async def create_multiple( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/batch" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/batch", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/batch", body=await async_maybe_transform({"users": users}, user_create_multiple_params.UserCreateMultipleParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -618,9 +596,7 @@ async def refresh_secret( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}/refresh_secret" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}/refresh_secret", + f"/cloud/v1/registries/{project_id}/{region_id}/{registry_id}/users/{user_id}/refresh_secret", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py b/src/gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py index e0c818b1..03ba48ab 100644 --- a/src/gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +++ b/src/gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py @@ -279,9 +279,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}", body=maybe_transform( { "type": type, @@ -335,9 +333,7 @@ def update( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return self._patch( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", body=maybe_transform({"is_vip": is_vip}, reserved_fixed_ip_update_params.ReservedFixedIPUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -404,9 +400,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}", page=SyncOffsetPage[ReservedFixedIP], options=make_request_options( extra_headers=extra_headers, @@ -463,9 +457,7 @@ def delete( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return self._delete( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -504,9 +496,7 @@ def get( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return self._get( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1045,9 +1035,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}", body=await async_maybe_transform( { "type": type, @@ -1101,9 +1089,7 @@ async def update( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return await self._patch( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", body=await async_maybe_transform( {"is_vip": is_vip}, reserved_fixed_ip_update_params.ReservedFixedIPUpdateParams ), @@ -1172,9 +1158,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}", page=AsyncOffsetPage[ReservedFixedIP], options=make_request_options( extra_headers=extra_headers, @@ -1231,9 +1215,7 @@ async def delete( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return await self._delete( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1272,9 +1254,7 @@ async def get( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return await self._get( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/reserved_fixed_ips/vip.py b/src/gcore/resources/cloud/reserved_fixed_ips/vip.py index 947e07af..966a51e0 100644 --- a/src/gcore/resources/cloud/reserved_fixed_ips/vip.py +++ b/src/gcore/resources/cloud/reserved_fixed_ips/vip.py @@ -79,9 +79,7 @@ def list_candidate_ports( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return self._get( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/available_devices" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/available_devices", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/available_devices", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -120,9 +118,7 @@ def list_connected_ports( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return self._get( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -164,9 +160,7 @@ def replace_connected_ports( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return self._put( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices", body=maybe_transform( {"port_ids": port_ids}, vip_replace_connected_ports_params.VipReplaceConnectedPortsParams ), @@ -211,9 +205,7 @@ def toggle( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return self._patch( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", body=maybe_transform({"is_vip": is_vip}, vip_toggle_params.VipToggleParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -256,9 +248,7 @@ def update_connected_ports( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return self._patch( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices", body=maybe_transform( {"port_ids": port_ids}, vip_update_connected_ports_params.VipUpdateConnectedPortsParams ), @@ -321,9 +311,7 @@ async def list_candidate_ports( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return await self._get( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/available_devices" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/available_devices", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/available_devices", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -362,9 +350,7 @@ async def list_connected_ports( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return await self._get( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -406,9 +392,7 @@ async def replace_connected_ports( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return await self._put( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices", body=await async_maybe_transform( {"port_ids": port_ids}, vip_replace_connected_ports_params.VipReplaceConnectedPortsParams ), @@ -453,9 +437,7 @@ async def toggle( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return await self._patch( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}", body=await async_maybe_transform({"is_vip": is_vip}, vip_toggle_params.VipToggleParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -498,9 +480,7 @@ async def update_connected_ports( if not port_id: raise ValueError(f"Expected a non-empty value for `port_id` but received {port_id!r}") return await self._patch( - f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices", + f"/cloud/v1/reserved_fixed_ips/{project_id}/{region_id}/{port_id}/connected_devices", body=await async_maybe_transform( {"port_ids": port_ids}, vip_update_connected_ports_params.VipUpdateConnectedPortsParams ), diff --git a/src/gcore/resources/cloud/secrets.py b/src/gcore/resources/cloud/secrets.py index 4dacbb6c..9c2020f1 100644 --- a/src/gcore/resources/cloud/secrets.py +++ b/src/gcore/resources/cloud/secrets.py @@ -86,9 +86,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/secrets/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/secrets/{project_id}/{region_id}", + f"/cloud/v1/secrets/{project_id}/{region_id}", page=SyncOffsetPage[Secret], options=make_request_options( extra_headers=extra_headers, @@ -144,9 +142,7 @@ def delete( if not secret_id: raise ValueError(f"Expected a non-empty value for `secret_id` but received {secret_id!r}") return self._delete( - f"/cloud/v1/secrets/{project_id}/{region_id}/{secret_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/secrets/{project_id}/{region_id}/{secret_id}", + f"/cloud/v1/secrets/{project_id}/{region_id}/{secret_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -191,9 +187,7 @@ def get( if not secret_id: raise ValueError(f"Expected a non-empty value for `secret_id` but received {secret_id!r}") return self._get( - f"/cloud/v1/secrets/{project_id}/{region_id}/{secret_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/secrets/{project_id}/{region_id}/{secret_id}", + f"/cloud/v1/secrets/{project_id}/{region_id}/{secret_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -242,9 +236,7 @@ def upload_tls_certificate( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v2/secrets/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/secrets/{project_id}/{region_id}", + f"/cloud/v2/secrets/{project_id}/{region_id}", body=maybe_transform( { "name": name, @@ -361,9 +353,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/secrets/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/secrets/{project_id}/{region_id}", + f"/cloud/v1/secrets/{project_id}/{region_id}", page=AsyncOffsetPage[Secret], options=make_request_options( extra_headers=extra_headers, @@ -419,9 +409,7 @@ async def delete( if not secret_id: raise ValueError(f"Expected a non-empty value for `secret_id` but received {secret_id!r}") return await self._delete( - f"/cloud/v1/secrets/{project_id}/{region_id}/{secret_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/secrets/{project_id}/{region_id}/{secret_id}", + f"/cloud/v1/secrets/{project_id}/{region_id}/{secret_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -466,9 +454,7 @@ async def get( if not secret_id: raise ValueError(f"Expected a non-empty value for `secret_id` but received {secret_id!r}") return await self._get( - f"/cloud/v1/secrets/{project_id}/{region_id}/{secret_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/secrets/{project_id}/{region_id}/{secret_id}", + f"/cloud/v1/secrets/{project_id}/{region_id}/{secret_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -517,9 +503,7 @@ async def upload_tls_certificate( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v2/secrets/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/secrets/{project_id}/{region_id}", + f"/cloud/v2/secrets/{project_id}/{region_id}", body=await async_maybe_transform( { "name": name, diff --git a/src/gcore/resources/cloud/security_groups/rules.py b/src/gcore/resources/cloud/security_groups/rules.py index 4886e5bd..aacd3921 100644 --- a/src/gcore/resources/cloud/security_groups/rules.py +++ b/src/gcore/resources/cloud/security_groups/rules.py @@ -126,9 +126,7 @@ def create( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return self._post( - f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/rules", + f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/rules", body=maybe_transform( { "description": description, @@ -181,9 +179,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `rule_id` but received {rule_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v1/securitygrouprules/{project_id}/{region_id}/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygrouprules/{project_id}/{region_id}/{rule_id}", + f"/cloud/v1/securitygrouprules/{project_id}/{region_id}/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -277,9 +273,7 @@ def replace( if not rule_id: raise ValueError(f"Expected a non-empty value for `rule_id` but received {rule_id!r}") return self._put( - f"/cloud/v1/securitygrouprules/{project_id}/{region_id}/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygrouprules/{project_id}/{region_id}/{rule_id}", + f"/cloud/v1/securitygrouprules/{project_id}/{region_id}/{rule_id}", body=maybe_transform( { "direction": direction, @@ -403,9 +397,7 @@ async def create( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return await self._post( - f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/rules", + f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/rules", body=await async_maybe_transform( { "description": description, @@ -458,9 +450,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `rule_id` but received {rule_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v1/securitygrouprules/{project_id}/{region_id}/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygrouprules/{project_id}/{region_id}/{rule_id}", + f"/cloud/v1/securitygrouprules/{project_id}/{region_id}/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -554,9 +544,7 @@ async def replace( if not rule_id: raise ValueError(f"Expected a non-empty value for `rule_id` but received {rule_id!r}") return await self._put( - f"/cloud/v1/securitygrouprules/{project_id}/{region_id}/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygrouprules/{project_id}/{region_id}/{rule_id}", + f"/cloud/v1/securitygrouprules/{project_id}/{region_id}/{rule_id}", body=await async_maybe_transform( { "direction": direction, diff --git a/src/gcore/resources/cloud/security_groups/security_groups.py b/src/gcore/resources/cloud/security_groups/security_groups.py index 30e98b08..5961799b 100644 --- a/src/gcore/resources/cloud/security_groups/security_groups.py +++ b/src/gcore/resources/cloud/security_groups/security_groups.py @@ -97,9 +97,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/securitygroups/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}", + f"/cloud/v1/securitygroups/{project_id}/{region_id}", body=maybe_transform( { "security_group": security_group, @@ -174,9 +172,7 @@ def update( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return self._patch( - f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}", + f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}", body=maybe_transform( { "changed_rules": changed_rules, @@ -232,9 +228,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/securitygroups/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}", + f"/cloud/v1/securitygroups/{project_id}/{region_id}", page=SyncOffsetPage[SecurityGroup], options=make_request_options( extra_headers=extra_headers, @@ -287,9 +281,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}", + f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -331,9 +323,7 @@ def copy( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return self._post( - f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/copy" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/copy", + f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/copy", body=maybe_transform({"name": name}, security_group_copy_params.SecurityGroupCopyParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -373,9 +363,7 @@ def get( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return self._get( - f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}", + f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -414,9 +402,7 @@ def revert_to_default( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return self._post( - f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/revert" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/revert", + f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/revert", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -483,9 +469,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/securitygroups/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}", + f"/cloud/v1/securitygroups/{project_id}/{region_id}", body=await async_maybe_transform( { "security_group": security_group, @@ -560,9 +544,7 @@ async def update( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return await self._patch( - f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}", + f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}", body=await async_maybe_transform( { "changed_rules": changed_rules, @@ -618,9 +600,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/securitygroups/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}", + f"/cloud/v1/securitygroups/{project_id}/{region_id}", page=AsyncOffsetPage[SecurityGroup], options=make_request_options( extra_headers=extra_headers, @@ -673,9 +653,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}", + f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -717,9 +695,7 @@ async def copy( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return await self._post( - f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/copy" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/copy", + f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/copy", body=await async_maybe_transform({"name": name}, security_group_copy_params.SecurityGroupCopyParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -759,9 +735,7 @@ async def get( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return await self._get( - f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}", + f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -800,9 +774,7 @@ async def revert_to_default( if not group_id: raise ValueError(f"Expected a non-empty value for `group_id` but received {group_id!r}") return await self._post( - f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/revert" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/revert", + f"/cloud/v1/securitygroups/{project_id}/{region_id}/{group_id}/revert", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/ssh_keys.py b/src/gcore/resources/cloud/ssh_keys.py index 970602db..061b0876 100644 --- a/src/gcore/resources/cloud/ssh_keys.py +++ b/src/gcore/resources/cloud/ssh_keys.py @@ -90,9 +90,7 @@ def create( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._post( - f"/cloud/v1/ssh_keys/{project_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ssh_keys/{project_id}", + f"/cloud/v1/ssh_keys/{project_id}", body=maybe_transform( { "name": name, @@ -143,9 +141,7 @@ def update( if not ssh_key_id: raise ValueError(f"Expected a non-empty value for `ssh_key_id` but received {ssh_key_id!r}") return self._patch( - f"/cloud/v1/ssh_keys/{project_id}/{ssh_key_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ssh_keys/{project_id}/{ssh_key_id}", + f"/cloud/v1/ssh_keys/{project_id}/{ssh_key_id}", body=maybe_transform({"shared_in_project": shared_in_project}, ssh_key_update_params.SSHKeyUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -190,9 +186,7 @@ def list( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._get_api_list( - f"/cloud/v1/ssh_keys/{project_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ssh_keys/{project_id}", + f"/cloud/v1/ssh_keys/{project_id}", page=SyncOffsetPage[SSHKey], options=make_request_options( extra_headers=extra_headers, @@ -245,9 +239,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `ssh_key_id` but received {ssh_key_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/cloud/v1/ssh_keys/{project_id}/{ssh_key_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ssh_keys/{project_id}/{ssh_key_id}", + f"/cloud/v1/ssh_keys/{project_id}/{ssh_key_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -287,9 +279,7 @@ def get( if not ssh_key_id: raise ValueError(f"Expected a non-empty value for `ssh_key_id` but received {ssh_key_id!r}") return self._get( - f"/cloud/v1/ssh_keys/{project_id}/{ssh_key_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ssh_keys/{project_id}/{ssh_key_id}", + f"/cloud/v1/ssh_keys/{project_id}/{ssh_key_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -362,9 +352,7 @@ async def create( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return await self._post( - f"/cloud/v1/ssh_keys/{project_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ssh_keys/{project_id}", + f"/cloud/v1/ssh_keys/{project_id}", body=await async_maybe_transform( { "name": name, @@ -415,9 +403,7 @@ async def update( if not ssh_key_id: raise ValueError(f"Expected a non-empty value for `ssh_key_id` but received {ssh_key_id!r}") return await self._patch( - f"/cloud/v1/ssh_keys/{project_id}/{ssh_key_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ssh_keys/{project_id}/{ssh_key_id}", + f"/cloud/v1/ssh_keys/{project_id}/{ssh_key_id}", body=await async_maybe_transform( {"shared_in_project": shared_in_project}, ssh_key_update_params.SSHKeyUpdateParams ), @@ -464,9 +450,7 @@ def list( if project_id is None: project_id = self._client._get_cloud_project_id_path_param() return self._get_api_list( - f"/cloud/v1/ssh_keys/{project_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ssh_keys/{project_id}", + f"/cloud/v1/ssh_keys/{project_id}", page=AsyncOffsetPage[SSHKey], options=make_request_options( extra_headers=extra_headers, @@ -519,9 +503,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `ssh_key_id` but received {ssh_key_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/cloud/v1/ssh_keys/{project_id}/{ssh_key_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ssh_keys/{project_id}/{ssh_key_id}", + f"/cloud/v1/ssh_keys/{project_id}/{ssh_key_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -561,9 +543,7 @@ async def get( if not ssh_key_id: raise ValueError(f"Expected a non-empty value for `ssh_key_id` but received {ssh_key_id!r}") return await self._get( - f"/cloud/v1/ssh_keys/{project_id}/{ssh_key_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/ssh_keys/{project_id}/{ssh_key_id}", + f"/cloud/v1/ssh_keys/{project_id}/{ssh_key_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/tasks.py b/src/gcore/resources/cloud/tasks.py index d44ec604..3e374c10 100644 --- a/src/gcore/resources/cloud/tasks.py +++ b/src/gcore/resources/cloud/tasks.py @@ -194,7 +194,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v1/tasks" if self._client._base_url_overridden else "https://api.gcore.com//cloud/v1/tasks", + "/cloud/v1/tasks", page=SyncOffsetPage[Task], options=make_request_options( extra_headers=extra_headers, @@ -251,9 +251,7 @@ def acknowledge_all( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - "/cloud/v1/tasks/acknowledge_all" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/tasks/acknowledge_all", + "/cloud/v1/tasks/acknowledge_all", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -298,9 +296,7 @@ def acknowledge_one( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return self._post( - f"/cloud/v1/tasks/{task_id}/acknowledge" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/tasks/{task_id}/acknowledge", + f"/cloud/v1/tasks/{task_id}/acknowledge", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -335,9 +331,7 @@ def get( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return self._get( - f"/cloud/v1/tasks/{task_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/tasks/{task_id}", + f"/cloud/v1/tasks/{task_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -509,7 +503,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v1/tasks" if self._client._base_url_overridden else "https://api.gcore.com//cloud/v1/tasks", + "/cloud/v1/tasks", page=AsyncOffsetPage[Task], options=make_request_options( extra_headers=extra_headers, @@ -566,9 +560,7 @@ async def acknowledge_all( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - "/cloud/v1/tasks/acknowledge_all" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/tasks/acknowledge_all", + "/cloud/v1/tasks/acknowledge_all", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -613,9 +605,7 @@ async def acknowledge_one( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return await self._post( - f"/cloud/v1/tasks/{task_id}/acknowledge" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/tasks/{task_id}/acknowledge", + f"/cloud/v1/tasks/{task_id}/acknowledge", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -650,9 +640,7 @@ async def get( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return await self._get( - f"/cloud/v1/tasks/{task_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/tasks/{task_id}", + f"/cloud/v1/tasks/{task_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/usage_reports.py b/src/gcore/resources/cloud/usage_reports.py index c9795e74..8758b3ab 100644 --- a/src/gcore/resources/cloud/usage_reports.py +++ b/src/gcore/resources/cloud/usage_reports.py @@ -139,9 +139,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cloud/v1/usage_report" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/usage_report", + "/cloud/v1/usage_report", body=maybe_transform( { "time_from": time_from, @@ -279,9 +277,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cloud/v1/usage_report" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/usage_report", + "/cloud/v1/usage_report", body=await async_maybe_transform( { "time_from": time_from, diff --git a/src/gcore/resources/cloud/users/role_assignments.py b/src/gcore/resources/cloud/users/role_assignments.py index ad4a9d8b..2f16d40d 100644 --- a/src/gcore/resources/cloud/users/role_assignments.py +++ b/src/gcore/resources/cloud/users/role_assignments.py @@ -85,9 +85,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/cloud/v1/users/assignments" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/users/assignments", + "/cloud/v1/users/assignments", body=maybe_transform( { "role": role, @@ -141,9 +139,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/cloud/v1/users/assignments/{assignment_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/users/assignments/{assignment_id}", + f"/cloud/v1/users/assignments/{assignment_id}", body=maybe_transform( { "role": role, @@ -195,9 +191,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v1/users/assignments" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/users/assignments", + "/cloud/v1/users/assignments", page=SyncOffsetPage[RoleAssignment], options=make_request_options( extra_headers=extra_headers, @@ -243,9 +237,7 @@ def delete( timeout: Override the client-level default timeout for this request, in seconds """ return self._delete( - f"/cloud/v1/users/assignments/{assignment_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/users/assignments/{assignment_id}", + f"/cloud/v1/users/assignments/{assignment_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -308,9 +300,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/cloud/v1/users/assignments" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/users/assignments", + "/cloud/v1/users/assignments", body=await async_maybe_transform( { "role": role, @@ -364,9 +354,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/cloud/v1/users/assignments/{assignment_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/users/assignments/{assignment_id}", + f"/cloud/v1/users/assignments/{assignment_id}", body=await async_maybe_transform( { "role": role, @@ -418,9 +406,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/cloud/v1/users/assignments" - if self._client._base_url_overridden - else "https://api.gcore.com//cloud/v1/users/assignments", + "/cloud/v1/users/assignments", page=AsyncOffsetPage[RoleAssignment], options=make_request_options( extra_headers=extra_headers, @@ -466,9 +452,7 @@ async def delete( timeout: Override the client-level default timeout for this request, in seconds """ return await self._delete( - f"/cloud/v1/users/assignments/{assignment_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/users/assignments/{assignment_id}", + f"/cloud/v1/users/assignments/{assignment_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/volumes.py b/src/gcore/resources/cloud/volumes.py index 27dc684a..b1b577eb 100644 --- a/src/gcore/resources/cloud/volumes.py +++ b/src/gcore/resources/cloud/volumes.py @@ -288,9 +288,7 @@ def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._post( - f"/cloud/v1/volumes/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}", + f"/cloud/v1/volumes/{project_id}/{region_id}", body=maybe_transform( { "image_id": image_id, @@ -376,9 +374,7 @@ def update( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return self._patch( - f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}/{volume_id}", + f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}", body=maybe_transform( { "name": name, @@ -460,9 +456,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/volumes/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}", + f"/cloud/v1/volumes/{project_id}/{region_id}", page=SyncOffsetPage[Volume], options=make_request_options( extra_headers=extra_headers, @@ -531,9 +525,7 @@ def delete( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return self._delete( - f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}/{volume_id}", + f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -590,9 +582,7 @@ def attach_to_instance( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return self._post( - f"/cloud/v2/volumes/{project_id}/{region_id}/{volume_id}/attach" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/volumes/{project_id}/{region_id}/{volume_id}/attach", + f"/cloud/v2/volumes/{project_id}/{region_id}/{volume_id}/attach", body=maybe_transform( { "instance_id": instance_id, @@ -649,9 +639,7 @@ def change_type( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return self._post( - f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/retype" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/retype", + f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/retype", body=maybe_transform({"volume_type": volume_type}, volume_change_type_params.VolumeChangeTypeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -700,9 +688,7 @@ def detach_from_instance( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return self._post( - f"/cloud/v2/volumes/{project_id}/{region_id}/{volume_id}/detach" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/volumes/{project_id}/{region_id}/{volume_id}/detach", + f"/cloud/v2/volumes/{project_id}/{region_id}/{volume_id}/detach", body=maybe_transform( {"instance_id": instance_id}, volume_detach_from_instance_params.VolumeDetachFromInstanceParams ), @@ -750,9 +736,7 @@ def get( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return self._get( - f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}/{volume_id}", + f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -802,9 +786,7 @@ def resize( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return self._post( - f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/extend" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/extend", + f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/extend", body=maybe_transform({"size": size}, volume_resize_params.VolumeResizeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -853,9 +835,7 @@ def revert_to_last_snapshot( raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/revert" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/revert", + f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/revert", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1536,9 +1516,7 @@ async def create( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return await self._post( - f"/cloud/v1/volumes/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}", + f"/cloud/v1/volumes/{project_id}/{region_id}", body=await async_maybe_transform( { "image_id": image_id, @@ -1624,9 +1602,7 @@ async def update( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return await self._patch( - f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}/{volume_id}", + f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}", body=await async_maybe_transform( { "name": name, @@ -1708,9 +1684,7 @@ def list( if region_id is None: region_id = self._client._get_cloud_region_id_path_param() return self._get_api_list( - f"/cloud/v1/volumes/{project_id}/{region_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}", + f"/cloud/v1/volumes/{project_id}/{region_id}", page=AsyncOffsetPage[Volume], options=make_request_options( extra_headers=extra_headers, @@ -1779,9 +1753,7 @@ async def delete( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return await self._delete( - f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}/{volume_id}", + f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1838,9 +1810,7 @@ async def attach_to_instance( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return await self._post( - f"/cloud/v2/volumes/{project_id}/{region_id}/{volume_id}/attach" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/volumes/{project_id}/{region_id}/{volume_id}/attach", + f"/cloud/v2/volumes/{project_id}/{region_id}/{volume_id}/attach", body=await async_maybe_transform( { "instance_id": instance_id, @@ -1897,9 +1867,7 @@ async def change_type( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return await self._post( - f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/retype" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/retype", + f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/retype", body=await async_maybe_transform( {"volume_type": volume_type}, volume_change_type_params.VolumeChangeTypeParams ), @@ -1950,9 +1918,7 @@ async def detach_from_instance( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return await self._post( - f"/cloud/v2/volumes/{project_id}/{region_id}/{volume_id}/detach" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v2/volumes/{project_id}/{region_id}/{volume_id}/detach", + f"/cloud/v2/volumes/{project_id}/{region_id}/{volume_id}/detach", body=await async_maybe_transform( {"instance_id": instance_id}, volume_detach_from_instance_params.VolumeDetachFromInstanceParams ), @@ -2000,9 +1966,7 @@ async def get( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return await self._get( - f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}/{volume_id}", + f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -2052,9 +2016,7 @@ async def resize( if not volume_id: raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") return await self._post( - f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/extend" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/extend", + f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/extend", body=await async_maybe_transform({"size": size}, volume_resize_params.VolumeResizeParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -2103,9 +2065,7 @@ async def revert_to_last_snapshot( raise ValueError(f"Expected a non-empty value for `volume_id` but received {volume_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/revert" - if self._client._base_url_overridden - else f"https://api.gcore.com//cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/revert", + f"/cloud/v1/volumes/{project_id}/{region_id}/{volume_id}/revert", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/dns/dns.py b/src/gcore/resources/dns/dns.py index edad6bbe..099fe2fd 100644 --- a/src/gcore/resources/dns/dns.py +++ b/src/gcore/resources/dns/dns.py @@ -104,9 +104,7 @@ def get_account_overview( ) -> DNSGetAccountOverviewResponse: """Get info about client""" return self._get( - "/dns/v2/platform/info" - if self._client._base_url_overridden - else "https://api.gcore.com//dns/v2/platform/info", + "/dns/v2/platform/info", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -143,7 +141,7 @@ def lookup( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/dns/v2/lookup" if self._client._base_url_overridden else "https://api.gcore.com//dns/v2/lookup", + "/dns/v2/lookup", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -209,9 +207,7 @@ async def get_account_overview( ) -> DNSGetAccountOverviewResponse: """Get info about client""" return await self._get( - "/dns/v2/platform/info" - if self._client._base_url_overridden - else "https://api.gcore.com//dns/v2/platform/info", + "/dns/v2/platform/info", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -248,7 +244,7 @@ async def lookup( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/dns/v2/lookup" if self._client._base_url_overridden else "https://api.gcore.com//dns/v2/lookup", + "/dns/v2/lookup", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/dns/locations.py b/src/gcore/resources/dns/locations.py index a6c27797..3b571e04 100644 --- a/src/gcore/resources/dns/locations.py +++ b/src/gcore/resources/dns/locations.py @@ -54,7 +54,7 @@ def list( ) -> LocationListResponse: """List of All locations continents/countries/regions.""" return self._get( - "/dns/v2/locations" if self._client._base_url_overridden else "https://api.gcore.com//dns/v2/locations", + "/dns/v2/locations", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -73,9 +73,7 @@ def list_continents( ) -> LocationListContinentsResponse: """List of All locations continents.""" return self._get( - "/dns/v2/locations/continents" - if self._client._base_url_overridden - else "https://api.gcore.com//dns/v2/locations/continents", + "/dns/v2/locations/continents", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -94,9 +92,7 @@ def list_countries( ) -> LocationListCountriesResponse: """List of All locations countries.""" return self._get( - "/dns/v2/locations/countries" - if self._client._base_url_overridden - else "https://api.gcore.com//dns/v2/locations/countries", + "/dns/v2/locations/countries", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -115,9 +111,7 @@ def list_regions( ) -> LocationListRegionsResponse: """List of All locations regions.""" return self._get( - "/dns/v2/locations/regions" - if self._client._base_url_overridden - else "https://api.gcore.com//dns/v2/locations/regions", + "/dns/v2/locations/regions", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -157,7 +151,7 @@ async def list( ) -> LocationListResponse: """List of All locations continents/countries/regions.""" return await self._get( - "/dns/v2/locations" if self._client._base_url_overridden else "https://api.gcore.com//dns/v2/locations", + "/dns/v2/locations", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -176,9 +170,7 @@ async def list_continents( ) -> LocationListContinentsResponse: """List of All locations continents.""" return await self._get( - "/dns/v2/locations/continents" - if self._client._base_url_overridden - else "https://api.gcore.com//dns/v2/locations/continents", + "/dns/v2/locations/continents", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -197,9 +189,7 @@ async def list_countries( ) -> LocationListCountriesResponse: """List of All locations countries.""" return await self._get( - "/dns/v2/locations/countries" - if self._client._base_url_overridden - else "https://api.gcore.com//dns/v2/locations/countries", + "/dns/v2/locations/countries", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -218,9 +208,7 @@ async def list_regions( ) -> LocationListRegionsResponse: """List of All locations regions.""" return await self._get( - "/dns/v2/locations/regions" - if self._client._base_url_overridden - else "https://api.gcore.com//dns/v2/locations/regions", + "/dns/v2/locations/regions", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/dns/metrics.py b/src/gcore/resources/dns/metrics.py index 90cbb48b..3359b610 100644 --- a/src/gcore/resources/dns/metrics.py +++ b/src/gcore/resources/dns/metrics.py @@ -82,9 +82,7 @@ def list( """ extra_headers = {"Accept": "plain/text", **(extra_headers or {})} return self._get( - "/dns/v2/monitor/metrics" - if self._client._base_url_overridden - else "https://api.gcore.com//dns/v2/monitor/metrics", + "/dns/v2/monitor/metrics", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -162,9 +160,7 @@ async def list( """ extra_headers = {"Accept": "plain/text", **(extra_headers or {})} return await self._get( - "/dns/v2/monitor/metrics" - if self._client._base_url_overridden - else "https://api.gcore.com//dns/v2/monitor/metrics", + "/dns/v2/monitor/metrics", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/dns/pickers/pickers.py b/src/gcore/resources/dns/pickers/pickers.py index 5cbf16a7..c08f6586 100644 --- a/src/gcore/resources/dns/pickers/pickers.py +++ b/src/gcore/resources/dns/pickers/pickers.py @@ -63,7 +63,7 @@ def list( ) -> PickerListResponse: """Returns list of picker""" return self._get( - "/dns/v2/pickers" if self._client._base_url_overridden else "https://api.gcore.com//dns/v2/pickers", + "/dns/v2/pickers", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -107,7 +107,7 @@ async def list( ) -> PickerListResponse: """Returns list of picker""" return await self._get( - "/dns/v2/pickers" if self._client._base_url_overridden else "https://api.gcore.com//dns/v2/pickers", + "/dns/v2/pickers", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/dns/pickers/presets.py b/src/gcore/resources/dns/pickers/presets.py index 6a8db18b..a816c8cc 100644 --- a/src/gcore/resources/dns/pickers/presets.py +++ b/src/gcore/resources/dns/pickers/presets.py @@ -51,9 +51,7 @@ def list( ) -> PresetListResponse: """Returns list of picker preset""" return self._get( - "/dns/v2/pickers/presets" - if self._client._base_url_overridden - else "https://api.gcore.com//dns/v2/pickers/presets", + "/dns/v2/pickers/presets", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -93,9 +91,7 @@ async def list( ) -> PresetListResponse: """Returns list of picker preset""" return await self._get( - "/dns/v2/pickers/presets" - if self._client._base_url_overridden - else "https://api.gcore.com//dns/v2/pickers/presets", + "/dns/v2/pickers/presets", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/dns/zones/dnssec.py b/src/gcore/resources/dns/zones/dnssec.py index c5dcb39b..e91a9d09 100644 --- a/src/gcore/resources/dns/zones/dnssec.py +++ b/src/gcore/resources/dns/zones/dnssec.py @@ -69,9 +69,7 @@ def update( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return self._patch( - f"/dns/v2/zones/{name}/dnssec" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}/dnssec", + f"/dns/v2/zones/{name}/dnssec", body=maybe_transform({"enabled": enabled}, dnssec_update_params.DnssecUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -105,9 +103,7 @@ def get( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return self._get( - f"/dns/v2/zones/{name}/dnssec" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}/dnssec", + f"/dns/v2/zones/{name}/dnssec", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -162,9 +158,7 @@ async def update( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return await self._patch( - f"/dns/v2/zones/{name}/dnssec" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}/dnssec", + f"/dns/v2/zones/{name}/dnssec", body=await async_maybe_transform({"enabled": enabled}, dnssec_update_params.DnssecUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -198,9 +192,7 @@ async def get( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return await self._get( - f"/dns/v2/zones/{name}/dnssec" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}/dnssec", + f"/dns/v2/zones/{name}/dnssec", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/dns/zones/rrsets.py b/src/gcore/resources/dns/zones/rrsets.py index 18f66d20..15085076 100644 --- a/src/gcore/resources/dns/zones/rrsets.py +++ b/src/gcore/resources/dns/zones/rrsets.py @@ -222,9 +222,7 @@ def create( if not rrset_type: raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}") return self._post( - f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", + f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", body=maybe_transform( { "resource_records": resource_records, @@ -278,9 +276,7 @@ def list( if not zone_name: raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}") return self._get( - f"/dns/v2/zones/{zone_name}/rrsets" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/rrsets", + f"/dns/v2/zones/{zone_name}/rrsets", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -331,9 +327,7 @@ def delete( if not rrset_type: raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}") return self._delete( - f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", + f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -372,9 +366,7 @@ def get( if not rrset_type: raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}") return self._get( - f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", + f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -419,9 +411,7 @@ def get_failover_logs( if not rrset_type: raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}") return self._get( - f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}/failover/log" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}/failover/log", + f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}/failover/log", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -480,9 +470,7 @@ def replace( if not rrset_type: raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}") return self._put( - f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", + f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", body=maybe_transform( { "resource_records": resource_records, @@ -690,9 +678,7 @@ async def create( if not rrset_type: raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}") return await self._post( - f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", + f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", body=await async_maybe_transform( { "resource_records": resource_records, @@ -746,9 +732,7 @@ async def list( if not zone_name: raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}") return await self._get( - f"/dns/v2/zones/{zone_name}/rrsets" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/rrsets", + f"/dns/v2/zones/{zone_name}/rrsets", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -799,9 +783,7 @@ async def delete( if not rrset_type: raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}") return await self._delete( - f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", + f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -840,9 +822,7 @@ async def get( if not rrset_type: raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}") return await self._get( - f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", + f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -887,9 +867,7 @@ async def get_failover_logs( if not rrset_type: raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}") return await self._get( - f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}/failover/log" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}/failover/log", + f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}/failover/log", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -948,9 +926,7 @@ async def replace( if not rrset_type: raise ValueError(f"Expected a non-empty value for `rrset_type` but received {rrset_type!r}") return await self._put( - f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", + f"/dns/v2/zones/{zone_name}/{rrset_name}/{rrset_type}", body=await async_maybe_transform( { "resource_records": resource_records, diff --git a/src/gcore/resources/dns/zones/zones.py b/src/gcore/resources/dns/zones/zones.py index 7092460c..765d77eb 100644 --- a/src/gcore/resources/dns/zones/zones.py +++ b/src/gcore/resources/dns/zones/zones.py @@ -143,7 +143,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/dns/v2/zones" if self._client._base_url_overridden else "https://api.gcore.com//dns/v2/zones", + "/dns/v2/zones", body=maybe_transform( { "name": name, @@ -225,7 +225,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/dns/v2/zones" if self._client._base_url_overridden else "https://api.gcore.com//dns/v2/zones", + "/dns/v2/zones", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -283,9 +283,7 @@ def delete( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return self._delete( - f"/dns/v2/zones/{name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}", + f"/dns/v2/zones/{name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -320,9 +318,7 @@ def check_delegation_status( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return self._get( - f"/dns/v2/analyze/{name}/delegation-status" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/analyze/{name}/delegation-status", + f"/dns/v2/analyze/{name}/delegation-status", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -355,9 +351,7 @@ def disable( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return self._patch( - f"/dns/v2/zones/{name}/disable" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}/disable", + f"/dns/v2/zones/{name}/disable", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -390,9 +384,7 @@ def enable( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return self._patch( - f"/dns/v2/zones/{name}/enable" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}/enable", + f"/dns/v2/zones/{name}/enable", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -425,9 +417,7 @@ def export( if not zone_name: raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}") return self._get( - f"/dns/v2/zones/{zone_name}/export" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/export", + f"/dns/v2/zones/{zone_name}/export", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -460,9 +450,7 @@ def get( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return self._get( - f"/dns/v2/zones/{name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}", + f"/dns/v2/zones/{name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -533,9 +521,7 @@ def get_statistics( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return self._get( - f"/dns/v2/zones/{name}/statistics" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}/statistics", + f"/dns/v2/zones/{name}/statistics", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -608,9 +594,7 @@ def import_( if not zone_name: raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}") return self._post( - f"/dns/v2/zones/{zone_name}/import" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/import", + f"/dns/v2/zones/{zone_name}/import", body=maybe_transform(body, zone_import_params.ZoneImportParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -683,9 +667,7 @@ def replace( if not path_name: raise ValueError(f"Expected a non-empty value for `path_name` but received {path_name!r}") return self._put( - f"/dns/v2/zones/{path_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{path_name}", + f"/dns/v2/zones/{path_name}", body=maybe_transform( { "body_name": body_name, @@ -798,7 +780,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/dns/v2/zones" if self._client._base_url_overridden else "https://api.gcore.com//dns/v2/zones", + "/dns/v2/zones", body=await async_maybe_transform( { "name": name, @@ -880,7 +862,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/dns/v2/zones" if self._client._base_url_overridden else "https://api.gcore.com//dns/v2/zones", + "/dns/v2/zones", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -938,9 +920,7 @@ async def delete( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return await self._delete( - f"/dns/v2/zones/{name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}", + f"/dns/v2/zones/{name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -975,9 +955,7 @@ async def check_delegation_status( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return await self._get( - f"/dns/v2/analyze/{name}/delegation-status" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/analyze/{name}/delegation-status", + f"/dns/v2/analyze/{name}/delegation-status", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1010,9 +988,7 @@ async def disable( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return await self._patch( - f"/dns/v2/zones/{name}/disable" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}/disable", + f"/dns/v2/zones/{name}/disable", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1045,9 +1021,7 @@ async def enable( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return await self._patch( - f"/dns/v2/zones/{name}/enable" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}/enable", + f"/dns/v2/zones/{name}/enable", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1080,9 +1054,7 @@ async def export( if not zone_name: raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}") return await self._get( - f"/dns/v2/zones/{zone_name}/export" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/export", + f"/dns/v2/zones/{zone_name}/export", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1115,9 +1087,7 @@ async def get( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return await self._get( - f"/dns/v2/zones/{name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}", + f"/dns/v2/zones/{name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1188,9 +1158,7 @@ async def get_statistics( if not name: raise ValueError(f"Expected a non-empty value for `name` but received {name!r}") return await self._get( - f"/dns/v2/zones/{name}/statistics" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{name}/statistics", + f"/dns/v2/zones/{name}/statistics", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1263,9 +1231,7 @@ async def import_( if not zone_name: raise ValueError(f"Expected a non-empty value for `zone_name` but received {zone_name!r}") return await self._post( - f"/dns/v2/zones/{zone_name}/import" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{zone_name}/import", + f"/dns/v2/zones/{zone_name}/import", body=await async_maybe_transform(body, zone_import_params.ZoneImportParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -1338,9 +1304,7 @@ async def replace( if not path_name: raise ValueError(f"Expected a non-empty value for `path_name` but received {path_name!r}") return await self._put( - f"/dns/v2/zones/{path_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//dns/v2/zones/{path_name}", + f"/dns/v2/zones/{path_name}", body=await async_maybe_transform( { "body_name": body_name, diff --git a/src/gcore/resources/fastedge/apps/apps.py b/src/gcore/resources/fastedge/apps/apps.py index 6344b4c8..21e9fb4c 100644 --- a/src/gcore/resources/fastedge/apps/apps.py +++ b/src/gcore/resources/fastedge/apps/apps.py @@ -121,7 +121,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/fastedge/v1/apps" if self._client._base_url_overridden else "https://api.gcore.com//fastedge/v1/apps", + "/fastedge/v1/apps", body=maybe_transform( { "binary": binary, @@ -208,9 +208,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/fastedge/v1/apps/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/apps/{id}", + f"/fastedge/v1/apps/{id}", body=maybe_transform( { "binary": binary, @@ -307,7 +305,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/fastedge/v1/apps" if self._client._base_url_overridden else "https://api.gcore.com//fastedge/v1/apps", + "/fastedge/v1/apps", page=SyncOffsetPageFastedgeApps[AppShort], options=make_request_options( extra_headers=extra_headers, @@ -357,9 +355,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/fastedge/v1/apps/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/apps/{id}", + f"/fastedge/v1/apps/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -390,9 +386,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/fastedge/v1/apps/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/apps/{id}", + f"/fastedge/v1/apps/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -424,9 +418,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/fastedge/v1/apps/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/apps/{id}", + f"/fastedge/v1/apps/{id}", body=maybe_transform(body, app_replace_params.AppReplaceParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -522,7 +514,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/fastedge/v1/apps" if self._client._base_url_overridden else "https://api.gcore.com//fastedge/v1/apps", + "/fastedge/v1/apps", body=await async_maybe_transform( { "binary": binary, @@ -609,9 +601,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/fastedge/v1/apps/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/apps/{id}", + f"/fastedge/v1/apps/{id}", body=await async_maybe_transform( { "binary": binary, @@ -708,7 +698,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/fastedge/v1/apps" if self._client._base_url_overridden else "https://api.gcore.com//fastedge/v1/apps", + "/fastedge/v1/apps", page=AsyncOffsetPageFastedgeApps[AppShort], options=make_request_options( extra_headers=extra_headers, @@ -758,9 +748,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/fastedge/v1/apps/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/apps/{id}", + f"/fastedge/v1/apps/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -791,9 +779,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/fastedge/v1/apps/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/apps/{id}", + f"/fastedge/v1/apps/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -825,9 +811,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/fastedge/v1/apps/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/apps/{id}", + f"/fastedge/v1/apps/{id}", body=await async_maybe_transform(body, app_replace_params.AppReplaceParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout diff --git a/src/gcore/resources/fastedge/apps/logs.py b/src/gcore/resources/fastedge/apps/logs.py index c38308f9..8f589ab0 100644 --- a/src/gcore/resources/fastedge/apps/logs.py +++ b/src/gcore/resources/fastedge/apps/logs.py @@ -94,9 +94,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/fastedge/v1/apps/{id}/logs" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/apps/{id}/logs", + f"/fastedge/v1/apps/{id}/logs", page=SyncOffsetPageFastedgeAppLogs[Log], options=make_request_options( extra_headers=extra_headers, @@ -189,9 +187,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/fastedge/v1/apps/{id}/logs" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/apps/{id}/logs", + f"/fastedge/v1/apps/{id}/logs", page=AsyncOffsetPageFastedgeAppLogs[Log], options=make_request_options( extra_headers=extra_headers, diff --git a/src/gcore/resources/fastedge/binaries.py b/src/gcore/resources/fastedge/binaries.py index 142fa332..c88f90da 100644 --- a/src/gcore/resources/fastedge/binaries.py +++ b/src/gcore/resources/fastedge/binaries.py @@ -67,9 +67,7 @@ def create( """ extra_headers = {"Content-Type": "application/octet-stream", **(extra_headers or {})} return self._post( - "/fastedge/v1/binaries/raw" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/binaries/raw", + "/fastedge/v1/binaries/raw", body=read_file_content(body), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -89,9 +87,7 @@ def list( ) -> BinaryListResponse: """List binaries""" return self._get( - "/fastedge/v1/binaries" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/binaries", + "/fastedge/v1/binaries", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -123,9 +119,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/fastedge/v1/binaries/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/binaries/{id}", + f"/fastedge/v1/binaries/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -156,9 +150,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/fastedge/v1/binaries/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/binaries/{id}", + f"/fastedge/v1/binaries/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -211,9 +203,7 @@ async def create( """ extra_headers = {"Content-Type": "application/octet-stream", **(extra_headers or {})} return await self._post( - "/fastedge/v1/binaries/raw" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/binaries/raw", + "/fastedge/v1/binaries/raw", body=await async_read_file_content(body), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -233,9 +223,7 @@ async def list( ) -> BinaryListResponse: """List binaries""" return await self._get( - "/fastedge/v1/binaries" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/binaries", + "/fastedge/v1/binaries", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -267,9 +255,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/fastedge/v1/binaries/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/binaries/{id}", + f"/fastedge/v1/binaries/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -300,9 +286,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/fastedge/v1/binaries/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/binaries/{id}", + f"/fastedge/v1/binaries/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/fastedge/fastedge.py b/src/gcore/resources/fastedge/fastedge.py index 43091582..d4ba7cf3 100644 --- a/src/gcore/resources/fastedge/fastedge.py +++ b/src/gcore/resources/fastedge/fastedge.py @@ -123,7 +123,7 @@ def get_account_overview( ) -> Client: """Get status and limits for the client""" return self._get( - "/fastedge/v1/me" if self._client._base_url_overridden else "https://api.gcore.com//fastedge/v1/me", + "/fastedge/v1/me", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -187,7 +187,7 @@ async def get_account_overview( ) -> Client: """Get status and limits for the client""" return await self._get( - "/fastedge/v1/me" if self._client._base_url_overridden else "https://api.gcore.com//fastedge/v1/me", + "/fastedge/v1/me", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/fastedge/kv_stores.py b/src/gcore/resources/fastedge/kv_stores.py index a39f434b..42193e54 100644 --- a/src/gcore/resources/fastedge/kv_stores.py +++ b/src/gcore/resources/fastedge/kv_stores.py @@ -72,7 +72,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/fastedge/v1/kv" if self._client._base_url_overridden else "https://api.gcore.com//fastedge/v1/kv", + "/fastedge/v1/kv", body=maybe_transform( { "byod": byod, @@ -112,7 +112,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/fastedge/v1/kv" if self._client._base_url_overridden else "https://api.gcore.com//fastedge/v1/kv", + "/fastedge/v1/kv", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -148,9 +148,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/fastedge/v1/kv/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/kv/{id}", + f"/fastedge/v1/kv/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -181,9 +179,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/fastedge/v1/kv/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/kv/{id}", + f"/fastedge/v1/kv/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -220,9 +216,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/fastedge/v1/kv/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/kv/{id}", + f"/fastedge/v1/kv/{id}", body=maybe_transform( { "byod": byod, @@ -286,7 +280,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/fastedge/v1/kv" if self._client._base_url_overridden else "https://api.gcore.com//fastedge/v1/kv", + "/fastedge/v1/kv", body=await async_maybe_transform( { "byod": byod, @@ -326,7 +320,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/fastedge/v1/kv" if self._client._base_url_overridden else "https://api.gcore.com//fastedge/v1/kv", + "/fastedge/v1/kv", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -362,9 +356,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/fastedge/v1/kv/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/kv/{id}", + f"/fastedge/v1/kv/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -395,9 +387,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/fastedge/v1/kv/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/kv/{id}", + f"/fastedge/v1/kv/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -434,9 +424,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/fastedge/v1/kv/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/kv/{id}", + f"/fastedge/v1/kv/{id}", body=await async_maybe_transform( { "byod": byod, diff --git a/src/gcore/resources/fastedge/secrets.py b/src/gcore/resources/fastedge/secrets.py index 32e39e18..81685e61 100644 --- a/src/gcore/resources/fastedge/secrets.py +++ b/src/gcore/resources/fastedge/secrets.py @@ -83,9 +83,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/fastedge/v1/secrets" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/secrets", + "/fastedge/v1/secrets", body=maybe_transform( { "name": name, @@ -133,9 +131,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/fastedge/v1/secrets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/secrets/{id}", + f"/fastedge/v1/secrets/{id}", body=maybe_transform( { "comment": comment, @@ -179,9 +175,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/fastedge/v1/secrets" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/secrets", + "/fastedge/v1/secrets", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -226,9 +220,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/fastedge/v1/secrets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/secrets/{id}", + f"/fastedge/v1/secrets/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -263,9 +255,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/fastedge/v1/secrets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/secrets/{id}", + f"/fastedge/v1/secrets/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -305,9 +295,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/fastedge/v1/secrets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/secrets/{id}", + f"/fastedge/v1/secrets/{id}", body=maybe_transform( { "name": name, @@ -375,9 +363,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/fastedge/v1/secrets" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/secrets", + "/fastedge/v1/secrets", body=await async_maybe_transform( { "name": name, @@ -425,9 +411,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/fastedge/v1/secrets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/secrets/{id}", + f"/fastedge/v1/secrets/{id}", body=await async_maybe_transform( { "comment": comment, @@ -471,9 +455,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/fastedge/v1/secrets" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/secrets", + "/fastedge/v1/secrets", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -518,9 +500,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/fastedge/v1/secrets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/secrets/{id}", + f"/fastedge/v1/secrets/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -555,9 +535,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/fastedge/v1/secrets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/secrets/{id}", + f"/fastedge/v1/secrets/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -597,9 +575,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/fastedge/v1/secrets/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/secrets/{id}", + f"/fastedge/v1/secrets/{id}", body=await async_maybe_transform( { "name": name, diff --git a/src/gcore/resources/fastedge/statistics.py b/src/gcore/resources/fastedge/statistics.py index 2768b1c7..4b344931 100644 --- a/src/gcore/resources/fastedge/statistics.py +++ b/src/gcore/resources/fastedge/statistics.py @@ -83,9 +83,7 @@ def get_call_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/fastedge/v1/stats/calls" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/stats/calls", + "/fastedge/v1/stats/calls", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -143,9 +141,7 @@ def get_duration_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/fastedge/v1/stats/app_duration" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/stats/app_duration", + "/fastedge/v1/stats/app_duration", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -224,9 +220,7 @@ async def get_call_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/fastedge/v1/stats/calls" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/stats/calls", + "/fastedge/v1/stats/calls", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -284,9 +278,7 @@ async def get_duration_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/fastedge/v1/stats/app_duration" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/stats/app_duration", + "/fastedge/v1/stats/app_duration", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/fastedge/templates.py b/src/gcore/resources/fastedge/templates.py index 55ba0f87..d58d3110 100644 --- a/src/gcore/resources/fastedge/templates.py +++ b/src/gcore/resources/fastedge/templates.py @@ -93,9 +93,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/fastedge/v1/template" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/template", + "/fastedge/v1/template", body=maybe_transform( { "binary_id": binary_id, @@ -151,9 +149,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/fastedge/v1/template" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/template", + "/fastedge/v1/template", page=SyncOffsetPageFastedgeTemplates[TemplateShort], options=make_request_options( extra_headers=extra_headers, @@ -201,9 +197,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/fastedge/v1/template/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/template/{id}", + f"/fastedge/v1/template/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -238,9 +232,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/fastedge/v1/template/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/template/{id}", + f"/fastedge/v1/template/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -289,9 +281,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/fastedge/v1/template/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/template/{id}", + f"/fastedge/v1/template/{id}", body=maybe_transform( { "binary_id": binary_id, @@ -371,9 +361,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/fastedge/v1/template" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/template", + "/fastedge/v1/template", body=await async_maybe_transform( { "binary_id": binary_id, @@ -429,9 +417,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/fastedge/v1/template" - if self._client._base_url_overridden - else "https://api.gcore.com//fastedge/v1/template", + "/fastedge/v1/template", page=AsyncOffsetPageFastedgeTemplates[TemplateShort], options=make_request_options( extra_headers=extra_headers, @@ -479,9 +465,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/fastedge/v1/template/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/template/{id}", + f"/fastedge/v1/template/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -516,9 +500,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/fastedge/v1/template/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/template/{id}", + f"/fastedge/v1/template/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -567,9 +549,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/fastedge/v1/template/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//fastedge/v1/template/{id}", + f"/fastedge/v1/template/{id}", body=await async_maybe_transform( { "binary_id": binary_id, diff --git a/src/gcore/resources/iam/api_tokens.py b/src/gcore/resources/iam/api_tokens.py index 3cabd1c3..aca5b46f 100644 --- a/src/gcore/resources/iam/api_tokens.py +++ b/src/gcore/resources/iam/api_tokens.py @@ -82,9 +82,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/iam/clients/{client_id}/tokens" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/clients/{client_id}/tokens", + f"/iam/clients/{client_id}/tokens", body=maybe_transform( { "client_user": client_user, @@ -151,9 +149,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/iam/clients/{client_id}/tokens" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/clients/{client_id}/tokens", + f"/iam/clients/{client_id}/tokens", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -202,9 +198,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/iam/clients/{client_id}/tokens/{token_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/clients/{client_id}/tokens/{token_id}", + f"/iam/clients/{client_id}/tokens/{token_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -236,9 +230,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/iam/clients/{client_id}/tokens/{token_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/clients/{client_id}/tokens/{token_id}", + f"/iam/clients/{client_id}/tokens/{token_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -303,9 +295,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/iam/clients/{client_id}/tokens" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/clients/{client_id}/tokens", + f"/iam/clients/{client_id}/tokens", body=await async_maybe_transform( { "client_user": client_user, @@ -372,9 +362,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/iam/clients/{client_id}/tokens" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/clients/{client_id}/tokens", + f"/iam/clients/{client_id}/tokens", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -423,9 +411,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/iam/clients/{client_id}/tokens/{token_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/clients/{client_id}/tokens/{token_id}", + f"/iam/clients/{client_id}/tokens/{token_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -457,9 +443,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/iam/clients/{client_id}/tokens/{token_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/clients/{client_id}/tokens/{token_id}", + f"/iam/clients/{client_id}/tokens/{token_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/iam/iam.py b/src/gcore/resources/iam/iam.py index 0072cb39..7f409c61 100644 --- a/src/gcore/resources/iam/iam.py +++ b/src/gcore/resources/iam/iam.py @@ -75,7 +75,7 @@ def get_account_overview( ) -> AccountOverview: """Get information about your profile, users and other account details.""" return self._get( - "/iam/clients/me" if self._client._base_url_overridden else "https://api.gcore.com//iam/clients/me", + "/iam/clients/me", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -123,7 +123,7 @@ async def get_account_overview( ) -> AccountOverview: """Get information about your profile, users and other account details.""" return await self._get( - "/iam/clients/me" if self._client._base_url_overridden else "https://api.gcore.com//iam/clients/me", + "/iam/clients/me", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/iam/users.py b/src/gcore/resources/iam/users.py index 9337eadb..f411d577 100644 --- a/src/gcore/resources/iam/users.py +++ b/src/gcore/resources/iam/users.py @@ -104,9 +104,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/iam/users/{user_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/users/{user_id}", + f"/iam/users/{user_id}", body=maybe_transform( { "auth_types": auth_types, @@ -158,7 +156,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/iam/users" if self._client._base_url_overridden else "https://api.gcore.com//iam/users", + "/iam/users", page=SyncOffsetPage[User], options=make_request_options( extra_headers=extra_headers, @@ -204,9 +202,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/iam/clients/{client_id}/client-users/{user_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/clients/{client_id}/client-users/{user_id}", + f"/iam/clients/{client_id}/client-users/{user_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -237,9 +233,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/iam/users/{user_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/users/{user_id}", + f"/iam/users/{user_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -289,9 +283,7 @@ def invite( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/iam/clients/invite_user" - if self._client._base_url_overridden - else "https://api.gcore.com//iam/clients/invite_user", + "/iam/clients/invite_user", body=maybe_transform( { "client_id": client_id, @@ -385,9 +377,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/iam/users/{user_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/users/{user_id}", + f"/iam/users/{user_id}", body=await async_maybe_transform( { "auth_types": auth_types, @@ -439,7 +429,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/iam/users" if self._client._base_url_overridden else "https://api.gcore.com//iam/users", + "/iam/users", page=AsyncOffsetPage[User], options=make_request_options( extra_headers=extra_headers, @@ -485,9 +475,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/iam/clients/{client_id}/client-users/{user_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/clients/{client_id}/client-users/{user_id}", + f"/iam/clients/{client_id}/client-users/{user_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -518,9 +506,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/iam/users/{user_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//iam/users/{user_id}", + f"/iam/users/{user_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -570,9 +556,7 @@ async def invite( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/iam/clients/invite_user" - if self._client._base_url_overridden - else "https://api.gcore.com//iam/clients/invite_user", + "/iam/clients/invite_user", body=await async_maybe_transform( { "client_id": client_id, diff --git a/src/gcore/resources/security/bgp_announces.py b/src/gcore/resources/security/bgp_announces.py index 50000889..26b3bc96 100644 --- a/src/gcore/resources/security/bgp_announces.py +++ b/src/gcore/resources/security/bgp_announces.py @@ -74,9 +74,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/security/sifter/v2/protected_addresses/announces" - if self._client._base_url_overridden - else "https://api.gcore.com//security/sifter/v2/protected_addresses/announces", + "/security/sifter/v2/protected_addresses/announces", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -124,9 +122,7 @@ def toggle( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/security/sifter/v2/protected_addresses/announces" - if self._client._base_url_overridden - else "https://api.gcore.com//security/sifter/v2/protected_addresses/announces", + "/security/sifter/v2/protected_addresses/announces", body=maybe_transform( { "announce": announce, @@ -195,9 +191,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/security/sifter/v2/protected_addresses/announces" - if self._client._base_url_overridden - else "https://api.gcore.com//security/sifter/v2/protected_addresses/announces", + "/security/sifter/v2/protected_addresses/announces", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -245,9 +239,7 @@ async def toggle( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/security/sifter/v2/protected_addresses/announces" - if self._client._base_url_overridden - else "https://api.gcore.com//security/sifter/v2/protected_addresses/announces", + "/security/sifter/v2/protected_addresses/announces", body=await async_maybe_transform( { "announce": announce, diff --git a/src/gcore/resources/security/events.py b/src/gcore/resources/security/events.py index a9cc8e57..e0699398 100644 --- a/src/gcore/resources/security/events.py +++ b/src/gcore/resources/security/events.py @@ -88,9 +88,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/security/notifier/v1/event_logs" - if self._client._base_url_overridden - else "https://api.gcore.com//security/notifier/v1/event_logs", + "/security/notifier/v1/event_logs", page=SyncOffsetPage[ClientView], options=make_request_options( extra_headers=extra_headers, @@ -176,9 +174,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/security/notifier/v1/event_logs" - if self._client._base_url_overridden - else "https://api.gcore.com//security/notifier/v1/event_logs", + "/security/notifier/v1/event_logs", page=AsyncOffsetPage[ClientView], options=make_request_options( extra_headers=extra_headers, diff --git a/src/gcore/resources/security/profile_templates.py b/src/gcore/resources/security/profile_templates.py index c4a4459e..307f3c0d 100644 --- a/src/gcore/resources/security/profile_templates.py +++ b/src/gcore/resources/security/profile_templates.py @@ -55,9 +55,7 @@ def list( profile. Client receives only common and created for him profile templates. """ return self._get( - "/security/iaas/profile-templates" - if self._client._base_url_overridden - else "https://api.gcore.com//security/iaas/profile-templates", + "/security/iaas/profile-templates", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -101,9 +99,7 @@ async def list( profile. Client receives only common and created for him profile templates. """ return await self._get( - "/security/iaas/profile-templates" - if self._client._base_url_overridden - else "https://api.gcore.com//security/iaas/profile-templates", + "/security/iaas/profile-templates", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/security/profiles.py b/src/gcore/resources/security/profiles.py index b54bb4af..8394bd69 100644 --- a/src/gcore/resources/security/profiles.py +++ b/src/gcore/resources/security/profiles.py @@ -78,9 +78,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/security/iaas/v2/profiles" - if self._client._base_url_overridden - else "https://api.gcore.com//security/iaas/v2/profiles", + "/security/iaas/v2/profiles", body=maybe_transform( { "fields": fields, @@ -124,9 +122,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/security/iaas/v2/profiles" - if self._client._base_url_overridden - else "https://api.gcore.com//security/iaas/v2/profiles", + "/security/iaas/v2/profiles", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -172,9 +168,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/security/iaas/v2/profiles/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//security/iaas/v2/profiles/{id}", + f"/security/iaas/v2/profiles/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -205,9 +199,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/security/iaas/v2/profiles/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//security/iaas/v2/profiles/{id}", + f"/security/iaas/v2/profiles/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -242,9 +234,7 @@ def recreate( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/security/iaas/v2/profiles/{id}/recreate" - if self._client._base_url_overridden - else f"https://api.gcore.com//security/iaas/v2/profiles/{id}/recreate", + f"/security/iaas/v2/profiles/{id}/recreate", body=maybe_transform( { "fields": fields, @@ -290,9 +280,7 @@ def replace( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/security/iaas/v2/profiles/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//security/iaas/v2/profiles/{id}", + f"/security/iaas/v2/profiles/{id}", body=maybe_transform( { "fields": fields, @@ -358,9 +346,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/security/iaas/v2/profiles" - if self._client._base_url_overridden - else "https://api.gcore.com//security/iaas/v2/profiles", + "/security/iaas/v2/profiles", body=await async_maybe_transform( { "fields": fields, @@ -404,9 +390,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/security/iaas/v2/profiles" - if self._client._base_url_overridden - else "https://api.gcore.com//security/iaas/v2/profiles", + "/security/iaas/v2/profiles", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -452,9 +436,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/security/iaas/v2/profiles/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//security/iaas/v2/profiles/{id}", + f"/security/iaas/v2/profiles/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -485,9 +467,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/security/iaas/v2/profiles/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//security/iaas/v2/profiles/{id}", + f"/security/iaas/v2/profiles/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -522,9 +502,7 @@ async def recreate( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/security/iaas/v2/profiles/{id}/recreate" - if self._client._base_url_overridden - else f"https://api.gcore.com//security/iaas/v2/profiles/{id}/recreate", + f"/security/iaas/v2/profiles/{id}/recreate", body=await async_maybe_transform( { "fields": fields, @@ -570,9 +548,7 @@ async def replace( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/security/iaas/v2/profiles/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//security/iaas/v2/profiles/{id}", + f"/security/iaas/v2/profiles/{id}", body=await async_maybe_transform( { "fields": fields, diff --git a/src/gcore/resources/storage/buckets/buckets.py b/src/gcore/resources/storage/buckets/buckets.py index 4f2b6b24..e6c589fa 100644 --- a/src/gcore/resources/storage/buckets/buckets.py +++ b/src/gcore/resources/storage/buckets/buckets.py @@ -108,9 +108,7 @@ def create( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -150,9 +148,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/storage/provisioning/v2/storage/{storage_id}/s3/buckets" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v2/storage/{storage_id}/s3/buckets", + f"/storage/provisioning/v2/storage/{storage_id}/s3/buckets", page=SyncOffsetPage[Bucket], options=make_request_options( extra_headers=extra_headers, @@ -200,9 +196,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -272,9 +266,7 @@ async def create( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -314,9 +306,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/storage/provisioning/v2/storage/{storage_id}/s3/buckets" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v2/storage/{storage_id}/s3/buckets", + f"/storage/provisioning/v2/storage/{storage_id}/s3/buckets", page=AsyncOffsetPage[Bucket], options=make_request_options( extra_headers=extra_headers, @@ -364,9 +354,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/storage/buckets/cors.py b/src/gcore/resources/storage/buckets/cors.py index 2cbefd77..77a3e045 100644 --- a/src/gcore/resources/storage/buckets/cors.py +++ b/src/gcore/resources/storage/buckets/cors.py @@ -74,9 +74,7 @@ def create( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/cors" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/cors", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/cors", body=maybe_transform({"allowed_origins": allowed_origins}, cor_create_params.CorCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -113,9 +111,7 @@ def get( if not bucket_name: raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") return self._get( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/cors" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/cors", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/cors", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -176,9 +172,7 @@ async def create( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/cors" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/cors", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/cors", body=await async_maybe_transform({"allowed_origins": allowed_origins}, cor_create_params.CorCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -215,9 +209,7 @@ async def get( if not bucket_name: raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") return await self._get( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/cors" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/cors", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/cors", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/storage/buckets/lifecycle.py b/src/gcore/resources/storage/buckets/lifecycle.py index 60182808..b80dffaf 100644 --- a/src/gcore/resources/storage/buckets/lifecycle.py +++ b/src/gcore/resources/storage/buckets/lifecycle.py @@ -78,9 +78,7 @@ def create( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/lifecycle" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/lifecycle", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/lifecycle", body=maybe_transform({"expiration_days": expiration_days}, lifecycle_create_params.LifecycleCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -117,9 +115,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/lifecycle" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/lifecycle", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/lifecycle", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -185,9 +181,7 @@ async def create( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/lifecycle" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/lifecycle", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/lifecycle", body=await async_maybe_transform( {"expiration_days": expiration_days}, lifecycle_create_params.LifecycleCreateParams ), @@ -226,9 +220,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/lifecycle" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/lifecycle", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/lifecycle", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/storage/buckets/policy.py b/src/gcore/resources/storage/buckets/policy.py index 41c123c5..cca549f9 100644 --- a/src/gcore/resources/storage/buckets/policy.py +++ b/src/gcore/resources/storage/buckets/policy.py @@ -71,9 +71,7 @@ def create( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -111,9 +109,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -148,9 +144,7 @@ def get( if not bucket_name: raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") return self._get( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -210,9 +204,7 @@ async def create( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -250,9 +242,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -287,9 +277,7 @@ async def get( if not bucket_name: raise ValueError(f"Expected a non-empty value for `bucket_name` but received {bucket_name!r}") return await self._get( - f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy", + f"/storage/provisioning/v1/storage/{storage_id}/s3/bucket/{bucket_name}/policy", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/storage/credentials.py b/src/gcore/resources/storage/credentials.py index ee32e77e..1db372ae 100644 --- a/src/gcore/resources/storage/credentials.py +++ b/src/gcore/resources/storage/credentials.py @@ -85,9 +85,7 @@ def recreate( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/storage/provisioning/v1/storage/{storage_id}/credentials" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/credentials", + f"/storage/provisioning/v1/storage/{storage_id}/credentials", body=maybe_transform( { "delete_sftp_password": delete_sftp_password, @@ -169,9 +167,7 @@ async def recreate( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/storage/provisioning/v1/storage/{storage_id}/credentials" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/credentials", + f"/storage/provisioning/v1/storage/{storage_id}/credentials", body=await async_maybe_transform( { "delete_sftp_password": delete_sftp_password, diff --git a/src/gcore/resources/storage/locations.py b/src/gcore/resources/storage/locations.py index be55ab51..bce1aa37 100644 --- a/src/gcore/resources/storage/locations.py +++ b/src/gcore/resources/storage/locations.py @@ -69,9 +69,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/storage/provisioning/v2/locations" - if self._client._base_url_overridden - else "https://api.gcore.com//storage/provisioning/v2/locations", + "/storage/provisioning/v2/locations", page=SyncOffsetPage[Location], options=make_request_options( extra_headers=extra_headers, @@ -137,9 +135,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/storage/provisioning/v2/locations" - if self._client._base_url_overridden - else "https://api.gcore.com//storage/provisioning/v2/locations", + "/storage/provisioning/v2/locations", page=AsyncOffsetPage[Location], options=make_request_options( extra_headers=extra_headers, diff --git a/src/gcore/resources/storage/statistics.py b/src/gcore/resources/storage/statistics.py index 25cbc05c..dbaf7b6e 100644 --- a/src/gcore/resources/storage/statistics.py +++ b/src/gcore/resources/storage/statistics.py @@ -82,9 +82,7 @@ def get_usage_aggregated( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/storage/stats/v1/storage/usage/total" - if self._client._base_url_overridden - else "https://api.gcore.com//storage/stats/v1/storage/usage/total", + "/storage/stats/v1/storage/usage/total", body=maybe_transform( { "from_": from_, @@ -151,9 +149,7 @@ def get_usage_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/storage/stats/v1/storage/usage/series" - if self._client._base_url_overridden - else "https://api.gcore.com//storage/stats/v1/storage/usage/series", + "/storage/stats/v1/storage/usage/series", body=maybe_transform( { "from_": from_, @@ -233,9 +229,7 @@ async def get_usage_aggregated( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/storage/stats/v1/storage/usage/total" - if self._client._base_url_overridden - else "https://api.gcore.com//storage/stats/v1/storage/usage/total", + "/storage/stats/v1/storage/usage/total", body=await async_maybe_transform( { "from_": from_, @@ -302,9 +296,7 @@ async def get_usage_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/storage/stats/v1/storage/usage/series" - if self._client._base_url_overridden - else "https://api.gcore.com//storage/stats/v1/storage/usage/series", + "/storage/stats/v1/storage/usage/series", body=await async_maybe_transform( { "from_": from_, diff --git a/src/gcore/resources/storage/storage.py b/src/gcore/resources/storage/storage.py index 26ee34ae..c3a2d71e 100644 --- a/src/gcore/resources/storage/storage.py +++ b/src/gcore/resources/storage/storage.py @@ -138,9 +138,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/storage/provisioning/v2/storage" - if self._client._base_url_overridden - else "https://api.gcore.com//storage/provisioning/v2/storage", + "/storage/provisioning/v2/storage", body=maybe_transform( { "location": location, @@ -190,9 +188,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/storage/provisioning/v2/storage/{storage_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v2/storage/{storage_id}", + f"/storage/provisioning/v2/storage/{storage_id}", body=maybe_transform( { "expires": expires, @@ -264,9 +260,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/storage/provisioning/v3/storage" - if self._client._base_url_overridden - else "https://api.gcore.com//storage/provisioning/v3/storage", + "/storage/provisioning/v3/storage", page=SyncOffsetPage[Storage], options=make_request_options( extra_headers=extra_headers, @@ -318,9 +312,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/storage/provisioning/v1/storage/{storage_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}", + f"/storage/provisioning/v1/storage/{storage_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -352,9 +344,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/storage/provisioning/v1/storage/{storage_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}", + f"/storage/provisioning/v1/storage/{storage_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -389,9 +379,7 @@ def link_ssh_key( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/storage/provisioning/v1/storage/{storage_id}/key/{key_id}/link" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/key/{key_id}/link", + f"/storage/provisioning/v1/storage/{storage_id}/key/{key_id}/link", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -425,9 +413,7 @@ def restore( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/storage/provisioning/v1/storage/{storage_id}/restore" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/restore", + f"/storage/provisioning/v1/storage/{storage_id}/restore", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -466,9 +452,7 @@ def unlink_ssh_key( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/storage/provisioning/v1/storage/{storage_id}/key/{key_id}/unlink" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/key/{key_id}/unlink", + f"/storage/provisioning/v1/storage/{storage_id}/key/{key_id}/unlink", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -558,9 +542,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/storage/provisioning/v2/storage" - if self._client._base_url_overridden - else "https://api.gcore.com//storage/provisioning/v2/storage", + "/storage/provisioning/v2/storage", body=await async_maybe_transform( { "location": location, @@ -610,9 +592,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/storage/provisioning/v2/storage/{storage_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v2/storage/{storage_id}", + f"/storage/provisioning/v2/storage/{storage_id}", body=await async_maybe_transform( { "expires": expires, @@ -684,9 +664,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/storage/provisioning/v3/storage" - if self._client._base_url_overridden - else "https://api.gcore.com//storage/provisioning/v3/storage", + "/storage/provisioning/v3/storage", page=AsyncOffsetPage[Storage], options=make_request_options( extra_headers=extra_headers, @@ -738,9 +716,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/storage/provisioning/v1/storage/{storage_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}", + f"/storage/provisioning/v1/storage/{storage_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -772,9 +748,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/storage/provisioning/v1/storage/{storage_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}", + f"/storage/provisioning/v1/storage/{storage_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -809,9 +783,7 @@ async def link_ssh_key( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/storage/provisioning/v1/storage/{storage_id}/key/{key_id}/link" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/key/{key_id}/link", + f"/storage/provisioning/v1/storage/{storage_id}/key/{key_id}/link", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -845,9 +817,7 @@ async def restore( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/storage/provisioning/v1/storage/{storage_id}/restore" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/restore", + f"/storage/provisioning/v1/storage/{storage_id}/restore", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -888,9 +858,7 @@ async def unlink_ssh_key( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/storage/provisioning/v1/storage/{storage_id}/key/{key_id}/unlink" - if self._client._base_url_overridden - else f"https://api.gcore.com//storage/provisioning/v1/storage/{storage_id}/key/{key_id}/unlink", + f"/storage/provisioning/v1/storage/{storage_id}/key/{key_id}/unlink", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/streaming/ai_tasks.py b/src/gcore/resources/streaming/ai_tasks.py index 02a61389..6811e64c 100644 --- a/src/gcore/resources/streaming/ai_tasks.py +++ b/src/gcore/resources/streaming/ai_tasks.py @@ -351,7 +351,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/streaming/ai/tasks" if self._client._base_url_overridden else "https://api.gcore.com//streaming/ai/tasks", + "/streaming/ai/tasks", body=maybe_transform( { "task_name": task_name, @@ -437,7 +437,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/ai/tasks" if self._client._base_url_overridden else "https://api.gcore.com//streaming/ai/tasks", + "/streaming/ai/tasks", page=SyncPageStreamingAI[AITask], options=make_request_options( extra_headers=extra_headers, @@ -490,9 +490,7 @@ def cancel( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return self._post( - f"/streaming/ai/tasks/{task_id}/cancel" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/ai/tasks/{task_id}/cancel", + f"/streaming/ai/tasks/{task_id}/cancel", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -564,9 +562,7 @@ def get( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return self._get( - f"/streaming/ai/tasks/{task_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/ai/tasks/{task_id}", + f"/streaming/ai/tasks/{task_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -645,7 +641,7 @@ def get_ai_settings( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/ai/info" if self._client._base_url_overridden else "https://api.gcore.com//streaming/ai/info", + "/streaming/ai/info", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -987,7 +983,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/streaming/ai/tasks" if self._client._base_url_overridden else "https://api.gcore.com//streaming/ai/tasks", + "/streaming/ai/tasks", body=await async_maybe_transform( { "task_name": task_name, @@ -1073,7 +1069,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/ai/tasks" if self._client._base_url_overridden else "https://api.gcore.com//streaming/ai/tasks", + "/streaming/ai/tasks", page=AsyncPageStreamingAI[AITask], options=make_request_options( extra_headers=extra_headers, @@ -1126,9 +1122,7 @@ async def cancel( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return await self._post( - f"/streaming/ai/tasks/{task_id}/cancel" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/ai/tasks/{task_id}/cancel", + f"/streaming/ai/tasks/{task_id}/cancel", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1200,9 +1194,7 @@ async def get( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return await self._get( - f"/streaming/ai/tasks/{task_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/ai/tasks/{task_id}", + f"/streaming/ai/tasks/{task_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1281,7 +1273,7 @@ async def get_ai_settings( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/ai/info" if self._client._base_url_overridden else "https://api.gcore.com//streaming/ai/info", + "/streaming/ai/info", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/streaming/broadcasts.py b/src/gcore/resources/streaming/broadcasts.py index 2435c18a..757bde4d 100644 --- a/src/gcore/resources/streaming/broadcasts.py +++ b/src/gcore/resources/streaming/broadcasts.py @@ -78,9 +78,7 @@ def create( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - "/streaming/broadcasts" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/broadcasts", + "/streaming/broadcasts", body=maybe_transform({"broadcast": broadcast}, broadcast_create_params.BroadcastCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -113,9 +111,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/streaming/broadcasts/{broadcast_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/broadcasts/{broadcast_id}", + f"/streaming/broadcasts/{broadcast_id}", body=maybe_transform({"broadcast": broadcast}, broadcast_update_params.BroadcastUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -152,9 +148,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/broadcasts" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/broadcasts", + "/streaming/broadcasts", page=SyncPageStreaming[Broadcast], options=make_request_options( extra_headers=extra_headers, @@ -191,9 +185,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/streaming/broadcasts/{broadcast_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/broadcasts/{broadcast_id}", + f"/streaming/broadcasts/{broadcast_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -224,9 +216,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/broadcasts/{broadcast_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/broadcasts/{broadcast_id}", + f"/streaming/broadcasts/{broadcast_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -257,9 +247,7 @@ def get_spectators_count( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/broadcasts/{broadcast_id}/spectators" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/broadcasts/{broadcast_id}/spectators", + f"/streaming/broadcasts/{broadcast_id}/spectators", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -322,9 +310,7 @@ async def create( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - "/streaming/broadcasts" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/broadcasts", + "/streaming/broadcasts", body=await async_maybe_transform({"broadcast": broadcast}, broadcast_create_params.BroadcastCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -357,9 +343,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/streaming/broadcasts/{broadcast_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/broadcasts/{broadcast_id}", + f"/streaming/broadcasts/{broadcast_id}", body=await async_maybe_transform({"broadcast": broadcast}, broadcast_update_params.BroadcastUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -396,9 +380,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/broadcasts" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/broadcasts", + "/streaming/broadcasts", page=AsyncPageStreaming[Broadcast], options=make_request_options( extra_headers=extra_headers, @@ -435,9 +417,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/streaming/broadcasts/{broadcast_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/broadcasts/{broadcast_id}", + f"/streaming/broadcasts/{broadcast_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -468,9 +448,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/broadcasts/{broadcast_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/broadcasts/{broadcast_id}", + f"/streaming/broadcasts/{broadcast_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -501,9 +479,7 @@ async def get_spectators_count( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/broadcasts/{broadcast_id}/spectators" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/broadcasts/{broadcast_id}/spectators", + f"/streaming/broadcasts/{broadcast_id}/spectators", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/streaming/directories.py b/src/gcore/resources/streaming/directories.py index a67d8d61..3c45afb6 100644 --- a/src/gcore/resources/streaming/directories.py +++ b/src/gcore/resources/streaming/directories.py @@ -72,9 +72,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/streaming/directories" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/directories", + "/streaming/directories", body=maybe_transform( { "name": name, @@ -119,9 +117,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/streaming/directories/{directory_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/directories/{directory_id}", + f"/streaming/directories/{directory_id}", body=maybe_transform( { "name": name, @@ -170,9 +166,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/streaming/directories/{directory_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/directories/{directory_id}", + f"/streaming/directories/{directory_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -205,9 +199,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/directories/{directory_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/directories/{directory_id}", + f"/streaming/directories/{directory_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -230,9 +222,7 @@ def get_tree( This endpoint returns hierarchical data about directories in video hosting. """ return self._get( - "/streaming/directories/tree" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/directories/tree", + "/streaming/directories/tree", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -289,9 +279,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/streaming/directories" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/directories", + "/streaming/directories", body=await async_maybe_transform( { "name": name, @@ -336,9 +324,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/streaming/directories/{directory_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/directories/{directory_id}", + f"/streaming/directories/{directory_id}", body=await async_maybe_transform( { "name": name, @@ -387,9 +373,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/streaming/directories/{directory_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/directories/{directory_id}", + f"/streaming/directories/{directory_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -422,9 +406,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/directories/{directory_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/directories/{directory_id}", + f"/streaming/directories/{directory_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -447,9 +429,7 @@ async def get_tree( This endpoint returns hierarchical data about directories in video hosting. """ return await self._get( - "/streaming/directories/tree" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/directories/tree", + "/streaming/directories/tree", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/streaming/players.py b/src/gcore/resources/streaming/players.py index e7717e34..b2590c29 100644 --- a/src/gcore/resources/streaming/players.py +++ b/src/gcore/resources/streaming/players.py @@ -72,7 +72,7 @@ def create( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - "/streaming/players" if self._client._base_url_overridden else "https://api.gcore.com//streaming/players", + "/streaming/players", body=maybe_transform({"player": player}, player_create_params.PlayerCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -109,9 +109,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/streaming/players/{player_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/players/{player_id}", + f"/streaming/players/{player_id}", body=maybe_transform({"player": player}, player_update_params.PlayerUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -146,7 +144,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/players" if self._client._base_url_overridden else "https://api.gcore.com//streaming/players", + "/streaming/players", page=SyncPageStreaming[Player], options=make_request_options( extra_headers=extra_headers, @@ -183,9 +181,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/streaming/players/{player_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/players/{player_id}", + f"/streaming/players/{player_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -216,9 +212,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/players/{player_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/players/{player_id}", + f"/streaming/players/{player_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -250,9 +244,7 @@ def preview( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._get( - f"/streaming/players/{player_id}/preview" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/players/{player_id}/preview", + f"/streaming/players/{player_id}/preview", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -309,7 +301,7 @@ async def create( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - "/streaming/players" if self._client._base_url_overridden else "https://api.gcore.com//streaming/players", + "/streaming/players", body=await async_maybe_transform({"player": player}, player_create_params.PlayerCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -346,9 +338,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/streaming/players/{player_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/players/{player_id}", + f"/streaming/players/{player_id}", body=await async_maybe_transform({"player": player}, player_update_params.PlayerUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -383,7 +373,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/players" if self._client._base_url_overridden else "https://api.gcore.com//streaming/players", + "/streaming/players", page=AsyncPageStreaming[Player], options=make_request_options( extra_headers=extra_headers, @@ -420,9 +410,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/streaming/players/{player_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/players/{player_id}", + f"/streaming/players/{player_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -453,9 +441,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/players/{player_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/players/{player_id}", + f"/streaming/players/{player_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -487,9 +473,7 @@ async def preview( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._get( - f"/streaming/players/{player_id}/preview" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/players/{player_id}/preview", + f"/streaming/players/{player_id}/preview", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/streaming/playlists.py b/src/gcore/resources/streaming/playlists.py index a7804425..aea53517 100644 --- a/src/gcore/resources/streaming/playlists.py +++ b/src/gcore/resources/streaming/playlists.py @@ -221,9 +221,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/streaming/playlists" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/playlists", + "/streaming/playlists", body=maybe_transform( { "active": active, @@ -358,9 +356,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/streaming/playlists/{playlist_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/playlists/{playlist_id}", + f"/streaming/playlists/{playlist_id}", body=maybe_transform( { "active": active, @@ -413,9 +409,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/playlists" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/playlists", + "/streaming/playlists", page=SyncPageStreaming[Playlist], options=make_request_options( extra_headers=extra_headers, @@ -452,9 +446,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/streaming/playlists/{playlist_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/playlists/{playlist_id}", + f"/streaming/playlists/{playlist_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -485,9 +477,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/playlists/{playlist_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/playlists/{playlist_id}", + f"/streaming/playlists/{playlist_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -518,9 +508,7 @@ def list_videos( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/playlists/{playlist_id}/videos" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/playlists/{playlist_id}/videos", + f"/streaming/playlists/{playlist_id}/videos", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -722,9 +710,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/streaming/playlists" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/playlists", + "/streaming/playlists", body=await async_maybe_transform( { "active": active, @@ -859,9 +845,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/streaming/playlists/{playlist_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/playlists/{playlist_id}", + f"/streaming/playlists/{playlist_id}", body=await async_maybe_transform( { "active": active, @@ -914,9 +898,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/playlists" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/playlists", + "/streaming/playlists", page=AsyncPageStreaming[Playlist], options=make_request_options( extra_headers=extra_headers, @@ -953,9 +935,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/streaming/playlists/{playlist_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/playlists/{playlist_id}", + f"/streaming/playlists/{playlist_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -986,9 +966,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/playlists/{playlist_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/playlists/{playlist_id}", + f"/streaming/playlists/{playlist_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1019,9 +997,7 @@ async def list_videos( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/playlists/{playlist_id}/videos" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/playlists/{playlist_id}/videos", + f"/streaming/playlists/{playlist_id}/videos", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/streaming/quality_sets.py b/src/gcore/resources/streaming/quality_sets.py index 7bd710f3..d91c5569 100644 --- a/src/gcore/resources/streaming/quality_sets.py +++ b/src/gcore/resources/streaming/quality_sets.py @@ -98,9 +98,7 @@ def list( is a paid feature. """ return self._get( - "/streaming/quality_sets" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/quality_sets", + "/streaming/quality_sets", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -150,9 +148,7 @@ def set_default( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - "/streaming/quality_sets/default" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/quality_sets/default", + "/streaming/quality_sets/default", body=maybe_transform( { "live": live, @@ -244,9 +240,7 @@ async def list( is a paid feature. """ return await self._get( - "/streaming/quality_sets" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/quality_sets", + "/streaming/quality_sets", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -296,9 +290,7 @@ async def set_default( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - "/streaming/quality_sets/default" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/quality_sets/default", + "/streaming/quality_sets/default", body=await async_maybe_transform( { "live": live, diff --git a/src/gcore/resources/streaming/restreams.py b/src/gcore/resources/streaming/restreams.py index 2be0770f..91f24ab2 100644 --- a/src/gcore/resources/streaming/restreams.py +++ b/src/gcore/resources/streaming/restreams.py @@ -67,9 +67,7 @@ def create( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - "/streaming/restreams" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/restreams", + "/streaming/restreams", body=maybe_transform({"restream": restream}, restream_create_params.RestreamCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -102,9 +100,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/streaming/restreams/{restream_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/restreams/{restream_id}", + f"/streaming/restreams/{restream_id}", body=maybe_transform({"restream": restream}, restream_update_params.RestreamUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -139,9 +135,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/restreams" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/restreams", + "/streaming/restreams", page=SyncPageStreaming[Restream], options=make_request_options( extra_headers=extra_headers, @@ -178,9 +172,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/streaming/restreams/{restream_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/restreams/{restream_id}", + f"/streaming/restreams/{restream_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -211,9 +203,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/restreams/{restream_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/restreams/{restream_id}", + f"/streaming/restreams/{restream_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -266,9 +256,7 @@ async def create( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - "/streaming/restreams" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/restreams", + "/streaming/restreams", body=await async_maybe_transform({"restream": restream}, restream_create_params.RestreamCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -301,9 +289,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/streaming/restreams/{restream_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/restreams/{restream_id}", + f"/streaming/restreams/{restream_id}", body=await async_maybe_transform({"restream": restream}, restream_update_params.RestreamUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -338,9 +324,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/restreams" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/restreams", + "/streaming/restreams", page=AsyncPageStreaming[Restream], options=make_request_options( extra_headers=extra_headers, @@ -377,9 +361,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/streaming/restreams/{restream_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/restreams/{restream_id}", + f"/streaming/restreams/{restream_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -410,9 +392,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/restreams/{restream_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/restreams/{restream_id}", + f"/streaming/restreams/{restream_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/streaming/statistics.py b/src/gcore/resources/streaming/statistics.py index 913d43c1..82b2a1f6 100644 --- a/src/gcore/resources/streaming/statistics.py +++ b/src/gcore/resources/streaming/statistics.py @@ -124,9 +124,7 @@ def get_ffprobes( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/ffprobe" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/ffprobe", + "/streaming/statistics/ffprobe", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -194,9 +192,7 @@ def get_live_unique_viewers( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/stream/viewers" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/stream/viewers", + "/streaming/statistics/stream/viewers", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -265,9 +261,7 @@ def get_live_watch_time_cdn( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/stream/watching_duration" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/stream/watching_duration", + "/streaming/statistics/stream/watching_duration", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -329,9 +323,7 @@ def get_live_watch_time_total_cdn( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/stream/watching_duration/total" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/stream/watching_duration/total", + "/streaming/statistics/stream/watching_duration/total", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -384,9 +376,7 @@ def get_max_streams_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/max_stream" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/max_stream", + "/streaming/statistics/max_stream", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -440,9 +430,7 @@ def get_popular_videos( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/popular" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/popular", + "/streaming/statistics/popular", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -493,9 +481,7 @@ def get_storage_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/storage" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/storage", + "/streaming/statistics/storage", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -547,9 +533,7 @@ def get_stream_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/stream" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/stream", + "/streaming/statistics/stream", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -625,9 +609,7 @@ def get_unique_viewers( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/uniqs" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/uniqs", + "/streaming/statistics/uniqs", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -731,9 +713,7 @@ def get_unique_viewers_cdn( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/cdn/uniqs" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/cdn/uniqs", + "/streaming/statistics/cdn/uniqs", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -808,9 +788,7 @@ def get_views( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/views" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/views", + "/streaming/statistics/views", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -869,9 +847,7 @@ def get_views_by_browsers( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/browsers" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/browsers", + "/streaming/statistics/browsers", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -923,9 +899,7 @@ def get_views_by_country( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/countries" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/countries", + "/streaming/statistics/countries", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -978,9 +952,7 @@ def get_views_by_hostname( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/hosts" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/hosts", + "/streaming/statistics/hosts", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1033,9 +1005,7 @@ def get_views_by_operating_system( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/systems" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/systems", + "/streaming/statistics/systems", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1088,9 +1058,7 @@ def get_views_by_referer( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/embeds" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/embeds", + "/streaming/statistics/embeds", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1143,9 +1111,7 @@ def get_views_by_region( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/regions" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/regions", + "/streaming/statistics/regions", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1209,9 +1175,7 @@ def get_views_heatmap( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/heatmap" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/heatmap", + "/streaming/statistics/heatmap", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1263,9 +1227,7 @@ def get_vod_storage_volume( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/vod/storage_duration" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/vod/storage_duration", + "/streaming/statistics/vod/storage_duration", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1315,9 +1277,7 @@ def get_vod_transcoding_duration( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/vod/transcoding_duration" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/vod/transcoding_duration", + "/streaming/statistics/vod/transcoding_duration", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1382,9 +1342,7 @@ def get_vod_unique_viewers_cdn( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/vod/viewers" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/vod/viewers", + "/streaming/statistics/vod/viewers", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1453,9 +1411,7 @@ def get_vod_watch_time_cdn( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/vod/watching_duration" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/vod/watching_duration", + "/streaming/statistics/vod/watching_duration", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1517,9 +1473,7 @@ def get_vod_watch_time_total_cdn( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/streaming/statistics/vod/watching_duration/total" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/vod/watching_duration/total", + "/streaming/statistics/vod/watching_duration/total", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1597,9 +1551,7 @@ async def get_ffprobes( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/ffprobe" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/ffprobe", + "/streaming/statistics/ffprobe", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1667,9 +1619,7 @@ async def get_live_unique_viewers( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/stream/viewers" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/stream/viewers", + "/streaming/statistics/stream/viewers", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1738,9 +1688,7 @@ async def get_live_watch_time_cdn( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/stream/watching_duration" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/stream/watching_duration", + "/streaming/statistics/stream/watching_duration", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1802,9 +1750,7 @@ async def get_live_watch_time_total_cdn( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/stream/watching_duration/total" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/stream/watching_duration/total", + "/streaming/statistics/stream/watching_duration/total", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1857,9 +1803,7 @@ async def get_max_streams_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/max_stream" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/max_stream", + "/streaming/statistics/max_stream", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1913,9 +1857,7 @@ async def get_popular_videos( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/popular" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/popular", + "/streaming/statistics/popular", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -1966,9 +1908,7 @@ async def get_storage_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/storage" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/storage", + "/streaming/statistics/storage", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2020,9 +1960,7 @@ async def get_stream_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/stream" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/stream", + "/streaming/statistics/stream", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2098,9 +2036,7 @@ async def get_unique_viewers( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/uniqs" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/uniqs", + "/streaming/statistics/uniqs", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2204,9 +2140,7 @@ async def get_unique_viewers_cdn( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/cdn/uniqs" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/cdn/uniqs", + "/streaming/statistics/cdn/uniqs", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2281,9 +2215,7 @@ async def get_views( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/views" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/views", + "/streaming/statistics/views", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2342,9 +2274,7 @@ async def get_views_by_browsers( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/browsers" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/browsers", + "/streaming/statistics/browsers", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2396,9 +2326,7 @@ async def get_views_by_country( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/countries" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/countries", + "/streaming/statistics/countries", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2451,9 +2379,7 @@ async def get_views_by_hostname( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/hosts" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/hosts", + "/streaming/statistics/hosts", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2506,9 +2432,7 @@ async def get_views_by_operating_system( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/systems" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/systems", + "/streaming/statistics/systems", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2561,9 +2485,7 @@ async def get_views_by_referer( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/embeds" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/embeds", + "/streaming/statistics/embeds", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2616,9 +2538,7 @@ async def get_views_by_region( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/regions" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/regions", + "/streaming/statistics/regions", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2682,9 +2602,7 @@ async def get_views_heatmap( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/heatmap" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/heatmap", + "/streaming/statistics/heatmap", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2736,9 +2654,7 @@ async def get_vod_storage_volume( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/vod/storage_duration" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/vod/storage_duration", + "/streaming/statistics/vod/storage_duration", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2788,9 +2704,7 @@ async def get_vod_transcoding_duration( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/vod/transcoding_duration" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/vod/transcoding_duration", + "/streaming/statistics/vod/transcoding_duration", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2855,9 +2769,7 @@ async def get_vod_unique_viewers_cdn( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/vod/viewers" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/vod/viewers", + "/streaming/statistics/vod/viewers", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2926,9 +2838,7 @@ async def get_vod_watch_time_cdn( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/vod/watching_duration" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/vod/watching_duration", + "/streaming/statistics/vod/watching_duration", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -2990,9 +2900,7 @@ async def get_vod_watch_time_total_cdn( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/streaming/statistics/vod/watching_duration/total" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/statistics/vod/watching_duration/total", + "/streaming/statistics/vod/watching_duration/total", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/streaming/streams/overlays.py b/src/gcore/resources/streaming/streams/overlays.py index 8f37a1e4..780f045b 100644 --- a/src/gcore/resources/streaming/streams/overlays.py +++ b/src/gcore/resources/streaming/streams/overlays.py @@ -131,9 +131,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/streaming/streams/{stream_id}/overlays" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/overlays", + f"/streaming/streams/{stream_id}/overlays", body=maybe_transform(body, Iterable[overlay_create_params.Body]), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -185,9 +183,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/streaming/streams/{stream_id}/overlays/{overlay_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/overlays/{overlay_id}", + f"/streaming/streams/{stream_id}/overlays/{overlay_id}", body=maybe_transform( { "height": height, @@ -229,9 +225,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/streams/{stream_id}/overlays" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/overlays", + f"/streaming/streams/{stream_id}/overlays", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -264,9 +258,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/streaming/streams/{stream_id}/overlays/{overlay_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/overlays/{overlay_id}", + f"/streaming/streams/{stream_id}/overlays/{overlay_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -298,9 +290,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/streams/{stream_id}/overlays/{overlay_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/overlays/{overlay_id}", + f"/streaming/streams/{stream_id}/overlays/{overlay_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -332,9 +322,7 @@ def update_multiple( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/streaming/streams/{stream_id}/overlays" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/overlays", + f"/streaming/streams/{stream_id}/overlays", body=maybe_transform(body, Iterable[overlay_update_multiple_params.Body]), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -448,9 +436,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/streaming/streams/{stream_id}/overlays" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/overlays", + f"/streaming/streams/{stream_id}/overlays", body=await async_maybe_transform(body, Iterable[overlay_create_params.Body]), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -502,9 +488,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/streaming/streams/{stream_id}/overlays/{overlay_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/overlays/{overlay_id}", + f"/streaming/streams/{stream_id}/overlays/{overlay_id}", body=await async_maybe_transform( { "height": height, @@ -546,9 +530,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/streams/{stream_id}/overlays" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/overlays", + f"/streaming/streams/{stream_id}/overlays", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -581,9 +563,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/streaming/streams/{stream_id}/overlays/{overlay_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/overlays/{overlay_id}", + f"/streaming/streams/{stream_id}/overlays/{overlay_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -615,9 +595,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/streams/{stream_id}/overlays/{overlay_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/overlays/{overlay_id}", + f"/streaming/streams/{stream_id}/overlays/{overlay_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -649,9 +627,7 @@ async def update_multiple( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/streaming/streams/{stream_id}/overlays" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/overlays", + f"/streaming/streams/{stream_id}/overlays", body=await async_maybe_transform(body, Iterable[overlay_update_multiple_params.Body]), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout diff --git a/src/gcore/resources/streaming/streams/streams.py b/src/gcore/resources/streaming/streams/streams.py index 33a7b0fc..acc3a7f3 100644 --- a/src/gcore/resources/streaming/streams/streams.py +++ b/src/gcore/resources/streaming/streams/streams.py @@ -255,7 +255,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/streaming/streams" if self._client._base_url_overridden else "https://api.gcore.com//streaming/streams", + "/streaming/streams", body=maybe_transform( { "name": name, @@ -308,9 +308,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/streaming/streams/{stream_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}", + f"/streaming/streams/{stream_id}", body=maybe_transform({"stream": stream}, stream_update_params.StreamUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -349,7 +347,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/streams" if self._client._base_url_overridden else "https://api.gcore.com//streaming/streams", + "/streaming/streams", page=SyncPageStreaming[Stream], options=make_request_options( extra_headers=extra_headers, @@ -411,9 +409,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/streaming/streams/{stream_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}", + f"/streaming/streams/{stream_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -445,9 +441,7 @@ def clear_dvr( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._put( - f"/streaming/streams/{stream_id}/dvr_cleanup" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/dvr_cleanup", + f"/streaming/streams/{stream_id}/dvr_cleanup", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -578,9 +572,7 @@ def create_clip( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/streaming/streams/{stream_id}/clip_recording" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/clip_recording", + f"/streaming/streams/{stream_id}/clip_recording", body=maybe_transform( { "duration": duration, @@ -620,9 +612,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/streams/{stream_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}", + f"/streaming/streams/{stream_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -673,9 +663,7 @@ def list_clips( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/streams/{stream_id}/clip_recording" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/clip_recording", + f"/streaming/streams/{stream_id}/clip_recording", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -746,9 +734,7 @@ def start_recording( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/streaming/streams/{stream_id}/start_recording" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/start_recording", + f"/streaming/streams/{stream_id}/start_recording", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -785,9 +771,7 @@ def stop_recording( timeout: Override the client-level default timeout for this request, in seconds """ return self._put( - f"/streaming/streams/{stream_id}/stop_recording" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/stop_recording", + f"/streaming/streams/{stream_id}/stop_recording", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1008,7 +992,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/streaming/streams" if self._client._base_url_overridden else "https://api.gcore.com//streaming/streams", + "/streaming/streams", body=await async_maybe_transform( { "name": name, @@ -1061,9 +1045,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/streaming/streams/{stream_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}", + f"/streaming/streams/{stream_id}", body=await async_maybe_transform({"stream": stream}, stream_update_params.StreamUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -1102,7 +1084,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/streams" if self._client._base_url_overridden else "https://api.gcore.com//streaming/streams", + "/streaming/streams", page=AsyncPageStreaming[Stream], options=make_request_options( extra_headers=extra_headers, @@ -1164,9 +1146,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/streaming/streams/{stream_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}", + f"/streaming/streams/{stream_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1198,9 +1178,7 @@ async def clear_dvr( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._put( - f"/streaming/streams/{stream_id}/dvr_cleanup" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/dvr_cleanup", + f"/streaming/streams/{stream_id}/dvr_cleanup", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1331,9 +1309,7 @@ async def create_clip( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/streaming/streams/{stream_id}/clip_recording" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/clip_recording", + f"/streaming/streams/{stream_id}/clip_recording", body=await async_maybe_transform( { "duration": duration, @@ -1373,9 +1349,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/streams/{stream_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}", + f"/streaming/streams/{stream_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1426,9 +1400,7 @@ async def list_clips( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/streams/{stream_id}/clip_recording" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/clip_recording", + f"/streaming/streams/{stream_id}/clip_recording", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1499,9 +1471,7 @@ async def start_recording( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/streaming/streams/{stream_id}/start_recording" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/start_recording", + f"/streaming/streams/{stream_id}/start_recording", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1538,9 +1508,7 @@ async def stop_recording( timeout: Override the client-level default timeout for this request, in seconds """ return await self._put( - f"/streaming/streams/{stream_id}/stop_recording" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/streams/{stream_id}/stop_recording", + f"/streaming/streams/{stream_id}/stop_recording", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/streaming/videos/subtitles.py b/src/gcore/resources/streaming/videos/subtitles.py index fe18befd..5930fd58 100644 --- a/src/gcore/resources/streaming/videos/subtitles.py +++ b/src/gcore/resources/streaming/videos/subtitles.py @@ -134,9 +134,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/streaming/videos/{video_id}/subtitles" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}/subtitles", + f"/streaming/videos/{video_id}/subtitles", body=maybe_transform(body, subtitle_create_params.SubtitleCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -190,9 +188,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/streaming/videos/{video_id}/subtitles/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}/subtitles/{id}", + f"/streaming/videos/{video_id}/subtitles/{id}", body=maybe_transform( { "language": language, @@ -231,9 +227,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/videos/{video_id}/subtitles" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}/subtitles", + f"/streaming/videos/{video_id}/subtitles", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -266,9 +260,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/streaming/videos/{video_id}/subtitles/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}/subtitles/{id}", + f"/streaming/videos/{video_id}/subtitles/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -300,9 +292,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/videos/{video_id}/subtitles/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}/subtitles/{id}", + f"/streaming/videos/{video_id}/subtitles/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -421,9 +411,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/streaming/videos/{video_id}/subtitles" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}/subtitles", + f"/streaming/videos/{video_id}/subtitles", body=await async_maybe_transform(body, subtitle_create_params.SubtitleCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -477,9 +465,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/streaming/videos/{video_id}/subtitles/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}/subtitles/{id}", + f"/streaming/videos/{video_id}/subtitles/{id}", body=await async_maybe_transform( { "language": language, @@ -518,9 +504,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/videos/{video_id}/subtitles" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}/subtitles", + f"/streaming/videos/{video_id}/subtitles", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -553,9 +537,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/streaming/videos/{video_id}/subtitles/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}/subtitles/{id}", + f"/streaming/videos/{video_id}/subtitles/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -587,9 +569,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/videos/{video_id}/subtitles/{id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}/subtitles/{id}", + f"/streaming/videos/{video_id}/subtitles/{id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/streaming/videos/videos.py b/src/gcore/resources/streaming/videos/videos.py index 6c6aec17..256d7d6f 100644 --- a/src/gcore/resources/streaming/videos/videos.py +++ b/src/gcore/resources/streaming/videos/videos.py @@ -161,7 +161,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/streaming/videos" if self._client._base_url_overridden else "https://api.gcore.com//streaming/videos", + "/streaming/videos", body=maybe_transform({"video": video}, video_create_params.VideoCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -422,9 +422,7 @@ def update( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/streaming/videos/{video_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}", + f"/streaming/videos/{video_id}", body=maybe_transform( { "name": name, @@ -522,7 +520,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/videos" if self._client._base_url_overridden else "https://api.gcore.com//streaming/videos", + "/streaming/videos", page=SyncPageStreaming[Video], options=make_request_options( extra_headers=extra_headers, @@ -581,9 +579,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/streaming/videos/{video_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}", + f"/streaming/videos/{video_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -635,9 +631,7 @@ def create_multiple( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/streaming/videos/batch" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/videos/batch", + "/streaming/videos/batch", body=maybe_transform({"videos": videos}, video_create_multiple_params.VideoCreateMultipleParams), options=make_request_options( extra_headers=extra_headers, @@ -690,9 +684,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/videos/{video_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}", + f"/streaming/videos/{video_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -756,9 +748,7 @@ def get_parameters_for_direct_upload( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/streaming/videos/{video_id}/upload" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}/upload", + f"/streaming/videos/{video_id}/upload", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -792,9 +782,7 @@ def list_names( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._get( - "/streaming/videos/names" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/videos/names", + "/streaming/videos/names", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -924,7 +912,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/streaming/videos" if self._client._base_url_overridden else "https://api.gcore.com//streaming/videos", + "/streaming/videos", body=await async_maybe_transform({"video": video}, video_create_params.VideoCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -1185,9 +1173,7 @@ async def update( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/streaming/videos/{video_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}", + f"/streaming/videos/{video_id}", body=await async_maybe_transform( { "name": name, @@ -1285,7 +1271,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/streaming/videos" if self._client._base_url_overridden else "https://api.gcore.com//streaming/videos", + "/streaming/videos", page=AsyncPageStreaming[Video], options=make_request_options( extra_headers=extra_headers, @@ -1344,9 +1330,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/streaming/videos/{video_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}", + f"/streaming/videos/{video_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1398,9 +1382,7 @@ async def create_multiple( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/streaming/videos/batch" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/videos/batch", + "/streaming/videos/batch", body=await async_maybe_transform( {"videos": videos}, video_create_multiple_params.VideoCreateMultipleParams ), @@ -1457,9 +1439,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/videos/{video_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}", + f"/streaming/videos/{video_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1523,9 +1503,7 @@ async def get_parameters_for_direct_upload( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/streaming/videos/{video_id}/upload" - if self._client._base_url_overridden - else f"https://api.gcore.com//streaming/videos/{video_id}/upload", + f"/streaming/videos/{video_id}/upload", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1559,9 +1537,7 @@ async def list_names( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._get( - "/streaming/videos/names" - if self._client._base_url_overridden - else "https://api.gcore.com//streaming/videos/names", + "/streaming/videos/names", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/waap/advanced_rules.py b/src/gcore/resources/waap/advanced_rules.py index 855bd508..6f4aca32 100644 --- a/src/gcore/resources/waap/advanced_rules.py +++ b/src/gcore/resources/waap/advanced_rules.py @@ -51,9 +51,7 @@ def list( ) -> WaapAdvancedRuleDescriptorList: """Retrieve an advanced rules descriptor""" return self._get( - "/waap/v1/advanced-rules/descriptor" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/advanced-rules/descriptor", + "/waap/v1/advanced-rules/descriptor", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -93,9 +91,7 @@ async def list( ) -> WaapAdvancedRuleDescriptorList: """Retrieve an advanced rules descriptor""" return await self._get( - "/waap/v1/advanced-rules/descriptor" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/advanced-rules/descriptor", + "/waap/v1/advanced-rules/descriptor", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/waap/custom_page_sets.py b/src/gcore/resources/waap/custom_page_sets.py index 78e82b31..11d40a03 100644 --- a/src/gcore/resources/waap/custom_page_sets.py +++ b/src/gcore/resources/waap/custom_page_sets.py @@ -88,9 +88,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/waap/v1/custom-page-sets" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/custom-page-sets", + "/waap/v1/custom-page-sets", body=maybe_transform( { "name": name, @@ -154,9 +152,7 @@ def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._patch( - f"/waap/v1/custom-page-sets/{set_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/custom-page-sets/{set_id}", + f"/waap/v1/custom-page-sets/{set_id}", body=maybe_transform( { "block": block, @@ -214,9 +210,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/waap/v1/custom-page-sets" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/custom-page-sets", + "/waap/v1/custom-page-sets", page=SyncOffsetPage[WaapCustomPageSet], options=make_request_options( extra_headers=extra_headers, @@ -264,9 +258,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/waap/v1/custom-page-sets/{set_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/custom-page-sets/{set_id}", + f"/waap/v1/custom-page-sets/{set_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -299,9 +291,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/waap/v1/custom-page-sets/{set_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/custom-page-sets/{set_id}", + f"/waap/v1/custom-page-sets/{set_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -359,9 +349,7 @@ def preview( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - "/waap/v1/preview-custom-page" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/preview-custom-page", + "/waap/v1/preview-custom-page", body=maybe_transform( { "error": error, @@ -442,9 +430,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/waap/v1/custom-page-sets" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/custom-page-sets", + "/waap/v1/custom-page-sets", body=await async_maybe_transform( { "name": name, @@ -508,9 +494,7 @@ async def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._patch( - f"/waap/v1/custom-page-sets/{set_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/custom-page-sets/{set_id}", + f"/waap/v1/custom-page-sets/{set_id}", body=await async_maybe_transform( { "block": block, @@ -568,9 +552,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/waap/v1/custom-page-sets" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/custom-page-sets", + "/waap/v1/custom-page-sets", page=AsyncOffsetPage[WaapCustomPageSet], options=make_request_options( extra_headers=extra_headers, @@ -618,9 +600,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/waap/v1/custom-page-sets/{set_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/custom-page-sets/{set_id}", + f"/waap/v1/custom-page-sets/{set_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -653,9 +633,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/waap/v1/custom-page-sets/{set_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/custom-page-sets/{set_id}", + f"/waap/v1/custom-page-sets/{set_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -713,9 +691,7 @@ async def preview( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - "/waap/v1/preview-custom-page" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/preview-custom-page", + "/waap/v1/preview-custom-page", body=await async_maybe_transform( { "error": error, diff --git a/src/gcore/resources/waap/domains/advanced_rules.py b/src/gcore/resources/waap/domains/advanced_rules.py index 2bfd7a2a..f46e4f46 100644 --- a/src/gcore/resources/waap/domains/advanced_rules.py +++ b/src/gcore/resources/waap/domains/advanced_rules.py @@ -104,9 +104,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/waap/v1/domains/{domain_id}/advanced-rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/advanced-rules", + f"/waap/v1/domains/{domain_id}/advanced-rules", body=maybe_transform( { "action": action, @@ -186,9 +184,7 @@ def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._patch( - f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/advanced-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}", body=maybe_transform( { "action": action, @@ -282,9 +278,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/advanced-rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/advanced-rules", + f"/waap/v1/domains/{domain_id}/advanced-rules", page=SyncOffsetPage[WaapAdvancedRule], options=make_request_options( extra_headers=extra_headers, @@ -338,9 +332,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/advanced-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -376,9 +368,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/advanced-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -420,9 +410,7 @@ def toggle( raise ValueError(f"Expected a non-empty value for `action` but received {action!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._patch( - f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}/{action}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/advanced-rules/{rule_id}/{action}", + f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}/{action}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -509,9 +497,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/waap/v1/domains/{domain_id}/advanced-rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/advanced-rules", + f"/waap/v1/domains/{domain_id}/advanced-rules", body=await async_maybe_transform( { "action": action, @@ -591,9 +577,7 @@ async def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._patch( - f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/advanced-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}", body=await async_maybe_transform( { "action": action, @@ -687,9 +671,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/advanced-rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/advanced-rules", + f"/waap/v1/domains/{domain_id}/advanced-rules", page=AsyncOffsetPage[WaapAdvancedRule], options=make_request_options( extra_headers=extra_headers, @@ -743,9 +725,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/advanced-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -781,9 +761,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/advanced-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -825,9 +803,7 @@ async def toggle( raise ValueError(f"Expected a non-empty value for `action` but received {action!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._patch( - f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}/{action}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/advanced-rules/{rule_id}/{action}", + f"/waap/v1/domains/{domain_id}/advanced-rules/{rule_id}/{action}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/waap/domains/api_discovery.py b/src/gcore/resources/waap/domains/api_discovery.py index df3a60cf..426426f5 100644 --- a/src/gcore/resources/waap/domains/api_discovery.py +++ b/src/gcore/resources/waap/domains/api_discovery.py @@ -82,9 +82,7 @@ def get_scan_result( if not scan_id: raise ValueError(f"Expected a non-empty value for `scan_id` but received {scan_id!r}") return self._get( - f"/waap/v1/domains/{domain_id}/api-discovery/scan-results/{scan_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-discovery/scan-results/{scan_id}", + f"/waap/v1/domains/{domain_id}/api-discovery/scan-results/{scan_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -117,9 +115,7 @@ def get_settings( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/waap/v1/domains/{domain_id}/api-discovery/settings" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-discovery/settings", + f"/waap/v1/domains/{domain_id}/api-discovery/settings", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -184,9 +180,7 @@ def list_scan_results( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/api-discovery/scan-results" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-discovery/scan-results", + f"/waap/v1/domains/{domain_id}/api-discovery/scan-results", page=SyncOffsetPage[WaapAPIScanResult], options=make_request_options( extra_headers=extra_headers, @@ -237,9 +231,7 @@ def scan_openapi( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/waap/v1/domains/{domain_id}/api-discovery/scan" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-discovery/scan", + f"/waap/v1/domains/{domain_id}/api-discovery/scan", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -289,9 +281,7 @@ def update_settings( timeout: Override the client-level default timeout for this request, in seconds """ return self._patch( - f"/waap/v1/domains/{domain_id}/api-discovery/settings" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-discovery/settings", + f"/waap/v1/domains/{domain_id}/api-discovery/settings", body=maybe_transform( { "description_file_location": description_file_location, @@ -344,9 +334,7 @@ def upload_openapi( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/waap/v1/domains/{domain_id}/api-discovery/upload" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-discovery/upload", + f"/waap/v1/domains/{domain_id}/api-discovery/upload", body=maybe_transform( { "file_data": file_data, @@ -412,9 +400,7 @@ async def get_scan_result( if not scan_id: raise ValueError(f"Expected a non-empty value for `scan_id` but received {scan_id!r}") return await self._get( - f"/waap/v1/domains/{domain_id}/api-discovery/scan-results/{scan_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-discovery/scan-results/{scan_id}", + f"/waap/v1/domains/{domain_id}/api-discovery/scan-results/{scan_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -447,9 +433,7 @@ async def get_settings( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/waap/v1/domains/{domain_id}/api-discovery/settings" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-discovery/settings", + f"/waap/v1/domains/{domain_id}/api-discovery/settings", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -514,9 +498,7 @@ def list_scan_results( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/api-discovery/scan-results" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-discovery/scan-results", + f"/waap/v1/domains/{domain_id}/api-discovery/scan-results", page=AsyncOffsetPage[WaapAPIScanResult], options=make_request_options( extra_headers=extra_headers, @@ -567,9 +549,7 @@ async def scan_openapi( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/waap/v1/domains/{domain_id}/api-discovery/scan" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-discovery/scan", + f"/waap/v1/domains/{domain_id}/api-discovery/scan", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -619,9 +599,7 @@ async def update_settings( timeout: Override the client-level default timeout for this request, in seconds """ return await self._patch( - f"/waap/v1/domains/{domain_id}/api-discovery/settings" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-discovery/settings", + f"/waap/v1/domains/{domain_id}/api-discovery/settings", body=await async_maybe_transform( { "description_file_location": description_file_location, @@ -674,9 +652,7 @@ async def upload_openapi( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/waap/v1/domains/{domain_id}/api-discovery/upload" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-discovery/upload", + f"/waap/v1/domains/{domain_id}/api-discovery/upload", body=await async_maybe_transform( { "file_data": file_data, diff --git a/src/gcore/resources/waap/domains/api_path_groups.py b/src/gcore/resources/waap/domains/api_path_groups.py index b75e11b4..a6b25b2e 100644 --- a/src/gcore/resources/waap/domains/api_path_groups.py +++ b/src/gcore/resources/waap/domains/api_path_groups.py @@ -65,9 +65,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/waap/v1/domains/{domain_id}/api-path-groups" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-path-groups", + f"/waap/v1/domains/{domain_id}/api-path-groups", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -121,9 +119,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/waap/v1/domains/{domain_id}/api-path-groups" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-path-groups", + f"/waap/v1/domains/{domain_id}/api-path-groups", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/waap/domains/api_paths.py b/src/gcore/resources/waap/domains/api_paths.py index df8cefbc..ea3057ec 100644 --- a/src/gcore/resources/waap/domains/api_paths.py +++ b/src/gcore/resources/waap/domains/api_paths.py @@ -84,9 +84,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/waap/v1/domains/{domain_id}/api-paths" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-paths", + f"/waap/v1/domains/{domain_id}/api-paths", body=maybe_transform( { "http_scheme": http_scheme, @@ -145,9 +143,7 @@ def update( raise ValueError(f"Expected a non-empty value for `path_id` but received {path_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._patch( - f"/waap/v1/domains/{domain_id}/api-paths/{path_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-paths/{path_id}", + f"/waap/v1/domains/{domain_id}/api-paths/{path_id}", body=maybe_transform( { "api_groups": api_groups, @@ -242,9 +238,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/api-paths" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-paths", + f"/waap/v1/domains/{domain_id}/api-paths", page=SyncOffsetPage[WaapAPIPath], options=make_request_options( extra_headers=extra_headers, @@ -303,9 +297,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `path_id` but received {path_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/waap/v1/domains/{domain_id}/api-paths/{path_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-paths/{path_id}", + f"/waap/v1/domains/{domain_id}/api-paths/{path_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -343,9 +335,7 @@ def get( if not path_id: raise ValueError(f"Expected a non-empty value for `path_id` but received {path_id!r}") return self._get( - f"/waap/v1/domains/{domain_id}/api-paths/{path_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-paths/{path_id}", + f"/waap/v1/domains/{domain_id}/api-paths/{path_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -412,9 +402,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/waap/v1/domains/{domain_id}/api-paths" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-paths", + f"/waap/v1/domains/{domain_id}/api-paths", body=await async_maybe_transform( { "http_scheme": http_scheme, @@ -473,9 +461,7 @@ async def update( raise ValueError(f"Expected a non-empty value for `path_id` but received {path_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._patch( - f"/waap/v1/domains/{domain_id}/api-paths/{path_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-paths/{path_id}", + f"/waap/v1/domains/{domain_id}/api-paths/{path_id}", body=await async_maybe_transform( { "api_groups": api_groups, @@ -570,9 +556,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/api-paths" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-paths", + f"/waap/v1/domains/{domain_id}/api-paths", page=AsyncOffsetPage[WaapAPIPath], options=make_request_options( extra_headers=extra_headers, @@ -631,9 +615,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `path_id` but received {path_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/waap/v1/domains/{domain_id}/api-paths/{path_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-paths/{path_id}", + f"/waap/v1/domains/{domain_id}/api-paths/{path_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -671,9 +653,7 @@ async def get( if not path_id: raise ValueError(f"Expected a non-empty value for `path_id` but received {path_id!r}") return await self._get( - f"/waap/v1/domains/{domain_id}/api-paths/{path_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/api-paths/{path_id}", + f"/waap/v1/domains/{domain_id}/api-paths/{path_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/waap/domains/custom_rules.py b/src/gcore/resources/waap/domains/custom_rules.py index e98cf62e..e81e575e 100644 --- a/src/gcore/resources/waap/domains/custom_rules.py +++ b/src/gcore/resources/waap/domains/custom_rules.py @@ -93,9 +93,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/waap/v1/domains/{domain_id}/custom-rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules", + f"/waap/v1/domains/{domain_id}/custom-rules", body=maybe_transform( { "action": action, @@ -158,9 +156,7 @@ def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._patch( - f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}", body=maybe_transform( { "action": action, @@ -230,9 +226,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/custom-rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules", + f"/waap/v1/domains/{domain_id}/custom-rules", page=SyncOffsetPage[WaapCustomRule], options=make_request_options( extra_headers=extra_headers, @@ -285,9 +279,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -324,9 +316,7 @@ def delete_multiple( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/waap/v1/domains/{domain_id}/custom-rules/bulk_delete" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules/bulk_delete", + f"/waap/v1/domains/{domain_id}/custom-rules/bulk_delete", body=maybe_transform( {"rule_ids": rule_ids}, custom_rule_delete_multiple_params.CustomRuleDeleteMultipleParams ), @@ -365,9 +355,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -409,9 +397,7 @@ def toggle( raise ValueError(f"Expected a non-empty value for `action` but received {action!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._patch( - f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}/{action}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules/{rule_id}/{action}", + f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}/{action}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -482,9 +468,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/waap/v1/domains/{domain_id}/custom-rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules", + f"/waap/v1/domains/{domain_id}/custom-rules", body=await async_maybe_transform( { "action": action, @@ -547,9 +531,7 @@ async def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._patch( - f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}", body=await async_maybe_transform( { "action": action, @@ -619,9 +601,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/custom-rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules", + f"/waap/v1/domains/{domain_id}/custom-rules", page=AsyncOffsetPage[WaapCustomRule], options=make_request_options( extra_headers=extra_headers, @@ -674,9 +654,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -713,9 +691,7 @@ async def delete_multiple( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/waap/v1/domains/{domain_id}/custom-rules/bulk_delete" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules/bulk_delete", + f"/waap/v1/domains/{domain_id}/custom-rules/bulk_delete", body=await async_maybe_transform( {"rule_ids": rule_ids}, custom_rule_delete_multiple_params.CustomRuleDeleteMultipleParams ), @@ -754,9 +730,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -798,9 +772,7 @@ async def toggle( raise ValueError(f"Expected a non-empty value for `action` but received {action!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._patch( - f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}/{action}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/custom-rules/{rule_id}/{action}", + f"/waap/v1/domains/{domain_id}/custom-rules/{rule_id}/{action}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/waap/domains/domains.py b/src/gcore/resources/waap/domains/domains.py index 9cf7af61..644191c1 100644 --- a/src/gcore/resources/waap/domains/domains.py +++ b/src/gcore/resources/waap/domains/domains.py @@ -198,9 +198,7 @@ def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._patch( - f"/waap/v1/domains/{domain_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}", + f"/waap/v1/domains/{domain_id}", body=maybe_transform({"status": status}, domain_update_params.DomainUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -249,7 +247,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/waap/v1/domains" if self._client._base_url_overridden else "https://api.gcore.com//waap/v1/domains", + "/waap/v1/domains", page=SyncOffsetPage[WaapSummaryDomain], options=make_request_options( extra_headers=extra_headers, @@ -300,9 +298,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/waap/v1/domains/{domain_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}", + f"/waap/v1/domains/{domain_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -335,9 +331,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/waap/v1/domains/{domain_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}", + f"/waap/v1/domains/{domain_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -370,9 +364,7 @@ def list_rule_sets( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/waap/v1/domains/{domain_id}/rule-sets" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/rule-sets", + f"/waap/v1/domains/{domain_id}/rule-sets", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -410,9 +402,7 @@ def toggle_policy( if not policy_id: raise ValueError(f"Expected a non-empty value for `policy_id` but received {policy_id!r}") return self._patch( - f"/waap/v1/domains/{domain_id}/policies/{policy_id}/toggle" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/policies/{policy_id}/toggle", + f"/waap/v1/domains/{domain_id}/policies/{policy_id}/toggle", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -510,9 +500,7 @@ async def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._patch( - f"/waap/v1/domains/{domain_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}", + f"/waap/v1/domains/{domain_id}", body=await async_maybe_transform({"status": status}, domain_update_params.DomainUpdateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -561,7 +549,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/waap/v1/domains" if self._client._base_url_overridden else "https://api.gcore.com//waap/v1/domains", + "/waap/v1/domains", page=AsyncOffsetPage[WaapSummaryDomain], options=make_request_options( extra_headers=extra_headers, @@ -612,9 +600,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/waap/v1/domains/{domain_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}", + f"/waap/v1/domains/{domain_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -647,9 +633,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/waap/v1/domains/{domain_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}", + f"/waap/v1/domains/{domain_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -682,9 +666,7 @@ async def list_rule_sets( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/waap/v1/domains/{domain_id}/rule-sets" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/rule-sets", + f"/waap/v1/domains/{domain_id}/rule-sets", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -722,9 +704,7 @@ async def toggle_policy( if not policy_id: raise ValueError(f"Expected a non-empty value for `policy_id` but received {policy_id!r}") return await self._patch( - f"/waap/v1/domains/{domain_id}/policies/{policy_id}/toggle" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/policies/{policy_id}/toggle", + f"/waap/v1/domains/{domain_id}/policies/{policy_id}/toggle", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/waap/domains/firewall_rules.py b/src/gcore/resources/waap/domains/firewall_rules.py index fc6c2b83..3dbdde0b 100644 --- a/src/gcore/resources/waap/domains/firewall_rules.py +++ b/src/gcore/resources/waap/domains/firewall_rules.py @@ -91,9 +91,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/waap/v1/domains/{domain_id}/firewall-rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules", + f"/waap/v1/domains/{domain_id}/firewall-rules", body=maybe_transform( { "action": action, @@ -155,9 +153,7 @@ def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._patch( - f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}", body=maybe_transform( { "action": action, @@ -227,9 +223,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/firewall-rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules", + f"/waap/v1/domains/{domain_id}/firewall-rules", page=SyncOffsetPage[WaapFirewallRule], options=make_request_options( extra_headers=extra_headers, @@ -282,9 +276,7 @@ def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -321,9 +313,7 @@ def delete_multiple( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._post( - f"/waap/v1/domains/{domain_id}/firewall-rules/bulk_delete" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules/bulk_delete", + f"/waap/v1/domains/{domain_id}/firewall-rules/bulk_delete", body=maybe_transform( {"rule_ids": rule_ids}, firewall_rule_delete_multiple_params.FirewallRuleDeleteMultipleParams ), @@ -362,9 +352,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -406,9 +394,7 @@ def toggle( raise ValueError(f"Expected a non-empty value for `action` but received {action!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._patch( - f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}/{action}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules/{rule_id}/{action}", + f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}/{action}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -477,9 +463,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/waap/v1/domains/{domain_id}/firewall-rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules", + f"/waap/v1/domains/{domain_id}/firewall-rules", body=await async_maybe_transform( { "action": action, @@ -541,9 +525,7 @@ async def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._patch( - f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}", body=await async_maybe_transform( { "action": action, @@ -613,9 +595,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/firewall-rules" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules", + f"/waap/v1/domains/{domain_id}/firewall-rules", page=AsyncOffsetPage[WaapFirewallRule], options=make_request_options( extra_headers=extra_headers, @@ -668,9 +648,7 @@ async def delete( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -707,9 +685,7 @@ async def delete_multiple( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._post( - f"/waap/v1/domains/{domain_id}/firewall-rules/bulk_delete" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules/bulk_delete", + f"/waap/v1/domains/{domain_id}/firewall-rules/bulk_delete", body=await async_maybe_transform( {"rule_ids": rule_ids}, firewall_rule_delete_multiple_params.FirewallRuleDeleteMultipleParams ), @@ -748,9 +724,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules/{rule_id}", + f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -792,9 +766,7 @@ async def toggle( raise ValueError(f"Expected a non-empty value for `action` but received {action!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._patch( - f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}/{action}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/firewall-rules/{rule_id}/{action}", + f"/waap/v1/domains/{domain_id}/firewall-rules/{rule_id}/{action}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/waap/domains/insight_silences.py b/src/gcore/resources/waap/domains/insight_silences.py index 8d81b5e7..8b57783e 100644 --- a/src/gcore/resources/waap/domains/insight_silences.py +++ b/src/gcore/resources/waap/domains/insight_silences.py @@ -93,9 +93,7 @@ def create( timeout: Override the client-level default timeout for this request, in seconds """ return self._post( - f"/waap/v1/domains/{domain_id}/insight-silences" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insight-silences", + f"/waap/v1/domains/{domain_id}/insight-silences", body=maybe_transform( { "author": author, @@ -155,9 +153,7 @@ def update( if not silence_id: raise ValueError(f"Expected a non-empty value for `silence_id` but received {silence_id!r}") return self._patch( - f"/waap/v1/domains/{domain_id}/insight-silences/{silence_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insight-silences/{silence_id}", + f"/waap/v1/domains/{domain_id}/insight-silences/{silence_id}", body=maybe_transform( { "author": author, @@ -232,9 +228,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/insight-silences" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insight-silences", + f"/waap/v1/domains/{domain_id}/insight-silences", page=SyncOffsetPage[WaapInsightSilence], options=make_request_options( extra_headers=extra_headers, @@ -289,9 +283,7 @@ def delete( raise ValueError(f"Expected a non-empty value for `silence_id` but received {silence_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._delete( - f"/waap/v1/domains/{domain_id}/insight-silences/{silence_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insight-silences/{silence_id}", + f"/waap/v1/domains/{domain_id}/insight-silences/{silence_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -329,9 +321,7 @@ def get( if not silence_id: raise ValueError(f"Expected a non-empty value for `silence_id` but received {silence_id!r}") return self._get( - f"/waap/v1/domains/{domain_id}/insight-silences/{silence_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insight-silences/{silence_id}", + f"/waap/v1/domains/{domain_id}/insight-silences/{silence_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -402,9 +392,7 @@ async def create( timeout: Override the client-level default timeout for this request, in seconds """ return await self._post( - f"/waap/v1/domains/{domain_id}/insight-silences" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insight-silences", + f"/waap/v1/domains/{domain_id}/insight-silences", body=await async_maybe_transform( { "author": author, @@ -464,9 +452,7 @@ async def update( if not silence_id: raise ValueError(f"Expected a non-empty value for `silence_id` but received {silence_id!r}") return await self._patch( - f"/waap/v1/domains/{domain_id}/insight-silences/{silence_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insight-silences/{silence_id}", + f"/waap/v1/domains/{domain_id}/insight-silences/{silence_id}", body=await async_maybe_transform( { "author": author, @@ -541,9 +527,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/insight-silences" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insight-silences", + f"/waap/v1/domains/{domain_id}/insight-silences", page=AsyncOffsetPage[WaapInsightSilence], options=make_request_options( extra_headers=extra_headers, @@ -598,9 +582,7 @@ async def delete( raise ValueError(f"Expected a non-empty value for `silence_id` but received {silence_id!r}") extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._delete( - f"/waap/v1/domains/{domain_id}/insight-silences/{silence_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insight-silences/{silence_id}", + f"/waap/v1/domains/{domain_id}/insight-silences/{silence_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -638,9 +620,7 @@ async def get( if not silence_id: raise ValueError(f"Expected a non-empty value for `silence_id` but received {silence_id!r}") return await self._get( - f"/waap/v1/domains/{domain_id}/insight-silences/{silence_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insight-silences/{silence_id}", + f"/waap/v1/domains/{domain_id}/insight-silences/{silence_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/waap/domains/insights.py b/src/gcore/resources/waap/domains/insights.py index 068c932d..924fe5e2 100644 --- a/src/gcore/resources/waap/domains/insights.py +++ b/src/gcore/resources/waap/domains/insights.py @@ -106,9 +106,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/insights" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insights", + f"/waap/v1/domains/{domain_id}/insights", page=SyncOffsetPage[WaapInsight], options=make_request_options( extra_headers=extra_headers, @@ -160,9 +158,7 @@ def get( if not insight_id: raise ValueError(f"Expected a non-empty value for `insight_id` but received {insight_id!r}") return self._get( - f"/waap/v1/domains/{domain_id}/insights/{insight_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insights/{insight_id}", + f"/waap/v1/domains/{domain_id}/insights/{insight_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -203,9 +199,7 @@ def replace( if not insight_id: raise ValueError(f"Expected a non-empty value for `insight_id` but received {insight_id!r}") return self._put( - f"/waap/v1/domains/{domain_id}/insights/{insight_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insights/{insight_id}", + f"/waap/v1/domains/{domain_id}/insights/{insight_id}", body=maybe_transform({"status": status}, insight_replace_params.InsightReplaceParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout @@ -295,9 +289,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/insights" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insights", + f"/waap/v1/domains/{domain_id}/insights", page=AsyncOffsetPage[WaapInsight], options=make_request_options( extra_headers=extra_headers, @@ -349,9 +341,7 @@ async def get( if not insight_id: raise ValueError(f"Expected a non-empty value for `insight_id` but received {insight_id!r}") return await self._get( - f"/waap/v1/domains/{domain_id}/insights/{insight_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insights/{insight_id}", + f"/waap/v1/domains/{domain_id}/insights/{insight_id}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -392,9 +382,7 @@ async def replace( if not insight_id: raise ValueError(f"Expected a non-empty value for `insight_id` but received {insight_id!r}") return await self._put( - f"/waap/v1/domains/{domain_id}/insights/{insight_id}" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/insights/{insight_id}", + f"/waap/v1/domains/{domain_id}/insights/{insight_id}", body=await async_maybe_transform({"status": status}, insight_replace_params.InsightReplaceParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout diff --git a/src/gcore/resources/waap/domains/settings.py b/src/gcore/resources/waap/domains/settings.py index fe8edb00..fcaabeaa 100644 --- a/src/gcore/resources/waap/domains/settings.py +++ b/src/gcore/resources/waap/domains/settings.py @@ -74,9 +74,7 @@ def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return self._patch( - f"/waap/v1/domains/{domain_id}/settings" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/settings", + f"/waap/v1/domains/{domain_id}/settings", body=maybe_transform( { "api": api, @@ -116,9 +114,7 @@ def get( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/waap/v1/domains/{domain_id}/settings" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/settings", + f"/waap/v1/domains/{domain_id}/settings", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -179,9 +175,7 @@ async def update( """ extra_headers = {"Accept": "*/*", **(extra_headers or {})} return await self._patch( - f"/waap/v1/domains/{domain_id}/settings" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/settings", + f"/waap/v1/domains/{domain_id}/settings", body=await async_maybe_transform( { "api": api, @@ -221,9 +215,7 @@ async def get( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/waap/v1/domains/{domain_id}/settings" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/settings", + f"/waap/v1/domains/{domain_id}/settings", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/waap/domains/statistics.py b/src/gcore/resources/waap/domains/statistics.py index b912f295..94514578 100644 --- a/src/gcore/resources/waap/domains/statistics.py +++ b/src/gcore/resources/waap/domains/statistics.py @@ -98,9 +98,7 @@ def get_ddos_attacks( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/ddos-attacks" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/ddos-attacks", + f"/waap/v1/domains/{domain_id}/ddos-attacks", page=SyncOffsetPage[WaapDDOSAttack], options=make_request_options( extra_headers=extra_headers, @@ -163,9 +161,7 @@ def get_ddos_info( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/ddos-info" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/ddos-info", + f"/waap/v1/domains/{domain_id}/ddos-info", page=SyncOffsetPage[WaapDDOSInfo], options=make_request_options( extra_headers=extra_headers, @@ -231,9 +227,7 @@ def get_events_aggregated( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/waap/v1/domains/{domain_id}/stats" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/stats", + f"/waap/v1/domains/{domain_id}/stats", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -286,9 +280,7 @@ def get_request_details( if not request_id: raise ValueError(f"Expected a non-empty value for `request_id` but received {request_id!r}") return self._get( - f"/waap/v1/domains/{domain_id}/requests/{request_id}/details" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/requests/{request_id}/details", + f"/waap/v1/domains/{domain_id}/requests/{request_id}/details", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -382,9 +374,7 @@ def get_requests_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/requests" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/requests", + f"/waap/v1/domains/{domain_id}/requests", page=SyncOffsetPage[WaapRequestSummary], options=make_request_options( extra_headers=extra_headers, @@ -450,9 +440,7 @@ def get_traffic_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - f"/waap/v1/domains/{domain_id}/traffic" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/traffic", + f"/waap/v1/domains/{domain_id}/traffic", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -532,9 +520,7 @@ def get_ddos_attacks( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/ddos-attacks" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/ddos-attacks", + f"/waap/v1/domains/{domain_id}/ddos-attacks", page=AsyncOffsetPage[WaapDDOSAttack], options=make_request_options( extra_headers=extra_headers, @@ -597,9 +583,7 @@ def get_ddos_info( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/ddos-info" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/ddos-info", + f"/waap/v1/domains/{domain_id}/ddos-info", page=AsyncOffsetPage[WaapDDOSInfo], options=make_request_options( extra_headers=extra_headers, @@ -665,9 +649,7 @@ async def get_events_aggregated( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/waap/v1/domains/{domain_id}/stats" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/stats", + f"/waap/v1/domains/{domain_id}/stats", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -720,9 +702,7 @@ async def get_request_details( if not request_id: raise ValueError(f"Expected a non-empty value for `request_id` but received {request_id!r}") return await self._get( - f"/waap/v1/domains/{domain_id}/requests/{request_id}/details" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/requests/{request_id}/details", + f"/waap/v1/domains/{domain_id}/requests/{request_id}/details", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -816,9 +796,7 @@ def get_requests_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - f"/waap/v1/domains/{domain_id}/requests" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/requests", + f"/waap/v1/domains/{domain_id}/requests", page=AsyncOffsetPage[WaapRequestSummary], options=make_request_options( extra_headers=extra_headers, @@ -884,9 +862,7 @@ async def get_traffic_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - f"/waap/v1/domains/{domain_id}/traffic" - if self._client._base_url_overridden - else f"https://api.gcore.com//waap/v1/domains/{domain_id}/traffic", + f"/waap/v1/domains/{domain_id}/traffic", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/waap/insights.py b/src/gcore/resources/waap/insights.py index 8b9a2234..5de0a968 100644 --- a/src/gcore/resources/waap/insights.py +++ b/src/gcore/resources/waap/insights.py @@ -87,9 +87,7 @@ def list_types( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/waap/v1/security-insights/types" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/security-insights/types", + "/waap/v1/security-insights/types", page=SyncOffsetPage[WaapInsightType], options=make_request_options( extra_headers=extra_headers, @@ -174,9 +172,7 @@ def list_types( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/waap/v1/security-insights/types" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/security-insights/types", + "/waap/v1/security-insights/types", page=AsyncOffsetPage[WaapInsightType], options=make_request_options( extra_headers=extra_headers, diff --git a/src/gcore/resources/waap/ip_info/ip_info.py b/src/gcore/resources/waap/ip_info/ip_info.py index 2e1fbd71..0c0050f2 100644 --- a/src/gcore/resources/waap/ip_info/ip_info.py +++ b/src/gcore/resources/waap/ip_info/ip_info.py @@ -95,9 +95,7 @@ def get_attack_time_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/waap/v1/ip-info/attack-time-series" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/attack-time-series", + "/waap/v1/ip-info/attack-time-series", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -144,9 +142,7 @@ def get_blocked_requests( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/waap/v1/ip-info/blocked-requests" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/blocked-requests", + "/waap/v1/ip-info/blocked-requests", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -193,9 +189,7 @@ def get_ddos_attack_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/waap/v1/ip-info/ddos" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/ddos", + "/waap/v1/ip-info/ddos", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -235,9 +229,7 @@ def get_ip_info( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/waap/v1/ip-info/ip-info" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/ip-info", + "/waap/v1/ip-info/ip-info", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -282,9 +274,7 @@ def get_top_urls( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/waap/v1/ip-info/top-urls" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/top-urls", + "/waap/v1/ip-info/top-urls", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -333,9 +323,7 @@ def get_top_user_agents( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/waap/v1/ip-info/top-user-agents" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/top-user-agents", + "/waap/v1/ip-info/top-user-agents", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -384,9 +372,7 @@ def get_top_user_sessions( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/waap/v1/ip-info/top-sessions" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/top-sessions", + "/waap/v1/ip-info/top-sessions", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -429,9 +415,7 @@ def list_attacked_countries( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/waap/v1/ip-info/attack-map" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/attack-map", + "/waap/v1/ip-info/attack-map", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -495,9 +479,7 @@ async def get_attack_time_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/waap/v1/ip-info/attack-time-series" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/attack-time-series", + "/waap/v1/ip-info/attack-time-series", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -544,9 +526,7 @@ async def get_blocked_requests( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/waap/v1/ip-info/blocked-requests" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/blocked-requests", + "/waap/v1/ip-info/blocked-requests", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -593,9 +573,7 @@ async def get_ddos_attack_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/waap/v1/ip-info/ddos" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/ddos", + "/waap/v1/ip-info/ddos", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -635,9 +613,7 @@ async def get_ip_info( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/waap/v1/ip-info/ip-info" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/ip-info", + "/waap/v1/ip-info/ip-info", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -682,9 +658,7 @@ async def get_top_urls( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/waap/v1/ip-info/top-urls" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/top-urls", + "/waap/v1/ip-info/top-urls", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -733,9 +707,7 @@ async def get_top_user_agents( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/waap/v1/ip-info/top-user-agents" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/top-user-agents", + "/waap/v1/ip-info/top-user-agents", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -784,9 +756,7 @@ async def get_top_user_sessions( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/waap/v1/ip-info/top-sessions" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/top-sessions", + "/waap/v1/ip-info/top-sessions", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -829,9 +799,7 @@ async def list_attacked_countries( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/waap/v1/ip-info/attack-map" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/attack-map", + "/waap/v1/ip-info/attack-map", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/waap/ip_info/metrics.py b/src/gcore/resources/waap/ip_info/metrics.py index 7d04cbd5..dd60d037 100644 --- a/src/gcore/resources/waap/ip_info/metrics.py +++ b/src/gcore/resources/waap/ip_info/metrics.py @@ -77,9 +77,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/waap/v1/ip-info/counts" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/counts", + "/waap/v1/ip-info/counts", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -151,9 +149,7 @@ async def list( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/waap/v1/ip-info/counts" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/ip-info/counts", + "/waap/v1/ip-info/counts", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/waap/organizations.py b/src/gcore/resources/waap/organizations.py index 9a12a3c4..07a8bc66 100644 --- a/src/gcore/resources/waap/organizations.py +++ b/src/gcore/resources/waap/organizations.py @@ -82,9 +82,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/waap/v1/organizations" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/organizations", + "/waap/v1/organizations", page=SyncOffsetPage[WaapOrganization], options=make_request_options( extra_headers=extra_headers, @@ -162,9 +160,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/waap/v1/organizations" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/organizations", + "/waap/v1/organizations", page=AsyncOffsetPage[WaapOrganization], options=make_request_options( extra_headers=extra_headers, diff --git a/src/gcore/resources/waap/statistics.py b/src/gcore/resources/waap/statistics.py index 23840a49..e383f236 100644 --- a/src/gcore/resources/waap/statistics.py +++ b/src/gcore/resources/waap/statistics.py @@ -87,9 +87,7 @@ def get_usage_series( timeout: Override the client-level default timeout for this request, in seconds """ return self._get( - "/waap/v1/statistics/series" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/statistics/series", + "/waap/v1/statistics/series", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -171,9 +169,7 @@ async def get_usage_series( timeout: Override the client-level default timeout for this request, in seconds """ return await self._get( - "/waap/v1/statistics/series" - if self._client._base_url_overridden - else "https://api.gcore.com//waap/v1/statistics/series", + "/waap/v1/statistics/series", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/gcore/resources/waap/tags.py b/src/gcore/resources/waap/tags.py index 543f186c..879f3f47 100644 --- a/src/gcore/resources/waap/tags.py +++ b/src/gcore/resources/waap/tags.py @@ -88,7 +88,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/waap/v1/tags" if self._client._base_url_overridden else "https://api.gcore.com//waap/v1/tags", + "/waap/v1/tags", page=SyncOffsetPage[WaapTag], options=make_request_options( extra_headers=extra_headers, @@ -174,7 +174,7 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ return self._get_api_list( - "/waap/v1/tags" if self._client._base_url_overridden else "https://api.gcore.com//waap/v1/tags", + "/waap/v1/tags", page=AsyncOffsetPage[WaapTag], options=make_request_options( extra_headers=extra_headers, diff --git a/src/gcore/resources/waap/waap.py b/src/gcore/resources/waap/waap.py index 01f7d84c..d5509b5f 100644 --- a/src/gcore/resources/waap/waap.py +++ b/src/gcore/resources/waap/waap.py @@ -147,7 +147,7 @@ def get_account_overview( ) -> WaapGetAccountOverviewResponse: """Get information about WAAP service for the client""" return self._get( - "/waap/v1/clients/me" if self._client._base_url_overridden else "https://api.gcore.com//waap/v1/clients/me", + "/waap/v1/clients/me", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -219,7 +219,7 @@ async def get_account_overview( ) -> WaapGetAccountOverviewResponse: """Get information about WAAP service for the client""" return await self._get( - "/waap/v1/clients/me" if self._client._base_url_overridden else "https://api.gcore.com//waap/v1/clients/me", + "/waap/v1/clients/me", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), From 84cb968d3b50aa6d13aa16379de14b20a9e1315f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 8 Oct 2025 10:10:44 +0000 Subject: [PATCH 16/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index dac0e15a..663313c2 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-0783502211f81fa32d09abbc34b4678c3d8e7dc885194ad89102ca02bcdc0cc6.yml -openapi_spec_hash: aa485ffac6ffc8cb771ddb451a65a71b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-308c971e681f1c4d36c47ee545e002a364e4491797694a069f3b4cddc9202347.yml +openapi_spec_hash: e579cb5c51a08bb69634651da66148ac config_hash: 399dda838c78c5d92532b7efcaaa0345 From 555824be97e936b2a20077870dfd50a186446e40 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Oct 2025 12:15:15 +0000 Subject: [PATCH 17/38] feat(api): aggregated API specs update --- .stats.yml | 4 +- src/gcore/resources/cloud/cost_reports.py | 66 ++++++++++------------ src/gcore/resources/cloud/usage_reports.py | 28 +++++---- 3 files changed, 45 insertions(+), 53 deletions(-) diff --git a/.stats.yml b/.stats.yml index 663313c2..624ae5a2 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-308c971e681f1c4d36c47ee545e002a364e4491797694a069f3b4cddc9202347.yml -openapi_spec_hash: e579cb5c51a08bb69634651da66148ac +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-5a7ab6a73d8b5baaf7f48ba5dc59aab2288689470607e793205aafe92a0ae48f.yml +openapi_spec_hash: bb229625bc538d51d91bd2edffa2048f config_hash: 399dda838c78c5d92532b7efcaaa0345 diff --git a/src/gcore/resources/cloud/cost_reports.py b/src/gcore/resources/cloud/cost_reports.py index 1ee323ee..29b0e2e0 100644 --- a/src/gcore/resources/cloud/cost_reports.py +++ b/src/gcore/resources/cloud/cost_reports.py @@ -110,12 +110,11 @@ def get_aggregated( /v1/`reservation_cost_report`/totals, as the results from this report will not be accurate. - Receiving data from the past hour might lead to incomplete statistics. For the - most accurate data, we recommend accessing the statistics after at least one - hour. Typically, updates are available within a 24-hour period, although the - frequency can vary. Maintenance periods or other exceptions may cause delays, - potentially extending beyond 24 hours until the servers are back online and the - missing data is filled in. + Data from the past hour may not reflect the full set of statistics. For the most + complete and accurate results, we recommend accessing the data at least one hour + after the relevant time period. Updates are generally available within a 24-hour + window, though timing can vary. Scheduled maintenance or other exceptions may + occasionally cause delays beyond 24 hours. Args: time_from: The start date of the report period (ISO 8601). The report starts from the @@ -226,12 +225,11 @@ def get_aggregated_monthly( spent billing units (e.g., hours or GB) for resources. The "`time_to`" parameter represents all days in the specified month. - Receiving data from the past hour might lead to incomplete statistics. For the - most accurate data, we recommend accessing the statistics after at least one - hour. Typically, updates are available within a 24-hour period, although the - frequency can vary. Maintenance periods or other exceptions may cause delays, - potentially extending beyond 24 hours until the servers are back online and the - missing data is filled in. + Data from the past hour may not reflect the full set of statistics. For the most + complete and accurate results, we recommend accessing the data at least one hour + after the relevant time period. Updates are generally available within a 24-hour + window, though timing can vary. Scheduled maintenance or other exceptions may + occasionally cause delays beyond 24 hours. Args: regions: List of region IDs. @@ -344,12 +342,11 @@ def get_detailed( /v1/`reservation_cost_report`/totals, as the results from this report will not be accurate. - Receiving data from the past hour might lead to incomplete statistics. For the - most accurate data, we recommend accessing the statistics after at least one - hour. Typically, updates are available within a 24-hour period, although the - frequency can vary. Maintenance periods or other exceptions may cause delays, - potentially extending beyond 24 hours until the servers are back online and the - missing data is filled in. + Data from the past hour may not reflect the full set of statistics. For the most + complete and accurate results, we recommend accessing the data at least one hour + after the relevant time period. Updates are generally available within a 24-hour + window, though timing can vary. Scheduled maintenance or other exceptions may + occasionally cause delays beyond 24 hours. Args: time_from: The start date of the report period (ISO 8601). The report starts from the @@ -495,12 +492,11 @@ async def get_aggregated( /v1/`reservation_cost_report`/totals, as the results from this report will not be accurate. - Receiving data from the past hour might lead to incomplete statistics. For the - most accurate data, we recommend accessing the statistics after at least one - hour. Typically, updates are available within a 24-hour period, although the - frequency can vary. Maintenance periods or other exceptions may cause delays, - potentially extending beyond 24 hours until the servers are back online and the - missing data is filled in. + Data from the past hour may not reflect the full set of statistics. For the most + complete and accurate results, we recommend accessing the data at least one hour + after the relevant time period. Updates are generally available within a 24-hour + window, though timing can vary. Scheduled maintenance or other exceptions may + occasionally cause delays beyond 24 hours. Args: time_from: The start date of the report period (ISO 8601). The report starts from the @@ -611,12 +607,11 @@ async def get_aggregated_monthly( spent billing units (e.g., hours or GB) for resources. The "`time_to`" parameter represents all days in the specified month. - Receiving data from the past hour might lead to incomplete statistics. For the - most accurate data, we recommend accessing the statistics after at least one - hour. Typically, updates are available within a 24-hour period, although the - frequency can vary. Maintenance periods or other exceptions may cause delays, - potentially extending beyond 24 hours until the servers are back online and the - missing data is filled in. + Data from the past hour may not reflect the full set of statistics. For the most + complete and accurate results, we recommend accessing the data at least one hour + after the relevant time period. Updates are generally available within a 24-hour + window, though timing can vary. Scheduled maintenance or other exceptions may + occasionally cause delays beyond 24 hours. Args: regions: List of region IDs. @@ -729,12 +724,11 @@ async def get_detailed( /v1/`reservation_cost_report`/totals, as the results from this report will not be accurate. - Receiving data from the past hour might lead to incomplete statistics. For the - most accurate data, we recommend accessing the statistics after at least one - hour. Typically, updates are available within a 24-hour period, although the - frequency can vary. Maintenance periods or other exceptions may cause delays, - potentially extending beyond 24 hours until the servers are back online and the - missing data is filled in. + Data from the past hour may not reflect the full set of statistics. For the most + complete and accurate results, we recommend accessing the data at least one hour + after the relevant time period. Updates are generally available within a 24-hour + window, though timing can vary. Scheduled maintenance or other exceptions may + occasionally cause delays beyond 24 hours. Args: time_from: The start date of the report period (ISO 8601). The report starts from the diff --git a/src/gcore/resources/cloud/usage_reports.py b/src/gcore/resources/cloud/usage_reports.py index 8758b3ab..f0667ea6 100644 --- a/src/gcore/resources/cloud/usage_reports.py +++ b/src/gcore/resources/cloud/usage_reports.py @@ -95,14 +95,13 @@ def get( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> UsageReport: - """Receiving data from the past hour might lead to incomplete statistics. + """Data from the past hour may not reflect the full set of statistics. - For the - most accurate data, we recommend accessing the statistics after at least one - hour. Typically, updates are available within a 24-hour period, although the - frequency can vary. Maintenance periods or other exceptions may cause delays, - potentially extending beyond 24 hours until the servers are back online and the - missing data is filled in. + For the most + complete and accurate results, we recommend accessing the data at least one hour + after the relevant time period. Updates are generally available within a 24-hour + window, though timing can vary. Scheduled maintenance or other exceptions may + occasionally cause delays beyond 24 hours. Args: time_from: The start date of the report period (ISO 8601). The report starts from the @@ -233,14 +232,13 @@ async def get( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> UsageReport: - """Receiving data from the past hour might lead to incomplete statistics. - - For the - most accurate data, we recommend accessing the statistics after at least one - hour. Typically, updates are available within a 24-hour period, although the - frequency can vary. Maintenance periods or other exceptions may cause delays, - potentially extending beyond 24 hours until the servers are back online and the - missing data is filled in. + """Data from the past hour may not reflect the full set of statistics. + + For the most + complete and accurate results, we recommend accessing the data at least one hour + after the relevant time period. Updates are generally available within a 24-hour + window, though timing can vary. Scheduled maintenance or other exceptions may + occasionally cause delays beyond 24 hours. Args: time_from: The start date of the report period (ISO 8601). The report starts from the From 1dc8993163988b192d1f7bcedd2b4df4259f60d0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 10 Oct 2025 08:13:22 +0000 Subject: [PATCH 18/38] feat(api): aggregated API specs update --- .stats.yml | 4 ++-- src/gcore/resources/cloud/cost_reports.py | 16 ++++++++-------- src/gcore/resources/cloud/usage_reports.py | 8 ++++---- .../cloud/cost_report_get_aggregated_params.py | 4 ++-- .../cloud/cost_report_get_detailed_params.py | 4 ++-- src/gcore/types/cloud/usage_report_get_params.py | 4 ++-- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.stats.yml b/.stats.yml index 624ae5a2..117150da 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-5a7ab6a73d8b5baaf7f48ba5dc59aab2288689470607e793205aafe92a0ae48f.yml -openapi_spec_hash: bb229625bc538d51d91bd2edffa2048f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-e03e7effe72aa3668976b9a30a76b188e8d2aa2f4210730cf46e66c70c62c116.yml +openapi_spec_hash: da83e364ba42681bf2570c5d90372d97 config_hash: 399dda838c78c5d92532b7efcaaa0345 diff --git a/src/gcore/resources/cloud/cost_reports.py b/src/gcore/resources/cloud/cost_reports.py index 29b0e2e0..730f57bc 100644 --- a/src/gcore/resources/cloud/cost_reports.py +++ b/src/gcore/resources/cloud/cost_reports.py @@ -118,10 +118,10 @@ def get_aggregated( Args: time_from: The start date of the report period (ISO 8601). The report starts from the - beginning of this day. + beginning of this day in UTC. time_to: The end date of the report period (ISO 8601). The report ends just before the - beginning of this day. + beginning of this day in UTC. enable_last_day: Expenses for the last specified day are taken into account. As the default, False. @@ -350,10 +350,10 @@ def get_detailed( Args: time_from: The start date of the report period (ISO 8601). The report starts from the - beginning of this day. + beginning of this day in UTC. time_to: The end date of the report period (ISO 8601). The report ends just before the - beginning of this day. + beginning of this day in UTC. enable_last_day: Expenses for the last specified day are taken into account. As the default, False. @@ -500,10 +500,10 @@ async def get_aggregated( Args: time_from: The start date of the report period (ISO 8601). The report starts from the - beginning of this day. + beginning of this day in UTC. time_to: The end date of the report period (ISO 8601). The report ends just before the - beginning of this day. + beginning of this day in UTC. enable_last_day: Expenses for the last specified day are taken into account. As the default, False. @@ -732,10 +732,10 @@ async def get_detailed( Args: time_from: The start date of the report period (ISO 8601). The report starts from the - beginning of this day. + beginning of this day in UTC. time_to: The end date of the report period (ISO 8601). The report ends just before the - beginning of this day. + beginning of this day in UTC. enable_last_day: Expenses for the last specified day are taken into account. As the default, False. diff --git a/src/gcore/resources/cloud/usage_reports.py b/src/gcore/resources/cloud/usage_reports.py index f0667ea6..0cb9178c 100644 --- a/src/gcore/resources/cloud/usage_reports.py +++ b/src/gcore/resources/cloud/usage_reports.py @@ -105,10 +105,10 @@ def get( Args: time_from: The start date of the report period (ISO 8601). The report starts from the - beginning of this day. + beginning of this day in UTC. time_to: The end date of the report period (ISO 8601). The report ends just before the - beginning of this day. + beginning of this day in UTC. enable_last_day: Expenses for the last specified day are taken into account. As the default, False. @@ -242,10 +242,10 @@ async def get( Args: time_from: The start date of the report period (ISO 8601). The report starts from the - beginning of this day. + beginning of this day in UTC. time_to: The end date of the report period (ISO 8601). The report ends just before the - beginning of this day. + beginning of this day in UTC. enable_last_day: Expenses for the last specified day are taken into account. As the default, False. diff --git a/src/gcore/types/cloud/cost_report_get_aggregated_params.py b/src/gcore/types/cloud/cost_report_get_aggregated_params.py index 1d79bba8..6fa2ee1f 100644 --- a/src/gcore/types/cloud/cost_report_get_aggregated_params.py +++ b/src/gcore/types/cloud/cost_report_get_aggregated_params.py @@ -46,13 +46,13 @@ class CostReportGetAggregatedParams(TypedDict, total=False): time_from: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]] """The start date of the report period (ISO 8601). - The report starts from the beginning of this day. + The report starts from the beginning of this day in UTC. """ time_to: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]] """The end date of the report period (ISO 8601). - The report ends just before the beginning of this day. + The report ends just before the beginning of this day in UTC. """ enable_last_day: bool diff --git a/src/gcore/types/cloud/cost_report_get_detailed_params.py b/src/gcore/types/cloud/cost_report_get_detailed_params.py index a55d3a37..e7b8908e 100644 --- a/src/gcore/types/cloud/cost_report_get_detailed_params.py +++ b/src/gcore/types/cloud/cost_report_get_detailed_params.py @@ -47,13 +47,13 @@ class CostReportGetDetailedParams(TypedDict, total=False): time_from: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]] """The start date of the report period (ISO 8601). - The report starts from the beginning of this day. + The report starts from the beginning of this day in UTC. """ time_to: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]] """The end date of the report period (ISO 8601). - The report ends just before the beginning of this day. + The report ends just before the beginning of this day in UTC. """ enable_last_day: bool diff --git a/src/gcore/types/cloud/usage_report_get_params.py b/src/gcore/types/cloud/usage_report_get_params.py index ea7a3e0e..176598dc 100644 --- a/src/gcore/types/cloud/usage_report_get_params.py +++ b/src/gcore/types/cloud/usage_report_get_params.py @@ -47,13 +47,13 @@ class UsageReportGetParams(TypedDict, total=False): time_from: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]] """The start date of the report period (ISO 8601). - The report starts from the beginning of this day. + The report starts from the beginning of this day in UTC. """ time_to: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]] """The end date of the report period (ISO 8601). - The report ends just before the beginning of this day. + The report ends just before the beginning of this day in UTC. """ enable_last_day: bool From 9b55e6e072e0f4210545e5fb91d5b628a8512cf8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 10 Oct 2025 08:48:50 +0000 Subject: [PATCH 19/38] chore(internal): detect missing future annotations with ruff --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 57937a9e..f0e402c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -226,6 +226,8 @@ select = [ "B", # remove unused imports "F401", + # check for missing future annotations + "FA102", # bare except statements "E722", # unused arguments @@ -248,6 +250,8 @@ unfixable = [ "T203", ] +extend-safe-fixes = ["FA102"] + [tool.ruff.lint.flake8-tidy-imports.banned-api] "functools.lru_cache".msg = "This function does not retain type information for the wrapped function's arguments; The `lru_cache` function from `_utils` should be used instead" From 2e2997b1591f489581b6568c7adf9a4d39d5501c Mon Sep 17 00:00:00 2001 From: Danil Krox Date: Fri, 10 Oct 2025 16:41:22 +0200 Subject: [PATCH 20/38] chore: add pull request template --- .github/pull_request_template.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..6f601642 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,15 @@ +## ⚠️ **Automated Repository Notice** + +**Please read and check the box below before submitting this PR:** + +- [ ] **I understand that this repository is autogenerated.** Changes made here may be overwritten by the generation process, and as a result, **this Pull Request may not be merged** or may be closed without notice. + +--- + +## 📝 **Summary of Changes** + +*Provide a brief, high-level overview of what this PR does.* + +* ... +* ... + From 289bea8c56d1b1e185dc1374628115b708aedcfa Mon Sep 17 00:00:00 2001 From: Danil Krox Date: Fri, 10 Oct 2025 16:57:45 +0200 Subject: [PATCH 21/38] chore(ci): add fossa --- .github/workflows/fossa.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/fossa.yml diff --git a/.github/workflows/fossa.yml b/.github/workflows/fossa.yml new file mode 100644 index 00000000..20fd43d2 --- /dev/null +++ b/.github/workflows/fossa.yml @@ -0,0 +1,25 @@ +name: fossa +permissions: + contents: read +on: + push: + pull_request: + workflow_dispatch: + merge_group: + types: [checks_requested] +jobs: + fossa: + runs-on: ubuntu-latest + if: github.actor != 'dependabot[bot]' && github.repository == 'G-Core/gcore-python' + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Install FOSSA CLI + run: | + curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install-latest.sh | bash + - name: Set FOSSA API Key + run: echo "FOSSA_API_KEY=${{ secrets.FOSSA_PUB_API_KEY }}" >> $GITHUB_ENV + - name: Run FOSSA Analysis + run: fossa analyze + - name: Run FOSSA Test + run: fossa test From 2a0347fbb670a29ca3cf0418637cd843bd8d535d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 13 Oct 2025 12:15:17 +0000 Subject: [PATCH 22/38] feat(api): aggregated API specs update --- .stats.yml | 4 +- .../cloud/file_shares/file_shares.py | 33 +++- .../resources/cloud/instances/instances.py | 75 +++++++- src/gcore/resources/cloud/tasks.py | 12 +- .../types/cloud/instance_update_params.py | 34 +++- src/gcore/types/cloud/task_list_params.py | 6 +- tests/api_resources/cloud/test_file_shares.py | 164 ++++++++++-------- tests/api_resources/cloud/test_instances.py | 30 +++- 8 files changed, 246 insertions(+), 112 deletions(-) diff --git a/.stats.yml b/.stats.yml index 117150da..ce1b3626 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-e03e7effe72aa3668976b9a30a76b188e8d2aa2f4210730cf46e66c70c62c116.yml -openapi_spec_hash: da83e364ba42681bf2570c5d90372d97 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-7692ff469c0a20a3fde59d14a30c785a1773a8b60e5be9cc1280792a56b3b9e0.yml +openapi_spec_hash: 188c9e304c287741b6a73552c939658f config_hash: 399dda838c78c5d92532b7efcaaa0345 diff --git a/src/gcore/resources/cloud/file_shares/file_shares.py b/src/gcore/resources/cloud/file_shares/file_shares.py index da32da6f..463ee013 100644 --- a/src/gcore/resources/cloud/file_shares/file_shares.py +++ b/src/gcore/resources/cloud/file_shares/file_shares.py @@ -2,6 +2,7 @@ from __future__ import annotations +import typing_extensions from typing import Dict, Iterable, Optional from typing_extensions import Literal, overload @@ -227,6 +228,7 @@ def create( cast_to=TaskIDList, ) + @typing_extensions.deprecated("deprecated") def update( self, file_share_id: str, @@ -246,6 +248,9 @@ def update( """ Rename file share or update tags + **Deprecated**: Use PATCH + /v3/`file_shares`/{`project_id`}/{`region_id`}/{`file_share_id`} instead + Args: project_id: Project ID @@ -702,6 +707,7 @@ async def create( cast_to=TaskIDList, ) + @typing_extensions.deprecated("deprecated") async def update( self, file_share_id: str, @@ -721,6 +727,9 @@ async def update( """ Rename file share or update tags + **Deprecated**: Use PATCH + /v3/`file_shares`/{`project_id`}/{`region_id`}/{`file_share_id`} instead + Args: project_id: Project ID @@ -997,8 +1006,10 @@ def __init__(self, file_shares: FileSharesResource) -> None: self.create = to_raw_response_wrapper( file_shares.create, ) - self.update = to_raw_response_wrapper( - file_shares.update, + self.update = ( # pyright: ignore[reportDeprecated] + to_raw_response_wrapper( + file_shares.update, # pyright: ignore[reportDeprecated], + ) ) self.list = to_raw_response_wrapper( file_shares.list, @@ -1025,8 +1036,10 @@ def __init__(self, file_shares: AsyncFileSharesResource) -> None: self.create = async_to_raw_response_wrapper( file_shares.create, ) - self.update = async_to_raw_response_wrapper( - file_shares.update, + self.update = ( # pyright: ignore[reportDeprecated] + async_to_raw_response_wrapper( + file_shares.update, # pyright: ignore[reportDeprecated], + ) ) self.list = async_to_raw_response_wrapper( file_shares.list, @@ -1053,8 +1066,10 @@ def __init__(self, file_shares: FileSharesResource) -> None: self.create = to_streamed_response_wrapper( file_shares.create, ) - self.update = to_streamed_response_wrapper( - file_shares.update, + self.update = ( # pyright: ignore[reportDeprecated] + to_streamed_response_wrapper( + file_shares.update, # pyright: ignore[reportDeprecated], + ) ) self.list = to_streamed_response_wrapper( file_shares.list, @@ -1081,8 +1096,10 @@ def __init__(self, file_shares: AsyncFileSharesResource) -> None: self.create = async_to_streamed_response_wrapper( file_shares.create, ) - self.update = async_to_streamed_response_wrapper( - file_shares.update, + self.update = ( # pyright: ignore[reportDeprecated] + async_to_streamed_response_wrapper( + file_shares.update, # pyright: ignore[reportDeprecated], + ) ) self.list = async_to_streamed_response_wrapper( file_shares.list, diff --git a/src/gcore/resources/cloud/instances/instances.py b/src/gcore/resources/cloud/instances/instances.py index a407b862..1519e9a5 100644 --- a/src/gcore/resources/cloud/instances/instances.py +++ b/src/gcore/resources/cloud/instances/instances.py @@ -68,6 +68,7 @@ from ....types.cloud.instance import Instance from ....types.cloud.task_id_list import TaskIDList from ....types.cloud.instance_interface import InstanceInterface +from ....types.cloud.tag_update_map_param import TagUpdateMapParam __all__ = ["InstancesResource", "AsyncInstancesResource"] @@ -337,7 +338,8 @@ def update( *, project_id: int | None = None, region_id: int | None = None, - name: str, + name: str | Omit = omit, + tags: Optional[TagUpdateMapParam] | Omit = omit, # 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, @@ -346,7 +348,7 @@ def update( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> Instance: """ - Rename instance + Rename instance or update tags Args: project_id: Project ID @@ -355,7 +357,29 @@ def update( instance_id: Instance ID - name: Name. + name: Name + + tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide + key-value pairs to add or update tags. Set tag values to `null` to remove tags. + Unspecified tags remain unchanged. Read-only tags are always preserved and + cannot be modified. + + **Examples:** + + - **Add/update tags:** + `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or + updates existing ones. + - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. + - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only + tags are preserved). + - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates + specified tags. + - **Mixed operations:** + `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` + adds/updates 'environment' and '`cost_center`' while removing + '`deprecated_tag`', preserving other existing tags. + - **Replace all:** first delete existing tags with null values, then add new + ones in the same request. extra_headers: Send extra headers @@ -373,7 +397,13 @@ def update( raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return self._patch( f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}", - body=maybe_transform({"name": name}, instance_update_params.InstanceUpdateParams), + body=maybe_transform( + { + "name": name, + "tags": tags, + }, + instance_update_params.InstanceUpdateParams, + ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1716,7 +1746,8 @@ async def update( *, project_id: int | None = None, region_id: int | None = None, - name: str, + name: str | Omit = omit, + tags: Optional[TagUpdateMapParam] | Omit = omit, # 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, @@ -1725,7 +1756,7 @@ async def update( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> Instance: """ - Rename instance + Rename instance or update tags Args: project_id: Project ID @@ -1734,7 +1765,29 @@ async def update( instance_id: Instance ID - name: Name. + name: Name + + tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide + key-value pairs to add or update tags. Set tag values to `null` to remove tags. + Unspecified tags remain unchanged. Read-only tags are always preserved and + cannot be modified. + + **Examples:** + + - **Add/update tags:** + `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or + updates existing ones. + - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. + - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only + tags are preserved). + - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates + specified tags. + - **Mixed operations:** + `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` + adds/updates 'environment' and '`cost_center`' while removing + '`deprecated_tag`', preserving other existing tags. + - **Replace all:** first delete existing tags with null values, then add new + ones in the same request. extra_headers: Send extra headers @@ -1752,7 +1805,13 @@ async def update( raise ValueError(f"Expected a non-empty value for `instance_id` but received {instance_id!r}") return await self._patch( f"/cloud/v1/instances/{project_id}/{region_id}/{instance_id}", - body=await async_maybe_transform({"name": name}, instance_update_params.InstanceUpdateParams), + body=await async_maybe_transform( + { + "name": name, + "tags": tags, + }, + instance_update_params.InstanceUpdateParams, + ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/gcore/resources/cloud/tasks.py b/src/gcore/resources/cloud/tasks.py index 3e374c10..adc8ff24 100644 --- a/src/gcore/resources/cloud/tasks.py +++ b/src/gcore/resources/cloud/tasks.py @@ -178,9 +178,9 @@ def list( '`suspend_vm`', '`sync_private_flavors`', '`update_ddos_profile`', '`update_inference_application`', '`update_inference_instance`', '`update_k8s_cluster_v2`', '`update_lbmetadata`', - '`update_port_allowed_address_pairs`', '`update_tags_gpu_virtual_cluster`', - '`upgrade_k8s_cluster_v2`', '`upscale_ai_cluster_gpu`', - '`upscale_gpu_virtual_cluster`'] + '`update_port_allowed_address_pairs`', '`update_sfs`', + '`update_tags_gpu_virtual_cluster`', '`upgrade_k8s_cluster_v2`', + '`upscale_ai_cluster_gpu`', '`upscale_gpu_virtual_cluster`'] to_timestamp: ISO formatted datetime string. Filter the tasks by creation date less than or equal to `to_timestamp` @@ -487,9 +487,9 @@ def list( '`suspend_vm`', '`sync_private_flavors`', '`update_ddos_profile`', '`update_inference_application`', '`update_inference_instance`', '`update_k8s_cluster_v2`', '`update_lbmetadata`', - '`update_port_allowed_address_pairs`', '`update_tags_gpu_virtual_cluster`', - '`upgrade_k8s_cluster_v2`', '`upscale_ai_cluster_gpu`', - '`upscale_gpu_virtual_cluster`'] + '`update_port_allowed_address_pairs`', '`update_sfs`', + '`update_tags_gpu_virtual_cluster`', '`upgrade_k8s_cluster_v2`', + '`upscale_ai_cluster_gpu`', '`upscale_gpu_virtual_cluster`'] to_timestamp: ISO formatted datetime string. Filter the tasks by creation date less than or equal to `to_timestamp` diff --git a/src/gcore/types/cloud/instance_update_params.py b/src/gcore/types/cloud/instance_update_params.py index 915a1edb..a04fb983 100644 --- a/src/gcore/types/cloud/instance_update_params.py +++ b/src/gcore/types/cloud/instance_update_params.py @@ -2,7 +2,10 @@ from __future__ import annotations -from typing_extensions import Required, TypedDict +from typing import Optional +from typing_extensions import TypedDict + +from .tag_update_map_param import TagUpdateMapParam __all__ = ["InstanceUpdateParams"] @@ -14,5 +17,30 @@ class InstanceUpdateParams(TypedDict, total=False): region_id: int """Region ID""" - name: Required[str] - """Name.""" + name: str + """Name""" + + tags: Optional[TagUpdateMapParam] + """Update key-value tags using JSON Merge Patch semantics (RFC 7386). + + Provide key-value pairs to add or update tags. Set tag values to `null` to + remove tags. Unspecified tags remain unchanged. Read-only tags are always + preserved and cannot be modified. + + **Examples:** + + - **Add/update tags:** + `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or + updates existing ones. + - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. + - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only + tags are preserved). + - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates + specified tags. + - **Mixed operations:** + `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` + adds/updates 'environment' and '`cost_center`' while removing + '`deprecated_tag`', preserving other existing tags. + - **Replace all:** first delete existing tags with null values, then add new + ones in the same request. + """ diff --git a/src/gcore/types/cloud/task_list_params.py b/src/gcore/types/cloud/task_list_params.py index 22a319d3..c7248550 100644 --- a/src/gcore/types/cloud/task_list_params.py +++ b/src/gcore/types/cloud/task_list_params.py @@ -103,9 +103,9 @@ class TaskListParams(TypedDict, total=False): '`suspend_vm`', '`sync_private_flavors`', '`update_ddos_profile`', '`update_inference_application`', '`update_inference_instance`', '`update_k8s_cluster_v2`', '`update_lbmetadata`', - '`update_port_allowed_address_pairs`', '`update_tags_gpu_virtual_cluster`', - '`upgrade_k8s_cluster_v2`', '`upscale_ai_cluster_gpu`', - '`upscale_gpu_virtual_cluster`'] + '`update_port_allowed_address_pairs`', '`update_sfs`', + '`update_tags_gpu_virtual_cluster`', '`upgrade_k8s_cluster_v2`', + '`upscale_ai_cluster_gpu`', '`upscale_gpu_virtual_cluster`'] """ to_timestamp: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")] diff --git a/tests/api_resources/cloud/test_file_shares.py b/tests/api_resources/cloud/test_file_shares.py index 262d8a4a..adc1fc01 100644 --- a/tests/api_resources/cloud/test_file_shares.py +++ b/tests/api_resources/cloud/test_file_shares.py @@ -15,6 +15,8 @@ TaskIDList, ) +# pyright: reportDeprecated=false + base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -155,36 +157,41 @@ def test_streaming_response_create_overload_2(self, client: Gcore) -> None: @parametrize def test_method_update(self, client: Gcore) -> None: - file_share = client.cloud.file_shares.update( - file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", - project_id=1, - region_id=1, - ) + with pytest.warns(DeprecationWarning): + file_share = client.cloud.file_shares.update( + file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", + project_id=1, + region_id=1, + ) + assert_matches_type(FileShare, file_share, path=["response"]) @parametrize def test_method_update_with_all_params(self, client: Gcore) -> None: - file_share = client.cloud.file_shares.update( - file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", - project_id=1, - region_id=1, - name="some_name", - share_settings={ - "allowed_characters": "LCD", - "path_length": "LCD", - "root_squash": True, - }, - tags={"foo": "my-tag-value"}, - ) + with pytest.warns(DeprecationWarning): + file_share = client.cloud.file_shares.update( + file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", + project_id=1, + region_id=1, + name="some_name", + share_settings={ + "allowed_characters": "LCD", + "path_length": "LCD", + "root_squash": True, + }, + tags={"foo": "my-tag-value"}, + ) + assert_matches_type(FileShare, file_share, path=["response"]) @parametrize def test_raw_response_update(self, client: Gcore) -> None: - response = client.cloud.file_shares.with_raw_response.update( - file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", - project_id=1, - region_id=1, - ) + with pytest.warns(DeprecationWarning): + response = client.cloud.file_shares.with_raw_response.update( + file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", + project_id=1, + region_id=1, + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -193,27 +200,29 @@ def test_raw_response_update(self, client: Gcore) -> None: @parametrize def test_streaming_response_update(self, client: Gcore) -> None: - with client.cloud.file_shares.with_streaming_response.update( - file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", - project_id=1, - region_id=1, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + with client.cloud.file_shares.with_streaming_response.update( + file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", + project_id=1, + region_id=1, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - file_share = response.parse() - assert_matches_type(FileShare, file_share, path=["response"]) + file_share = response.parse() + assert_matches_type(FileShare, file_share, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize def test_path_params_update(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `file_share_id` but received ''"): - client.cloud.file_shares.with_raw_response.update( - file_share_id="", - project_id=1, - region_id=1, - ) + with pytest.warns(DeprecationWarning): + with pytest.raises(ValueError, match=r"Expected a non-empty value for `file_share_id` but received ''"): + client.cloud.file_shares.with_raw_response.update( + file_share_id="", + project_id=1, + region_id=1, + ) @parametrize def test_method_list(self, client: Gcore) -> None: @@ -543,36 +552,41 @@ async def test_streaming_response_create_overload_2(self, async_client: AsyncGco @parametrize async def test_method_update(self, async_client: AsyncGcore) -> None: - file_share = await async_client.cloud.file_shares.update( - file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", - project_id=1, - region_id=1, - ) + with pytest.warns(DeprecationWarning): + file_share = await async_client.cloud.file_shares.update( + file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", + project_id=1, + region_id=1, + ) + assert_matches_type(FileShare, file_share, path=["response"]) @parametrize async def test_method_update_with_all_params(self, async_client: AsyncGcore) -> None: - file_share = await async_client.cloud.file_shares.update( - file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", - project_id=1, - region_id=1, - name="some_name", - share_settings={ - "allowed_characters": "LCD", - "path_length": "LCD", - "root_squash": True, - }, - tags={"foo": "my-tag-value"}, - ) + with pytest.warns(DeprecationWarning): + file_share = await async_client.cloud.file_shares.update( + file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", + project_id=1, + region_id=1, + name="some_name", + share_settings={ + "allowed_characters": "LCD", + "path_length": "LCD", + "root_squash": True, + }, + tags={"foo": "my-tag-value"}, + ) + assert_matches_type(FileShare, file_share, path=["response"]) @parametrize async def test_raw_response_update(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.file_shares.with_raw_response.update( - file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", - project_id=1, - region_id=1, - ) + with pytest.warns(DeprecationWarning): + response = await async_client.cloud.file_shares.with_raw_response.update( + file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", + project_id=1, + region_id=1, + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -581,27 +595,29 @@ async def test_raw_response_update(self, async_client: AsyncGcore) -> None: @parametrize async def test_streaming_response_update(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.file_shares.with_streaming_response.update( - file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", - project_id=1, - region_id=1, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + async with async_client.cloud.file_shares.with_streaming_response.update( + file_share_id="bd8c47ee-e565-4e26-8840-b537e6827b08", + project_id=1, + region_id=1, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - file_share = await response.parse() - assert_matches_type(FileShare, file_share, path=["response"]) + file_share = await response.parse() + assert_matches_type(FileShare, file_share, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize async def test_path_params_update(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `file_share_id` but received ''"): - await async_client.cloud.file_shares.with_raw_response.update( - file_share_id="", - project_id=1, - region_id=1, - ) + with pytest.warns(DeprecationWarning): + with pytest.raises(ValueError, match=r"Expected a non-empty value for `file_share_id` but received ''"): + await async_client.cloud.file_shares.with_raw_response.update( + file_share_id="", + project_id=1, + region_id=1, + ) @parametrize async def test_method_list(self, async_client: AsyncGcore) -> None: diff --git a/tests/api_resources/cloud/test_instances.py b/tests/api_resources/cloud/test_instances.py index 9dfe0883..3ab8c850 100644 --- a/tests/api_resources/cloud/test_instances.py +++ b/tests/api_resources/cloud/test_instances.py @@ -127,7 +127,17 @@ def test_method_update(self, client: Gcore) -> None: instance_id="instance_id", project_id=0, region_id=0, - name="my-resource", + ) + assert_matches_type(Instance, instance, path=["response"]) + + @parametrize + def test_method_update_with_all_params(self, client: Gcore) -> None: + instance = client.cloud.instances.update( + instance_id="instance_id", + project_id=0, + region_id=0, + name="instance_name", + tags={"foo": "my-tag-value"}, ) assert_matches_type(Instance, instance, path=["response"]) @@ -137,7 +147,6 @@ def test_raw_response_update(self, client: Gcore) -> None: instance_id="instance_id", project_id=0, region_id=0, - name="my-resource", ) assert response.is_closed is True @@ -151,7 +160,6 @@ def test_streaming_response_update(self, client: Gcore) -> None: instance_id="instance_id", project_id=0, region_id=0, - name="my-resource", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -168,7 +176,6 @@ def test_path_params_update(self, client: Gcore) -> None: instance_id="", project_id=0, region_id=0, - name="my-resource", ) @parametrize @@ -990,7 +997,17 @@ async def test_method_update(self, async_client: AsyncGcore) -> None: instance_id="instance_id", project_id=0, region_id=0, - name="my-resource", + ) + assert_matches_type(Instance, instance, path=["response"]) + + @parametrize + async def test_method_update_with_all_params(self, async_client: AsyncGcore) -> None: + instance = await async_client.cloud.instances.update( + instance_id="instance_id", + project_id=0, + region_id=0, + name="instance_name", + tags={"foo": "my-tag-value"}, ) assert_matches_type(Instance, instance, path=["response"]) @@ -1000,7 +1017,6 @@ async def test_raw_response_update(self, async_client: AsyncGcore) -> None: instance_id="instance_id", project_id=0, region_id=0, - name="my-resource", ) assert response.is_closed is True @@ -1014,7 +1030,6 @@ async def test_streaming_response_update(self, async_client: AsyncGcore) -> None instance_id="instance_id", project_id=0, region_id=0, - name="my-resource", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -1031,7 +1046,6 @@ async def test_path_params_update(self, async_client: AsyncGcore) -> None: instance_id="", project_id=0, region_id=0, - name="my-resource", ) @parametrize From c62d7487ca76b74c8919c438b7d50979e75527cf Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 13 Oct 2025 14:10:54 +0000 Subject: [PATCH 23/38] feat(api): aggregated API specs update --- .stats.yml | 4 ++-- src/gcore/resources/security/profiles.py | 8 ++++---- src/gcore/types/security/profile_create_params.py | 4 ++-- tests/api_resources/security/test_profiles.py | 10 ++++++++-- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/.stats.yml b/.stats.yml index ce1b3626..783ee76d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-7692ff469c0a20a3fde59d14a30c785a1773a8b60e5be9cc1280792a56b3b9e0.yml -openapi_spec_hash: 188c9e304c287741b6a73552c939658f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-9f065df469027bcaa0bd19a36a0f8f132271e837c4cb058f27f3c5c740298797.yml +openapi_spec_hash: 844a27c7d8957769e1fb98965f9f1df0 config_hash: 399dda838c78c5d92532b7efcaaa0345 diff --git a/src/gcore/resources/security/profiles.py b/src/gcore/resources/security/profiles.py index 8394bd69..2ddf3257 100644 --- a/src/gcore/resources/security/profiles.py +++ b/src/gcore/resources/security/profiles.py @@ -54,8 +54,8 @@ def create( *, fields: Iterable[profile_create_params.Field], profile_template: int, + site: str, ip_address: Optional[str] | Omit = omit, - site: str | Omit = omit, # 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,8 +83,8 @@ def create( { "fields": fields, "profile_template": profile_template, - "ip_address": ip_address, "site": site, + "ip_address": ip_address, }, profile_create_params.ProfileCreateParams, ), @@ -322,8 +322,8 @@ async def create( *, fields: Iterable[profile_create_params.Field], profile_template: int, + site: str, ip_address: Optional[str] | Omit = omit, - site: str | Omit = omit, # 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, @@ -351,8 +351,8 @@ async def create( { "fields": fields, "profile_template": profile_template, - "ip_address": ip_address, "site": site, + "ip_address": ip_address, }, profile_create_params.ProfileCreateParams, ), diff --git a/src/gcore/types/security/profile_create_params.py b/src/gcore/types/security/profile_create_params.py index d4bd6d61..ad7b982c 100644 --- a/src/gcore/types/security/profile_create_params.py +++ b/src/gcore/types/security/profile_create_params.py @@ -13,9 +13,9 @@ class ProfileCreateParams(TypedDict, total=False): profile_template: Required[int] - ip_address: Optional[str] + site: Required[str] - site: str + ip_address: Optional[str] class Field(TypedDict, total=False): diff --git a/tests/api_resources/security/test_profiles.py b/tests/api_resources/security/test_profiles.py index ae9ed3b3..c79499ab 100644 --- a/tests/api_resources/security/test_profiles.py +++ b/tests/api_resources/security/test_profiles.py @@ -25,6 +25,7 @@ def test_method_create(self, client: Gcore) -> None: profile = client.security.profiles.create( fields=[{"base_field": 1}], profile_template=1, + site="GNC", ) assert_matches_type(ClientProfile, profile, path=["response"]) @@ -38,8 +39,8 @@ def test_method_create_with_all_params(self, client: Gcore) -> None: } ], profile_template=1, + site="GNC", ip_address="123.43.2.10", - site="ED", ) assert_matches_type(ClientProfile, profile, path=["response"]) @@ -48,6 +49,7 @@ def test_raw_response_create(self, client: Gcore) -> None: response = client.security.profiles.with_raw_response.create( fields=[{"base_field": 1}], profile_template=1, + site="GNC", ) assert response.is_closed is True @@ -60,6 +62,7 @@ def test_streaming_response_create(self, client: Gcore) -> None: with client.security.profiles.with_streaming_response.create( fields=[{"base_field": 1}], profile_template=1, + site="GNC", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -283,6 +286,7 @@ async def test_method_create(self, async_client: AsyncGcore) -> None: profile = await async_client.security.profiles.create( fields=[{"base_field": 1}], profile_template=1, + site="GNC", ) assert_matches_type(ClientProfile, profile, path=["response"]) @@ -296,8 +300,8 @@ async def test_method_create_with_all_params(self, async_client: AsyncGcore) -> } ], profile_template=1, + site="GNC", ip_address="123.43.2.10", - site="ED", ) assert_matches_type(ClientProfile, profile, path=["response"]) @@ -306,6 +310,7 @@ async def test_raw_response_create(self, async_client: AsyncGcore) -> None: response = await async_client.security.profiles.with_raw_response.create( fields=[{"base_field": 1}], profile_template=1, + site="GNC", ) assert response.is_closed is True @@ -318,6 +323,7 @@ async def test_streaming_response_create(self, async_client: AsyncGcore) -> None async with async_client.security.profiles.with_streaming_response.create( fields=[{"base_field": 1}], profile_template=1, + site="GNC", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" From 982848b1d3aced88ffc6181186c7404d97af8737 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 07:19:02 +0000 Subject: [PATCH 24/38] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 783ee76d..8a2dc2f8 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-9f065df469027bcaa0bd19a36a0f8f132271e837c4cb058f27f3c5c740298797.yml openapi_spec_hash: 844a27c7d8957769e1fb98965f9f1df0 -config_hash: 399dda838c78c5d92532b7efcaaa0345 +config_hash: 55ae5e2d505eb74ae52c73f854e77eb5 From c6728438a3bba4d47de59bbdf30fe4d1c82a3d97 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 10:32:36 +0000 Subject: [PATCH 25/38] chore(cloud)!: rename inference applications deployments update method --- .stats.yml | 2 +- api.md | 2 +- .../inference/applications/deployments.py | 258 +++++++++--------- .../cloud/inference/applications/__init__.py | 2 +- ..._params.py => deployment_update_params.py} | 4 +- .../applications/test_deployments.py | 252 ++++++++--------- 6 files changed, 260 insertions(+), 260 deletions(-) rename src/gcore/types/cloud/inference/applications/{deployment_patch_params.py => deployment_update_params.py} (95%) diff --git a/.stats.yml b/.stats.yml index 8a2dc2f8..191e2bb2 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-9f065df469027bcaa0bd19a36a0f8f132271e837c4cb058f27f3c5c740298797.yml openapi_spec_hash: 844a27c7d8957769e1fb98965f9f1df0 -config_hash: 55ae5e2d505eb74ae52c73f854e77eb5 +config_hash: 6cf02fb49626ee44b56133d941a8ec11 diff --git a/api.md b/api.md index 86601a2c..afd2f125 100644 --- a/api.md +++ b/api.md @@ -576,10 +576,10 @@ from gcore.types.cloud.inference.applications import ( Methods: - client.cloud.inference.applications.deployments.create(\*, project_id, \*\*params) -> TaskIDList +- client.cloud.inference.applications.deployments.update(deployment_name, \*, project_id, \*\*params) -> TaskIDList - client.cloud.inference.applications.deployments.list(\*, project_id) -> InferenceApplicationDeploymentList - client.cloud.inference.applications.deployments.delete(deployment_name, \*, project_id) -> TaskIDList - client.cloud.inference.applications.deployments.get(deployment_name, \*, project_id) -> InferenceApplicationDeployment -- client.cloud.inference.applications.deployments.patch(deployment_name, \*, project_id, \*\*params) -> TaskIDList #### Templates diff --git a/src/gcore/resources/cloud/inference/applications/deployments.py b/src/gcore/resources/cloud/inference/applications/deployments.py index 7b62f2c2..5bfac7b7 100644 --- a/src/gcore/resources/cloud/inference/applications/deployments.py +++ b/src/gcore/resources/cloud/inference/applications/deployments.py @@ -18,7 +18,7 @@ ) from ....._base_client import make_request_options from .....types.cloud.task_id_list import TaskIDList -from .....types.cloud.inference.applications import deployment_patch_params, deployment_create_params +from .....types.cloud.inference.applications import deployment_create_params, deployment_update_params from .....types.cloud.inference.applications.inference_application_deployment import InferenceApplicationDeployment from .....types.cloud.inference.applications.inference_application_deployment_list import ( InferenceApplicationDeploymentList, @@ -110,25 +110,39 @@ def create( cast_to=TaskIDList, ) - def list( + def update( self, + deployment_name: str, *, project_id: int | None = None, + api_keys: SequenceNotStr[str] | Omit = omit, + components_configuration: Dict[str, Optional[deployment_update_params.ComponentsConfiguration]] | Omit = omit, + regions: Iterable[int] | Omit = omit, # 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, - ) -> InferenceApplicationDeploymentList: - """ - Returns a list of your application deployments, including deployment names, - associated catalog applications, regions, component configurations, and current - status. Useful for monitoring and managing all active AI application instances. + ) -> TaskIDList: + """Updates an existing application deployment. + + You can modify the target regions + and update configurations for individual components. To disable a component, set + its value to null. Only the provided fields will be updated; all others remain + unchanged. Args: project_id: Project ID + deployment_name: Name of deployment + + api_keys: List of API keys for the application + + components_configuration: Mapping of component names to their configuration (e.g., `"model": {...}`) + + regions: Geographical regions to be updated for the deployment + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -139,17 +153,26 @@ def list( """ if project_id is None: project_id = self._client._get_cloud_project_id_path_param() - return self._get( - f"/cloud/v3/inference/applications/{project_id}/deployments", + if not deployment_name: + raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") + return self._patch( + f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", + body=maybe_transform( + { + "api_keys": api_keys, + "components_configuration": components_configuration, + "regions": regions, + }, + deployment_update_params.DeploymentUpdateParams, + ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=InferenceApplicationDeploymentList, + cast_to=TaskIDList, ) - def delete( + def list( self, - deployment_name: str, *, project_id: int | None = None, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -158,17 +181,15 @@ def delete( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> TaskIDList: + ) -> InferenceApplicationDeploymentList: """ - Deletes an existing application deployment along with all associated resources. - This action will permanently remove the deployment and **terminate all related - inference instances** that are part of the application. + Returns a list of your application deployments, including deployment names, + associated catalog applications, regions, component configurations, and current + status. Useful for monitoring and managing all active AI application instances. Args: project_id: Project ID - deployment_name: Name of deployment - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -179,17 +200,15 @@ def delete( """ if project_id is None: project_id = self._client._get_cloud_project_id_path_param() - if not deployment_name: - raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") - return self._delete( - f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", + return self._get( + f"/cloud/v3/inference/applications/{project_id}/deployments", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=TaskIDList, + cast_to=InferenceApplicationDeploymentList, ) - def get( + def delete( self, deployment_name: str, *, @@ -200,13 +219,11 @@ def get( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> InferenceApplicationDeployment: - """Retrieves detailed information about a specific application deployment. - - The - response includes the catalog application it was created from, deployment name, - active regions, configuration of each component, and the current status of the - deployment. + ) -> TaskIDList: + """ + Deletes an existing application deployment along with all associated resources. + This action will permanently remove the deployment and **terminate all related + inference instances** that are part of the application. Args: project_id: Project ID @@ -225,47 +242,38 @@ def get( project_id = self._client._get_cloud_project_id_path_param() if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") - return self._get( + return self._delete( f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=InferenceApplicationDeployment, + cast_to=TaskIDList, ) - def patch( + def get( self, deployment_name: str, *, project_id: int | None = None, - api_keys: SequenceNotStr[str] | Omit = omit, - components_configuration: Dict[str, Optional[deployment_patch_params.ComponentsConfiguration]] | Omit = omit, - regions: Iterable[int] | Omit = omit, # 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, - ) -> TaskIDList: - """Updates an existing application deployment. + ) -> InferenceApplicationDeployment: + """Retrieves detailed information about a specific application deployment. - You can modify the target regions - and update configurations for individual components. To disable a component, set - its value to null. Only the provided fields will be updated; all others remain - unchanged. + The + response includes the catalog application it was created from, deployment name, + active regions, configuration of each component, and the current status of the + deployment. Args: project_id: Project ID deployment_name: Name of deployment - api_keys: List of API keys for the application - - components_configuration: Mapping of component names to their configuration (e.g., `"model": {...}`) - - regions: Geographical regions to be updated for the deployment - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -278,20 +286,12 @@ def patch( project_id = self._client._get_cloud_project_id_path_param() if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") - return self._patch( + return self._get( f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", - body=maybe_transform( - { - "api_keys": api_keys, - "components_configuration": components_configuration, - "regions": regions, - }, - deployment_patch_params.DeploymentPatchParams, - ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=TaskIDList, + cast_to=InferenceApplicationDeployment, ) @@ -378,25 +378,39 @@ async def create( cast_to=TaskIDList, ) - async def list( + async def update( self, + deployment_name: str, *, project_id: int | None = None, + api_keys: SequenceNotStr[str] | Omit = omit, + components_configuration: Dict[str, Optional[deployment_update_params.ComponentsConfiguration]] | Omit = omit, + regions: Iterable[int] | Omit = omit, # 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, - ) -> InferenceApplicationDeploymentList: - """ - Returns a list of your application deployments, including deployment names, - associated catalog applications, regions, component configurations, and current - status. Useful for monitoring and managing all active AI application instances. + ) -> TaskIDList: + """Updates an existing application deployment. + + You can modify the target regions + and update configurations for individual components. To disable a component, set + its value to null. Only the provided fields will be updated; all others remain + unchanged. Args: project_id: Project ID + deployment_name: Name of deployment + + api_keys: List of API keys for the application + + components_configuration: Mapping of component names to their configuration (e.g., `"model": {...}`) + + regions: Geographical regions to be updated for the deployment + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -407,17 +421,26 @@ async def list( """ if project_id is None: project_id = self._client._get_cloud_project_id_path_param() - return await self._get( - f"/cloud/v3/inference/applications/{project_id}/deployments", + if not deployment_name: + raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") + return await self._patch( + f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", + body=await async_maybe_transform( + { + "api_keys": api_keys, + "components_configuration": components_configuration, + "regions": regions, + }, + deployment_update_params.DeploymentUpdateParams, + ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=InferenceApplicationDeploymentList, + cast_to=TaskIDList, ) - async def delete( + async def list( self, - deployment_name: str, *, project_id: int | None = None, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -426,17 +449,15 @@ async def delete( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> TaskIDList: + ) -> InferenceApplicationDeploymentList: """ - Deletes an existing application deployment along with all associated resources. - This action will permanently remove the deployment and **terminate all related - inference instances** that are part of the application. + Returns a list of your application deployments, including deployment names, + associated catalog applications, regions, component configurations, and current + status. Useful for monitoring and managing all active AI application instances. Args: project_id: Project ID - deployment_name: Name of deployment - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -447,17 +468,15 @@ async def delete( """ if project_id is None: project_id = self._client._get_cloud_project_id_path_param() - if not deployment_name: - raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") - return await self._delete( - f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", + return await self._get( + f"/cloud/v3/inference/applications/{project_id}/deployments", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=TaskIDList, + cast_to=InferenceApplicationDeploymentList, ) - async def get( + async def delete( self, deployment_name: str, *, @@ -468,13 +487,11 @@ async def get( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> InferenceApplicationDeployment: - """Retrieves detailed information about a specific application deployment. - - The - response includes the catalog application it was created from, deployment name, - active regions, configuration of each component, and the current status of the - deployment. + ) -> TaskIDList: + """ + Deletes an existing application deployment along with all associated resources. + This action will permanently remove the deployment and **terminate all related + inference instances** that are part of the application. Args: project_id: Project ID @@ -493,47 +510,38 @@ async def get( project_id = self._client._get_cloud_project_id_path_param() if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") - return await self._get( + return await self._delete( f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=InferenceApplicationDeployment, + cast_to=TaskIDList, ) - async def patch( + async def get( self, deployment_name: str, *, project_id: int | None = None, - api_keys: SequenceNotStr[str] | Omit = omit, - components_configuration: Dict[str, Optional[deployment_patch_params.ComponentsConfiguration]] | Omit = omit, - regions: Iterable[int] | Omit = omit, # 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, - ) -> TaskIDList: - """Updates an existing application deployment. + ) -> InferenceApplicationDeployment: + """Retrieves detailed information about a specific application deployment. - You can modify the target regions - and update configurations for individual components. To disable a component, set - its value to null. Only the provided fields will be updated; all others remain - unchanged. + The + response includes the catalog application it was created from, deployment name, + active regions, configuration of each component, and the current status of the + deployment. Args: project_id: Project ID deployment_name: Name of deployment - api_keys: List of API keys for the application - - components_configuration: Mapping of component names to their configuration (e.g., `"model": {...}`) - - regions: Geographical regions to be updated for the deployment - extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -546,20 +554,12 @@ async def patch( project_id = self._client._get_cloud_project_id_path_param() if not deployment_name: raise ValueError(f"Expected a non-empty value for `deployment_name` but received {deployment_name!r}") - return await self._patch( + return await self._get( f"/cloud/v3/inference/applications/{project_id}/deployments/{deployment_name}", - body=await async_maybe_transform( - { - "api_keys": api_keys, - "components_configuration": components_configuration, - "regions": regions, - }, - deployment_patch_params.DeploymentPatchParams, - ), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=TaskIDList, + cast_to=InferenceApplicationDeployment, ) @@ -570,6 +570,9 @@ def __init__(self, deployments: DeploymentsResource) -> None: self.create = to_raw_response_wrapper( deployments.create, ) + self.update = to_raw_response_wrapper( + deployments.update, + ) self.list = to_raw_response_wrapper( deployments.list, ) @@ -579,9 +582,6 @@ def __init__(self, deployments: DeploymentsResource) -> None: self.get = to_raw_response_wrapper( deployments.get, ) - self.patch = to_raw_response_wrapper( - deployments.patch, - ) class AsyncDeploymentsResourceWithRawResponse: @@ -591,6 +591,9 @@ def __init__(self, deployments: AsyncDeploymentsResource) -> None: self.create = async_to_raw_response_wrapper( deployments.create, ) + self.update = async_to_raw_response_wrapper( + deployments.update, + ) self.list = async_to_raw_response_wrapper( deployments.list, ) @@ -600,9 +603,6 @@ def __init__(self, deployments: AsyncDeploymentsResource) -> None: self.get = async_to_raw_response_wrapper( deployments.get, ) - self.patch = async_to_raw_response_wrapper( - deployments.patch, - ) class DeploymentsResourceWithStreamingResponse: @@ -612,6 +612,9 @@ def __init__(self, deployments: DeploymentsResource) -> None: self.create = to_streamed_response_wrapper( deployments.create, ) + self.update = to_streamed_response_wrapper( + deployments.update, + ) self.list = to_streamed_response_wrapper( deployments.list, ) @@ -621,9 +624,6 @@ def __init__(self, deployments: DeploymentsResource) -> None: self.get = to_streamed_response_wrapper( deployments.get, ) - self.patch = to_streamed_response_wrapper( - deployments.patch, - ) class AsyncDeploymentsResourceWithStreamingResponse: @@ -633,6 +633,9 @@ def __init__(self, deployments: AsyncDeploymentsResource) -> None: self.create = async_to_streamed_response_wrapper( deployments.create, ) + self.update = async_to_streamed_response_wrapper( + deployments.update, + ) self.list = async_to_streamed_response_wrapper( deployments.list, ) @@ -642,6 +645,3 @@ def __init__(self, deployments: AsyncDeploymentsResource) -> None: self.get = async_to_streamed_response_wrapper( deployments.get, ) - self.patch = async_to_streamed_response_wrapper( - deployments.patch, - ) diff --git a/src/gcore/types/cloud/inference/applications/__init__.py b/src/gcore/types/cloud/inference/applications/__init__.py index 1671486c..8f061c13 100644 --- a/src/gcore/types/cloud/inference/applications/__init__.py +++ b/src/gcore/types/cloud/inference/applications/__init__.py @@ -2,8 +2,8 @@ from __future__ import annotations -from .deployment_patch_params import DeploymentPatchParams as DeploymentPatchParams from .deployment_create_params import DeploymentCreateParams as DeploymentCreateParams +from .deployment_update_params import DeploymentUpdateParams as DeploymentUpdateParams from .inference_application_template import InferenceApplicationTemplate as InferenceApplicationTemplate from .inference_application_deployment import InferenceApplicationDeployment as InferenceApplicationDeployment from .inference_application_template_list import InferenceApplicationTemplateList as InferenceApplicationTemplateList diff --git a/src/gcore/types/cloud/inference/applications/deployment_patch_params.py b/src/gcore/types/cloud/inference/applications/deployment_update_params.py similarity index 95% rename from src/gcore/types/cloud/inference/applications/deployment_patch_params.py rename to src/gcore/types/cloud/inference/applications/deployment_update_params.py index 0ce4395d..8a8c6a1a 100644 --- a/src/gcore/types/cloud/inference/applications/deployment_patch_params.py +++ b/src/gcore/types/cloud/inference/applications/deployment_update_params.py @@ -8,14 +8,14 @@ from ....._types import SequenceNotStr __all__ = [ - "DeploymentPatchParams", + "DeploymentUpdateParams", "ComponentsConfiguration", "ComponentsConfigurationParameterOverrides", "ComponentsConfigurationScale", ] -class DeploymentPatchParams(TypedDict, total=False): +class DeploymentUpdateParams(TypedDict, total=False): project_id: int """Project ID""" diff --git a/tests/api_resources/cloud/inference/applications/test_deployments.py b/tests/api_resources/cloud/inference/applications/test_deployments.py index 850cc9e8..dd38dbe7 100644 --- a/tests/api_resources/cloud/inference/applications/test_deployments.py +++ b/tests/api_resources/cloud/inference/applications/test_deployments.py @@ -113,6 +113,69 @@ def test_streaming_response_create(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True + @parametrize + def test_method_update(self, client: Gcore) -> None: + deployment = client.cloud.inference.applications.deployments.update( + deployment_name="deployment_name", + project_id=1, + ) + assert_matches_type(TaskIDList, deployment, path=["response"]) + + @parametrize + def test_method_update_with_all_params(self, client: Gcore) -> None: + deployment = client.cloud.inference.applications.deployments.update( + deployment_name="deployment_name", + project_id=1, + api_keys=["key1", "key2"], + components_configuration={ + "model": { + "exposed": True, + "flavor": "flavor", + "parameter_overrides": {"foo": {"value": "value"}}, + "scale": { + "max": 2, + "min": 0, + }, + } + }, + regions=[1, 2], + ) + assert_matches_type(TaskIDList, deployment, path=["response"]) + + @parametrize + def test_raw_response_update(self, client: Gcore) -> None: + response = client.cloud.inference.applications.deployments.with_raw_response.update( + deployment_name="deployment_name", + project_id=1, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + deployment = response.parse() + assert_matches_type(TaskIDList, deployment, path=["response"]) + + @parametrize + def test_streaming_response_update(self, client: Gcore) -> None: + with client.cloud.inference.applications.deployments.with_streaming_response.update( + deployment_name="deployment_name", + project_id=1, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + deployment = response.parse() + assert_matches_type(TaskIDList, deployment, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_update(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `deployment_name` but received ''"): + client.cloud.inference.applications.deployments.with_raw_response.update( + deployment_name="", + project_id=1, + ) + @parametrize def test_method_list(self, client: Gcore) -> None: deployment = client.cloud.inference.applications.deployments.list( @@ -228,69 +291,6 @@ def test_path_params_get(self, client: Gcore) -> None: project_id=1, ) - @parametrize - def test_method_patch(self, client: Gcore) -> None: - deployment = client.cloud.inference.applications.deployments.patch( - deployment_name="deployment_name", - project_id=1, - ) - assert_matches_type(TaskIDList, deployment, path=["response"]) - - @parametrize - def test_method_patch_with_all_params(self, client: Gcore) -> None: - deployment = client.cloud.inference.applications.deployments.patch( - deployment_name="deployment_name", - project_id=1, - api_keys=["key1", "key2"], - components_configuration={ - "model": { - "exposed": True, - "flavor": "flavor", - "parameter_overrides": {"foo": {"value": "value"}}, - "scale": { - "max": 2, - "min": 0, - }, - } - }, - regions=[1, 2], - ) - assert_matches_type(TaskIDList, deployment, path=["response"]) - - @parametrize - def test_raw_response_patch(self, client: Gcore) -> None: - response = client.cloud.inference.applications.deployments.with_raw_response.patch( - deployment_name="deployment_name", - project_id=1, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - deployment = response.parse() - assert_matches_type(TaskIDList, deployment, path=["response"]) - - @parametrize - def test_streaming_response_patch(self, client: Gcore) -> None: - with client.cloud.inference.applications.deployments.with_streaming_response.patch( - deployment_name="deployment_name", - project_id=1, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - deployment = response.parse() - assert_matches_type(TaskIDList, deployment, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_patch(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `deployment_name` but received ''"): - client.cloud.inference.applications.deployments.with_raw_response.patch( - deployment_name="", - project_id=1, - ) - class TestAsyncDeployments: parametrize = pytest.mark.parametrize( @@ -389,6 +389,69 @@ async def test_streaming_response_create(self, async_client: AsyncGcore) -> None assert cast(Any, response.is_closed) is True + @parametrize + async def test_method_update(self, async_client: AsyncGcore) -> None: + deployment = await async_client.cloud.inference.applications.deployments.update( + deployment_name="deployment_name", + project_id=1, + ) + assert_matches_type(TaskIDList, deployment, path=["response"]) + + @parametrize + async def test_method_update_with_all_params(self, async_client: AsyncGcore) -> None: + deployment = await async_client.cloud.inference.applications.deployments.update( + deployment_name="deployment_name", + project_id=1, + api_keys=["key1", "key2"], + components_configuration={ + "model": { + "exposed": True, + "flavor": "flavor", + "parameter_overrides": {"foo": {"value": "value"}}, + "scale": { + "max": 2, + "min": 0, + }, + } + }, + regions=[1, 2], + ) + assert_matches_type(TaskIDList, deployment, path=["response"]) + + @parametrize + async def test_raw_response_update(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.inference.applications.deployments.with_raw_response.update( + deployment_name="deployment_name", + project_id=1, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + deployment = await response.parse() + assert_matches_type(TaskIDList, deployment, path=["response"]) + + @parametrize + async def test_streaming_response_update(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.inference.applications.deployments.with_streaming_response.update( + deployment_name="deployment_name", + project_id=1, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + deployment = await response.parse() + assert_matches_type(TaskIDList, deployment, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_update(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `deployment_name` but received ''"): + await async_client.cloud.inference.applications.deployments.with_raw_response.update( + deployment_name="", + project_id=1, + ) + @parametrize async def test_method_list(self, async_client: AsyncGcore) -> None: deployment = await async_client.cloud.inference.applications.deployments.list( @@ -503,66 +566,3 @@ async def test_path_params_get(self, async_client: AsyncGcore) -> None: deployment_name="", project_id=1, ) - - @parametrize - async def test_method_patch(self, async_client: AsyncGcore) -> None: - deployment = await async_client.cloud.inference.applications.deployments.patch( - deployment_name="deployment_name", - project_id=1, - ) - assert_matches_type(TaskIDList, deployment, path=["response"]) - - @parametrize - async def test_method_patch_with_all_params(self, async_client: AsyncGcore) -> None: - deployment = await async_client.cloud.inference.applications.deployments.patch( - deployment_name="deployment_name", - project_id=1, - api_keys=["key1", "key2"], - components_configuration={ - "model": { - "exposed": True, - "flavor": "flavor", - "parameter_overrides": {"foo": {"value": "value"}}, - "scale": { - "max": 2, - "min": 0, - }, - } - }, - regions=[1, 2], - ) - assert_matches_type(TaskIDList, deployment, path=["response"]) - - @parametrize - async def test_raw_response_patch(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.inference.applications.deployments.with_raw_response.patch( - deployment_name="deployment_name", - project_id=1, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - deployment = await response.parse() - assert_matches_type(TaskIDList, deployment, path=["response"]) - - @parametrize - async def test_streaming_response_patch(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.inference.applications.deployments.with_streaming_response.patch( - deployment_name="deployment_name", - project_id=1, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - deployment = await response.parse() - assert_matches_type(TaskIDList, deployment, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_patch(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `deployment_name` but received ''"): - await async_client.cloud.inference.applications.deployments.with_raw_response.patch( - deployment_name="", - project_id=1, - ) From 7a58cae302e7a3818a11e616f967719db076fd25 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 12:15:39 +0000 Subject: [PATCH 26/38] feat(api): aggregated API specs update --- .stats.yml | 6 +- api.md | 12 - .../cloud/load_balancers/__init__.py | 14 - .../cloud/load_balancers/listeners.py | 24 +- .../cloud/load_balancers/load_balancers.py | 629 +----------------- .../resources/cloud/load_balancers/metrics.py | 205 ------ .../cloud/load_balancers/pools/pools.py | 24 +- .../cloud/load_balancers/statuses.py | 91 --- src/gcore/types/cloud/__init__.py | 6 - .../cloud/load_balancer_create_params.py | 2 +- .../cloud/load_balancer_failover_params.py | 16 - .../types/cloud/load_balancer_get_params.py | 19 - .../cloud/load_balancer_listener_detail.py | 2 +- .../types/cloud/load_balancer_metrics.py | 32 - .../types/cloud/load_balancer_metrics_list.py | 16 - .../cloud/load_balancer_resize_params.py | 16 - .../cloud/load_balancer_update_params.py | 69 -- .../types/cloud/load_balancers/__init__.py | 1 - .../load_balancers/listener_create_params.py | 2 +- .../load_balancers/listener_list_params.py | 2 +- .../load_balancers/metric_list_params.py | 21 - .../load_balancers/pool_create_params.py | 2 +- .../cloud/load_balancers/pool_list_params.py | 2 +- .../cloud/load_balancers/test_listeners.py | 20 +- .../cloud/load_balancers/test_metrics.py | 132 ---- .../cloud/load_balancers/test_pools.py | 8 +- .../cloud/load_balancers/test_statuses.py | 94 +-- .../cloud/test_load_balancers.py | 550 +-------------- 28 files changed, 51 insertions(+), 1966 deletions(-) delete mode 100644 src/gcore/resources/cloud/load_balancers/metrics.py delete mode 100644 src/gcore/types/cloud/load_balancer_failover_params.py delete mode 100644 src/gcore/types/cloud/load_balancer_get_params.py delete mode 100644 src/gcore/types/cloud/load_balancer_metrics.py delete mode 100644 src/gcore/types/cloud/load_balancer_metrics_list.py delete mode 100644 src/gcore/types/cloud/load_balancer_resize_params.py delete mode 100644 src/gcore/types/cloud/load_balancer_update_params.py delete mode 100644 src/gcore/types/cloud/load_balancers/metric_list_params.py delete mode 100644 tests/api_resources/cloud/load_balancers/test_metrics.py diff --git a/.stats.yml b/.stats.yml index 191e2bb2..66e1da4c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-9f065df469027bcaa0bd19a36a0f8f132271e837c4cb058f27f3c5c740298797.yml -openapi_spec_hash: 844a27c7d8957769e1fb98965f9f1df0 +configured_endpoints: 605 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-94563a57bbb285cfead93d0627bac0731dd32093481327a6328d8e3d678cbc37.yml +openapi_spec_hash: 3af9864bebf6795a51b15af60b234510 config_hash: 6cf02fb49626ee44b56133d941a8ec11 diff --git a/api.md b/api.md index afd2f125..815e5839 100644 --- a/api.md +++ b/api.md @@ -210,12 +210,7 @@ from gcore.types.cloud import ( Methods: - client.cloud.load_balancers.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.update(loadbalancer_id, \*, project_id, region_id, \*\*params) -> LoadBalancer - client.cloud.load_balancers.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[LoadBalancer] -- client.cloud.load_balancers.delete(loadbalancer_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.load_balancers.failover(loadbalancer_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.get(loadbalancer_id, \*, project_id, region_id, \*\*params) -> LoadBalancer -- client.cloud.load_balancers.resize(loadbalancer_id, \*, project_id, region_id, \*\*params) -> TaskIDList ### L7Policies @@ -277,18 +272,11 @@ Methods: - client.cloud.load_balancers.pools.members.add(pool_id, \*, project_id, region_id, \*\*params) -> TaskIDList - client.cloud.load_balancers.pools.members.remove(member_id, \*, project_id, region_id, pool_id) -> TaskIDList -### Metrics - -Methods: - -- client.cloud.load_balancers.metrics.list(loadbalancer_id, \*, project_id, region_id, \*\*params) -> LoadBalancerMetricsList - ### Statuses Methods: - client.cloud.load_balancers.statuses.list(\*, project_id, region_id) -> LoadBalancerStatusList -- client.cloud.load_balancers.statuses.get(loadbalancer_id, \*, project_id, region_id) -> LoadBalancerStatus ## ReservedFixedIPs diff --git a/src/gcore/resources/cloud/load_balancers/__init__.py b/src/gcore/resources/cloud/load_balancers/__init__.py index 4de45722..cdd5187e 100644 --- a/src/gcore/resources/cloud/load_balancers/__init__.py +++ b/src/gcore/resources/cloud/load_balancers/__init__.py @@ -16,14 +16,6 @@ FlavorsResourceWithStreamingResponse, AsyncFlavorsResourceWithStreamingResponse, ) -from .metrics import ( - MetricsResource, - AsyncMetricsResource, - MetricsResourceWithRawResponse, - AsyncMetricsResourceWithRawResponse, - MetricsResourceWithStreamingResponse, - AsyncMetricsResourceWithStreamingResponse, -) from .statuses import ( StatusesResource, AsyncStatusesResource, @@ -82,12 +74,6 @@ "AsyncPoolsResourceWithRawResponse", "PoolsResourceWithStreamingResponse", "AsyncPoolsResourceWithStreamingResponse", - "MetricsResource", - "AsyncMetricsResource", - "MetricsResourceWithRawResponse", - "AsyncMetricsResourceWithRawResponse", - "MetricsResourceWithStreamingResponse", - "AsyncMetricsResourceWithStreamingResponse", "StatusesResource", "AsyncStatusesResource", "StatusesResourceWithRawResponse", diff --git a/src/gcore/resources/cloud/load_balancers/listeners.py b/src/gcore/resources/cloud/load_balancers/listeners.py index dff543de..eabc4c83 100644 --- a/src/gcore/resources/cloud/load_balancers/listeners.py +++ b/src/gcore/resources/cloud/load_balancers/listeners.py @@ -57,7 +57,7 @@ def create( *, project_id: int | None = None, region_id: int | None = None, - loadbalancer_id: str, + load_balancer_id: str, name: str, protocol: LbListenerProtocol, protocol_port: int, @@ -85,7 +85,7 @@ def create( region_id: Region ID - loadbalancer_id: Load balancer ID + load_balancer_id: Load balancer ID name: Load balancer listener name @@ -130,7 +130,7 @@ def create( f"/cloud/v1/lblisteners/{project_id}/{region_id}", body=maybe_transform( { - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, "name": name, "protocol": protocol, "protocol_port": protocol_port, @@ -245,7 +245,7 @@ def list( *, project_id: int | None = None, region_id: int | None = None, - loadbalancer_id: str | Omit = omit, + load_balancer_id: str | Omit = omit, show_stats: bool | Omit = omit, # 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. @@ -262,7 +262,7 @@ def list( region_id: Region ID - loadbalancer_id: Load Balancer ID + load_balancer_id: Load Balancer ID show_stats: Show stats @@ -287,7 +287,7 @@ def list( timeout=timeout, query=maybe_transform( { - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, "show_stats": show_stats, }, listener_list_params.ListenerListParams, @@ -580,7 +580,7 @@ async def create( *, project_id: int | None = None, region_id: int | None = None, - loadbalancer_id: str, + load_balancer_id: str, name: str, protocol: LbListenerProtocol, protocol_port: int, @@ -608,7 +608,7 @@ async def create( region_id: Region ID - loadbalancer_id: Load balancer ID + load_balancer_id: Load balancer ID name: Load balancer listener name @@ -653,7 +653,7 @@ async def create( f"/cloud/v1/lblisteners/{project_id}/{region_id}", body=await async_maybe_transform( { - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, "name": name, "protocol": protocol, "protocol_port": protocol_port, @@ -768,7 +768,7 @@ async def list( *, project_id: int | None = None, region_id: int | None = None, - loadbalancer_id: str | Omit = omit, + load_balancer_id: str | Omit = omit, show_stats: bool | Omit = omit, # 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. @@ -785,7 +785,7 @@ async def list( region_id: Region ID - loadbalancer_id: Load Balancer ID + load_balancer_id: Load Balancer ID show_stats: Show stats @@ -810,7 +810,7 @@ async def list( timeout=timeout, query=await async_maybe_transform( { - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, "show_stats": show_stats, }, listener_list_params.ListenerListParams, diff --git a/src/gcore/resources/cloud/load_balancers/load_balancers.py b/src/gcore/resources/cloud/load_balancers/load_balancers.py index cd013254..28eceb67 100644 --- a/src/gcore/resources/cloud/load_balancers/load_balancers.py +++ b/src/gcore/resources/cloud/load_balancers/load_balancers.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import Dict, Iterable, Optional +from typing import Dict, Iterable import httpx @@ -14,14 +14,6 @@ FlavorsResourceWithStreamingResponse, AsyncFlavorsResourceWithStreamingResponse, ) -from .metrics import ( - MetricsResource, - AsyncMetricsResource, - MetricsResourceWithRawResponse, - AsyncMetricsResourceWithRawResponse, - MetricsResourceWithStreamingResponse, - AsyncMetricsResourceWithStreamingResponse, -) from .statuses import ( StatusesResource, AsyncStatusesResource, @@ -60,12 +52,8 @@ from ....types.cloud import ( InterfaceIPFamily, LoadBalancerMemberConnectivity, - load_balancer_get_params, load_balancer_list_params, load_balancer_create_params, - load_balancer_resize_params, - load_balancer_update_params, - load_balancer_failover_params, ) from ...._base_client import AsyncPaginator, make_request_options from .l7_policies.l7_policies import ( @@ -79,7 +67,6 @@ from ....types.cloud.task_id_list import TaskIDList from ....types.cloud.load_balancer import LoadBalancer from ....types.cloud.interface_ip_family import InterfaceIPFamily -from ....types.cloud.tag_update_map_param import TagUpdateMapParam from ....types.cloud.load_balancer_member_connectivity import LoadBalancerMemberConnectivity __all__ = ["LoadBalancersResource", "AsyncLoadBalancersResource"] @@ -102,10 +89,6 @@ def listeners(self) -> ListenersResource: def pools(self) -> PoolsResource: return PoolsResource(self._client) - @cached_property - def metrics(self) -> MetricsResource: - return MetricsResource(self._client) - @cached_property def statuses(self) -> StatusesResource: return StatusesResource(self._client) @@ -231,90 +214,6 @@ def create( cast_to=TaskIDList, ) - def update( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - logging: load_balancer_update_params.Logging | Omit = omit, - name: str | Omit = omit, - preferred_connectivity: LoadBalancerMemberConnectivity | Omit = omit, - tags: Optional[TagUpdateMapParam] | Omit = omit, - # 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, - ) -> LoadBalancer: - """ - Rename load balancer, activate/deactivate logging, update preferred connectivity - type and/or modify load balancer tags. The request will only process the fields - that are provided in the request body. Any fields that are not included will - remain unchanged. - - Args: - logging: Logging configuration - - name: Name. - - preferred_connectivity: Preferred option to establish connectivity between load balancer and its pools - members - - tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide - key-value pairs to add or update tags. Set tag values to `null` to remove tags. - Unspecified tags remain unchanged. Read-only tags are always preserved and - cannot be modified. - - **Examples:** - - - **Add/update tags:** - `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or - updates existing ones. - - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. - - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only - tags are preserved). - - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates - specified tags. - - **Mixed operations:** - `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` - adds/updates 'environment' and '`cost_center`' while removing - '`deprecated_tag`', preserving other existing tags. - - **Replace all:** first delete existing tags with null values, then add new - ones in the same request. - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return self._patch( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", - body=maybe_transform( - { - "logging": logging, - "name": name, - "preferred_connectivity": preferred_connectivity, - "tags": tags, - }, - load_balancer_update_params.LoadBalancerUpdateParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LoadBalancer, - ) - def list( self, *, @@ -403,186 +302,6 @@ def list( model=LoadBalancer, ) - def delete( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - # 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, - ) -> TaskIDList: - """ - Delete load balancer - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return self._delete( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=TaskIDList, - ) - - def failover( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - force: bool | Omit = omit, - # 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, - ) -> TaskIDList: - """ - Failover load balancer - - Args: - force: Validate current load balancer status before failover or not. - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/failover", - body=maybe_transform({"force": force}, load_balancer_failover_params.LoadBalancerFailoverParams), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=TaskIDList, - ) - - def get( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - show_stats: bool | Omit = omit, - with_ddos: bool | Omit = omit, - # 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, - ) -> LoadBalancer: - """ - Get load balancer - - Args: - show_stats: Show statistics - - with_ddos: Show DDoS profile - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - query=maybe_transform( - { - "show_stats": show_stats, - "with_ddos": with_ddos, - }, - load_balancer_get_params.LoadBalancerGetParams, - ), - ), - cast_to=LoadBalancer, - ) - - def resize( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - flavor: 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, - ) -> TaskIDList: - """ - Resize load balancer - - Args: - flavor: Name of the desired flavor to resize to. - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/resize", - body=maybe_transform({"flavor": flavor}, load_balancer_resize_params.LoadBalancerResizeParams), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=TaskIDList, - ) - def create_and_poll( self, *, @@ -787,10 +506,6 @@ def listeners(self) -> AsyncListenersResource: def pools(self) -> AsyncPoolsResource: return AsyncPoolsResource(self._client) - @cached_property - def metrics(self) -> AsyncMetricsResource: - return AsyncMetricsResource(self._client) - @cached_property def statuses(self) -> AsyncStatusesResource: return AsyncStatusesResource(self._client) @@ -916,90 +631,6 @@ async def create( cast_to=TaskIDList, ) - async def update( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - logging: load_balancer_update_params.Logging | Omit = omit, - name: str | Omit = omit, - preferred_connectivity: LoadBalancerMemberConnectivity | Omit = omit, - tags: Optional[TagUpdateMapParam] | Omit = omit, - # 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, - ) -> LoadBalancer: - """ - Rename load balancer, activate/deactivate logging, update preferred connectivity - type and/or modify load balancer tags. The request will only process the fields - that are provided in the request body. Any fields that are not included will - remain unchanged. - - Args: - logging: Logging configuration - - name: Name. - - preferred_connectivity: Preferred option to establish connectivity between load balancer and its pools - members - - tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide - key-value pairs to add or update tags. Set tag values to `null` to remove tags. - Unspecified tags remain unchanged. Read-only tags are always preserved and - cannot be modified. - - **Examples:** - - - **Add/update tags:** - `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or - updates existing ones. - - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. - - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only - tags are preserved). - - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates - specified tags. - - **Mixed operations:** - `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` - adds/updates 'environment' and '`cost_center`' while removing - '`deprecated_tag`', preserving other existing tags. - - **Replace all:** first delete existing tags with null values, then add new - ones in the same request. - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return await self._patch( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", - body=await async_maybe_transform( - { - "logging": logging, - "name": name, - "preferred_connectivity": preferred_connectivity, - "tags": tags, - }, - load_balancer_update_params.LoadBalancerUpdateParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LoadBalancer, - ) - def list( self, *, @@ -1088,188 +719,6 @@ def list( model=LoadBalancer, ) - async def delete( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - # 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, - ) -> TaskIDList: - """ - Delete load balancer - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return await self._delete( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=TaskIDList, - ) - - async def failover( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - force: bool | Omit = omit, - # 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, - ) -> TaskIDList: - """ - Failover load balancer - - Args: - force: Validate current load balancer status before failover or not. - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return await self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/failover", - body=await async_maybe_transform( - {"force": force}, load_balancer_failover_params.LoadBalancerFailoverParams - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=TaskIDList, - ) - - async def get( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - show_stats: bool | Omit = omit, - with_ddos: bool | Omit = omit, - # 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, - ) -> LoadBalancer: - """ - Get load balancer - - Args: - show_stats: Show statistics - - with_ddos: Show DDoS profile - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return await self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}", - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - query=await async_maybe_transform( - { - "show_stats": show_stats, - "with_ddos": with_ddos, - }, - load_balancer_get_params.LoadBalancerGetParams, - ), - ), - cast_to=LoadBalancer, - ) - - async def resize( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - flavor: 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, - ) -> TaskIDList: - """ - Resize load balancer - - Args: - flavor: Name of the desired flavor to resize to. - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return await self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/resize", - body=await async_maybe_transform({"flavor": flavor}, load_balancer_resize_params.LoadBalancerResizeParams), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=TaskIDList, - ) - async def create_and_poll( self, *, @@ -1464,24 +913,9 @@ def __init__(self, load_balancers: LoadBalancersResource) -> None: self.create = to_raw_response_wrapper( load_balancers.create, ) - self.update = to_raw_response_wrapper( - load_balancers.update, - ) self.list = to_raw_response_wrapper( load_balancers.list, ) - self.delete = to_raw_response_wrapper( - load_balancers.delete, - ) - self.failover = to_raw_response_wrapper( - load_balancers.failover, - ) - self.get = to_raw_response_wrapper( - load_balancers.get, - ) - self.resize = to_raw_response_wrapper( - load_balancers.resize, - ) @cached_property def l7_policies(self) -> L7PoliciesResourceWithRawResponse: @@ -1499,10 +933,6 @@ def listeners(self) -> ListenersResourceWithRawResponse: def pools(self) -> PoolsResourceWithRawResponse: return PoolsResourceWithRawResponse(self._load_balancers.pools) - @cached_property - def metrics(self) -> MetricsResourceWithRawResponse: - return MetricsResourceWithRawResponse(self._load_balancers.metrics) - @cached_property def statuses(self) -> StatusesResourceWithRawResponse: return StatusesResourceWithRawResponse(self._load_balancers.statuses) @@ -1515,24 +945,9 @@ def __init__(self, load_balancers: AsyncLoadBalancersResource) -> None: self.create = async_to_raw_response_wrapper( load_balancers.create, ) - self.update = async_to_raw_response_wrapper( - load_balancers.update, - ) self.list = async_to_raw_response_wrapper( load_balancers.list, ) - self.delete = async_to_raw_response_wrapper( - load_balancers.delete, - ) - self.failover = async_to_raw_response_wrapper( - load_balancers.failover, - ) - self.get = async_to_raw_response_wrapper( - load_balancers.get, - ) - self.resize = async_to_raw_response_wrapper( - load_balancers.resize, - ) @cached_property def l7_policies(self) -> AsyncL7PoliciesResourceWithRawResponse: @@ -1550,10 +965,6 @@ def listeners(self) -> AsyncListenersResourceWithRawResponse: def pools(self) -> AsyncPoolsResourceWithRawResponse: return AsyncPoolsResourceWithRawResponse(self._load_balancers.pools) - @cached_property - def metrics(self) -> AsyncMetricsResourceWithRawResponse: - return AsyncMetricsResourceWithRawResponse(self._load_balancers.metrics) - @cached_property def statuses(self) -> AsyncStatusesResourceWithRawResponse: return AsyncStatusesResourceWithRawResponse(self._load_balancers.statuses) @@ -1566,24 +977,9 @@ def __init__(self, load_balancers: LoadBalancersResource) -> None: self.create = to_streamed_response_wrapper( load_balancers.create, ) - self.update = to_streamed_response_wrapper( - load_balancers.update, - ) self.list = to_streamed_response_wrapper( load_balancers.list, ) - self.delete = to_streamed_response_wrapper( - load_balancers.delete, - ) - self.failover = to_streamed_response_wrapper( - load_balancers.failover, - ) - self.get = to_streamed_response_wrapper( - load_balancers.get, - ) - self.resize = to_streamed_response_wrapper( - load_balancers.resize, - ) @cached_property def l7_policies(self) -> L7PoliciesResourceWithStreamingResponse: @@ -1601,10 +997,6 @@ def listeners(self) -> ListenersResourceWithStreamingResponse: def pools(self) -> PoolsResourceWithStreamingResponse: return PoolsResourceWithStreamingResponse(self._load_balancers.pools) - @cached_property - def metrics(self) -> MetricsResourceWithStreamingResponse: - return MetricsResourceWithStreamingResponse(self._load_balancers.metrics) - @cached_property def statuses(self) -> StatusesResourceWithStreamingResponse: return StatusesResourceWithStreamingResponse(self._load_balancers.statuses) @@ -1617,24 +1009,9 @@ def __init__(self, load_balancers: AsyncLoadBalancersResource) -> None: self.create = async_to_streamed_response_wrapper( load_balancers.create, ) - self.update = async_to_streamed_response_wrapper( - load_balancers.update, - ) self.list = async_to_streamed_response_wrapper( load_balancers.list, ) - self.delete = async_to_streamed_response_wrapper( - load_balancers.delete, - ) - self.failover = async_to_streamed_response_wrapper( - load_balancers.failover, - ) - self.get = async_to_streamed_response_wrapper( - load_balancers.get, - ) - self.resize = async_to_streamed_response_wrapper( - load_balancers.resize, - ) @cached_property def l7_policies(self) -> AsyncL7PoliciesResourceWithStreamingResponse: @@ -1652,10 +1029,6 @@ def listeners(self) -> AsyncListenersResourceWithStreamingResponse: def pools(self) -> AsyncPoolsResourceWithStreamingResponse: return AsyncPoolsResourceWithStreamingResponse(self._load_balancers.pools) - @cached_property - def metrics(self) -> AsyncMetricsResourceWithStreamingResponse: - return AsyncMetricsResourceWithStreamingResponse(self._load_balancers.metrics) - @cached_property def statuses(self) -> AsyncStatusesResourceWithStreamingResponse: return AsyncStatusesResourceWithStreamingResponse(self._load_balancers.statuses) diff --git a/src/gcore/resources/cloud/load_balancers/metrics.py b/src/gcore/resources/cloud/load_balancers/metrics.py deleted file mode 100644 index 38ecf843..00000000 --- a/src/gcore/resources/cloud/load_balancers/metrics.py +++ /dev/null @@ -1,205 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -import httpx - -from ...._types import Body, Query, Headers, NotGiven, not_given -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 ....types.cloud import InstanceMetricsTimeUnit -from ...._base_client import make_request_options -from ....types.cloud.load_balancers import metric_list_params -from ....types.cloud.instance_metrics_time_unit import InstanceMetricsTimeUnit -from ....types.cloud.load_balancer_metrics_list import LoadBalancerMetricsList - -__all__ = ["MetricsResource", "AsyncMetricsResource"] - - -class MetricsResource(SyncAPIResource): - @cached_property - def with_raw_response(self) -> MetricsResourceWithRawResponse: - """ - 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/G-Core/gcore-python#accessing-raw-response-data-eg-headers - """ - return MetricsResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> MetricsResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response - """ - return MetricsResourceWithStreamingResponse(self) - - def list( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - time_interval: int, - time_unit: InstanceMetricsTimeUnit, - # 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, - ) -> LoadBalancerMetricsList: - """ - Get load balancer metrics, including cpu, memory and network - - Args: - time_interval: Time interval - - time_unit: Time interval unit - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/metrics", - body=maybe_transform( - { - "time_interval": time_interval, - "time_unit": time_unit, - }, - metric_list_params.MetricListParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LoadBalancerMetricsList, - ) - - -class AsyncMetricsResource(AsyncAPIResource): - @cached_property - def with_raw_response(self) -> AsyncMetricsResourceWithRawResponse: - """ - 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/G-Core/gcore-python#accessing-raw-response-data-eg-headers - """ - return AsyncMetricsResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> AsyncMetricsResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response - """ - return AsyncMetricsResourceWithStreamingResponse(self) - - async def list( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - time_interval: int, - time_unit: InstanceMetricsTimeUnit, - # 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, - ) -> LoadBalancerMetricsList: - """ - Get load balancer metrics, including cpu, memory and network - - Args: - time_interval: Time interval - - time_unit: Time interval unit - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return await self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/metrics", - body=await async_maybe_transform( - { - "time_interval": time_interval, - "time_unit": time_unit, - }, - metric_list_params.MetricListParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LoadBalancerMetricsList, - ) - - -class MetricsResourceWithRawResponse: - def __init__(self, metrics: MetricsResource) -> None: - self._metrics = metrics - - self.list = to_raw_response_wrapper( - metrics.list, - ) - - -class AsyncMetricsResourceWithRawResponse: - def __init__(self, metrics: AsyncMetricsResource) -> None: - self._metrics = metrics - - self.list = async_to_raw_response_wrapper( - metrics.list, - ) - - -class MetricsResourceWithStreamingResponse: - def __init__(self, metrics: MetricsResource) -> None: - self._metrics = metrics - - self.list = to_streamed_response_wrapper( - metrics.list, - ) - - -class AsyncMetricsResourceWithStreamingResponse: - def __init__(self, metrics: AsyncMetricsResource) -> None: - self._metrics = metrics - - self.list = async_to_streamed_response_wrapper( - metrics.list, - ) diff --git a/src/gcore/resources/cloud/load_balancers/pools/pools.py b/src/gcore/resources/cloud/load_balancers/pools/pools.py index 18e7807a..e2ae0c5a 100644 --- a/src/gcore/resources/cloud/load_balancers/pools/pools.py +++ b/src/gcore/resources/cloud/load_balancers/pools/pools.py @@ -84,7 +84,7 @@ def create( crl_secret_id: Optional[str] | Omit = omit, healthmonitor: Optional[pool_create_params.Healthmonitor] | Omit = omit, listener_id: Optional[str] | Omit = omit, - loadbalancer_id: Optional[str] | Omit = omit, + load_balancer_id: Optional[str] | Omit = omit, members: Optional[Iterable[pool_create_params.Member]] | Omit = omit, secret_id: Optional[str] | Omit = omit, session_persistence: Optional[pool_create_params.SessionPersistence] | Omit = omit, @@ -120,7 +120,7 @@ def create( listener_id: Listener ID - loadbalancer_id: Loadbalancer ID + load_balancer_id: Loadbalancer ID members: Pool members @@ -157,7 +157,7 @@ def create( "crl_secret_id": crl_secret_id, "healthmonitor": healthmonitor, "listener_id": listener_id, - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, "members": members, "secret_id": secret_id, "session_persistence": session_persistence, @@ -296,7 +296,7 @@ def list( region_id: int | None = None, details: bool | Omit = omit, listener_id: str | Omit = omit, - loadbalancer_id: str | Omit = omit, + load_balancer_id: str | Omit = omit, # 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, @@ -316,7 +316,7 @@ def list( listener_id: Listener ID - loadbalancer_id: Load Balancer ID + load_balancer_id: Load Balancer ID extra_headers: Send extra headers @@ -341,7 +341,7 @@ def list( { "details": details, "listener_id": listener_id, - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, }, pool_list_params.PoolListParams, ), @@ -645,7 +645,7 @@ async def create( crl_secret_id: Optional[str] | Omit = omit, healthmonitor: Optional[pool_create_params.Healthmonitor] | Omit = omit, listener_id: Optional[str] | Omit = omit, - loadbalancer_id: Optional[str] | Omit = omit, + load_balancer_id: Optional[str] | Omit = omit, members: Optional[Iterable[pool_create_params.Member]] | Omit = omit, secret_id: Optional[str] | Omit = omit, session_persistence: Optional[pool_create_params.SessionPersistence] | Omit = omit, @@ -681,7 +681,7 @@ async def create( listener_id: Listener ID - loadbalancer_id: Loadbalancer ID + load_balancer_id: Loadbalancer ID members: Pool members @@ -718,7 +718,7 @@ async def create( "crl_secret_id": crl_secret_id, "healthmonitor": healthmonitor, "listener_id": listener_id, - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, "members": members, "secret_id": secret_id, "session_persistence": session_persistence, @@ -857,7 +857,7 @@ async def list( region_id: int | None = None, details: bool | Omit = omit, listener_id: str | Omit = omit, - loadbalancer_id: str | Omit = omit, + load_balancer_id: str | Omit = omit, # 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, @@ -877,7 +877,7 @@ async def list( listener_id: Listener ID - loadbalancer_id: Load Balancer ID + load_balancer_id: Load Balancer ID extra_headers: Send extra headers @@ -902,7 +902,7 @@ async def list( { "details": details, "listener_id": listener_id, - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, }, pool_list_params.PoolListParams, ), diff --git a/src/gcore/resources/cloud/load_balancers/statuses.py b/src/gcore/resources/cloud/load_balancers/statuses.py index 624132ba..7270e2a8 100644 --- a/src/gcore/resources/cloud/load_balancers/statuses.py +++ b/src/gcore/resources/cloud/load_balancers/statuses.py @@ -14,7 +14,6 @@ async_to_streamed_response_wrapper, ) from ...._base_client import make_request_options -from ....types.cloud.load_balancer_status import LoadBalancerStatus from ....types.cloud.load_balancer_status_list import LoadBalancerStatusList __all__ = ["StatusesResource", "AsyncStatusesResource"] @@ -76,45 +75,6 @@ def list( cast_to=LoadBalancerStatusList, ) - def get( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - # 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, - ) -> LoadBalancerStatus: - """ - Get load balancer status - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/status", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LoadBalancerStatus, - ) - class AsyncStatusesResource(AsyncAPIResource): @cached_property @@ -172,45 +132,6 @@ async def list( cast_to=LoadBalancerStatusList, ) - async def get( - self, - loadbalancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - # 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, - ) -> LoadBalancerStatus: - """ - Get load balancer status - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not loadbalancer_id: - raise ValueError(f"Expected a non-empty value for `loadbalancer_id` but received {loadbalancer_id!r}") - return await self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{loadbalancer_id}/status", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LoadBalancerStatus, - ) - class StatusesResourceWithRawResponse: def __init__(self, statuses: StatusesResource) -> None: @@ -219,9 +140,6 @@ def __init__(self, statuses: StatusesResource) -> None: self.list = to_raw_response_wrapper( statuses.list, ) - self.get = to_raw_response_wrapper( - statuses.get, - ) class AsyncStatusesResourceWithRawResponse: @@ -231,9 +149,6 @@ def __init__(self, statuses: AsyncStatusesResource) -> None: self.list = async_to_raw_response_wrapper( statuses.list, ) - self.get = async_to_raw_response_wrapper( - statuses.get, - ) class StatusesResourceWithStreamingResponse: @@ -243,9 +158,6 @@ def __init__(self, statuses: StatusesResource) -> None: self.list = to_streamed_response_wrapper( statuses.list, ) - self.get = to_streamed_response_wrapper( - statuses.get, - ) class AsyncStatusesResourceWithStreamingResponse: @@ -255,6 +167,3 @@ def __init__(self, statuses: AsyncStatusesResource) -> None: self.list = async_to_streamed_response_wrapper( statuses.list, ) - self.get = async_to_streamed_response_wrapper( - statuses.get, - ) diff --git a/src/gcore/types/cloud/__init__.py b/src/gcore/types/cloud/__init__.py index 96c25d07..e7f5de17 100644 --- a/src/gcore/types/cloud/__init__.py +++ b/src/gcore/types/cloud/__init__.py @@ -90,7 +90,6 @@ from .gpu_baremetal_cluster import GPUBaremetalCluster as GPUBaremetalCluster from .health_monitor_status import HealthMonitorStatus as HealthMonitorStatus from .load_balancer_l7_rule import LoadBalancerL7Rule as LoadBalancerL7Rule -from .load_balancer_metrics import LoadBalancerMetrics as LoadBalancerMetrics from .network_create_params import NetworkCreateParams as NetworkCreateParams from .network_update_params import NetworkUpdateParams as NetworkUpdateParams from .project_create_params import ProjectCreateParams as ProjectCreateParams @@ -118,7 +117,6 @@ from .file_share_resize_params import FileShareResizeParams as FileShareResizeParams from .file_share_update_params import FileShareUpdateParams as FileShareUpdateParams from .k8s_cluster_version_list import K8sClusterVersionList as K8sClusterVersionList -from .load_balancer_get_params import LoadBalancerGetParams as LoadBalancerGetParams from .load_balancer_statistics import LoadBalancerStatistics as LoadBalancerStatistics from .floating_ip_assign_params import FloatingIPAssignParams as FloatingIPAssignParams from .floating_ip_create_params import FloatingIPCreateParams as FloatingIPCreateParams @@ -131,7 +129,6 @@ from .volume_change_type_params import VolumeChangeTypeParams as VolumeChangeTypeParams from .instance_metrics_time_unit import InstanceMetricsTimeUnit as InstanceMetricsTimeUnit from .load_balancer_l7_rule_list import LoadBalancerL7RuleList as LoadBalancerL7RuleList -from .load_balancer_metrics_list import LoadBalancerMetricsList as LoadBalancerMetricsList from .security_group_copy_params import SecurityGroupCopyParams as SecurityGroupCopyParams from .security_group_list_params import SecurityGroupListParams as SecurityGroupListParams from .ddos_profile_template_field import DDOSProfileTemplateField as DDOSProfileTemplateField @@ -143,14 +140,11 @@ from .load_balancer_flavor_detail import LoadBalancerFlavorDetail as LoadBalancerFlavorDetail from .load_balancer_instance_role import LoadBalancerInstanceRole as LoadBalancerInstanceRole from .load_balancer_listener_list import LoadBalancerListenerList as LoadBalancerListenerList -from .load_balancer_resize_params import LoadBalancerResizeParams as LoadBalancerResizeParams -from .load_balancer_update_params import LoadBalancerUpdateParams as LoadBalancerUpdateParams from .task_acknowledge_all_params import TaskAcknowledgeAllParams as TaskAcknowledgeAllParams from .load_balancer_l7_policy_list import LoadBalancerL7PolicyList as LoadBalancerL7PolicyList from .quota_get_by_region_response import QuotaGetByRegionResponse as QuotaGetByRegionResponse from .security_group_create_params import SecurityGroupCreateParams as SecurityGroupCreateParams from .security_group_update_params import SecurityGroupUpdateParams as SecurityGroupUpdateParams -from .load_balancer_failover_params import LoadBalancerFailoverParams as LoadBalancerFailoverParams from .load_balancer_listener_detail import LoadBalancerListenerDetail as LoadBalancerListenerDetail from .placement_group_create_params import PlacementGroupCreateParams as PlacementGroupCreateParams from .reserved_fixed_ip_list_params import ReservedFixedIPListParams as ReservedFixedIPListParams diff --git a/src/gcore/types/cloud/load_balancer_create_params.py b/src/gcore/types/cloud/load_balancer_create_params.py index 7a4c3051..a41fd6e4 100644 --- a/src/gcore/types/cloud/load_balancer_create_params.py +++ b/src/gcore/types/cloud/load_balancer_create_params.py @@ -274,7 +274,7 @@ class ListenerPool(TypedDict, total=False): listener_id: Optional[str] """Listener ID""" - loadbalancer_id: Optional[str] + load_balancer_id: Optional[str] """Loadbalancer ID""" members: Optional[Iterable[ListenerPoolMember]] diff --git a/src/gcore/types/cloud/load_balancer_failover_params.py b/src/gcore/types/cloud/load_balancer_failover_params.py deleted file mode 100644 index b4a727a7..00000000 --- a/src/gcore/types/cloud/load_balancer_failover_params.py +++ /dev/null @@ -1,16 +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__ = ["LoadBalancerFailoverParams"] - - -class LoadBalancerFailoverParams(TypedDict, total=False): - project_id: int - - region_id: int - - force: bool - """Validate current load balancer status before failover or not.""" diff --git a/src/gcore/types/cloud/load_balancer_get_params.py b/src/gcore/types/cloud/load_balancer_get_params.py deleted file mode 100644 index 233a6f3e..00000000 --- a/src/gcore/types/cloud/load_balancer_get_params.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_extensions import TypedDict - -__all__ = ["LoadBalancerGetParams"] - - -class LoadBalancerGetParams(TypedDict, total=False): - project_id: int - - region_id: int - - show_stats: bool - """Show statistics""" - - with_ddos: bool - """Show DDoS profile""" diff --git a/src/gcore/types/cloud/load_balancer_listener_detail.py b/src/gcore/types/cloud/load_balancer_listener_detail.py index 41d9a4c6..e230a736 100644 --- a/src/gcore/types/cloud/load_balancer_listener_detail.py +++ b/src/gcore/types/cloud/load_balancer_listener_detail.py @@ -38,7 +38,7 @@ class LoadBalancerListenerDetail(BaseModel): Only used with HTTP and `TERMINATED_HTTPS` protocols. """ - loadbalancer_id: Optional[str] = None + load_balancer_id: Optional[str] = None """Load balancer ID""" name: str diff --git a/src/gcore/types/cloud/load_balancer_metrics.py b/src/gcore/types/cloud/load_balancer_metrics.py deleted file mode 100644 index ffdf6859..00000000 --- a/src/gcore/types/cloud/load_balancer_metrics.py +++ /dev/null @@ -1,32 +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__ = ["LoadBalancerMetrics"] - - -class LoadBalancerMetrics(BaseModel): - cpu_util: Optional[float] = None - """CPU utilization, % (max 100% for multi-core)""" - - memory_util: Optional[float] = None - """RAM utilization, %""" - - network_bps_egress: Optional[float] = FieldInfo(alias="network_Bps_egress", default=None) - """Network out, bytes per second""" - - network_bps_ingress: Optional[float] = FieldInfo(alias="network_Bps_ingress", default=None) - """Network in, bytes per second""" - - network_pps_egress: Optional[float] = None - """Network out, packets per second""" - - network_pps_ingress: Optional[float] = None - """Network in, packets per second""" - - time: Optional[str] = None - """Timestamp""" diff --git a/src/gcore/types/cloud/load_balancer_metrics_list.py b/src/gcore/types/cloud/load_balancer_metrics_list.py deleted file mode 100644 index c270faf1..00000000 --- a/src/gcore/types/cloud/load_balancer_metrics_list.py +++ /dev/null @@ -1,16 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import List - -from ..._models import BaseModel -from .load_balancer_metrics import LoadBalancerMetrics - -__all__ = ["LoadBalancerMetricsList"] - - -class LoadBalancerMetricsList(BaseModel): - count: int - """Number of objects""" - - results: List[LoadBalancerMetrics] - """Objects""" diff --git a/src/gcore/types/cloud/load_balancer_resize_params.py b/src/gcore/types/cloud/load_balancer_resize_params.py deleted file mode 100644 index 05055dfe..00000000 --- a/src/gcore/types/cloud/load_balancer_resize_params.py +++ /dev/null @@ -1,16 +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__ = ["LoadBalancerResizeParams"] - - -class LoadBalancerResizeParams(TypedDict, total=False): - project_id: int - - region_id: int - - flavor: Required[str] - """Name of the desired flavor to resize to.""" diff --git a/src/gcore/types/cloud/load_balancer_update_params.py b/src/gcore/types/cloud/load_balancer_update_params.py deleted file mode 100644 index 0870d49c..00000000 --- a/src/gcore/types/cloud/load_balancer_update_params.py +++ /dev/null @@ -1,69 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Optional -from typing_extensions import TypedDict - -from .tag_update_map_param import TagUpdateMapParam -from .laas_index_retention_policy_param import LaasIndexRetentionPolicyParam -from .load_balancer_member_connectivity import LoadBalancerMemberConnectivity - -__all__ = ["LoadBalancerUpdateParams", "Logging"] - - -class LoadBalancerUpdateParams(TypedDict, total=False): - project_id: int - - region_id: int - - logging: Logging - """Logging configuration""" - - name: str - """Name.""" - - preferred_connectivity: LoadBalancerMemberConnectivity - """ - Preferred option to establish connectivity between load balancer and its pools - members - """ - - tags: Optional[TagUpdateMapParam] - """Update key-value tags using JSON Merge Patch semantics (RFC 7386). - - Provide key-value pairs to add or update tags. Set tag values to `null` to - remove tags. Unspecified tags remain unchanged. Read-only tags are always - preserved and cannot be modified. - - **Examples:** - - - **Add/update tags:** - `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or - updates existing ones. - - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. - - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only - tags are preserved). - - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates - specified tags. - - **Mixed operations:** - `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` - adds/updates 'environment' and '`cost_center`' while removing - '`deprecated_tag`', preserving other existing tags. - - **Replace all:** first delete existing tags with null values, then add new - ones in the same request. - """ - - -class Logging(TypedDict, total=False): - destination_region_id: Optional[int] - """Destination region id to which the logs will be written""" - - enabled: bool - """Enable/disable forwarding logs to LaaS""" - - retention_policy: Optional[LaasIndexRetentionPolicyParam] - """The logs retention policy""" - - topic_name: Optional[str] - """The topic name to which the logs will be written""" diff --git a/src/gcore/types/cloud/load_balancers/__init__.py b/src/gcore/types/cloud/load_balancers/__init__.py index 433f966c..c25ce985 100644 --- a/src/gcore/types/cloud/load_balancers/__init__.py +++ b/src/gcore/types/cloud/load_balancers/__init__.py @@ -4,7 +4,6 @@ from .pool_list_params import PoolListParams as PoolListParams from .flavor_list_params import FlavorListParams as FlavorListParams -from .metric_list_params import MetricListParams as MetricListParams from .pool_create_params import PoolCreateParams as PoolCreateParams from .pool_update_params import PoolUpdateParams as PoolUpdateParams from .listener_get_params import ListenerGetParams as ListenerGetParams diff --git a/src/gcore/types/cloud/load_balancers/listener_create_params.py b/src/gcore/types/cloud/load_balancers/listener_create_params.py index 7f7bf451..c5b6f5e6 100644 --- a/src/gcore/types/cloud/load_balancers/listener_create_params.py +++ b/src/gcore/types/cloud/load_balancers/listener_create_params.py @@ -18,7 +18,7 @@ class ListenerCreateParams(TypedDict, total=False): region_id: int """Region ID""" - loadbalancer_id: Required[str] + load_balancer_id: Required[str] """Load balancer ID""" name: Required[str] diff --git a/src/gcore/types/cloud/load_balancers/listener_list_params.py b/src/gcore/types/cloud/load_balancers/listener_list_params.py index 783d8482..c3e9925f 100644 --- a/src/gcore/types/cloud/load_balancers/listener_list_params.py +++ b/src/gcore/types/cloud/load_balancers/listener_list_params.py @@ -14,7 +14,7 @@ class ListenerListParams(TypedDict, total=False): region_id: int """Region ID""" - loadbalancer_id: str + load_balancer_id: str """Load Balancer ID""" show_stats: bool diff --git a/src/gcore/types/cloud/load_balancers/metric_list_params.py b/src/gcore/types/cloud/load_balancers/metric_list_params.py deleted file mode 100644 index 4af5e414..00000000 --- a/src/gcore/types/cloud/load_balancers/metric_list_params.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 Required, TypedDict - -from ..instance_metrics_time_unit import InstanceMetricsTimeUnit - -__all__ = ["MetricListParams"] - - -class MetricListParams(TypedDict, total=False): - project_id: int - - region_id: int - - time_interval: Required[int] - """Time interval""" - - time_unit: Required[InstanceMetricsTimeUnit] - """Time interval unit""" diff --git a/src/gcore/types/cloud/load_balancers/pool_create_params.py b/src/gcore/types/cloud/load_balancers/pool_create_params.py index b19fb813..492e9640 100644 --- a/src/gcore/types/cloud/load_balancers/pool_create_params.py +++ b/src/gcore/types/cloud/load_balancers/pool_create_params.py @@ -42,7 +42,7 @@ class PoolCreateParams(TypedDict, total=False): listener_id: Optional[str] """Listener ID""" - loadbalancer_id: Optional[str] + load_balancer_id: Optional[str] """Loadbalancer ID""" members: Optional[Iterable[Member]] diff --git a/src/gcore/types/cloud/load_balancers/pool_list_params.py b/src/gcore/types/cloud/load_balancers/pool_list_params.py index 16020665..1cddb97b 100644 --- a/src/gcore/types/cloud/load_balancers/pool_list_params.py +++ b/src/gcore/types/cloud/load_balancers/pool_list_params.py @@ -20,5 +20,5 @@ class PoolListParams(TypedDict, total=False): listener_id: str """Listener ID""" - loadbalancer_id: str + load_balancer_id: str """Load Balancer ID""" diff --git a/tests/api_resources/cloud/load_balancers/test_listeners.py b/tests/api_resources/cloud/load_balancers/test_listeners.py index 2605c9f6..b7228ea5 100644 --- a/tests/api_resources/cloud/load_balancers/test_listeners.py +++ b/tests/api_resources/cloud/load_balancers/test_listeners.py @@ -22,7 +22,7 @@ def test_method_create(self, client: Gcore) -> None: listener = client.cloud.load_balancers.listeners.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -34,7 +34,7 @@ def test_method_create_with_all_params(self, client: Gcore) -> None: listener = client.cloud.load_balancers.listeners.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -60,7 +60,7 @@ def test_raw_response_create(self, client: Gcore) -> None: response = client.cloud.load_balancers.listeners.with_raw_response.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -76,7 +76,7 @@ def test_streaming_response_create(self, client: Gcore) -> None: with client.cloud.load_balancers.listeners.with_streaming_response.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -171,7 +171,7 @@ def test_method_list_with_all_params(self, client: Gcore) -> None: listener = client.cloud.load_balancers.listeners.list( project_id=1, region_id=1, - loadbalancer_id="00000000-0000-4000-8000-000000000000", + load_balancer_id="00000000-0000-4000-8000-000000000000", show_stats=True, ) assert_matches_type(LoadBalancerListenerList, listener, path=["response"]) @@ -315,7 +315,7 @@ async def test_method_create(self, async_client: AsyncGcore) -> None: listener = await async_client.cloud.load_balancers.listeners.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -327,7 +327,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncGcore) -> listener = await async_client.cloud.load_balancers.listeners.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -353,7 +353,7 @@ async def test_raw_response_create(self, async_client: AsyncGcore) -> None: response = await async_client.cloud.load_balancers.listeners.with_raw_response.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -369,7 +369,7 @@ async def test_streaming_response_create(self, async_client: AsyncGcore) -> None async with async_client.cloud.load_balancers.listeners.with_streaming_response.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -464,7 +464,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncGcore) -> No listener = await async_client.cloud.load_balancers.listeners.list( project_id=1, region_id=1, - loadbalancer_id="00000000-0000-4000-8000-000000000000", + load_balancer_id="00000000-0000-4000-8000-000000000000", show_stats=True, ) assert_matches_type(LoadBalancerListenerList, listener, path=["response"]) diff --git a/tests/api_resources/cloud/load_balancers/test_metrics.py b/tests/api_resources/cloud/load_balancers/test_metrics.py deleted file mode 100644 index 39bdefed..00000000 --- a/tests/api_resources/cloud/load_balancers/test_metrics.py +++ /dev/null @@ -1,132 +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, cast - -import pytest - -from gcore import Gcore, AsyncGcore -from tests.utils import assert_matches_type -from gcore.types.cloud import LoadBalancerMetricsList - -base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") - - -class TestMetrics: - parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - - @parametrize - def test_method_list(self, client: Gcore) -> None: - metric = client.cloud.load_balancers.metrics.list( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) - assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) - - @parametrize - def test_raw_response_list(self, client: Gcore) -> None: - response = client.cloud.load_balancers.metrics.with_raw_response.list( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - metric = response.parse() - assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) - - @parametrize - def test_streaming_response_list(self, client: Gcore) -> None: - with client.cloud.load_balancers.metrics.with_streaming_response.list( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - metric = response.parse() - assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_list(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - client.cloud.load_balancers.metrics.with_raw_response.list( - loadbalancer_id="", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) - - -class TestAsyncMetrics: - parametrize = pytest.mark.parametrize( - "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] - ) - - @parametrize - async def test_method_list(self, async_client: AsyncGcore) -> None: - metric = await async_client.cloud.load_balancers.metrics.list( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) - assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) - - @parametrize - async def test_raw_response_list(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.metrics.with_raw_response.list( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - metric = await response.parse() - assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) - - @parametrize - async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.metrics.with_streaming_response.list( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - metric = await response.parse() - assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_list(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - await async_client.cloud.load_balancers.metrics.with_raw_response.list( - loadbalancer_id="", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) diff --git a/tests/api_resources/cloud/load_balancers/test_pools.py b/tests/api_resources/cloud/load_balancers/test_pools.py index f926dcc0..0b095c3d 100644 --- a/tests/api_resources/cloud/load_balancers/test_pools.py +++ b/tests/api_resources/cloud/load_balancers/test_pools.py @@ -49,7 +49,7 @@ def test_method_create_with_all_params(self, client: Gcore) -> None: "url_path": "/", }, listener_id="listener_id", - loadbalancer_id="bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", + load_balancer_id="bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", members=[ { "address": "192.168.1.101", @@ -227,7 +227,7 @@ def test_method_list_with_all_params(self, client: Gcore) -> None: region_id=1, details=True, listener_id="00000000-0000-4000-8000-000000000000", - loadbalancer_id="00000000-0000-4000-8000-000000000000", + load_balancer_id="00000000-0000-4000-8000-000000000000", ) assert_matches_type(LoadBalancerPoolList, pool, path=["response"]) @@ -387,7 +387,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncGcore) -> "url_path": "/", }, listener_id="listener_id", - loadbalancer_id="bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", + load_balancer_id="bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", members=[ { "address": "192.168.1.101", @@ -565,7 +565,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncGcore) -> No region_id=1, details=True, listener_id="00000000-0000-4000-8000-000000000000", - loadbalancer_id="00000000-0000-4000-8000-000000000000", + load_balancer_id="00000000-0000-4000-8000-000000000000", ) assert_matches_type(LoadBalancerPoolList, pool, path=["response"]) diff --git a/tests/api_resources/cloud/load_balancers/test_statuses.py b/tests/api_resources/cloud/load_balancers/test_statuses.py index cf38797d..a9583093 100644 --- a/tests/api_resources/cloud/load_balancers/test_statuses.py +++ b/tests/api_resources/cloud/load_balancers/test_statuses.py @@ -9,7 +9,7 @@ from gcore import Gcore, AsyncGcore from tests.utils import assert_matches_type -from gcore.types.cloud import LoadBalancerStatus, LoadBalancerStatusList +from gcore.types.cloud import LoadBalancerStatusList base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -51,52 +51,6 @@ def test_streaming_response_list(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True - @parametrize - def test_method_get(self, client: Gcore) -> None: - status = client.cloud.load_balancers.statuses.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(LoadBalancerStatus, status, path=["response"]) - - @parametrize - def test_raw_response_get(self, client: Gcore) -> None: - response = client.cloud.load_balancers.statuses.with_raw_response.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - status = response.parse() - assert_matches_type(LoadBalancerStatus, status, path=["response"]) - - @parametrize - def test_streaming_response_get(self, client: Gcore) -> None: - with client.cloud.load_balancers.statuses.with_streaming_response.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - status = response.parse() - assert_matches_type(LoadBalancerStatus, status, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_get(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - client.cloud.load_balancers.statuses.with_raw_response.get( - loadbalancer_id="", - project_id=0, - region_id=0, - ) - class TestAsyncStatuses: parametrize = pytest.mark.parametrize( @@ -136,49 +90,3 @@ async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: assert_matches_type(LoadBalancerStatusList, status, path=["response"]) assert cast(Any, response.is_closed) is True - - @parametrize - async def test_method_get(self, async_client: AsyncGcore) -> None: - status = await async_client.cloud.load_balancers.statuses.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(LoadBalancerStatus, status, path=["response"]) - - @parametrize - async def test_raw_response_get(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.statuses.with_raw_response.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - status = await response.parse() - assert_matches_type(LoadBalancerStatus, status, path=["response"]) - - @parametrize - async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.statuses.with_streaming_response.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - status = await response.parse() - assert_matches_type(LoadBalancerStatus, status, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_get(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - await async_client.cloud.load_balancers.statuses.with_raw_response.get( - loadbalancer_id="", - project_id=0, - region_id=0, - ) diff --git a/tests/api_resources/cloud/test_load_balancers.py b/tests/api_resources/cloud/test_load_balancers.py index 85a8fdb7..d365a629 100644 --- a/tests/api_resources/cloud/test_load_balancers.py +++ b/tests/api_resources/cloud/test_load_balancers.py @@ -65,7 +65,7 @@ def test_method_create_with_all_params(self, client: Gcore) -> None: "url_path": "/", }, "listener_id": "listener_id", - "loadbalancer_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", + "load_balancer_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", "members": [ { "address": "192.168.1.101", @@ -158,70 +158,6 @@ def test_streaming_response_create(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True - @parametrize - def test_method_update(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.update( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - def test_method_update_with_all_params(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.update( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - logging={ - "destination_region_id": 1, - "enabled": True, - "retention_policy": {"period": 45}, - "topic_name": "my-log-name", - }, - name="some_name", - preferred_connectivity="L2", - tags={"foo": "my-tag-value"}, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - def test_raw_response_update(self, client: Gcore) -> None: - response = client.cloud.load_balancers.with_raw_response.update( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - def test_streaming_response_update(self, client: Gcore) -> None: - with client.cloud.load_balancers.with_streaming_response.update( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_update(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - client.cloud.load_balancers.with_raw_response.update( - loadbalancer_id="", - project_id=0, - region_id=0, - ) - @parametrize def test_method_list(self, client: Gcore) -> None: load_balancer = client.cloud.load_balancers.list( @@ -274,215 +210,6 @@ def test_streaming_response_list(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True - @parametrize - def test_method_delete(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.delete( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_raw_response_delete(self, client: Gcore) -> None: - response = client.cloud.load_balancers.with_raw_response.delete( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_streaming_response_delete(self, client: Gcore) -> None: - with client.cloud.load_balancers.with_streaming_response.delete( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_delete(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - client.cloud.load_balancers.with_raw_response.delete( - loadbalancer_id="", - project_id=0, - region_id=0, - ) - - @parametrize - def test_method_failover(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.failover( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_method_failover_with_all_params(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.failover( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - force=True, - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_raw_response_failover(self, client: Gcore) -> None: - response = client.cloud.load_balancers.with_raw_response.failover( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_streaming_response_failover(self, client: Gcore) -> None: - with client.cloud.load_balancers.with_streaming_response.failover( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_failover(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - client.cloud.load_balancers.with_raw_response.failover( - loadbalancer_id="", - project_id=0, - region_id=0, - ) - - @parametrize - def test_method_get(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - def test_method_get_with_all_params(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - show_stats=True, - with_ddos=True, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - def test_raw_response_get(self, client: Gcore) -> None: - response = client.cloud.load_balancers.with_raw_response.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - def test_streaming_response_get(self, client: Gcore) -> None: - with client.cloud.load_balancers.with_streaming_response.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_get(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - client.cloud.load_balancers.with_raw_response.get( - loadbalancer_id="", - project_id=0, - region_id=0, - ) - - @parametrize - def test_method_resize(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.resize( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_raw_response_resize(self, client: Gcore) -> None: - response = client.cloud.load_balancers.with_raw_response.resize( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_streaming_response_resize(self, client: Gcore) -> None: - with client.cloud.load_balancers.with_streaming_response.resize( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_resize(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - client.cloud.load_balancers.with_raw_response.resize( - loadbalancer_id="", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) - class TestAsyncLoadBalancers: parametrize = pytest.mark.parametrize( @@ -533,7 +260,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncGcore) -> "url_path": "/", }, "listener_id": "listener_id", - "loadbalancer_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", + "load_balancer_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", "members": [ { "address": "192.168.1.101", @@ -626,70 +353,6 @@ async def test_streaming_response_create(self, async_client: AsyncGcore) -> None assert cast(Any, response.is_closed) is True - @parametrize - async def test_method_update(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.update( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - async def test_method_update_with_all_params(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.update( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - logging={ - "destination_region_id": 1, - "enabled": True, - "retention_policy": {"period": 45}, - "topic_name": "my-log-name", - }, - name="some_name", - preferred_connectivity="L2", - tags={"foo": "my-tag-value"}, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - async def test_raw_response_update(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.with_raw_response.update( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = await response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - async def test_streaming_response_update(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.with_streaming_response.update( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = await response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_update(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - await async_client.cloud.load_balancers.with_raw_response.update( - loadbalancer_id="", - project_id=0, - region_id=0, - ) - @parametrize async def test_method_list(self, async_client: AsyncGcore) -> None: load_balancer = await async_client.cloud.load_balancers.list( @@ -741,212 +404,3 @@ async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: assert_matches_type(AsyncOffsetPage[LoadBalancer], load_balancer, path=["response"]) assert cast(Any, response.is_closed) is True - - @parametrize - async def test_method_delete(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.delete( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_raw_response_delete(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.with_raw_response.delete( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = await response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_streaming_response_delete(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.with_streaming_response.delete( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = await response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_delete(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - await async_client.cloud.load_balancers.with_raw_response.delete( - loadbalancer_id="", - project_id=0, - region_id=0, - ) - - @parametrize - async def test_method_failover(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.failover( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_method_failover_with_all_params(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.failover( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - force=True, - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_raw_response_failover(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.with_raw_response.failover( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = await response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_streaming_response_failover(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.with_streaming_response.failover( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = await response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_failover(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - await async_client.cloud.load_balancers.with_raw_response.failover( - loadbalancer_id="", - project_id=0, - region_id=0, - ) - - @parametrize - async def test_method_get(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - async def test_method_get_with_all_params(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - show_stats=True, - with_ddos=True, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - async def test_raw_response_get(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.with_raw_response.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = await response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.with_streaming_response.get( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = await response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_get(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - await async_client.cloud.load_balancers.with_raw_response.get( - loadbalancer_id="", - project_id=0, - region_id=0, - ) - - @parametrize - async def test_method_resize(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.resize( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_raw_response_resize(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.with_raw_response.resize( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = await response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_streaming_response_resize(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.with_streaming_response.resize( - loadbalancer_id="loadbalancer_id", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = await response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_resize(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `loadbalancer_id` but received ''"): - await async_client.cloud.load_balancers.with_raw_response.resize( - loadbalancer_id="", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) From ab273aadd364dc22a1fc8538c8b39c916fd002df Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 15:09:13 +0000 Subject: [PATCH 27/38] fix(cloud)!: rename to load_balancer_id path param --- .stats.yml | 4 +- api.md | 12 + .../cloud/load_balancers/__init__.py | 14 + .../cloud/load_balancers/load_balancers.py | 629 +++++++++++++++++- .../resources/cloud/load_balancers/metrics.py | 205 ++++++ .../cloud/load_balancers/statuses.py | 91 +++ src/gcore/types/cloud/__init__.py | 6 + .../cloud/load_balancer_failover_params.py | 16 + .../types/cloud/load_balancer_get_params.py | 19 + .../types/cloud/load_balancer_metrics.py | 32 + .../types/cloud/load_balancer_metrics_list.py | 16 + .../cloud/load_balancer_resize_params.py | 16 + .../cloud/load_balancer_update_params.py | 69 ++ .../types/cloud/load_balancers/__init__.py | 1 + .../load_balancers/metric_list_params.py | 21 + .../cloud/load_balancers/test_metrics.py | 132 ++++ .../cloud/load_balancers/test_statuses.py | 94 ++- .../cloud/test_load_balancers.py | 546 +++++++++++++++ 18 files changed, 1919 insertions(+), 4 deletions(-) create mode 100644 src/gcore/resources/cloud/load_balancers/metrics.py create mode 100644 src/gcore/types/cloud/load_balancer_failover_params.py create mode 100644 src/gcore/types/cloud/load_balancer_get_params.py create mode 100644 src/gcore/types/cloud/load_balancer_metrics.py create mode 100644 src/gcore/types/cloud/load_balancer_metrics_list.py create mode 100644 src/gcore/types/cloud/load_balancer_resize_params.py create mode 100644 src/gcore/types/cloud/load_balancer_update_params.py create mode 100644 src/gcore/types/cloud/load_balancers/metric_list_params.py create mode 100644 tests/api_resources/cloud/load_balancers/test_metrics.py diff --git a/.stats.yml b/.stats.yml index 66e1da4c..d13e0609 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 605 +configured_endpoints: 612 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-94563a57bbb285cfead93d0627bac0731dd32093481327a6328d8e3d678cbc37.yml openapi_spec_hash: 3af9864bebf6795a51b15af60b234510 -config_hash: 6cf02fb49626ee44b56133d941a8ec11 +config_hash: 330219cbf58ba11acb43a8a4424673ac diff --git a/api.md b/api.md index 815e5839..d2b0533c 100644 --- a/api.md +++ b/api.md @@ -210,7 +210,12 @@ from gcore.types.cloud import ( Methods: - client.cloud.load_balancers.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.update(load_balancer_id, \*, project_id, region_id, \*\*params) -> LoadBalancer - client.cloud.load_balancers.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[LoadBalancer] +- client.cloud.load_balancers.delete(load_balancer_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.load_balancers.failover(load_balancer_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.get(load_balancer_id, \*, project_id, region_id, \*\*params) -> LoadBalancer +- client.cloud.load_balancers.resize(load_balancer_id, \*, project_id, region_id, \*\*params) -> TaskIDList ### L7Policies @@ -272,11 +277,18 @@ Methods: - client.cloud.load_balancers.pools.members.add(pool_id, \*, project_id, region_id, \*\*params) -> TaskIDList - client.cloud.load_balancers.pools.members.remove(member_id, \*, project_id, region_id, pool_id) -> TaskIDList +### Metrics + +Methods: + +- client.cloud.load_balancers.metrics.list(load_balancer_id, \*, project_id, region_id, \*\*params) -> LoadBalancerMetricsList + ### Statuses Methods: - client.cloud.load_balancers.statuses.list(\*, project_id, region_id) -> LoadBalancerStatusList +- client.cloud.load_balancers.statuses.get(load_balancer_id, \*, project_id, region_id) -> LoadBalancerStatus ## ReservedFixedIPs diff --git a/src/gcore/resources/cloud/load_balancers/__init__.py b/src/gcore/resources/cloud/load_balancers/__init__.py index cdd5187e..4de45722 100644 --- a/src/gcore/resources/cloud/load_balancers/__init__.py +++ b/src/gcore/resources/cloud/load_balancers/__init__.py @@ -16,6 +16,14 @@ FlavorsResourceWithStreamingResponse, AsyncFlavorsResourceWithStreamingResponse, ) +from .metrics import ( + MetricsResource, + AsyncMetricsResource, + MetricsResourceWithRawResponse, + AsyncMetricsResourceWithRawResponse, + MetricsResourceWithStreamingResponse, + AsyncMetricsResourceWithStreamingResponse, +) from .statuses import ( StatusesResource, AsyncStatusesResource, @@ -74,6 +82,12 @@ "AsyncPoolsResourceWithRawResponse", "PoolsResourceWithStreamingResponse", "AsyncPoolsResourceWithStreamingResponse", + "MetricsResource", + "AsyncMetricsResource", + "MetricsResourceWithRawResponse", + "AsyncMetricsResourceWithRawResponse", + "MetricsResourceWithStreamingResponse", + "AsyncMetricsResourceWithStreamingResponse", "StatusesResource", "AsyncStatusesResource", "StatusesResourceWithRawResponse", diff --git a/src/gcore/resources/cloud/load_balancers/load_balancers.py b/src/gcore/resources/cloud/load_balancers/load_balancers.py index 28eceb67..9916f1e2 100644 --- a/src/gcore/resources/cloud/load_balancers/load_balancers.py +++ b/src/gcore/resources/cloud/load_balancers/load_balancers.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import Dict, Iterable +from typing import Dict, Iterable, Optional import httpx @@ -14,6 +14,14 @@ FlavorsResourceWithStreamingResponse, AsyncFlavorsResourceWithStreamingResponse, ) +from .metrics import ( + MetricsResource, + AsyncMetricsResource, + MetricsResourceWithRawResponse, + AsyncMetricsResourceWithRawResponse, + MetricsResourceWithStreamingResponse, + AsyncMetricsResourceWithStreamingResponse, +) from .statuses import ( StatusesResource, AsyncStatusesResource, @@ -52,8 +60,12 @@ from ....types.cloud import ( InterfaceIPFamily, LoadBalancerMemberConnectivity, + load_balancer_get_params, load_balancer_list_params, load_balancer_create_params, + load_balancer_resize_params, + load_balancer_update_params, + load_balancer_failover_params, ) from ...._base_client import AsyncPaginator, make_request_options from .l7_policies.l7_policies import ( @@ -67,6 +79,7 @@ from ....types.cloud.task_id_list import TaskIDList from ....types.cloud.load_balancer import LoadBalancer from ....types.cloud.interface_ip_family import InterfaceIPFamily +from ....types.cloud.tag_update_map_param import TagUpdateMapParam from ....types.cloud.load_balancer_member_connectivity import LoadBalancerMemberConnectivity __all__ = ["LoadBalancersResource", "AsyncLoadBalancersResource"] @@ -89,6 +102,10 @@ def listeners(self) -> ListenersResource: def pools(self) -> PoolsResource: return PoolsResource(self._client) + @cached_property + def metrics(self) -> MetricsResource: + return MetricsResource(self._client) + @cached_property def statuses(self) -> StatusesResource: return StatusesResource(self._client) @@ -214,6 +231,90 @@ def create( cast_to=TaskIDList, ) + def update( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + logging: load_balancer_update_params.Logging | Omit = omit, + name: str | Omit = omit, + preferred_connectivity: LoadBalancerMemberConnectivity | Omit = omit, + tags: Optional[TagUpdateMapParam] | Omit = omit, + # 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, + ) -> LoadBalancer: + """ + Rename load balancer, activate/deactivate logging, update preferred connectivity + type and/or modify load balancer tags. The request will only process the fields + that are provided in the request body. Any fields that are not included will + remain unchanged. + + Args: + logging: Logging configuration + + name: Name. + + preferred_connectivity: Preferred option to establish connectivity between load balancer and its pools + members + + tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide + key-value pairs to add or update tags. Set tag values to `null` to remove tags. + Unspecified tags remain unchanged. Read-only tags are always preserved and + cannot be modified. + + **Examples:** + + - **Add/update tags:** + `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or + updates existing ones. + - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. + - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only + tags are preserved). + - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates + specified tags. + - **Mixed operations:** + `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` + adds/updates 'environment' and '`cost_center`' while removing + '`deprecated_tag`', preserving other existing tags. + - **Replace all:** first delete existing tags with null values, then add new + ones in the same request. + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._patch( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", + body=maybe_transform( + { + "logging": logging, + "name": name, + "preferred_connectivity": preferred_connectivity, + "tags": tags, + }, + load_balancer_update_params.LoadBalancerUpdateParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=LoadBalancer, + ) + def list( self, *, @@ -488,6 +589,186 @@ def resize_and_poll( timeout=timeout, ) + def delete( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + # 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, + ) -> TaskIDList: + """ + Delete load balancer + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._delete( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskIDList, + ) + + def failover( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + force: bool | Omit = omit, + # 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, + ) -> TaskIDList: + """ + Failover load balancer + + Args: + force: Validate current load balancer status before failover or not. + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._post( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/failover", + body=maybe_transform({"force": force}, load_balancer_failover_params.LoadBalancerFailoverParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskIDList, + ) + + def get( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + show_stats: bool | Omit = omit, + with_ddos: bool | Omit = omit, + # 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, + ) -> LoadBalancer: + """ + Get load balancer + + Args: + show_stats: Show statistics + + with_ddos: Show DDoS profile + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._get( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "show_stats": show_stats, + "with_ddos": with_ddos, + }, + load_balancer_get_params.LoadBalancerGetParams, + ), + ), + cast_to=LoadBalancer, + ) + + def resize( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + flavor: 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, + ) -> TaskIDList: + """ + Resize load balancer + + Args: + flavor: Name of the desired flavor to resize to. + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._post( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/resize", + body=maybe_transform({"flavor": flavor}, load_balancer_resize_params.LoadBalancerResizeParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskIDList, + ) + class AsyncLoadBalancersResource(AsyncAPIResource): @cached_property @@ -506,6 +787,10 @@ def listeners(self) -> AsyncListenersResource: def pools(self) -> AsyncPoolsResource: return AsyncPoolsResource(self._client) + @cached_property + def metrics(self) -> AsyncMetricsResource: + return AsyncMetricsResource(self._client) + @cached_property def statuses(self) -> AsyncStatusesResource: return AsyncStatusesResource(self._client) @@ -631,6 +916,90 @@ async def create( cast_to=TaskIDList, ) + async def update( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + logging: load_balancer_update_params.Logging | Omit = omit, + name: str | Omit = omit, + preferred_connectivity: LoadBalancerMemberConnectivity | Omit = omit, + tags: Optional[TagUpdateMapParam] | Omit = omit, + # 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, + ) -> LoadBalancer: + """ + Rename load balancer, activate/deactivate logging, update preferred connectivity + type and/or modify load balancer tags. The request will only process the fields + that are provided in the request body. Any fields that are not included will + remain unchanged. + + Args: + logging: Logging configuration + + name: Name. + + preferred_connectivity: Preferred option to establish connectivity between load balancer and its pools + members + + tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide + key-value pairs to add or update tags. Set tag values to `null` to remove tags. + Unspecified tags remain unchanged. Read-only tags are always preserved and + cannot be modified. + + **Examples:** + + - **Add/update tags:** + `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or + updates existing ones. + - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. + - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only + tags are preserved). + - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates + specified tags. + - **Mixed operations:** + `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` + adds/updates 'environment' and '`cost_center`' while removing + '`deprecated_tag`', preserving other existing tags. + - **Replace all:** first delete existing tags with null values, then add new + ones in the same request. + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._patch( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", + body=await async_maybe_transform( + { + "logging": logging, + "name": name, + "preferred_connectivity": preferred_connectivity, + "tags": tags, + }, + load_balancer_update_params.LoadBalancerUpdateParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=LoadBalancer, + ) + def list( self, *, @@ -905,6 +1274,188 @@ async def resize_and_poll( timeout=timeout, ) + async def delete( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + # 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, + ) -> TaskIDList: + """ + Delete load balancer + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._delete( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskIDList, + ) + + async def failover( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + force: bool | Omit = omit, + # 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, + ) -> TaskIDList: + """ + Failover load balancer + + Args: + force: Validate current load balancer status before failover or not. + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._post( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/failover", + body=await async_maybe_transform( + {"force": force}, load_balancer_failover_params.LoadBalancerFailoverParams + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskIDList, + ) + + async def get( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + show_stats: bool | Omit = omit, + with_ddos: bool | Omit = omit, + # 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, + ) -> LoadBalancer: + """ + Get load balancer + + Args: + show_stats: Show statistics + + with_ddos: Show DDoS profile + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._get( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=await async_maybe_transform( + { + "show_stats": show_stats, + "with_ddos": with_ddos, + }, + load_balancer_get_params.LoadBalancerGetParams, + ), + ), + cast_to=LoadBalancer, + ) + + async def resize( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + flavor: 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, + ) -> TaskIDList: + """ + Resize load balancer + + Args: + flavor: Name of the desired flavor to resize to. + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._post( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/resize", + body=await async_maybe_transform({"flavor": flavor}, load_balancer_resize_params.LoadBalancerResizeParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskIDList, + ) + class LoadBalancersResourceWithRawResponse: def __init__(self, load_balancers: LoadBalancersResource) -> None: @@ -913,9 +1464,24 @@ def __init__(self, load_balancers: LoadBalancersResource) -> None: self.create = to_raw_response_wrapper( load_balancers.create, ) + self.update = to_raw_response_wrapper( + load_balancers.update, + ) self.list = to_raw_response_wrapper( load_balancers.list, ) + self.delete = to_raw_response_wrapper( + load_balancers.delete, + ) + self.failover = to_raw_response_wrapper( + load_balancers.failover, + ) + self.get = to_raw_response_wrapper( + load_balancers.get, + ) + self.resize = to_raw_response_wrapper( + load_balancers.resize, + ) @cached_property def l7_policies(self) -> L7PoliciesResourceWithRawResponse: @@ -933,6 +1499,10 @@ def listeners(self) -> ListenersResourceWithRawResponse: def pools(self) -> PoolsResourceWithRawResponse: return PoolsResourceWithRawResponse(self._load_balancers.pools) + @cached_property + def metrics(self) -> MetricsResourceWithRawResponse: + return MetricsResourceWithRawResponse(self._load_balancers.metrics) + @cached_property def statuses(self) -> StatusesResourceWithRawResponse: return StatusesResourceWithRawResponse(self._load_balancers.statuses) @@ -945,9 +1515,24 @@ def __init__(self, load_balancers: AsyncLoadBalancersResource) -> None: self.create = async_to_raw_response_wrapper( load_balancers.create, ) + self.update = async_to_raw_response_wrapper( + load_balancers.update, + ) self.list = async_to_raw_response_wrapper( load_balancers.list, ) + self.delete = async_to_raw_response_wrapper( + load_balancers.delete, + ) + self.failover = async_to_raw_response_wrapper( + load_balancers.failover, + ) + self.get = async_to_raw_response_wrapper( + load_balancers.get, + ) + self.resize = async_to_raw_response_wrapper( + load_balancers.resize, + ) @cached_property def l7_policies(self) -> AsyncL7PoliciesResourceWithRawResponse: @@ -965,6 +1550,10 @@ def listeners(self) -> AsyncListenersResourceWithRawResponse: def pools(self) -> AsyncPoolsResourceWithRawResponse: return AsyncPoolsResourceWithRawResponse(self._load_balancers.pools) + @cached_property + def metrics(self) -> AsyncMetricsResourceWithRawResponse: + return AsyncMetricsResourceWithRawResponse(self._load_balancers.metrics) + @cached_property def statuses(self) -> AsyncStatusesResourceWithRawResponse: return AsyncStatusesResourceWithRawResponse(self._load_balancers.statuses) @@ -977,9 +1566,24 @@ def __init__(self, load_balancers: LoadBalancersResource) -> None: self.create = to_streamed_response_wrapper( load_balancers.create, ) + self.update = to_streamed_response_wrapper( + load_balancers.update, + ) self.list = to_streamed_response_wrapper( load_balancers.list, ) + self.delete = to_streamed_response_wrapper( + load_balancers.delete, + ) + self.failover = to_streamed_response_wrapper( + load_balancers.failover, + ) + self.get = to_streamed_response_wrapper( + load_balancers.get, + ) + self.resize = to_streamed_response_wrapper( + load_balancers.resize, + ) @cached_property def l7_policies(self) -> L7PoliciesResourceWithStreamingResponse: @@ -997,6 +1601,10 @@ def listeners(self) -> ListenersResourceWithStreamingResponse: def pools(self) -> PoolsResourceWithStreamingResponse: return PoolsResourceWithStreamingResponse(self._load_balancers.pools) + @cached_property + def metrics(self) -> MetricsResourceWithStreamingResponse: + return MetricsResourceWithStreamingResponse(self._load_balancers.metrics) + @cached_property def statuses(self) -> StatusesResourceWithStreamingResponse: return StatusesResourceWithStreamingResponse(self._load_balancers.statuses) @@ -1009,9 +1617,24 @@ def __init__(self, load_balancers: AsyncLoadBalancersResource) -> None: self.create = async_to_streamed_response_wrapper( load_balancers.create, ) + self.update = async_to_streamed_response_wrapper( + load_balancers.update, + ) self.list = async_to_streamed_response_wrapper( load_balancers.list, ) + self.delete = async_to_streamed_response_wrapper( + load_balancers.delete, + ) + self.failover = async_to_streamed_response_wrapper( + load_balancers.failover, + ) + self.get = async_to_streamed_response_wrapper( + load_balancers.get, + ) + self.resize = async_to_streamed_response_wrapper( + load_balancers.resize, + ) @cached_property def l7_policies(self) -> AsyncL7PoliciesResourceWithStreamingResponse: @@ -1029,6 +1652,10 @@ def listeners(self) -> AsyncListenersResourceWithStreamingResponse: def pools(self) -> AsyncPoolsResourceWithStreamingResponse: return AsyncPoolsResourceWithStreamingResponse(self._load_balancers.pools) + @cached_property + def metrics(self) -> AsyncMetricsResourceWithStreamingResponse: + return AsyncMetricsResourceWithStreamingResponse(self._load_balancers.metrics) + @cached_property def statuses(self) -> AsyncStatusesResourceWithStreamingResponse: return AsyncStatusesResourceWithStreamingResponse(self._load_balancers.statuses) diff --git a/src/gcore/resources/cloud/load_balancers/metrics.py b/src/gcore/resources/cloud/load_balancers/metrics.py new file mode 100644 index 00000000..e7647609 --- /dev/null +++ b/src/gcore/resources/cloud/load_balancers/metrics.py @@ -0,0 +1,205 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import httpx + +from ...._types import Body, Query, Headers, NotGiven, not_given +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 ....types.cloud import InstanceMetricsTimeUnit +from ...._base_client import make_request_options +from ....types.cloud.load_balancers import metric_list_params +from ....types.cloud.instance_metrics_time_unit import InstanceMetricsTimeUnit +from ....types.cloud.load_balancer_metrics_list import LoadBalancerMetricsList + +__all__ = ["MetricsResource", "AsyncMetricsResource"] + + +class MetricsResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> MetricsResourceWithRawResponse: + """ + 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/G-Core/gcore-python#accessing-raw-response-data-eg-headers + """ + return MetricsResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> MetricsResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response + """ + return MetricsResourceWithStreamingResponse(self) + + def list( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + time_interval: int, + time_unit: InstanceMetricsTimeUnit, + # 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, + ) -> LoadBalancerMetricsList: + """ + Get load balancer metrics, including cpu, memory and network + + Args: + time_interval: Time interval + + time_unit: Time interval unit + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._post( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/metrics", + body=maybe_transform( + { + "time_interval": time_interval, + "time_unit": time_unit, + }, + metric_list_params.MetricListParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=LoadBalancerMetricsList, + ) + + +class AsyncMetricsResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncMetricsResourceWithRawResponse: + """ + 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/G-Core/gcore-python#accessing-raw-response-data-eg-headers + """ + return AsyncMetricsResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncMetricsResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response + """ + return AsyncMetricsResourceWithStreamingResponse(self) + + async def list( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + time_interval: int, + time_unit: InstanceMetricsTimeUnit, + # 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, + ) -> LoadBalancerMetricsList: + """ + Get load balancer metrics, including cpu, memory and network + + Args: + time_interval: Time interval + + time_unit: Time interval unit + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._post( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/metrics", + body=await async_maybe_transform( + { + "time_interval": time_interval, + "time_unit": time_unit, + }, + metric_list_params.MetricListParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=LoadBalancerMetricsList, + ) + + +class MetricsResourceWithRawResponse: + def __init__(self, metrics: MetricsResource) -> None: + self._metrics = metrics + + self.list = to_raw_response_wrapper( + metrics.list, + ) + + +class AsyncMetricsResourceWithRawResponse: + def __init__(self, metrics: AsyncMetricsResource) -> None: + self._metrics = metrics + + self.list = async_to_raw_response_wrapper( + metrics.list, + ) + + +class MetricsResourceWithStreamingResponse: + def __init__(self, metrics: MetricsResource) -> None: + self._metrics = metrics + + self.list = to_streamed_response_wrapper( + metrics.list, + ) + + +class AsyncMetricsResourceWithStreamingResponse: + def __init__(self, metrics: AsyncMetricsResource) -> None: + self._metrics = metrics + + self.list = async_to_streamed_response_wrapper( + metrics.list, + ) diff --git a/src/gcore/resources/cloud/load_balancers/statuses.py b/src/gcore/resources/cloud/load_balancers/statuses.py index 7270e2a8..e537b073 100644 --- a/src/gcore/resources/cloud/load_balancers/statuses.py +++ b/src/gcore/resources/cloud/load_balancers/statuses.py @@ -14,6 +14,7 @@ async_to_streamed_response_wrapper, ) from ...._base_client import make_request_options +from ....types.cloud.load_balancer_status import LoadBalancerStatus from ....types.cloud.load_balancer_status_list import LoadBalancerStatusList __all__ = ["StatusesResource", "AsyncStatusesResource"] @@ -75,6 +76,45 @@ def list( cast_to=LoadBalancerStatusList, ) + def get( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + # 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, + ) -> LoadBalancerStatus: + """ + Get load balancer status + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._get( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/status", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=LoadBalancerStatus, + ) + class AsyncStatusesResource(AsyncAPIResource): @cached_property @@ -132,6 +172,45 @@ async def list( cast_to=LoadBalancerStatusList, ) + async def get( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + # 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, + ) -> LoadBalancerStatus: + """ + Get load balancer status + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._get( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/status", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=LoadBalancerStatus, + ) + class StatusesResourceWithRawResponse: def __init__(self, statuses: StatusesResource) -> None: @@ -140,6 +219,9 @@ def __init__(self, statuses: StatusesResource) -> None: self.list = to_raw_response_wrapper( statuses.list, ) + self.get = to_raw_response_wrapper( + statuses.get, + ) class AsyncStatusesResourceWithRawResponse: @@ -149,6 +231,9 @@ def __init__(self, statuses: AsyncStatusesResource) -> None: self.list = async_to_raw_response_wrapper( statuses.list, ) + self.get = async_to_raw_response_wrapper( + statuses.get, + ) class StatusesResourceWithStreamingResponse: @@ -158,6 +243,9 @@ def __init__(self, statuses: StatusesResource) -> None: self.list = to_streamed_response_wrapper( statuses.list, ) + self.get = to_streamed_response_wrapper( + statuses.get, + ) class AsyncStatusesResourceWithStreamingResponse: @@ -167,3 +255,6 @@ def __init__(self, statuses: AsyncStatusesResource) -> None: self.list = async_to_streamed_response_wrapper( statuses.list, ) + self.get = async_to_streamed_response_wrapper( + statuses.get, + ) diff --git a/src/gcore/types/cloud/__init__.py b/src/gcore/types/cloud/__init__.py index e7f5de17..96c25d07 100644 --- a/src/gcore/types/cloud/__init__.py +++ b/src/gcore/types/cloud/__init__.py @@ -90,6 +90,7 @@ from .gpu_baremetal_cluster import GPUBaremetalCluster as GPUBaremetalCluster from .health_monitor_status import HealthMonitorStatus as HealthMonitorStatus from .load_balancer_l7_rule import LoadBalancerL7Rule as LoadBalancerL7Rule +from .load_balancer_metrics import LoadBalancerMetrics as LoadBalancerMetrics from .network_create_params import NetworkCreateParams as NetworkCreateParams from .network_update_params import NetworkUpdateParams as NetworkUpdateParams from .project_create_params import ProjectCreateParams as ProjectCreateParams @@ -117,6 +118,7 @@ from .file_share_resize_params import FileShareResizeParams as FileShareResizeParams from .file_share_update_params import FileShareUpdateParams as FileShareUpdateParams from .k8s_cluster_version_list import K8sClusterVersionList as K8sClusterVersionList +from .load_balancer_get_params import LoadBalancerGetParams as LoadBalancerGetParams from .load_balancer_statistics import LoadBalancerStatistics as LoadBalancerStatistics from .floating_ip_assign_params import FloatingIPAssignParams as FloatingIPAssignParams from .floating_ip_create_params import FloatingIPCreateParams as FloatingIPCreateParams @@ -129,6 +131,7 @@ from .volume_change_type_params import VolumeChangeTypeParams as VolumeChangeTypeParams from .instance_metrics_time_unit import InstanceMetricsTimeUnit as InstanceMetricsTimeUnit from .load_balancer_l7_rule_list import LoadBalancerL7RuleList as LoadBalancerL7RuleList +from .load_balancer_metrics_list import LoadBalancerMetricsList as LoadBalancerMetricsList from .security_group_copy_params import SecurityGroupCopyParams as SecurityGroupCopyParams from .security_group_list_params import SecurityGroupListParams as SecurityGroupListParams from .ddos_profile_template_field import DDOSProfileTemplateField as DDOSProfileTemplateField @@ -140,11 +143,14 @@ from .load_balancer_flavor_detail import LoadBalancerFlavorDetail as LoadBalancerFlavorDetail from .load_balancer_instance_role import LoadBalancerInstanceRole as LoadBalancerInstanceRole from .load_balancer_listener_list import LoadBalancerListenerList as LoadBalancerListenerList +from .load_balancer_resize_params import LoadBalancerResizeParams as LoadBalancerResizeParams +from .load_balancer_update_params import LoadBalancerUpdateParams as LoadBalancerUpdateParams from .task_acknowledge_all_params import TaskAcknowledgeAllParams as TaskAcknowledgeAllParams from .load_balancer_l7_policy_list import LoadBalancerL7PolicyList as LoadBalancerL7PolicyList from .quota_get_by_region_response import QuotaGetByRegionResponse as QuotaGetByRegionResponse from .security_group_create_params import SecurityGroupCreateParams as SecurityGroupCreateParams from .security_group_update_params import SecurityGroupUpdateParams as SecurityGroupUpdateParams +from .load_balancer_failover_params import LoadBalancerFailoverParams as LoadBalancerFailoverParams from .load_balancer_listener_detail import LoadBalancerListenerDetail as LoadBalancerListenerDetail from .placement_group_create_params import PlacementGroupCreateParams as PlacementGroupCreateParams from .reserved_fixed_ip_list_params import ReservedFixedIPListParams as ReservedFixedIPListParams diff --git a/src/gcore/types/cloud/load_balancer_failover_params.py b/src/gcore/types/cloud/load_balancer_failover_params.py new file mode 100644 index 00000000..b4a727a7 --- /dev/null +++ b/src/gcore/types/cloud/load_balancer_failover_params.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["LoadBalancerFailoverParams"] + + +class LoadBalancerFailoverParams(TypedDict, total=False): + project_id: int + + region_id: int + + force: bool + """Validate current load balancer status before failover or not.""" diff --git a/src/gcore/types/cloud/load_balancer_get_params.py b/src/gcore/types/cloud/load_balancer_get_params.py new file mode 100644 index 00000000..233a6f3e --- /dev/null +++ b/src/gcore/types/cloud/load_balancer_get_params.py @@ -0,0 +1,19 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["LoadBalancerGetParams"] + + +class LoadBalancerGetParams(TypedDict, total=False): + project_id: int + + region_id: int + + show_stats: bool + """Show statistics""" + + with_ddos: bool + """Show DDoS profile""" diff --git a/src/gcore/types/cloud/load_balancer_metrics.py b/src/gcore/types/cloud/load_balancer_metrics.py new file mode 100644 index 00000000..ffdf6859 --- /dev/null +++ b/src/gcore/types/cloud/load_balancer_metrics.py @@ -0,0 +1,32 @@ +# 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__ = ["LoadBalancerMetrics"] + + +class LoadBalancerMetrics(BaseModel): + cpu_util: Optional[float] = None + """CPU utilization, % (max 100% for multi-core)""" + + memory_util: Optional[float] = None + """RAM utilization, %""" + + network_bps_egress: Optional[float] = FieldInfo(alias="network_Bps_egress", default=None) + """Network out, bytes per second""" + + network_bps_ingress: Optional[float] = FieldInfo(alias="network_Bps_ingress", default=None) + """Network in, bytes per second""" + + network_pps_egress: Optional[float] = None + """Network out, packets per second""" + + network_pps_ingress: Optional[float] = None + """Network in, packets per second""" + + time: Optional[str] = None + """Timestamp""" diff --git a/src/gcore/types/cloud/load_balancer_metrics_list.py b/src/gcore/types/cloud/load_balancer_metrics_list.py new file mode 100644 index 00000000..c270faf1 --- /dev/null +++ b/src/gcore/types/cloud/load_balancer_metrics_list.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List + +from ..._models import BaseModel +from .load_balancer_metrics import LoadBalancerMetrics + +__all__ = ["LoadBalancerMetricsList"] + + +class LoadBalancerMetricsList(BaseModel): + count: int + """Number of objects""" + + results: List[LoadBalancerMetrics] + """Objects""" diff --git a/src/gcore/types/cloud/load_balancer_resize_params.py b/src/gcore/types/cloud/load_balancer_resize_params.py new file mode 100644 index 00000000..05055dfe --- /dev/null +++ b/src/gcore/types/cloud/load_balancer_resize_params.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["LoadBalancerResizeParams"] + + +class LoadBalancerResizeParams(TypedDict, total=False): + project_id: int + + region_id: int + + flavor: Required[str] + """Name of the desired flavor to resize to.""" diff --git a/src/gcore/types/cloud/load_balancer_update_params.py b/src/gcore/types/cloud/load_balancer_update_params.py new file mode 100644 index 00000000..0870d49c --- /dev/null +++ b/src/gcore/types/cloud/load_balancer_update_params.py @@ -0,0 +1,69 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Optional +from typing_extensions import TypedDict + +from .tag_update_map_param import TagUpdateMapParam +from .laas_index_retention_policy_param import LaasIndexRetentionPolicyParam +from .load_balancer_member_connectivity import LoadBalancerMemberConnectivity + +__all__ = ["LoadBalancerUpdateParams", "Logging"] + + +class LoadBalancerUpdateParams(TypedDict, total=False): + project_id: int + + region_id: int + + logging: Logging + """Logging configuration""" + + name: str + """Name.""" + + preferred_connectivity: LoadBalancerMemberConnectivity + """ + Preferred option to establish connectivity between load balancer and its pools + members + """ + + tags: Optional[TagUpdateMapParam] + """Update key-value tags using JSON Merge Patch semantics (RFC 7386). + + Provide key-value pairs to add or update tags. Set tag values to `null` to + remove tags. Unspecified tags remain unchanged. Read-only tags are always + preserved and cannot be modified. + + **Examples:** + + - **Add/update tags:** + `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or + updates existing ones. + - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. + - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only + tags are preserved). + - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates + specified tags. + - **Mixed operations:** + `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` + adds/updates 'environment' and '`cost_center`' while removing + '`deprecated_tag`', preserving other existing tags. + - **Replace all:** first delete existing tags with null values, then add new + ones in the same request. + """ + + +class Logging(TypedDict, total=False): + destination_region_id: Optional[int] + """Destination region id to which the logs will be written""" + + enabled: bool + """Enable/disable forwarding logs to LaaS""" + + retention_policy: Optional[LaasIndexRetentionPolicyParam] + """The logs retention policy""" + + topic_name: Optional[str] + """The topic name to which the logs will be written""" diff --git a/src/gcore/types/cloud/load_balancers/__init__.py b/src/gcore/types/cloud/load_balancers/__init__.py index c25ce985..433f966c 100644 --- a/src/gcore/types/cloud/load_balancers/__init__.py +++ b/src/gcore/types/cloud/load_balancers/__init__.py @@ -4,6 +4,7 @@ from .pool_list_params import PoolListParams as PoolListParams from .flavor_list_params import FlavorListParams as FlavorListParams +from .metric_list_params import MetricListParams as MetricListParams from .pool_create_params import PoolCreateParams as PoolCreateParams from .pool_update_params import PoolUpdateParams as PoolUpdateParams from .listener_get_params import ListenerGetParams as ListenerGetParams diff --git a/src/gcore/types/cloud/load_balancers/metric_list_params.py b/src/gcore/types/cloud/load_balancers/metric_list_params.py new file mode 100644 index 00000000..4af5e414 --- /dev/null +++ b/src/gcore/types/cloud/load_balancers/metric_list_params.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 Required, TypedDict + +from ..instance_metrics_time_unit import InstanceMetricsTimeUnit + +__all__ = ["MetricListParams"] + + +class MetricListParams(TypedDict, total=False): + project_id: int + + region_id: int + + time_interval: Required[int] + """Time interval""" + + time_unit: Required[InstanceMetricsTimeUnit] + """Time interval unit""" diff --git a/tests/api_resources/cloud/load_balancers/test_metrics.py b/tests/api_resources/cloud/load_balancers/test_metrics.py new file mode 100644 index 00000000..281f1d68 --- /dev/null +++ b/tests/api_resources/cloud/load_balancers/test_metrics.py @@ -0,0 +1,132 @@ +# 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 gcore import Gcore, AsyncGcore +from tests.utils import assert_matches_type +from gcore.types.cloud import LoadBalancerMetricsList + +base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") + + +class TestMetrics: + parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + def test_method_list(self, client: Gcore) -> None: + metric = client.cloud.load_balancers.metrics.list( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) + assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) + + @parametrize + def test_raw_response_list(self, client: Gcore) -> None: + response = client.cloud.load_balancers.metrics.with_raw_response.list( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + metric = response.parse() + assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) + + @parametrize + def test_streaming_response_list(self, client: Gcore) -> None: + with client.cloud.load_balancers.metrics.with_streaming_response.list( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + metric = response.parse() + assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_list(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.metrics.with_raw_response.list( + load_balancer_id="", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) + + +class TestAsyncMetrics: + parametrize = pytest.mark.parametrize( + "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] + ) + + @parametrize + async def test_method_list(self, async_client: AsyncGcore) -> None: + metric = await async_client.cloud.load_balancers.metrics.list( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) + assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) + + @parametrize + async def test_raw_response_list(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.metrics.with_raw_response.list( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + metric = await response.parse() + assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) + + @parametrize + async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.metrics.with_streaming_response.list( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + metric = await response.parse() + assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_list(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.metrics.with_raw_response.list( + load_balancer_id="", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) diff --git a/tests/api_resources/cloud/load_balancers/test_statuses.py b/tests/api_resources/cloud/load_balancers/test_statuses.py index a9583093..da7e88cb 100644 --- a/tests/api_resources/cloud/load_balancers/test_statuses.py +++ b/tests/api_resources/cloud/load_balancers/test_statuses.py @@ -9,7 +9,7 @@ from gcore import Gcore, AsyncGcore from tests.utils import assert_matches_type -from gcore.types.cloud import LoadBalancerStatusList +from gcore.types.cloud import LoadBalancerStatus, LoadBalancerStatusList base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -51,6 +51,52 @@ def test_streaming_response_list(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True + @parametrize + def test_method_get(self, client: Gcore) -> None: + status = client.cloud.load_balancers.statuses.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(LoadBalancerStatus, status, path=["response"]) + + @parametrize + def test_raw_response_get(self, client: Gcore) -> None: + response = client.cloud.load_balancers.statuses.with_raw_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + status = response.parse() + assert_matches_type(LoadBalancerStatus, status, path=["response"]) + + @parametrize + def test_streaming_response_get(self, client: Gcore) -> None: + with client.cloud.load_balancers.statuses.with_streaming_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + status = response.parse() + assert_matches_type(LoadBalancerStatus, status, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_get(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.statuses.with_raw_response.get( + load_balancer_id="", + project_id=0, + region_id=0, + ) + class TestAsyncStatuses: parametrize = pytest.mark.parametrize( @@ -90,3 +136,49 @@ async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: assert_matches_type(LoadBalancerStatusList, status, path=["response"]) assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_get(self, async_client: AsyncGcore) -> None: + status = await async_client.cloud.load_balancers.statuses.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(LoadBalancerStatus, status, path=["response"]) + + @parametrize + async def test_raw_response_get(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.statuses.with_raw_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + status = await response.parse() + assert_matches_type(LoadBalancerStatus, status, path=["response"]) + + @parametrize + async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.statuses.with_streaming_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + status = await response.parse() + assert_matches_type(LoadBalancerStatus, status, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_get(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.statuses.with_raw_response.get( + load_balancer_id="", + project_id=0, + region_id=0, + ) diff --git a/tests/api_resources/cloud/test_load_balancers.py b/tests/api_resources/cloud/test_load_balancers.py index d365a629..faf824ef 100644 --- a/tests/api_resources/cloud/test_load_balancers.py +++ b/tests/api_resources/cloud/test_load_balancers.py @@ -158,6 +158,70 @@ def test_streaming_response_create(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True + @parametrize + def test_method_update(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + def test_method_update_with_all_params(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + logging={ + "destination_region_id": 1, + "enabled": True, + "retention_policy": {"period": 45}, + "topic_name": "my-log-name", + }, + name="some_name", + preferred_connectivity="L2", + tags={"foo": "my-tag-value"}, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + def test_raw_response_update(self, client: Gcore) -> None: + response = client.cloud.load_balancers.with_raw_response.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + def test_streaming_response_update(self, client: Gcore) -> None: + with client.cloud.load_balancers.with_streaming_response.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_update(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.with_raw_response.update( + load_balancer_id="", + project_id=0, + region_id=0, + ) + @parametrize def test_method_list(self, client: Gcore) -> None: load_balancer = client.cloud.load_balancers.list( @@ -210,6 +274,215 @@ def test_streaming_response_list(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True + @parametrize + def test_method_delete(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.delete( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_raw_response_delete(self, client: Gcore) -> None: + response = client.cloud.load_balancers.with_raw_response.delete( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_streaming_response_delete(self, client: Gcore) -> None: + with client.cloud.load_balancers.with_streaming_response.delete( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_delete(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.with_raw_response.delete( + load_balancer_id="", + project_id=0, + region_id=0, + ) + + @parametrize + def test_method_failover(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_method_failover_with_all_params(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + force=True, + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_raw_response_failover(self, client: Gcore) -> None: + response = client.cloud.load_balancers.with_raw_response.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_streaming_response_failover(self, client: Gcore) -> None: + with client.cloud.load_balancers.with_streaming_response.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_failover(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.with_raw_response.failover( + load_balancer_id="", + project_id=0, + region_id=0, + ) + + @parametrize + def test_method_get(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + def test_method_get_with_all_params(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + show_stats=True, + with_ddos=True, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + def test_raw_response_get(self, client: Gcore) -> None: + response = client.cloud.load_balancers.with_raw_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + def test_streaming_response_get(self, client: Gcore) -> None: + with client.cloud.load_balancers.with_streaming_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_get(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.with_raw_response.get( + load_balancer_id="", + project_id=0, + region_id=0, + ) + + @parametrize + def test_method_resize(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.resize( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_raw_response_resize(self, client: Gcore) -> None: + response = client.cloud.load_balancers.with_raw_response.resize( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_streaming_response_resize(self, client: Gcore) -> None: + with client.cloud.load_balancers.with_streaming_response.resize( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_resize(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.with_raw_response.resize( + load_balancer_id="", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) + class TestAsyncLoadBalancers: parametrize = pytest.mark.parametrize( @@ -353,6 +626,70 @@ async def test_streaming_response_create(self, async_client: AsyncGcore) -> None assert cast(Any, response.is_closed) is True + @parametrize + async def test_method_update(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + async def test_method_update_with_all_params(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + logging={ + "destination_region_id": 1, + "enabled": True, + "retention_policy": {"period": 45}, + "topic_name": "my-log-name", + }, + name="some_name", + preferred_connectivity="L2", + tags={"foo": "my-tag-value"}, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + async def test_raw_response_update(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.with_raw_response.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = await response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + async def test_streaming_response_update(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.with_streaming_response.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = await response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_update(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.with_raw_response.update( + load_balancer_id="", + project_id=0, + region_id=0, + ) + @parametrize async def test_method_list(self, async_client: AsyncGcore) -> None: load_balancer = await async_client.cloud.load_balancers.list( @@ -404,3 +741,212 @@ async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: assert_matches_type(AsyncOffsetPage[LoadBalancer], load_balancer, path=["response"]) assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_delete(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.delete( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_raw_response_delete(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.with_raw_response.delete( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = await response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_streaming_response_delete(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.with_streaming_response.delete( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = await response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_delete(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.with_raw_response.delete( + load_balancer_id="", + project_id=0, + region_id=0, + ) + + @parametrize + async def test_method_failover(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_method_failover_with_all_params(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + force=True, + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_raw_response_failover(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.with_raw_response.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = await response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_streaming_response_failover(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.with_streaming_response.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = await response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_failover(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.with_raw_response.failover( + load_balancer_id="", + project_id=0, + region_id=0, + ) + + @parametrize + async def test_method_get(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + async def test_method_get_with_all_params(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + show_stats=True, + with_ddos=True, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + async def test_raw_response_get(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.with_raw_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = await response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.with_streaming_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = await response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_get(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.with_raw_response.get( + load_balancer_id="", + project_id=0, + region_id=0, + ) + + @parametrize + async def test_method_resize(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.resize( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_raw_response_resize(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.with_raw_response.resize( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = await response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_streaming_response_resize(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.with_streaming_response.resize( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = await response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_resize(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.with_raw_response.resize( + load_balancer_id="", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) From 4705d2f9608b267b763671fd61cb712b1d962af7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 15:18:30 +0000 Subject: [PATCH 28/38] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index d13e0609..6631141a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-94563a57bbb285cfead93d0627bac0731dd32093481327a6328d8e3d678cbc37.yml openapi_spec_hash: 3af9864bebf6795a51b15af60b234510 -config_hash: 330219cbf58ba11acb43a8a4424673ac +config_hash: 15cb59d432f38477e728fcd4a41c3ecd From 0c3df8e1330f518b13457f5a3db8e7fcf963ea42 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 21:09:38 +0000 Subject: [PATCH 29/38] feat(cloude): remove cloud_lbmember name --- .stats.yml | 8 +- api.md | 12 - .../cloud/load_balancers/__init__.py | 14 - .../cloud/load_balancers/listeners.py | 24 +- .../cloud/load_balancers/load_balancers.py | 629 +----------------- .../resources/cloud/load_balancers/metrics.py | 205 ------ .../cloud/load_balancers/pools/pools.py | 24 +- .../cloud/load_balancers/statuses.py | 91 --- src/gcore/types/cloud/__init__.py | 6 - .../cloud/load_balancer_create_params.py | 2 +- .../cloud/load_balancer_failover_params.py | 16 - .../types/cloud/load_balancer_get_params.py | 19 - .../cloud/load_balancer_listener_detail.py | 2 +- .../types/cloud/load_balancer_metrics.py | 32 - .../types/cloud/load_balancer_metrics_list.py | 16 - .../cloud/load_balancer_resize_params.py | 16 - .../cloud/load_balancer_update_params.py | 69 -- .../types/cloud/load_balancers/__init__.py | 1 - .../load_balancers/listener_create_params.py | 2 +- .../load_balancers/listener_list_params.py | 2 +- .../load_balancers/metric_list_params.py | 21 - .../load_balancers/pool_create_params.py | 2 +- .../cloud/load_balancers/pool_list_params.py | 2 +- .../cloud/load_balancers/test_listeners.py | 20 +- .../cloud/load_balancers/test_metrics.py | 132 ---- .../cloud/load_balancers/test_pools.py | 8 +- .../cloud/load_balancers/test_statuses.py | 94 +-- .../cloud/test_load_balancers.py | 550 +-------------- 28 files changed, 52 insertions(+), 1967 deletions(-) delete mode 100644 src/gcore/resources/cloud/load_balancers/metrics.py delete mode 100644 src/gcore/types/cloud/load_balancer_failover_params.py delete mode 100644 src/gcore/types/cloud/load_balancer_get_params.py delete mode 100644 src/gcore/types/cloud/load_balancer_metrics.py delete mode 100644 src/gcore/types/cloud/load_balancer_metrics_list.py delete mode 100644 src/gcore/types/cloud/load_balancer_resize_params.py delete mode 100644 src/gcore/types/cloud/load_balancer_update_params.py delete mode 100644 src/gcore/types/cloud/load_balancers/metric_list_params.py delete mode 100644 tests/api_resources/cloud/load_balancers/test_metrics.py diff --git a/.stats.yml b/.stats.yml index 6631141a..4c39159a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-94563a57bbb285cfead93d0627bac0731dd32093481327a6328d8e3d678cbc37.yml -openapi_spec_hash: 3af9864bebf6795a51b15af60b234510 -config_hash: 15cb59d432f38477e728fcd4a41c3ecd +configured_endpoints: 605 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-9f065df469027bcaa0bd19a36a0f8f132271e837c4cb058f27f3c5c740298797.yml +openapi_spec_hash: 844a27c7d8957769e1fb98965f9f1df0 +config_hash: 16325d713dde8c8d722ff7890df2a16a diff --git a/api.md b/api.md index d2b0533c..815e5839 100644 --- a/api.md +++ b/api.md @@ -210,12 +210,7 @@ from gcore.types.cloud import ( Methods: - client.cloud.load_balancers.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.update(load_balancer_id, \*, project_id, region_id, \*\*params) -> LoadBalancer - client.cloud.load_balancers.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[LoadBalancer] -- client.cloud.load_balancers.delete(load_balancer_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.load_balancers.failover(load_balancer_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.get(load_balancer_id, \*, project_id, region_id, \*\*params) -> LoadBalancer -- client.cloud.load_balancers.resize(load_balancer_id, \*, project_id, region_id, \*\*params) -> TaskIDList ### L7Policies @@ -277,18 +272,11 @@ Methods: - client.cloud.load_balancers.pools.members.add(pool_id, \*, project_id, region_id, \*\*params) -> TaskIDList - client.cloud.load_balancers.pools.members.remove(member_id, \*, project_id, region_id, pool_id) -> TaskIDList -### Metrics - -Methods: - -- client.cloud.load_balancers.metrics.list(load_balancer_id, \*, project_id, region_id, \*\*params) -> LoadBalancerMetricsList - ### Statuses Methods: - client.cloud.load_balancers.statuses.list(\*, project_id, region_id) -> LoadBalancerStatusList -- client.cloud.load_balancers.statuses.get(load_balancer_id, \*, project_id, region_id) -> LoadBalancerStatus ## ReservedFixedIPs diff --git a/src/gcore/resources/cloud/load_balancers/__init__.py b/src/gcore/resources/cloud/load_balancers/__init__.py index 4de45722..cdd5187e 100644 --- a/src/gcore/resources/cloud/load_balancers/__init__.py +++ b/src/gcore/resources/cloud/load_balancers/__init__.py @@ -16,14 +16,6 @@ FlavorsResourceWithStreamingResponse, AsyncFlavorsResourceWithStreamingResponse, ) -from .metrics import ( - MetricsResource, - AsyncMetricsResource, - MetricsResourceWithRawResponse, - AsyncMetricsResourceWithRawResponse, - MetricsResourceWithStreamingResponse, - AsyncMetricsResourceWithStreamingResponse, -) from .statuses import ( StatusesResource, AsyncStatusesResource, @@ -82,12 +74,6 @@ "AsyncPoolsResourceWithRawResponse", "PoolsResourceWithStreamingResponse", "AsyncPoolsResourceWithStreamingResponse", - "MetricsResource", - "AsyncMetricsResource", - "MetricsResourceWithRawResponse", - "AsyncMetricsResourceWithRawResponse", - "MetricsResourceWithStreamingResponse", - "AsyncMetricsResourceWithStreamingResponse", "StatusesResource", "AsyncStatusesResource", "StatusesResourceWithRawResponse", diff --git a/src/gcore/resources/cloud/load_balancers/listeners.py b/src/gcore/resources/cloud/load_balancers/listeners.py index eabc4c83..dff543de 100644 --- a/src/gcore/resources/cloud/load_balancers/listeners.py +++ b/src/gcore/resources/cloud/load_balancers/listeners.py @@ -57,7 +57,7 @@ def create( *, project_id: int | None = None, region_id: int | None = None, - load_balancer_id: str, + loadbalancer_id: str, name: str, protocol: LbListenerProtocol, protocol_port: int, @@ -85,7 +85,7 @@ def create( region_id: Region ID - load_balancer_id: Load balancer ID + loadbalancer_id: Load balancer ID name: Load balancer listener name @@ -130,7 +130,7 @@ def create( f"/cloud/v1/lblisteners/{project_id}/{region_id}", body=maybe_transform( { - "load_balancer_id": load_balancer_id, + "loadbalancer_id": loadbalancer_id, "name": name, "protocol": protocol, "protocol_port": protocol_port, @@ -245,7 +245,7 @@ def list( *, project_id: int | None = None, region_id: int | None = None, - load_balancer_id: str | Omit = omit, + loadbalancer_id: str | Omit = omit, show_stats: bool | Omit = omit, # 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. @@ -262,7 +262,7 @@ def list( region_id: Region ID - load_balancer_id: Load Balancer ID + loadbalancer_id: Load Balancer ID show_stats: Show stats @@ -287,7 +287,7 @@ def list( timeout=timeout, query=maybe_transform( { - "load_balancer_id": load_balancer_id, + "loadbalancer_id": loadbalancer_id, "show_stats": show_stats, }, listener_list_params.ListenerListParams, @@ -580,7 +580,7 @@ async def create( *, project_id: int | None = None, region_id: int | None = None, - load_balancer_id: str, + loadbalancer_id: str, name: str, protocol: LbListenerProtocol, protocol_port: int, @@ -608,7 +608,7 @@ async def create( region_id: Region ID - load_balancer_id: Load balancer ID + loadbalancer_id: Load balancer ID name: Load balancer listener name @@ -653,7 +653,7 @@ async def create( f"/cloud/v1/lblisteners/{project_id}/{region_id}", body=await async_maybe_transform( { - "load_balancer_id": load_balancer_id, + "loadbalancer_id": loadbalancer_id, "name": name, "protocol": protocol, "protocol_port": protocol_port, @@ -768,7 +768,7 @@ async def list( *, project_id: int | None = None, region_id: int | None = None, - load_balancer_id: str | Omit = omit, + loadbalancer_id: str | Omit = omit, show_stats: bool | Omit = omit, # 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. @@ -785,7 +785,7 @@ async def list( region_id: Region ID - load_balancer_id: Load Balancer ID + loadbalancer_id: Load Balancer ID show_stats: Show stats @@ -810,7 +810,7 @@ async def list( timeout=timeout, query=await async_maybe_transform( { - "load_balancer_id": load_balancer_id, + "loadbalancer_id": loadbalancer_id, "show_stats": show_stats, }, listener_list_params.ListenerListParams, diff --git a/src/gcore/resources/cloud/load_balancers/load_balancers.py b/src/gcore/resources/cloud/load_balancers/load_balancers.py index 9916f1e2..28eceb67 100644 --- a/src/gcore/resources/cloud/load_balancers/load_balancers.py +++ b/src/gcore/resources/cloud/load_balancers/load_balancers.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import Dict, Iterable, Optional +from typing import Dict, Iterable import httpx @@ -14,14 +14,6 @@ FlavorsResourceWithStreamingResponse, AsyncFlavorsResourceWithStreamingResponse, ) -from .metrics import ( - MetricsResource, - AsyncMetricsResource, - MetricsResourceWithRawResponse, - AsyncMetricsResourceWithRawResponse, - MetricsResourceWithStreamingResponse, - AsyncMetricsResourceWithStreamingResponse, -) from .statuses import ( StatusesResource, AsyncStatusesResource, @@ -60,12 +52,8 @@ from ....types.cloud import ( InterfaceIPFamily, LoadBalancerMemberConnectivity, - load_balancer_get_params, load_balancer_list_params, load_balancer_create_params, - load_balancer_resize_params, - load_balancer_update_params, - load_balancer_failover_params, ) from ...._base_client import AsyncPaginator, make_request_options from .l7_policies.l7_policies import ( @@ -79,7 +67,6 @@ from ....types.cloud.task_id_list import TaskIDList from ....types.cloud.load_balancer import LoadBalancer from ....types.cloud.interface_ip_family import InterfaceIPFamily -from ....types.cloud.tag_update_map_param import TagUpdateMapParam from ....types.cloud.load_balancer_member_connectivity import LoadBalancerMemberConnectivity __all__ = ["LoadBalancersResource", "AsyncLoadBalancersResource"] @@ -102,10 +89,6 @@ def listeners(self) -> ListenersResource: def pools(self) -> PoolsResource: return PoolsResource(self._client) - @cached_property - def metrics(self) -> MetricsResource: - return MetricsResource(self._client) - @cached_property def statuses(self) -> StatusesResource: return StatusesResource(self._client) @@ -231,90 +214,6 @@ def create( cast_to=TaskIDList, ) - def update( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - logging: load_balancer_update_params.Logging | Omit = omit, - name: str | Omit = omit, - preferred_connectivity: LoadBalancerMemberConnectivity | Omit = omit, - tags: Optional[TagUpdateMapParam] | Omit = omit, - # 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, - ) -> LoadBalancer: - """ - Rename load balancer, activate/deactivate logging, update preferred connectivity - type and/or modify load balancer tags. The request will only process the fields - that are provided in the request body. Any fields that are not included will - remain unchanged. - - Args: - logging: Logging configuration - - name: Name. - - preferred_connectivity: Preferred option to establish connectivity between load balancer and its pools - members - - tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide - key-value pairs to add or update tags. Set tag values to `null` to remove tags. - Unspecified tags remain unchanged. Read-only tags are always preserved and - cannot be modified. - - **Examples:** - - - **Add/update tags:** - `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or - updates existing ones. - - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. - - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only - tags are preserved). - - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates - specified tags. - - **Mixed operations:** - `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` - adds/updates 'environment' and '`cost_center`' while removing - '`deprecated_tag`', preserving other existing tags. - - **Replace all:** first delete existing tags with null values, then add new - ones in the same request. - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return self._patch( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", - body=maybe_transform( - { - "logging": logging, - "name": name, - "preferred_connectivity": preferred_connectivity, - "tags": tags, - }, - load_balancer_update_params.LoadBalancerUpdateParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LoadBalancer, - ) - def list( self, *, @@ -589,186 +488,6 @@ def resize_and_poll( timeout=timeout, ) - def delete( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - # 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, - ) -> TaskIDList: - """ - Delete load balancer - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return self._delete( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=TaskIDList, - ) - - def failover( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - force: bool | Omit = omit, - # 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, - ) -> TaskIDList: - """ - Failover load balancer - - Args: - force: Validate current load balancer status before failover or not. - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/failover", - body=maybe_transform({"force": force}, load_balancer_failover_params.LoadBalancerFailoverParams), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=TaskIDList, - ) - - def get( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - show_stats: bool | Omit = omit, - with_ddos: bool | Omit = omit, - # 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, - ) -> LoadBalancer: - """ - Get load balancer - - Args: - show_stats: Show statistics - - with_ddos: Show DDoS profile - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - query=maybe_transform( - { - "show_stats": show_stats, - "with_ddos": with_ddos, - }, - load_balancer_get_params.LoadBalancerGetParams, - ), - ), - cast_to=LoadBalancer, - ) - - def resize( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - flavor: 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, - ) -> TaskIDList: - """ - Resize load balancer - - Args: - flavor: Name of the desired flavor to resize to. - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/resize", - body=maybe_transform({"flavor": flavor}, load_balancer_resize_params.LoadBalancerResizeParams), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=TaskIDList, - ) - class AsyncLoadBalancersResource(AsyncAPIResource): @cached_property @@ -787,10 +506,6 @@ def listeners(self) -> AsyncListenersResource: def pools(self) -> AsyncPoolsResource: return AsyncPoolsResource(self._client) - @cached_property - def metrics(self) -> AsyncMetricsResource: - return AsyncMetricsResource(self._client) - @cached_property def statuses(self) -> AsyncStatusesResource: return AsyncStatusesResource(self._client) @@ -916,90 +631,6 @@ async def create( cast_to=TaskIDList, ) - async def update( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - logging: load_balancer_update_params.Logging | Omit = omit, - name: str | Omit = omit, - preferred_connectivity: LoadBalancerMemberConnectivity | Omit = omit, - tags: Optional[TagUpdateMapParam] | Omit = omit, - # 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, - ) -> LoadBalancer: - """ - Rename load balancer, activate/deactivate logging, update preferred connectivity - type and/or modify load balancer tags. The request will only process the fields - that are provided in the request body. Any fields that are not included will - remain unchanged. - - Args: - logging: Logging configuration - - name: Name. - - preferred_connectivity: Preferred option to establish connectivity between load balancer and its pools - members - - tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide - key-value pairs to add or update tags. Set tag values to `null` to remove tags. - Unspecified tags remain unchanged. Read-only tags are always preserved and - cannot be modified. - - **Examples:** - - - **Add/update tags:** - `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or - updates existing ones. - - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. - - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only - tags are preserved). - - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates - specified tags. - - **Mixed operations:** - `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` - adds/updates 'environment' and '`cost_center`' while removing - '`deprecated_tag`', preserving other existing tags. - - **Replace all:** first delete existing tags with null values, then add new - ones in the same request. - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return await self._patch( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", - body=await async_maybe_transform( - { - "logging": logging, - "name": name, - "preferred_connectivity": preferred_connectivity, - "tags": tags, - }, - load_balancer_update_params.LoadBalancerUpdateParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LoadBalancer, - ) - def list( self, *, @@ -1274,188 +905,6 @@ async def resize_and_poll( timeout=timeout, ) - async def delete( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - # 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, - ) -> TaskIDList: - """ - Delete load balancer - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return await self._delete( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=TaskIDList, - ) - - async def failover( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - force: bool | Omit = omit, - # 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, - ) -> TaskIDList: - """ - Failover load balancer - - Args: - force: Validate current load balancer status before failover or not. - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return await self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/failover", - body=await async_maybe_transform( - {"force": force}, load_balancer_failover_params.LoadBalancerFailoverParams - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=TaskIDList, - ) - - async def get( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - show_stats: bool | Omit = omit, - with_ddos: bool | Omit = omit, - # 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, - ) -> LoadBalancer: - """ - Get load balancer - - Args: - show_stats: Show statistics - - with_ddos: Show DDoS profile - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return await self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", - options=make_request_options( - extra_headers=extra_headers, - extra_query=extra_query, - extra_body=extra_body, - timeout=timeout, - query=await async_maybe_transform( - { - "show_stats": show_stats, - "with_ddos": with_ddos, - }, - load_balancer_get_params.LoadBalancerGetParams, - ), - ), - cast_to=LoadBalancer, - ) - - async def resize( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - flavor: 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, - ) -> TaskIDList: - """ - Resize load balancer - - Args: - flavor: Name of the desired flavor to resize to. - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return await self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/resize", - body=await async_maybe_transform({"flavor": flavor}, load_balancer_resize_params.LoadBalancerResizeParams), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=TaskIDList, - ) - class LoadBalancersResourceWithRawResponse: def __init__(self, load_balancers: LoadBalancersResource) -> None: @@ -1464,24 +913,9 @@ def __init__(self, load_balancers: LoadBalancersResource) -> None: self.create = to_raw_response_wrapper( load_balancers.create, ) - self.update = to_raw_response_wrapper( - load_balancers.update, - ) self.list = to_raw_response_wrapper( load_balancers.list, ) - self.delete = to_raw_response_wrapper( - load_balancers.delete, - ) - self.failover = to_raw_response_wrapper( - load_balancers.failover, - ) - self.get = to_raw_response_wrapper( - load_balancers.get, - ) - self.resize = to_raw_response_wrapper( - load_balancers.resize, - ) @cached_property def l7_policies(self) -> L7PoliciesResourceWithRawResponse: @@ -1499,10 +933,6 @@ def listeners(self) -> ListenersResourceWithRawResponse: def pools(self) -> PoolsResourceWithRawResponse: return PoolsResourceWithRawResponse(self._load_balancers.pools) - @cached_property - def metrics(self) -> MetricsResourceWithRawResponse: - return MetricsResourceWithRawResponse(self._load_balancers.metrics) - @cached_property def statuses(self) -> StatusesResourceWithRawResponse: return StatusesResourceWithRawResponse(self._load_balancers.statuses) @@ -1515,24 +945,9 @@ def __init__(self, load_balancers: AsyncLoadBalancersResource) -> None: self.create = async_to_raw_response_wrapper( load_balancers.create, ) - self.update = async_to_raw_response_wrapper( - load_balancers.update, - ) self.list = async_to_raw_response_wrapper( load_balancers.list, ) - self.delete = async_to_raw_response_wrapper( - load_balancers.delete, - ) - self.failover = async_to_raw_response_wrapper( - load_balancers.failover, - ) - self.get = async_to_raw_response_wrapper( - load_balancers.get, - ) - self.resize = async_to_raw_response_wrapper( - load_balancers.resize, - ) @cached_property def l7_policies(self) -> AsyncL7PoliciesResourceWithRawResponse: @@ -1550,10 +965,6 @@ def listeners(self) -> AsyncListenersResourceWithRawResponse: def pools(self) -> AsyncPoolsResourceWithRawResponse: return AsyncPoolsResourceWithRawResponse(self._load_balancers.pools) - @cached_property - def metrics(self) -> AsyncMetricsResourceWithRawResponse: - return AsyncMetricsResourceWithRawResponse(self._load_balancers.metrics) - @cached_property def statuses(self) -> AsyncStatusesResourceWithRawResponse: return AsyncStatusesResourceWithRawResponse(self._load_balancers.statuses) @@ -1566,24 +977,9 @@ def __init__(self, load_balancers: LoadBalancersResource) -> None: self.create = to_streamed_response_wrapper( load_balancers.create, ) - self.update = to_streamed_response_wrapper( - load_balancers.update, - ) self.list = to_streamed_response_wrapper( load_balancers.list, ) - self.delete = to_streamed_response_wrapper( - load_balancers.delete, - ) - self.failover = to_streamed_response_wrapper( - load_balancers.failover, - ) - self.get = to_streamed_response_wrapper( - load_balancers.get, - ) - self.resize = to_streamed_response_wrapper( - load_balancers.resize, - ) @cached_property def l7_policies(self) -> L7PoliciesResourceWithStreamingResponse: @@ -1601,10 +997,6 @@ def listeners(self) -> ListenersResourceWithStreamingResponse: def pools(self) -> PoolsResourceWithStreamingResponse: return PoolsResourceWithStreamingResponse(self._load_balancers.pools) - @cached_property - def metrics(self) -> MetricsResourceWithStreamingResponse: - return MetricsResourceWithStreamingResponse(self._load_balancers.metrics) - @cached_property def statuses(self) -> StatusesResourceWithStreamingResponse: return StatusesResourceWithStreamingResponse(self._load_balancers.statuses) @@ -1617,24 +1009,9 @@ def __init__(self, load_balancers: AsyncLoadBalancersResource) -> None: self.create = async_to_streamed_response_wrapper( load_balancers.create, ) - self.update = async_to_streamed_response_wrapper( - load_balancers.update, - ) self.list = async_to_streamed_response_wrapper( load_balancers.list, ) - self.delete = async_to_streamed_response_wrapper( - load_balancers.delete, - ) - self.failover = async_to_streamed_response_wrapper( - load_balancers.failover, - ) - self.get = async_to_streamed_response_wrapper( - load_balancers.get, - ) - self.resize = async_to_streamed_response_wrapper( - load_balancers.resize, - ) @cached_property def l7_policies(self) -> AsyncL7PoliciesResourceWithStreamingResponse: @@ -1652,10 +1029,6 @@ def listeners(self) -> AsyncListenersResourceWithStreamingResponse: def pools(self) -> AsyncPoolsResourceWithStreamingResponse: return AsyncPoolsResourceWithStreamingResponse(self._load_balancers.pools) - @cached_property - def metrics(self) -> AsyncMetricsResourceWithStreamingResponse: - return AsyncMetricsResourceWithStreamingResponse(self._load_balancers.metrics) - @cached_property def statuses(self) -> AsyncStatusesResourceWithStreamingResponse: return AsyncStatusesResourceWithStreamingResponse(self._load_balancers.statuses) diff --git a/src/gcore/resources/cloud/load_balancers/metrics.py b/src/gcore/resources/cloud/load_balancers/metrics.py deleted file mode 100644 index e7647609..00000000 --- a/src/gcore/resources/cloud/load_balancers/metrics.py +++ /dev/null @@ -1,205 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -import httpx - -from ...._types import Body, Query, Headers, NotGiven, not_given -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 ....types.cloud import InstanceMetricsTimeUnit -from ...._base_client import make_request_options -from ....types.cloud.load_balancers import metric_list_params -from ....types.cloud.instance_metrics_time_unit import InstanceMetricsTimeUnit -from ....types.cloud.load_balancer_metrics_list import LoadBalancerMetricsList - -__all__ = ["MetricsResource", "AsyncMetricsResource"] - - -class MetricsResource(SyncAPIResource): - @cached_property - def with_raw_response(self) -> MetricsResourceWithRawResponse: - """ - 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/G-Core/gcore-python#accessing-raw-response-data-eg-headers - """ - return MetricsResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> MetricsResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response - """ - return MetricsResourceWithStreamingResponse(self) - - def list( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - time_interval: int, - time_unit: InstanceMetricsTimeUnit, - # 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, - ) -> LoadBalancerMetricsList: - """ - Get load balancer metrics, including cpu, memory and network - - Args: - time_interval: Time interval - - time_unit: Time interval unit - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/metrics", - body=maybe_transform( - { - "time_interval": time_interval, - "time_unit": time_unit, - }, - metric_list_params.MetricListParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LoadBalancerMetricsList, - ) - - -class AsyncMetricsResource(AsyncAPIResource): - @cached_property - def with_raw_response(self) -> AsyncMetricsResourceWithRawResponse: - """ - 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/G-Core/gcore-python#accessing-raw-response-data-eg-headers - """ - return AsyncMetricsResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> AsyncMetricsResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response - """ - return AsyncMetricsResourceWithStreamingResponse(self) - - async def list( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - time_interval: int, - time_unit: InstanceMetricsTimeUnit, - # 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, - ) -> LoadBalancerMetricsList: - """ - Get load balancer metrics, including cpu, memory and network - - Args: - time_interval: Time interval - - time_unit: Time interval unit - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return await self._post( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/metrics", - body=await async_maybe_transform( - { - "time_interval": time_interval, - "time_unit": time_unit, - }, - metric_list_params.MetricListParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LoadBalancerMetricsList, - ) - - -class MetricsResourceWithRawResponse: - def __init__(self, metrics: MetricsResource) -> None: - self._metrics = metrics - - self.list = to_raw_response_wrapper( - metrics.list, - ) - - -class AsyncMetricsResourceWithRawResponse: - def __init__(self, metrics: AsyncMetricsResource) -> None: - self._metrics = metrics - - self.list = async_to_raw_response_wrapper( - metrics.list, - ) - - -class MetricsResourceWithStreamingResponse: - def __init__(self, metrics: MetricsResource) -> None: - self._metrics = metrics - - self.list = to_streamed_response_wrapper( - metrics.list, - ) - - -class AsyncMetricsResourceWithStreamingResponse: - def __init__(self, metrics: AsyncMetricsResource) -> None: - self._metrics = metrics - - self.list = async_to_streamed_response_wrapper( - metrics.list, - ) diff --git a/src/gcore/resources/cloud/load_balancers/pools/pools.py b/src/gcore/resources/cloud/load_balancers/pools/pools.py index e2ae0c5a..18e7807a 100644 --- a/src/gcore/resources/cloud/load_balancers/pools/pools.py +++ b/src/gcore/resources/cloud/load_balancers/pools/pools.py @@ -84,7 +84,7 @@ def create( crl_secret_id: Optional[str] | Omit = omit, healthmonitor: Optional[pool_create_params.Healthmonitor] | Omit = omit, listener_id: Optional[str] | Omit = omit, - load_balancer_id: Optional[str] | Omit = omit, + loadbalancer_id: Optional[str] | Omit = omit, members: Optional[Iterable[pool_create_params.Member]] | Omit = omit, secret_id: Optional[str] | Omit = omit, session_persistence: Optional[pool_create_params.SessionPersistence] | Omit = omit, @@ -120,7 +120,7 @@ def create( listener_id: Listener ID - load_balancer_id: Loadbalancer ID + loadbalancer_id: Loadbalancer ID members: Pool members @@ -157,7 +157,7 @@ def create( "crl_secret_id": crl_secret_id, "healthmonitor": healthmonitor, "listener_id": listener_id, - "load_balancer_id": load_balancer_id, + "loadbalancer_id": loadbalancer_id, "members": members, "secret_id": secret_id, "session_persistence": session_persistence, @@ -296,7 +296,7 @@ def list( region_id: int | None = None, details: bool | Omit = omit, listener_id: str | Omit = omit, - load_balancer_id: str | Omit = omit, + loadbalancer_id: str | Omit = omit, # 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, @@ -316,7 +316,7 @@ def list( listener_id: Listener ID - load_balancer_id: Load Balancer ID + loadbalancer_id: Load Balancer ID extra_headers: Send extra headers @@ -341,7 +341,7 @@ def list( { "details": details, "listener_id": listener_id, - "load_balancer_id": load_balancer_id, + "loadbalancer_id": loadbalancer_id, }, pool_list_params.PoolListParams, ), @@ -645,7 +645,7 @@ async def create( crl_secret_id: Optional[str] | Omit = omit, healthmonitor: Optional[pool_create_params.Healthmonitor] | Omit = omit, listener_id: Optional[str] | Omit = omit, - load_balancer_id: Optional[str] | Omit = omit, + loadbalancer_id: Optional[str] | Omit = omit, members: Optional[Iterable[pool_create_params.Member]] | Omit = omit, secret_id: Optional[str] | Omit = omit, session_persistence: Optional[pool_create_params.SessionPersistence] | Omit = omit, @@ -681,7 +681,7 @@ async def create( listener_id: Listener ID - load_balancer_id: Loadbalancer ID + loadbalancer_id: Loadbalancer ID members: Pool members @@ -718,7 +718,7 @@ async def create( "crl_secret_id": crl_secret_id, "healthmonitor": healthmonitor, "listener_id": listener_id, - "load_balancer_id": load_balancer_id, + "loadbalancer_id": loadbalancer_id, "members": members, "secret_id": secret_id, "session_persistence": session_persistence, @@ -857,7 +857,7 @@ async def list( region_id: int | None = None, details: bool | Omit = omit, listener_id: str | Omit = omit, - load_balancer_id: str | Omit = omit, + loadbalancer_id: str | Omit = omit, # 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, @@ -877,7 +877,7 @@ async def list( listener_id: Listener ID - load_balancer_id: Load Balancer ID + loadbalancer_id: Load Balancer ID extra_headers: Send extra headers @@ -902,7 +902,7 @@ async def list( { "details": details, "listener_id": listener_id, - "load_balancer_id": load_balancer_id, + "loadbalancer_id": loadbalancer_id, }, pool_list_params.PoolListParams, ), diff --git a/src/gcore/resources/cloud/load_balancers/statuses.py b/src/gcore/resources/cloud/load_balancers/statuses.py index e537b073..7270e2a8 100644 --- a/src/gcore/resources/cloud/load_balancers/statuses.py +++ b/src/gcore/resources/cloud/load_balancers/statuses.py @@ -14,7 +14,6 @@ async_to_streamed_response_wrapper, ) from ...._base_client import make_request_options -from ....types.cloud.load_balancer_status import LoadBalancerStatus from ....types.cloud.load_balancer_status_list import LoadBalancerStatusList __all__ = ["StatusesResource", "AsyncStatusesResource"] @@ -76,45 +75,6 @@ def list( cast_to=LoadBalancerStatusList, ) - def get( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - # 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, - ) -> LoadBalancerStatus: - """ - Get load balancer status - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/status", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LoadBalancerStatus, - ) - class AsyncStatusesResource(AsyncAPIResource): @cached_property @@ -172,45 +132,6 @@ async def list( cast_to=LoadBalancerStatusList, ) - async def get( - self, - load_balancer_id: str, - *, - project_id: int | None = None, - region_id: int | None = None, - # 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, - ) -> LoadBalancerStatus: - """ - Get load balancer status - - 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 project_id is None: - project_id = self._client._get_cloud_project_id_path_param() - if region_id is None: - region_id = self._client._get_cloud_region_id_path_param() - if not load_balancer_id: - raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") - return await self._get( - f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/status", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LoadBalancerStatus, - ) - class StatusesResourceWithRawResponse: def __init__(self, statuses: StatusesResource) -> None: @@ -219,9 +140,6 @@ def __init__(self, statuses: StatusesResource) -> None: self.list = to_raw_response_wrapper( statuses.list, ) - self.get = to_raw_response_wrapper( - statuses.get, - ) class AsyncStatusesResourceWithRawResponse: @@ -231,9 +149,6 @@ def __init__(self, statuses: AsyncStatusesResource) -> None: self.list = async_to_raw_response_wrapper( statuses.list, ) - self.get = async_to_raw_response_wrapper( - statuses.get, - ) class StatusesResourceWithStreamingResponse: @@ -243,9 +158,6 @@ def __init__(self, statuses: StatusesResource) -> None: self.list = to_streamed_response_wrapper( statuses.list, ) - self.get = to_streamed_response_wrapper( - statuses.get, - ) class AsyncStatusesResourceWithStreamingResponse: @@ -255,6 +167,3 @@ def __init__(self, statuses: AsyncStatusesResource) -> None: self.list = async_to_streamed_response_wrapper( statuses.list, ) - self.get = async_to_streamed_response_wrapper( - statuses.get, - ) diff --git a/src/gcore/types/cloud/__init__.py b/src/gcore/types/cloud/__init__.py index 96c25d07..e7f5de17 100644 --- a/src/gcore/types/cloud/__init__.py +++ b/src/gcore/types/cloud/__init__.py @@ -90,7 +90,6 @@ from .gpu_baremetal_cluster import GPUBaremetalCluster as GPUBaremetalCluster from .health_monitor_status import HealthMonitorStatus as HealthMonitorStatus from .load_balancer_l7_rule import LoadBalancerL7Rule as LoadBalancerL7Rule -from .load_balancer_metrics import LoadBalancerMetrics as LoadBalancerMetrics from .network_create_params import NetworkCreateParams as NetworkCreateParams from .network_update_params import NetworkUpdateParams as NetworkUpdateParams from .project_create_params import ProjectCreateParams as ProjectCreateParams @@ -118,7 +117,6 @@ from .file_share_resize_params import FileShareResizeParams as FileShareResizeParams from .file_share_update_params import FileShareUpdateParams as FileShareUpdateParams from .k8s_cluster_version_list import K8sClusterVersionList as K8sClusterVersionList -from .load_balancer_get_params import LoadBalancerGetParams as LoadBalancerGetParams from .load_balancer_statistics import LoadBalancerStatistics as LoadBalancerStatistics from .floating_ip_assign_params import FloatingIPAssignParams as FloatingIPAssignParams from .floating_ip_create_params import FloatingIPCreateParams as FloatingIPCreateParams @@ -131,7 +129,6 @@ from .volume_change_type_params import VolumeChangeTypeParams as VolumeChangeTypeParams from .instance_metrics_time_unit import InstanceMetricsTimeUnit as InstanceMetricsTimeUnit from .load_balancer_l7_rule_list import LoadBalancerL7RuleList as LoadBalancerL7RuleList -from .load_balancer_metrics_list import LoadBalancerMetricsList as LoadBalancerMetricsList from .security_group_copy_params import SecurityGroupCopyParams as SecurityGroupCopyParams from .security_group_list_params import SecurityGroupListParams as SecurityGroupListParams from .ddos_profile_template_field import DDOSProfileTemplateField as DDOSProfileTemplateField @@ -143,14 +140,11 @@ from .load_balancer_flavor_detail import LoadBalancerFlavorDetail as LoadBalancerFlavorDetail from .load_balancer_instance_role import LoadBalancerInstanceRole as LoadBalancerInstanceRole from .load_balancer_listener_list import LoadBalancerListenerList as LoadBalancerListenerList -from .load_balancer_resize_params import LoadBalancerResizeParams as LoadBalancerResizeParams -from .load_balancer_update_params import LoadBalancerUpdateParams as LoadBalancerUpdateParams from .task_acknowledge_all_params import TaskAcknowledgeAllParams as TaskAcknowledgeAllParams from .load_balancer_l7_policy_list import LoadBalancerL7PolicyList as LoadBalancerL7PolicyList from .quota_get_by_region_response import QuotaGetByRegionResponse as QuotaGetByRegionResponse from .security_group_create_params import SecurityGroupCreateParams as SecurityGroupCreateParams from .security_group_update_params import SecurityGroupUpdateParams as SecurityGroupUpdateParams -from .load_balancer_failover_params import LoadBalancerFailoverParams as LoadBalancerFailoverParams from .load_balancer_listener_detail import LoadBalancerListenerDetail as LoadBalancerListenerDetail from .placement_group_create_params import PlacementGroupCreateParams as PlacementGroupCreateParams from .reserved_fixed_ip_list_params import ReservedFixedIPListParams as ReservedFixedIPListParams diff --git a/src/gcore/types/cloud/load_balancer_create_params.py b/src/gcore/types/cloud/load_balancer_create_params.py index a41fd6e4..7a4c3051 100644 --- a/src/gcore/types/cloud/load_balancer_create_params.py +++ b/src/gcore/types/cloud/load_balancer_create_params.py @@ -274,7 +274,7 @@ class ListenerPool(TypedDict, total=False): listener_id: Optional[str] """Listener ID""" - load_balancer_id: Optional[str] + loadbalancer_id: Optional[str] """Loadbalancer ID""" members: Optional[Iterable[ListenerPoolMember]] diff --git a/src/gcore/types/cloud/load_balancer_failover_params.py b/src/gcore/types/cloud/load_balancer_failover_params.py deleted file mode 100644 index b4a727a7..00000000 --- a/src/gcore/types/cloud/load_balancer_failover_params.py +++ /dev/null @@ -1,16 +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__ = ["LoadBalancerFailoverParams"] - - -class LoadBalancerFailoverParams(TypedDict, total=False): - project_id: int - - region_id: int - - force: bool - """Validate current load balancer status before failover or not.""" diff --git a/src/gcore/types/cloud/load_balancer_get_params.py b/src/gcore/types/cloud/load_balancer_get_params.py deleted file mode 100644 index 233a6f3e..00000000 --- a/src/gcore/types/cloud/load_balancer_get_params.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_extensions import TypedDict - -__all__ = ["LoadBalancerGetParams"] - - -class LoadBalancerGetParams(TypedDict, total=False): - project_id: int - - region_id: int - - show_stats: bool - """Show statistics""" - - with_ddos: bool - """Show DDoS profile""" diff --git a/src/gcore/types/cloud/load_balancer_listener_detail.py b/src/gcore/types/cloud/load_balancer_listener_detail.py index e230a736..41d9a4c6 100644 --- a/src/gcore/types/cloud/load_balancer_listener_detail.py +++ b/src/gcore/types/cloud/load_balancer_listener_detail.py @@ -38,7 +38,7 @@ class LoadBalancerListenerDetail(BaseModel): Only used with HTTP and `TERMINATED_HTTPS` protocols. """ - load_balancer_id: Optional[str] = None + loadbalancer_id: Optional[str] = None """Load balancer ID""" name: str diff --git a/src/gcore/types/cloud/load_balancer_metrics.py b/src/gcore/types/cloud/load_balancer_metrics.py deleted file mode 100644 index ffdf6859..00000000 --- a/src/gcore/types/cloud/load_balancer_metrics.py +++ /dev/null @@ -1,32 +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__ = ["LoadBalancerMetrics"] - - -class LoadBalancerMetrics(BaseModel): - cpu_util: Optional[float] = None - """CPU utilization, % (max 100% for multi-core)""" - - memory_util: Optional[float] = None - """RAM utilization, %""" - - network_bps_egress: Optional[float] = FieldInfo(alias="network_Bps_egress", default=None) - """Network out, bytes per second""" - - network_bps_ingress: Optional[float] = FieldInfo(alias="network_Bps_ingress", default=None) - """Network in, bytes per second""" - - network_pps_egress: Optional[float] = None - """Network out, packets per second""" - - network_pps_ingress: Optional[float] = None - """Network in, packets per second""" - - time: Optional[str] = None - """Timestamp""" diff --git a/src/gcore/types/cloud/load_balancer_metrics_list.py b/src/gcore/types/cloud/load_balancer_metrics_list.py deleted file mode 100644 index c270faf1..00000000 --- a/src/gcore/types/cloud/load_balancer_metrics_list.py +++ /dev/null @@ -1,16 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import List - -from ..._models import BaseModel -from .load_balancer_metrics import LoadBalancerMetrics - -__all__ = ["LoadBalancerMetricsList"] - - -class LoadBalancerMetricsList(BaseModel): - count: int - """Number of objects""" - - results: List[LoadBalancerMetrics] - """Objects""" diff --git a/src/gcore/types/cloud/load_balancer_resize_params.py b/src/gcore/types/cloud/load_balancer_resize_params.py deleted file mode 100644 index 05055dfe..00000000 --- a/src/gcore/types/cloud/load_balancer_resize_params.py +++ /dev/null @@ -1,16 +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__ = ["LoadBalancerResizeParams"] - - -class LoadBalancerResizeParams(TypedDict, total=False): - project_id: int - - region_id: int - - flavor: Required[str] - """Name of the desired flavor to resize to.""" diff --git a/src/gcore/types/cloud/load_balancer_update_params.py b/src/gcore/types/cloud/load_balancer_update_params.py deleted file mode 100644 index 0870d49c..00000000 --- a/src/gcore/types/cloud/load_balancer_update_params.py +++ /dev/null @@ -1,69 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Optional -from typing_extensions import TypedDict - -from .tag_update_map_param import TagUpdateMapParam -from .laas_index_retention_policy_param import LaasIndexRetentionPolicyParam -from .load_balancer_member_connectivity import LoadBalancerMemberConnectivity - -__all__ = ["LoadBalancerUpdateParams", "Logging"] - - -class LoadBalancerUpdateParams(TypedDict, total=False): - project_id: int - - region_id: int - - logging: Logging - """Logging configuration""" - - name: str - """Name.""" - - preferred_connectivity: LoadBalancerMemberConnectivity - """ - Preferred option to establish connectivity between load balancer and its pools - members - """ - - tags: Optional[TagUpdateMapParam] - """Update key-value tags using JSON Merge Patch semantics (RFC 7386). - - Provide key-value pairs to add or update tags. Set tag values to `null` to - remove tags. Unspecified tags remain unchanged. Read-only tags are always - preserved and cannot be modified. - - **Examples:** - - - **Add/update tags:** - `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or - updates existing ones. - - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. - - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only - tags are preserved). - - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates - specified tags. - - **Mixed operations:** - `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` - adds/updates 'environment' and '`cost_center`' while removing - '`deprecated_tag`', preserving other existing tags. - - **Replace all:** first delete existing tags with null values, then add new - ones in the same request. - """ - - -class Logging(TypedDict, total=False): - destination_region_id: Optional[int] - """Destination region id to which the logs will be written""" - - enabled: bool - """Enable/disable forwarding logs to LaaS""" - - retention_policy: Optional[LaasIndexRetentionPolicyParam] - """The logs retention policy""" - - topic_name: Optional[str] - """The topic name to which the logs will be written""" diff --git a/src/gcore/types/cloud/load_balancers/__init__.py b/src/gcore/types/cloud/load_balancers/__init__.py index 433f966c..c25ce985 100644 --- a/src/gcore/types/cloud/load_balancers/__init__.py +++ b/src/gcore/types/cloud/load_balancers/__init__.py @@ -4,7 +4,6 @@ from .pool_list_params import PoolListParams as PoolListParams from .flavor_list_params import FlavorListParams as FlavorListParams -from .metric_list_params import MetricListParams as MetricListParams from .pool_create_params import PoolCreateParams as PoolCreateParams from .pool_update_params import PoolUpdateParams as PoolUpdateParams from .listener_get_params import ListenerGetParams as ListenerGetParams diff --git a/src/gcore/types/cloud/load_balancers/listener_create_params.py b/src/gcore/types/cloud/load_balancers/listener_create_params.py index c5b6f5e6..7f7bf451 100644 --- a/src/gcore/types/cloud/load_balancers/listener_create_params.py +++ b/src/gcore/types/cloud/load_balancers/listener_create_params.py @@ -18,7 +18,7 @@ class ListenerCreateParams(TypedDict, total=False): region_id: int """Region ID""" - load_balancer_id: Required[str] + loadbalancer_id: Required[str] """Load balancer ID""" name: Required[str] diff --git a/src/gcore/types/cloud/load_balancers/listener_list_params.py b/src/gcore/types/cloud/load_balancers/listener_list_params.py index c3e9925f..783d8482 100644 --- a/src/gcore/types/cloud/load_balancers/listener_list_params.py +++ b/src/gcore/types/cloud/load_balancers/listener_list_params.py @@ -14,7 +14,7 @@ class ListenerListParams(TypedDict, total=False): region_id: int """Region ID""" - load_balancer_id: str + loadbalancer_id: str """Load Balancer ID""" show_stats: bool diff --git a/src/gcore/types/cloud/load_balancers/metric_list_params.py b/src/gcore/types/cloud/load_balancers/metric_list_params.py deleted file mode 100644 index 4af5e414..00000000 --- a/src/gcore/types/cloud/load_balancers/metric_list_params.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 Required, TypedDict - -from ..instance_metrics_time_unit import InstanceMetricsTimeUnit - -__all__ = ["MetricListParams"] - - -class MetricListParams(TypedDict, total=False): - project_id: int - - region_id: int - - time_interval: Required[int] - """Time interval""" - - time_unit: Required[InstanceMetricsTimeUnit] - """Time interval unit""" diff --git a/src/gcore/types/cloud/load_balancers/pool_create_params.py b/src/gcore/types/cloud/load_balancers/pool_create_params.py index 492e9640..b19fb813 100644 --- a/src/gcore/types/cloud/load_balancers/pool_create_params.py +++ b/src/gcore/types/cloud/load_balancers/pool_create_params.py @@ -42,7 +42,7 @@ class PoolCreateParams(TypedDict, total=False): listener_id: Optional[str] """Listener ID""" - load_balancer_id: Optional[str] + loadbalancer_id: Optional[str] """Loadbalancer ID""" members: Optional[Iterable[Member]] diff --git a/src/gcore/types/cloud/load_balancers/pool_list_params.py b/src/gcore/types/cloud/load_balancers/pool_list_params.py index 1cddb97b..16020665 100644 --- a/src/gcore/types/cloud/load_balancers/pool_list_params.py +++ b/src/gcore/types/cloud/load_balancers/pool_list_params.py @@ -20,5 +20,5 @@ class PoolListParams(TypedDict, total=False): listener_id: str """Listener ID""" - load_balancer_id: str + loadbalancer_id: str """Load Balancer ID""" diff --git a/tests/api_resources/cloud/load_balancers/test_listeners.py b/tests/api_resources/cloud/load_balancers/test_listeners.py index b7228ea5..2605c9f6 100644 --- a/tests/api_resources/cloud/load_balancers/test_listeners.py +++ b/tests/api_resources/cloud/load_balancers/test_listeners.py @@ -22,7 +22,7 @@ def test_method_create(self, client: Gcore) -> None: listener = client.cloud.load_balancers.listeners.create( project_id=1, region_id=1, - load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -34,7 +34,7 @@ def test_method_create_with_all_params(self, client: Gcore) -> None: listener = client.cloud.load_balancers.listeners.create( project_id=1, region_id=1, - load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -60,7 +60,7 @@ def test_raw_response_create(self, client: Gcore) -> None: response = client.cloud.load_balancers.listeners.with_raw_response.create( project_id=1, region_id=1, - load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -76,7 +76,7 @@ def test_streaming_response_create(self, client: Gcore) -> None: with client.cloud.load_balancers.listeners.with_streaming_response.create( project_id=1, region_id=1, - load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -171,7 +171,7 @@ def test_method_list_with_all_params(self, client: Gcore) -> None: listener = client.cloud.load_balancers.listeners.list( project_id=1, region_id=1, - load_balancer_id="00000000-0000-4000-8000-000000000000", + loadbalancer_id="00000000-0000-4000-8000-000000000000", show_stats=True, ) assert_matches_type(LoadBalancerListenerList, listener, path=["response"]) @@ -315,7 +315,7 @@ async def test_method_create(self, async_client: AsyncGcore) -> None: listener = await async_client.cloud.load_balancers.listeners.create( project_id=1, region_id=1, - load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -327,7 +327,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncGcore) -> listener = await async_client.cloud.load_balancers.listeners.create( project_id=1, region_id=1, - load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -353,7 +353,7 @@ async def test_raw_response_create(self, async_client: AsyncGcore) -> None: response = await async_client.cloud.load_balancers.listeners.with_raw_response.create( project_id=1, region_id=1, - load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -369,7 +369,7 @@ async def test_streaming_response_create(self, async_client: AsyncGcore) -> None async with async_client.cloud.load_balancers.listeners.with_streaming_response.create( project_id=1, region_id=1, - load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -464,7 +464,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncGcore) -> No listener = await async_client.cloud.load_balancers.listeners.list( project_id=1, region_id=1, - load_balancer_id="00000000-0000-4000-8000-000000000000", + loadbalancer_id="00000000-0000-4000-8000-000000000000", show_stats=True, ) assert_matches_type(LoadBalancerListenerList, listener, path=["response"]) diff --git a/tests/api_resources/cloud/load_balancers/test_metrics.py b/tests/api_resources/cloud/load_balancers/test_metrics.py deleted file mode 100644 index 281f1d68..00000000 --- a/tests/api_resources/cloud/load_balancers/test_metrics.py +++ /dev/null @@ -1,132 +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, cast - -import pytest - -from gcore import Gcore, AsyncGcore -from tests.utils import assert_matches_type -from gcore.types.cloud import LoadBalancerMetricsList - -base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") - - -class TestMetrics: - parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - - @parametrize - def test_method_list(self, client: Gcore) -> None: - metric = client.cloud.load_balancers.metrics.list( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) - assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) - - @parametrize - def test_raw_response_list(self, client: Gcore) -> None: - response = client.cloud.load_balancers.metrics.with_raw_response.list( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - metric = response.parse() - assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) - - @parametrize - def test_streaming_response_list(self, client: Gcore) -> None: - with client.cloud.load_balancers.metrics.with_streaming_response.list( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - metric = response.parse() - assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_list(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - client.cloud.load_balancers.metrics.with_raw_response.list( - load_balancer_id="", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) - - -class TestAsyncMetrics: - parametrize = pytest.mark.parametrize( - "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] - ) - - @parametrize - async def test_method_list(self, async_client: AsyncGcore) -> None: - metric = await async_client.cloud.load_balancers.metrics.list( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) - assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) - - @parametrize - async def test_raw_response_list(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.metrics.with_raw_response.list( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - metric = await response.parse() - assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) - - @parametrize - async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.metrics.with_streaming_response.list( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - metric = await response.parse() - assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_list(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - await async_client.cloud.load_balancers.metrics.with_raw_response.list( - load_balancer_id="", - project_id=0, - region_id=0, - time_interval=6, - time_unit="day", - ) diff --git a/tests/api_resources/cloud/load_balancers/test_pools.py b/tests/api_resources/cloud/load_balancers/test_pools.py index 0b095c3d..f926dcc0 100644 --- a/tests/api_resources/cloud/load_balancers/test_pools.py +++ b/tests/api_resources/cloud/load_balancers/test_pools.py @@ -49,7 +49,7 @@ def test_method_create_with_all_params(self, client: Gcore) -> None: "url_path": "/", }, listener_id="listener_id", - load_balancer_id="bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", + loadbalancer_id="bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", members=[ { "address": "192.168.1.101", @@ -227,7 +227,7 @@ def test_method_list_with_all_params(self, client: Gcore) -> None: region_id=1, details=True, listener_id="00000000-0000-4000-8000-000000000000", - load_balancer_id="00000000-0000-4000-8000-000000000000", + loadbalancer_id="00000000-0000-4000-8000-000000000000", ) assert_matches_type(LoadBalancerPoolList, pool, path=["response"]) @@ -387,7 +387,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncGcore) -> "url_path": "/", }, listener_id="listener_id", - load_balancer_id="bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", + loadbalancer_id="bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", members=[ { "address": "192.168.1.101", @@ -565,7 +565,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncGcore) -> No region_id=1, details=True, listener_id="00000000-0000-4000-8000-000000000000", - load_balancer_id="00000000-0000-4000-8000-000000000000", + loadbalancer_id="00000000-0000-4000-8000-000000000000", ) assert_matches_type(LoadBalancerPoolList, pool, path=["response"]) diff --git a/tests/api_resources/cloud/load_balancers/test_statuses.py b/tests/api_resources/cloud/load_balancers/test_statuses.py index da7e88cb..a9583093 100644 --- a/tests/api_resources/cloud/load_balancers/test_statuses.py +++ b/tests/api_resources/cloud/load_balancers/test_statuses.py @@ -9,7 +9,7 @@ from gcore import Gcore, AsyncGcore from tests.utils import assert_matches_type -from gcore.types.cloud import LoadBalancerStatus, LoadBalancerStatusList +from gcore.types.cloud import LoadBalancerStatusList base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -51,52 +51,6 @@ def test_streaming_response_list(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True - @parametrize - def test_method_get(self, client: Gcore) -> None: - status = client.cloud.load_balancers.statuses.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(LoadBalancerStatus, status, path=["response"]) - - @parametrize - def test_raw_response_get(self, client: Gcore) -> None: - response = client.cloud.load_balancers.statuses.with_raw_response.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - status = response.parse() - assert_matches_type(LoadBalancerStatus, status, path=["response"]) - - @parametrize - def test_streaming_response_get(self, client: Gcore) -> None: - with client.cloud.load_balancers.statuses.with_streaming_response.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - status = response.parse() - assert_matches_type(LoadBalancerStatus, status, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_get(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - client.cloud.load_balancers.statuses.with_raw_response.get( - load_balancer_id="", - project_id=0, - region_id=0, - ) - class TestAsyncStatuses: parametrize = pytest.mark.parametrize( @@ -136,49 +90,3 @@ async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: assert_matches_type(LoadBalancerStatusList, status, path=["response"]) assert cast(Any, response.is_closed) is True - - @parametrize - async def test_method_get(self, async_client: AsyncGcore) -> None: - status = await async_client.cloud.load_balancers.statuses.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(LoadBalancerStatus, status, path=["response"]) - - @parametrize - async def test_raw_response_get(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.statuses.with_raw_response.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - status = await response.parse() - assert_matches_type(LoadBalancerStatus, status, path=["response"]) - - @parametrize - async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.statuses.with_streaming_response.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - status = await response.parse() - assert_matches_type(LoadBalancerStatus, status, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_get(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - await async_client.cloud.load_balancers.statuses.with_raw_response.get( - load_balancer_id="", - project_id=0, - region_id=0, - ) diff --git a/tests/api_resources/cloud/test_load_balancers.py b/tests/api_resources/cloud/test_load_balancers.py index faf824ef..8bb41cbf 100644 --- a/tests/api_resources/cloud/test_load_balancers.py +++ b/tests/api_resources/cloud/test_load_balancers.py @@ -65,7 +65,7 @@ def test_method_create_with_all_params(self, client: Gcore) -> None: "url_path": "/", }, "listener_id": "listener_id", - "load_balancer_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", + "loadbalancer_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", "members": [ { "address": "192.168.1.101", @@ -158,70 +158,6 @@ def test_streaming_response_create(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True - @parametrize - def test_method_update(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.update( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - def test_method_update_with_all_params(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.update( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - logging={ - "destination_region_id": 1, - "enabled": True, - "retention_policy": {"period": 45}, - "topic_name": "my-log-name", - }, - name="some_name", - preferred_connectivity="L2", - tags={"foo": "my-tag-value"}, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - def test_raw_response_update(self, client: Gcore) -> None: - response = client.cloud.load_balancers.with_raw_response.update( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - def test_streaming_response_update(self, client: Gcore) -> None: - with client.cloud.load_balancers.with_streaming_response.update( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_update(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - client.cloud.load_balancers.with_raw_response.update( - load_balancer_id="", - project_id=0, - region_id=0, - ) - @parametrize def test_method_list(self, client: Gcore) -> None: load_balancer = client.cloud.load_balancers.list( @@ -274,215 +210,6 @@ def test_streaming_response_list(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True - @parametrize - def test_method_delete(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.delete( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_raw_response_delete(self, client: Gcore) -> None: - response = client.cloud.load_balancers.with_raw_response.delete( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_streaming_response_delete(self, client: Gcore) -> None: - with client.cloud.load_balancers.with_streaming_response.delete( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_delete(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - client.cloud.load_balancers.with_raw_response.delete( - load_balancer_id="", - project_id=0, - region_id=0, - ) - - @parametrize - def test_method_failover(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.failover( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_method_failover_with_all_params(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.failover( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - force=True, - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_raw_response_failover(self, client: Gcore) -> None: - response = client.cloud.load_balancers.with_raw_response.failover( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_streaming_response_failover(self, client: Gcore) -> None: - with client.cloud.load_balancers.with_streaming_response.failover( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_failover(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - client.cloud.load_balancers.with_raw_response.failover( - load_balancer_id="", - project_id=0, - region_id=0, - ) - - @parametrize - def test_method_get(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - def test_method_get_with_all_params(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - show_stats=True, - with_ddos=True, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - def test_raw_response_get(self, client: Gcore) -> None: - response = client.cloud.load_balancers.with_raw_response.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - def test_streaming_response_get(self, client: Gcore) -> None: - with client.cloud.load_balancers.with_streaming_response.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_get(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - client.cloud.load_balancers.with_raw_response.get( - load_balancer_id="", - project_id=0, - region_id=0, - ) - - @parametrize - def test_method_resize(self, client: Gcore) -> None: - load_balancer = client.cloud.load_balancers.resize( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_raw_response_resize(self, client: Gcore) -> None: - response = client.cloud.load_balancers.with_raw_response.resize( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - def test_streaming_response_resize(self, client: Gcore) -> None: - with client.cloud.load_balancers.with_streaming_response.resize( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_path_params_resize(self, client: Gcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - client.cloud.load_balancers.with_raw_response.resize( - load_balancer_id="", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) - class TestAsyncLoadBalancers: parametrize = pytest.mark.parametrize( @@ -533,7 +260,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncGcore) -> "url_path": "/", }, "listener_id": "listener_id", - "load_balancer_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", + "loadbalancer_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", "members": [ { "address": "192.168.1.101", @@ -626,70 +353,6 @@ async def test_streaming_response_create(self, async_client: AsyncGcore) -> None assert cast(Any, response.is_closed) is True - @parametrize - async def test_method_update(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.update( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - async def test_method_update_with_all_params(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.update( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - logging={ - "destination_region_id": 1, - "enabled": True, - "retention_policy": {"period": 45}, - "topic_name": "my-log-name", - }, - name="some_name", - preferred_connectivity="L2", - tags={"foo": "my-tag-value"}, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - async def test_raw_response_update(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.with_raw_response.update( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = await response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - async def test_streaming_response_update(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.with_streaming_response.update( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = await response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_update(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - await async_client.cloud.load_balancers.with_raw_response.update( - load_balancer_id="", - project_id=0, - region_id=0, - ) - @parametrize async def test_method_list(self, async_client: AsyncGcore) -> None: load_balancer = await async_client.cloud.load_balancers.list( @@ -741,212 +404,3 @@ async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: assert_matches_type(AsyncOffsetPage[LoadBalancer], load_balancer, path=["response"]) assert cast(Any, response.is_closed) is True - - @parametrize - async def test_method_delete(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.delete( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_raw_response_delete(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.with_raw_response.delete( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = await response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_streaming_response_delete(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.with_streaming_response.delete( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = await response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_delete(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - await async_client.cloud.load_balancers.with_raw_response.delete( - load_balancer_id="", - project_id=0, - region_id=0, - ) - - @parametrize - async def test_method_failover(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.failover( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_method_failover_with_all_params(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.failover( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - force=True, - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_raw_response_failover(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.with_raw_response.failover( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = await response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_streaming_response_failover(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.with_streaming_response.failover( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = await response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_failover(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - await async_client.cloud.load_balancers.with_raw_response.failover( - load_balancer_id="", - project_id=0, - region_id=0, - ) - - @parametrize - async def test_method_get(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - async def test_method_get_with_all_params(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - show_stats=True, - with_ddos=True, - ) - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - async def test_raw_response_get(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.with_raw_response.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = await response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - @parametrize - async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.with_streaming_response.get( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = await response.parse() - assert_matches_type(LoadBalancer, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_get(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - await async_client.cloud.load_balancers.with_raw_response.get( - load_balancer_id="", - project_id=0, - region_id=0, - ) - - @parametrize - async def test_method_resize(self, async_client: AsyncGcore) -> None: - load_balancer = await async_client.cloud.load_balancers.resize( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_raw_response_resize(self, async_client: AsyncGcore) -> None: - response = await async_client.cloud.load_balancers.with_raw_response.resize( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - load_balancer = await response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - @parametrize - async def test_streaming_response_resize(self, async_client: AsyncGcore) -> None: - async with async_client.cloud.load_balancers.with_streaming_response.resize( - load_balancer_id="load_balancer_id", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - load_balancer = await response.parse() - assert_matches_type(TaskIDList, load_balancer, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_path_params_resize(self, async_client: AsyncGcore) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): - await async_client.cloud.load_balancers.with_raw_response.resize( - load_balancer_id="", - project_id=0, - region_id=0, - flavor="lb1-2-4", - ) From 9cdb941cc09b79e089884e17d03eeb4cb19dfa77 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 16 Oct 2025 07:46:30 +0000 Subject: [PATCH 30/38] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 4c39159a..c903b0a9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 605 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-9f065df469027bcaa0bd19a36a0f8f132271e837c4cb058f27f3c5c740298797.yml openapi_spec_hash: 844a27c7d8957769e1fb98965f9f1df0 -config_hash: 16325d713dde8c8d722ff7890df2a16a +config_hash: 4424995cf809ff9b2c7ef6f4b5fbdcf8 From 0d92524c16aeac6e96b0360c49de70a7912a8485 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 16 Oct 2025 08:13:24 +0000 Subject: [PATCH 31/38] feat(api): aggregated API specs update --- .stats.yml | 6 +- api.md | 12 + .../cloud/load_balancers/__init__.py | 14 + .../cloud/load_balancers/listeners.py | 24 +- .../cloud/load_balancers/load_balancers.py | 629 +++++++++++++++++- .../resources/cloud/load_balancers/metrics.py | 205 ++++++ .../cloud/load_balancers/pools/pools.py | 24 +- .../cloud/load_balancers/statuses.py | 91 +++ src/gcore/types/cloud/__init__.py | 6 + .../cloud/load_balancer_create_params.py | 2 +- .../cloud/load_balancer_failover_params.py | 16 + .../types/cloud/load_balancer_get_params.py | 19 + .../cloud/load_balancer_listener_detail.py | 2 +- .../types/cloud/load_balancer_metrics.py | 32 + .../types/cloud/load_balancer_metrics_list.py | 16 + .../cloud/load_balancer_resize_params.py | 16 + .../cloud/load_balancer_update_params.py | 69 ++ .../types/cloud/load_balancers/__init__.py | 1 + .../load_balancers/listener_create_params.py | 2 +- .../load_balancers/listener_list_params.py | 2 +- .../load_balancers/metric_list_params.py | 21 + .../load_balancers/pool_create_params.py | 2 +- .../cloud/load_balancers/pool_list_params.py | 2 +- .../cloud/load_balancers/test_listeners.py | 20 +- .../cloud/load_balancers/test_metrics.py | 132 ++++ .../cloud/load_balancers/test_pools.py | 8 +- .../cloud/load_balancers/test_statuses.py | 94 ++- .../cloud/test_load_balancers.py | 550 ++++++++++++++- 28 files changed, 1966 insertions(+), 51 deletions(-) create mode 100644 src/gcore/resources/cloud/load_balancers/metrics.py create mode 100644 src/gcore/types/cloud/load_balancer_failover_params.py create mode 100644 src/gcore/types/cloud/load_balancer_get_params.py create mode 100644 src/gcore/types/cloud/load_balancer_metrics.py create mode 100644 src/gcore/types/cloud/load_balancer_metrics_list.py create mode 100644 src/gcore/types/cloud/load_balancer_resize_params.py create mode 100644 src/gcore/types/cloud/load_balancer_update_params.py create mode 100644 src/gcore/types/cloud/load_balancers/metric_list_params.py create mode 100644 tests/api_resources/cloud/load_balancers/test_metrics.py diff --git a/.stats.yml b/.stats.yml index c903b0a9..7634073e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 605 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-9f065df469027bcaa0bd19a36a0f8f132271e837c4cb058f27f3c5c740298797.yml -openapi_spec_hash: 844a27c7d8957769e1fb98965f9f1df0 +configured_endpoints: 612 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-61c8daa30b17f90adc70901ef07fff2a1f9ea09c65153b7c7041dfedecd88288.yml +openapi_spec_hash: 9e0d4a49b58c61a8d53e6b4f3123f225 config_hash: 4424995cf809ff9b2c7ef6f4b5fbdcf8 diff --git a/api.md b/api.md index 815e5839..d2b0533c 100644 --- a/api.md +++ b/api.md @@ -210,7 +210,12 @@ from gcore.types.cloud import ( Methods: - client.cloud.load_balancers.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.update(load_balancer_id, \*, project_id, region_id, \*\*params) -> LoadBalancer - client.cloud.load_balancers.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[LoadBalancer] +- client.cloud.load_balancers.delete(load_balancer_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.load_balancers.failover(load_balancer_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.get(load_balancer_id, \*, project_id, region_id, \*\*params) -> LoadBalancer +- client.cloud.load_balancers.resize(load_balancer_id, \*, project_id, region_id, \*\*params) -> TaskIDList ### L7Policies @@ -272,11 +277,18 @@ Methods: - client.cloud.load_balancers.pools.members.add(pool_id, \*, project_id, region_id, \*\*params) -> TaskIDList - client.cloud.load_balancers.pools.members.remove(member_id, \*, project_id, region_id, pool_id) -> TaskIDList +### Metrics + +Methods: + +- client.cloud.load_balancers.metrics.list(load_balancer_id, \*, project_id, region_id, \*\*params) -> LoadBalancerMetricsList + ### Statuses Methods: - client.cloud.load_balancers.statuses.list(\*, project_id, region_id) -> LoadBalancerStatusList +- client.cloud.load_balancers.statuses.get(load_balancer_id, \*, project_id, region_id) -> LoadBalancerStatus ## ReservedFixedIPs diff --git a/src/gcore/resources/cloud/load_balancers/__init__.py b/src/gcore/resources/cloud/load_balancers/__init__.py index cdd5187e..4de45722 100644 --- a/src/gcore/resources/cloud/load_balancers/__init__.py +++ b/src/gcore/resources/cloud/load_balancers/__init__.py @@ -16,6 +16,14 @@ FlavorsResourceWithStreamingResponse, AsyncFlavorsResourceWithStreamingResponse, ) +from .metrics import ( + MetricsResource, + AsyncMetricsResource, + MetricsResourceWithRawResponse, + AsyncMetricsResourceWithRawResponse, + MetricsResourceWithStreamingResponse, + AsyncMetricsResourceWithStreamingResponse, +) from .statuses import ( StatusesResource, AsyncStatusesResource, @@ -74,6 +82,12 @@ "AsyncPoolsResourceWithRawResponse", "PoolsResourceWithStreamingResponse", "AsyncPoolsResourceWithStreamingResponse", + "MetricsResource", + "AsyncMetricsResource", + "MetricsResourceWithRawResponse", + "AsyncMetricsResourceWithRawResponse", + "MetricsResourceWithStreamingResponse", + "AsyncMetricsResourceWithStreamingResponse", "StatusesResource", "AsyncStatusesResource", "StatusesResourceWithRawResponse", diff --git a/src/gcore/resources/cloud/load_balancers/listeners.py b/src/gcore/resources/cloud/load_balancers/listeners.py index dff543de..eabc4c83 100644 --- a/src/gcore/resources/cloud/load_balancers/listeners.py +++ b/src/gcore/resources/cloud/load_balancers/listeners.py @@ -57,7 +57,7 @@ def create( *, project_id: int | None = None, region_id: int | None = None, - loadbalancer_id: str, + load_balancer_id: str, name: str, protocol: LbListenerProtocol, protocol_port: int, @@ -85,7 +85,7 @@ def create( region_id: Region ID - loadbalancer_id: Load balancer ID + load_balancer_id: Load balancer ID name: Load balancer listener name @@ -130,7 +130,7 @@ def create( f"/cloud/v1/lblisteners/{project_id}/{region_id}", body=maybe_transform( { - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, "name": name, "protocol": protocol, "protocol_port": protocol_port, @@ -245,7 +245,7 @@ def list( *, project_id: int | None = None, region_id: int | None = None, - loadbalancer_id: str | Omit = omit, + load_balancer_id: str | Omit = omit, show_stats: bool | Omit = omit, # 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. @@ -262,7 +262,7 @@ def list( region_id: Region ID - loadbalancer_id: Load Balancer ID + load_balancer_id: Load Balancer ID show_stats: Show stats @@ -287,7 +287,7 @@ def list( timeout=timeout, query=maybe_transform( { - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, "show_stats": show_stats, }, listener_list_params.ListenerListParams, @@ -580,7 +580,7 @@ async def create( *, project_id: int | None = None, region_id: int | None = None, - loadbalancer_id: str, + load_balancer_id: str, name: str, protocol: LbListenerProtocol, protocol_port: int, @@ -608,7 +608,7 @@ async def create( region_id: Region ID - loadbalancer_id: Load balancer ID + load_balancer_id: Load balancer ID name: Load balancer listener name @@ -653,7 +653,7 @@ async def create( f"/cloud/v1/lblisteners/{project_id}/{region_id}", body=await async_maybe_transform( { - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, "name": name, "protocol": protocol, "protocol_port": protocol_port, @@ -768,7 +768,7 @@ async def list( *, project_id: int | None = None, region_id: int | None = None, - loadbalancer_id: str | Omit = omit, + load_balancer_id: str | Omit = omit, show_stats: bool | Omit = omit, # 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. @@ -785,7 +785,7 @@ async def list( region_id: Region ID - loadbalancer_id: Load Balancer ID + load_balancer_id: Load Balancer ID show_stats: Show stats @@ -810,7 +810,7 @@ async def list( timeout=timeout, query=await async_maybe_transform( { - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, "show_stats": show_stats, }, listener_list_params.ListenerListParams, diff --git a/src/gcore/resources/cloud/load_balancers/load_balancers.py b/src/gcore/resources/cloud/load_balancers/load_balancers.py index 28eceb67..9916f1e2 100644 --- a/src/gcore/resources/cloud/load_balancers/load_balancers.py +++ b/src/gcore/resources/cloud/load_balancers/load_balancers.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import Dict, Iterable +from typing import Dict, Iterable, Optional import httpx @@ -14,6 +14,14 @@ FlavorsResourceWithStreamingResponse, AsyncFlavorsResourceWithStreamingResponse, ) +from .metrics import ( + MetricsResource, + AsyncMetricsResource, + MetricsResourceWithRawResponse, + AsyncMetricsResourceWithRawResponse, + MetricsResourceWithStreamingResponse, + AsyncMetricsResourceWithStreamingResponse, +) from .statuses import ( StatusesResource, AsyncStatusesResource, @@ -52,8 +60,12 @@ from ....types.cloud import ( InterfaceIPFamily, LoadBalancerMemberConnectivity, + load_balancer_get_params, load_balancer_list_params, load_balancer_create_params, + load_balancer_resize_params, + load_balancer_update_params, + load_balancer_failover_params, ) from ...._base_client import AsyncPaginator, make_request_options from .l7_policies.l7_policies import ( @@ -67,6 +79,7 @@ from ....types.cloud.task_id_list import TaskIDList from ....types.cloud.load_balancer import LoadBalancer from ....types.cloud.interface_ip_family import InterfaceIPFamily +from ....types.cloud.tag_update_map_param import TagUpdateMapParam from ....types.cloud.load_balancer_member_connectivity import LoadBalancerMemberConnectivity __all__ = ["LoadBalancersResource", "AsyncLoadBalancersResource"] @@ -89,6 +102,10 @@ def listeners(self) -> ListenersResource: def pools(self) -> PoolsResource: return PoolsResource(self._client) + @cached_property + def metrics(self) -> MetricsResource: + return MetricsResource(self._client) + @cached_property def statuses(self) -> StatusesResource: return StatusesResource(self._client) @@ -214,6 +231,90 @@ def create( cast_to=TaskIDList, ) + def update( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + logging: load_balancer_update_params.Logging | Omit = omit, + name: str | Omit = omit, + preferred_connectivity: LoadBalancerMemberConnectivity | Omit = omit, + tags: Optional[TagUpdateMapParam] | Omit = omit, + # 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, + ) -> LoadBalancer: + """ + Rename load balancer, activate/deactivate logging, update preferred connectivity + type and/or modify load balancer tags. The request will only process the fields + that are provided in the request body. Any fields that are not included will + remain unchanged. + + Args: + logging: Logging configuration + + name: Name. + + preferred_connectivity: Preferred option to establish connectivity between load balancer and its pools + members + + tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide + key-value pairs to add or update tags. Set tag values to `null` to remove tags. + Unspecified tags remain unchanged. Read-only tags are always preserved and + cannot be modified. + + **Examples:** + + - **Add/update tags:** + `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or + updates existing ones. + - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. + - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only + tags are preserved). + - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates + specified tags. + - **Mixed operations:** + `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` + adds/updates 'environment' and '`cost_center`' while removing + '`deprecated_tag`', preserving other existing tags. + - **Replace all:** first delete existing tags with null values, then add new + ones in the same request. + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._patch( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", + body=maybe_transform( + { + "logging": logging, + "name": name, + "preferred_connectivity": preferred_connectivity, + "tags": tags, + }, + load_balancer_update_params.LoadBalancerUpdateParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=LoadBalancer, + ) + def list( self, *, @@ -488,6 +589,186 @@ def resize_and_poll( timeout=timeout, ) + def delete( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + # 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, + ) -> TaskIDList: + """ + Delete load balancer + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._delete( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskIDList, + ) + + def failover( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + force: bool | Omit = omit, + # 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, + ) -> TaskIDList: + """ + Failover load balancer + + Args: + force: Validate current load balancer status before failover or not. + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._post( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/failover", + body=maybe_transform({"force": force}, load_balancer_failover_params.LoadBalancerFailoverParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskIDList, + ) + + def get( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + show_stats: bool | Omit = omit, + with_ddos: bool | Omit = omit, + # 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, + ) -> LoadBalancer: + """ + Get load balancer + + Args: + show_stats: Show statistics + + with_ddos: Show DDoS profile + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._get( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + { + "show_stats": show_stats, + "with_ddos": with_ddos, + }, + load_balancer_get_params.LoadBalancerGetParams, + ), + ), + cast_to=LoadBalancer, + ) + + def resize( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + flavor: 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, + ) -> TaskIDList: + """ + Resize load balancer + + Args: + flavor: Name of the desired flavor to resize to. + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._post( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/resize", + body=maybe_transform({"flavor": flavor}, load_balancer_resize_params.LoadBalancerResizeParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskIDList, + ) + class AsyncLoadBalancersResource(AsyncAPIResource): @cached_property @@ -506,6 +787,10 @@ def listeners(self) -> AsyncListenersResource: def pools(self) -> AsyncPoolsResource: return AsyncPoolsResource(self._client) + @cached_property + def metrics(self) -> AsyncMetricsResource: + return AsyncMetricsResource(self._client) + @cached_property def statuses(self) -> AsyncStatusesResource: return AsyncStatusesResource(self._client) @@ -631,6 +916,90 @@ async def create( cast_to=TaskIDList, ) + async def update( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + logging: load_balancer_update_params.Logging | Omit = omit, + name: str | Omit = omit, + preferred_connectivity: LoadBalancerMemberConnectivity | Omit = omit, + tags: Optional[TagUpdateMapParam] | Omit = omit, + # 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, + ) -> LoadBalancer: + """ + Rename load balancer, activate/deactivate logging, update preferred connectivity + type and/or modify load balancer tags. The request will only process the fields + that are provided in the request body. Any fields that are not included will + remain unchanged. + + Args: + logging: Logging configuration + + name: Name. + + preferred_connectivity: Preferred option to establish connectivity between load balancer and its pools + members + + tags: Update key-value tags using JSON Merge Patch semantics (RFC 7386). Provide + key-value pairs to add or update tags. Set tag values to `null` to remove tags. + Unspecified tags remain unchanged. Read-only tags are always preserved and + cannot be modified. + + **Examples:** + + - **Add/update tags:** + `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or + updates existing ones. + - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. + - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only + tags are preserved). + - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates + specified tags. + - **Mixed operations:** + `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` + adds/updates 'environment' and '`cost_center`' while removing + '`deprecated_tag`', preserving other existing tags. + - **Replace all:** first delete existing tags with null values, then add new + ones in the same request. + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._patch( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", + body=await async_maybe_transform( + { + "logging": logging, + "name": name, + "preferred_connectivity": preferred_connectivity, + "tags": tags, + }, + load_balancer_update_params.LoadBalancerUpdateParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=LoadBalancer, + ) + def list( self, *, @@ -905,6 +1274,188 @@ async def resize_and_poll( timeout=timeout, ) + async def delete( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + # 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, + ) -> TaskIDList: + """ + Delete load balancer + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._delete( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskIDList, + ) + + async def failover( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + force: bool | Omit = omit, + # 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, + ) -> TaskIDList: + """ + Failover load balancer + + Args: + force: Validate current load balancer status before failover or not. + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._post( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/failover", + body=await async_maybe_transform( + {"force": force}, load_balancer_failover_params.LoadBalancerFailoverParams + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskIDList, + ) + + async def get( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + show_stats: bool | Omit = omit, + with_ddos: bool | Omit = omit, + # 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, + ) -> LoadBalancer: + """ + Get load balancer + + Args: + show_stats: Show statistics + + with_ddos: Show DDoS profile + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._get( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=await async_maybe_transform( + { + "show_stats": show_stats, + "with_ddos": with_ddos, + }, + load_balancer_get_params.LoadBalancerGetParams, + ), + ), + cast_to=LoadBalancer, + ) + + async def resize( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + flavor: 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, + ) -> TaskIDList: + """ + Resize load balancer + + Args: + flavor: Name of the desired flavor to resize to. + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._post( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/resize", + body=await async_maybe_transform({"flavor": flavor}, load_balancer_resize_params.LoadBalancerResizeParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskIDList, + ) + class LoadBalancersResourceWithRawResponse: def __init__(self, load_balancers: LoadBalancersResource) -> None: @@ -913,9 +1464,24 @@ def __init__(self, load_balancers: LoadBalancersResource) -> None: self.create = to_raw_response_wrapper( load_balancers.create, ) + self.update = to_raw_response_wrapper( + load_balancers.update, + ) self.list = to_raw_response_wrapper( load_balancers.list, ) + self.delete = to_raw_response_wrapper( + load_balancers.delete, + ) + self.failover = to_raw_response_wrapper( + load_balancers.failover, + ) + self.get = to_raw_response_wrapper( + load_balancers.get, + ) + self.resize = to_raw_response_wrapper( + load_balancers.resize, + ) @cached_property def l7_policies(self) -> L7PoliciesResourceWithRawResponse: @@ -933,6 +1499,10 @@ def listeners(self) -> ListenersResourceWithRawResponse: def pools(self) -> PoolsResourceWithRawResponse: return PoolsResourceWithRawResponse(self._load_balancers.pools) + @cached_property + def metrics(self) -> MetricsResourceWithRawResponse: + return MetricsResourceWithRawResponse(self._load_balancers.metrics) + @cached_property def statuses(self) -> StatusesResourceWithRawResponse: return StatusesResourceWithRawResponse(self._load_balancers.statuses) @@ -945,9 +1515,24 @@ def __init__(self, load_balancers: AsyncLoadBalancersResource) -> None: self.create = async_to_raw_response_wrapper( load_balancers.create, ) + self.update = async_to_raw_response_wrapper( + load_balancers.update, + ) self.list = async_to_raw_response_wrapper( load_balancers.list, ) + self.delete = async_to_raw_response_wrapper( + load_balancers.delete, + ) + self.failover = async_to_raw_response_wrapper( + load_balancers.failover, + ) + self.get = async_to_raw_response_wrapper( + load_balancers.get, + ) + self.resize = async_to_raw_response_wrapper( + load_balancers.resize, + ) @cached_property def l7_policies(self) -> AsyncL7PoliciesResourceWithRawResponse: @@ -965,6 +1550,10 @@ def listeners(self) -> AsyncListenersResourceWithRawResponse: def pools(self) -> AsyncPoolsResourceWithRawResponse: return AsyncPoolsResourceWithRawResponse(self._load_balancers.pools) + @cached_property + def metrics(self) -> AsyncMetricsResourceWithRawResponse: + return AsyncMetricsResourceWithRawResponse(self._load_balancers.metrics) + @cached_property def statuses(self) -> AsyncStatusesResourceWithRawResponse: return AsyncStatusesResourceWithRawResponse(self._load_balancers.statuses) @@ -977,9 +1566,24 @@ def __init__(self, load_balancers: LoadBalancersResource) -> None: self.create = to_streamed_response_wrapper( load_balancers.create, ) + self.update = to_streamed_response_wrapper( + load_balancers.update, + ) self.list = to_streamed_response_wrapper( load_balancers.list, ) + self.delete = to_streamed_response_wrapper( + load_balancers.delete, + ) + self.failover = to_streamed_response_wrapper( + load_balancers.failover, + ) + self.get = to_streamed_response_wrapper( + load_balancers.get, + ) + self.resize = to_streamed_response_wrapper( + load_balancers.resize, + ) @cached_property def l7_policies(self) -> L7PoliciesResourceWithStreamingResponse: @@ -997,6 +1601,10 @@ def listeners(self) -> ListenersResourceWithStreamingResponse: def pools(self) -> PoolsResourceWithStreamingResponse: return PoolsResourceWithStreamingResponse(self._load_balancers.pools) + @cached_property + def metrics(self) -> MetricsResourceWithStreamingResponse: + return MetricsResourceWithStreamingResponse(self._load_balancers.metrics) + @cached_property def statuses(self) -> StatusesResourceWithStreamingResponse: return StatusesResourceWithStreamingResponse(self._load_balancers.statuses) @@ -1009,9 +1617,24 @@ def __init__(self, load_balancers: AsyncLoadBalancersResource) -> None: self.create = async_to_streamed_response_wrapper( load_balancers.create, ) + self.update = async_to_streamed_response_wrapper( + load_balancers.update, + ) self.list = async_to_streamed_response_wrapper( load_balancers.list, ) + self.delete = async_to_streamed_response_wrapper( + load_balancers.delete, + ) + self.failover = async_to_streamed_response_wrapper( + load_balancers.failover, + ) + self.get = async_to_streamed_response_wrapper( + load_balancers.get, + ) + self.resize = async_to_streamed_response_wrapper( + load_balancers.resize, + ) @cached_property def l7_policies(self) -> AsyncL7PoliciesResourceWithStreamingResponse: @@ -1029,6 +1652,10 @@ def listeners(self) -> AsyncListenersResourceWithStreamingResponse: def pools(self) -> AsyncPoolsResourceWithStreamingResponse: return AsyncPoolsResourceWithStreamingResponse(self._load_balancers.pools) + @cached_property + def metrics(self) -> AsyncMetricsResourceWithStreamingResponse: + return AsyncMetricsResourceWithStreamingResponse(self._load_balancers.metrics) + @cached_property def statuses(self) -> AsyncStatusesResourceWithStreamingResponse: return AsyncStatusesResourceWithStreamingResponse(self._load_balancers.statuses) diff --git a/src/gcore/resources/cloud/load_balancers/metrics.py b/src/gcore/resources/cloud/load_balancers/metrics.py new file mode 100644 index 00000000..e7647609 --- /dev/null +++ b/src/gcore/resources/cloud/load_balancers/metrics.py @@ -0,0 +1,205 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import httpx + +from ...._types import Body, Query, Headers, NotGiven, not_given +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 ....types.cloud import InstanceMetricsTimeUnit +from ...._base_client import make_request_options +from ....types.cloud.load_balancers import metric_list_params +from ....types.cloud.instance_metrics_time_unit import InstanceMetricsTimeUnit +from ....types.cloud.load_balancer_metrics_list import LoadBalancerMetricsList + +__all__ = ["MetricsResource", "AsyncMetricsResource"] + + +class MetricsResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> MetricsResourceWithRawResponse: + """ + 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/G-Core/gcore-python#accessing-raw-response-data-eg-headers + """ + return MetricsResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> MetricsResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response + """ + return MetricsResourceWithStreamingResponse(self) + + def list( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + time_interval: int, + time_unit: InstanceMetricsTimeUnit, + # 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, + ) -> LoadBalancerMetricsList: + """ + Get load balancer metrics, including cpu, memory and network + + Args: + time_interval: Time interval + + time_unit: Time interval unit + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._post( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/metrics", + body=maybe_transform( + { + "time_interval": time_interval, + "time_unit": time_unit, + }, + metric_list_params.MetricListParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=LoadBalancerMetricsList, + ) + + +class AsyncMetricsResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncMetricsResourceWithRawResponse: + """ + 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/G-Core/gcore-python#accessing-raw-response-data-eg-headers + """ + return AsyncMetricsResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncMetricsResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response + """ + return AsyncMetricsResourceWithStreamingResponse(self) + + async def list( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + time_interval: int, + time_unit: InstanceMetricsTimeUnit, + # 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, + ) -> LoadBalancerMetricsList: + """ + Get load balancer metrics, including cpu, memory and network + + Args: + time_interval: Time interval + + time_unit: Time interval unit + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._post( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/metrics", + body=await async_maybe_transform( + { + "time_interval": time_interval, + "time_unit": time_unit, + }, + metric_list_params.MetricListParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=LoadBalancerMetricsList, + ) + + +class MetricsResourceWithRawResponse: + def __init__(self, metrics: MetricsResource) -> None: + self._metrics = metrics + + self.list = to_raw_response_wrapper( + metrics.list, + ) + + +class AsyncMetricsResourceWithRawResponse: + def __init__(self, metrics: AsyncMetricsResource) -> None: + self._metrics = metrics + + self.list = async_to_raw_response_wrapper( + metrics.list, + ) + + +class MetricsResourceWithStreamingResponse: + def __init__(self, metrics: MetricsResource) -> None: + self._metrics = metrics + + self.list = to_streamed_response_wrapper( + metrics.list, + ) + + +class AsyncMetricsResourceWithStreamingResponse: + def __init__(self, metrics: AsyncMetricsResource) -> None: + self._metrics = metrics + + self.list = async_to_streamed_response_wrapper( + metrics.list, + ) diff --git a/src/gcore/resources/cloud/load_balancers/pools/pools.py b/src/gcore/resources/cloud/load_balancers/pools/pools.py index 18e7807a..e2ae0c5a 100644 --- a/src/gcore/resources/cloud/load_balancers/pools/pools.py +++ b/src/gcore/resources/cloud/load_balancers/pools/pools.py @@ -84,7 +84,7 @@ def create( crl_secret_id: Optional[str] | Omit = omit, healthmonitor: Optional[pool_create_params.Healthmonitor] | Omit = omit, listener_id: Optional[str] | Omit = omit, - loadbalancer_id: Optional[str] | Omit = omit, + load_balancer_id: Optional[str] | Omit = omit, members: Optional[Iterable[pool_create_params.Member]] | Omit = omit, secret_id: Optional[str] | Omit = omit, session_persistence: Optional[pool_create_params.SessionPersistence] | Omit = omit, @@ -120,7 +120,7 @@ def create( listener_id: Listener ID - loadbalancer_id: Loadbalancer ID + load_balancer_id: Loadbalancer ID members: Pool members @@ -157,7 +157,7 @@ def create( "crl_secret_id": crl_secret_id, "healthmonitor": healthmonitor, "listener_id": listener_id, - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, "members": members, "secret_id": secret_id, "session_persistence": session_persistence, @@ -296,7 +296,7 @@ def list( region_id: int | None = None, details: bool | Omit = omit, listener_id: str | Omit = omit, - loadbalancer_id: str | Omit = omit, + load_balancer_id: str | Omit = omit, # 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, @@ -316,7 +316,7 @@ def list( listener_id: Listener ID - loadbalancer_id: Load Balancer ID + load_balancer_id: Load Balancer ID extra_headers: Send extra headers @@ -341,7 +341,7 @@ def list( { "details": details, "listener_id": listener_id, - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, }, pool_list_params.PoolListParams, ), @@ -645,7 +645,7 @@ async def create( crl_secret_id: Optional[str] | Omit = omit, healthmonitor: Optional[pool_create_params.Healthmonitor] | Omit = omit, listener_id: Optional[str] | Omit = omit, - loadbalancer_id: Optional[str] | Omit = omit, + load_balancer_id: Optional[str] | Omit = omit, members: Optional[Iterable[pool_create_params.Member]] | Omit = omit, secret_id: Optional[str] | Omit = omit, session_persistence: Optional[pool_create_params.SessionPersistence] | Omit = omit, @@ -681,7 +681,7 @@ async def create( listener_id: Listener ID - loadbalancer_id: Loadbalancer ID + load_balancer_id: Loadbalancer ID members: Pool members @@ -718,7 +718,7 @@ async def create( "crl_secret_id": crl_secret_id, "healthmonitor": healthmonitor, "listener_id": listener_id, - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, "members": members, "secret_id": secret_id, "session_persistence": session_persistence, @@ -857,7 +857,7 @@ async def list( region_id: int | None = None, details: bool | Omit = omit, listener_id: str | Omit = omit, - loadbalancer_id: str | Omit = omit, + load_balancer_id: str | Omit = omit, # 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, @@ -877,7 +877,7 @@ async def list( listener_id: Listener ID - loadbalancer_id: Load Balancer ID + load_balancer_id: Load Balancer ID extra_headers: Send extra headers @@ -902,7 +902,7 @@ async def list( { "details": details, "listener_id": listener_id, - "loadbalancer_id": loadbalancer_id, + "load_balancer_id": load_balancer_id, }, pool_list_params.PoolListParams, ), diff --git a/src/gcore/resources/cloud/load_balancers/statuses.py b/src/gcore/resources/cloud/load_balancers/statuses.py index 7270e2a8..e537b073 100644 --- a/src/gcore/resources/cloud/load_balancers/statuses.py +++ b/src/gcore/resources/cloud/load_balancers/statuses.py @@ -14,6 +14,7 @@ async_to_streamed_response_wrapper, ) from ...._base_client import make_request_options +from ....types.cloud.load_balancer_status import LoadBalancerStatus from ....types.cloud.load_balancer_status_list import LoadBalancerStatusList __all__ = ["StatusesResource", "AsyncStatusesResource"] @@ -75,6 +76,45 @@ def list( cast_to=LoadBalancerStatusList, ) + def get( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + # 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, + ) -> LoadBalancerStatus: + """ + Get load balancer status + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return self._get( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/status", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=LoadBalancerStatus, + ) + class AsyncStatusesResource(AsyncAPIResource): @cached_property @@ -132,6 +172,45 @@ async def list( cast_to=LoadBalancerStatusList, ) + async def get( + self, + load_balancer_id: str, + *, + project_id: int | None = None, + region_id: int | None = None, + # 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, + ) -> LoadBalancerStatus: + """ + Get load balancer status + + 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 project_id is None: + project_id = self._client._get_cloud_project_id_path_param() + if region_id is None: + region_id = self._client._get_cloud_region_id_path_param() + if not load_balancer_id: + raise ValueError(f"Expected a non-empty value for `load_balancer_id` but received {load_balancer_id!r}") + return await self._get( + f"/cloud/v1/loadbalancers/{project_id}/{region_id}/{load_balancer_id}/status", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=LoadBalancerStatus, + ) + class StatusesResourceWithRawResponse: def __init__(self, statuses: StatusesResource) -> None: @@ -140,6 +219,9 @@ def __init__(self, statuses: StatusesResource) -> None: self.list = to_raw_response_wrapper( statuses.list, ) + self.get = to_raw_response_wrapper( + statuses.get, + ) class AsyncStatusesResourceWithRawResponse: @@ -149,6 +231,9 @@ def __init__(self, statuses: AsyncStatusesResource) -> None: self.list = async_to_raw_response_wrapper( statuses.list, ) + self.get = async_to_raw_response_wrapper( + statuses.get, + ) class StatusesResourceWithStreamingResponse: @@ -158,6 +243,9 @@ def __init__(self, statuses: StatusesResource) -> None: self.list = to_streamed_response_wrapper( statuses.list, ) + self.get = to_streamed_response_wrapper( + statuses.get, + ) class AsyncStatusesResourceWithStreamingResponse: @@ -167,3 +255,6 @@ def __init__(self, statuses: AsyncStatusesResource) -> None: self.list = async_to_streamed_response_wrapper( statuses.list, ) + self.get = async_to_streamed_response_wrapper( + statuses.get, + ) diff --git a/src/gcore/types/cloud/__init__.py b/src/gcore/types/cloud/__init__.py index e7f5de17..96c25d07 100644 --- a/src/gcore/types/cloud/__init__.py +++ b/src/gcore/types/cloud/__init__.py @@ -90,6 +90,7 @@ from .gpu_baremetal_cluster import GPUBaremetalCluster as GPUBaremetalCluster from .health_monitor_status import HealthMonitorStatus as HealthMonitorStatus from .load_balancer_l7_rule import LoadBalancerL7Rule as LoadBalancerL7Rule +from .load_balancer_metrics import LoadBalancerMetrics as LoadBalancerMetrics from .network_create_params import NetworkCreateParams as NetworkCreateParams from .network_update_params import NetworkUpdateParams as NetworkUpdateParams from .project_create_params import ProjectCreateParams as ProjectCreateParams @@ -117,6 +118,7 @@ from .file_share_resize_params import FileShareResizeParams as FileShareResizeParams from .file_share_update_params import FileShareUpdateParams as FileShareUpdateParams from .k8s_cluster_version_list import K8sClusterVersionList as K8sClusterVersionList +from .load_balancer_get_params import LoadBalancerGetParams as LoadBalancerGetParams from .load_balancer_statistics import LoadBalancerStatistics as LoadBalancerStatistics from .floating_ip_assign_params import FloatingIPAssignParams as FloatingIPAssignParams from .floating_ip_create_params import FloatingIPCreateParams as FloatingIPCreateParams @@ -129,6 +131,7 @@ from .volume_change_type_params import VolumeChangeTypeParams as VolumeChangeTypeParams from .instance_metrics_time_unit import InstanceMetricsTimeUnit as InstanceMetricsTimeUnit from .load_balancer_l7_rule_list import LoadBalancerL7RuleList as LoadBalancerL7RuleList +from .load_balancer_metrics_list import LoadBalancerMetricsList as LoadBalancerMetricsList from .security_group_copy_params import SecurityGroupCopyParams as SecurityGroupCopyParams from .security_group_list_params import SecurityGroupListParams as SecurityGroupListParams from .ddos_profile_template_field import DDOSProfileTemplateField as DDOSProfileTemplateField @@ -140,11 +143,14 @@ from .load_balancer_flavor_detail import LoadBalancerFlavorDetail as LoadBalancerFlavorDetail from .load_balancer_instance_role import LoadBalancerInstanceRole as LoadBalancerInstanceRole from .load_balancer_listener_list import LoadBalancerListenerList as LoadBalancerListenerList +from .load_balancer_resize_params import LoadBalancerResizeParams as LoadBalancerResizeParams +from .load_balancer_update_params import LoadBalancerUpdateParams as LoadBalancerUpdateParams from .task_acknowledge_all_params import TaskAcknowledgeAllParams as TaskAcknowledgeAllParams from .load_balancer_l7_policy_list import LoadBalancerL7PolicyList as LoadBalancerL7PolicyList from .quota_get_by_region_response import QuotaGetByRegionResponse as QuotaGetByRegionResponse from .security_group_create_params import SecurityGroupCreateParams as SecurityGroupCreateParams from .security_group_update_params import SecurityGroupUpdateParams as SecurityGroupUpdateParams +from .load_balancer_failover_params import LoadBalancerFailoverParams as LoadBalancerFailoverParams from .load_balancer_listener_detail import LoadBalancerListenerDetail as LoadBalancerListenerDetail from .placement_group_create_params import PlacementGroupCreateParams as PlacementGroupCreateParams from .reserved_fixed_ip_list_params import ReservedFixedIPListParams as ReservedFixedIPListParams diff --git a/src/gcore/types/cloud/load_balancer_create_params.py b/src/gcore/types/cloud/load_balancer_create_params.py index 7a4c3051..a41fd6e4 100644 --- a/src/gcore/types/cloud/load_balancer_create_params.py +++ b/src/gcore/types/cloud/load_balancer_create_params.py @@ -274,7 +274,7 @@ class ListenerPool(TypedDict, total=False): listener_id: Optional[str] """Listener ID""" - loadbalancer_id: Optional[str] + load_balancer_id: Optional[str] """Loadbalancer ID""" members: Optional[Iterable[ListenerPoolMember]] diff --git a/src/gcore/types/cloud/load_balancer_failover_params.py b/src/gcore/types/cloud/load_balancer_failover_params.py new file mode 100644 index 00000000..b4a727a7 --- /dev/null +++ b/src/gcore/types/cloud/load_balancer_failover_params.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["LoadBalancerFailoverParams"] + + +class LoadBalancerFailoverParams(TypedDict, total=False): + project_id: int + + region_id: int + + force: bool + """Validate current load balancer status before failover or not.""" diff --git a/src/gcore/types/cloud/load_balancer_get_params.py b/src/gcore/types/cloud/load_balancer_get_params.py new file mode 100644 index 00000000..233a6f3e --- /dev/null +++ b/src/gcore/types/cloud/load_balancer_get_params.py @@ -0,0 +1,19 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["LoadBalancerGetParams"] + + +class LoadBalancerGetParams(TypedDict, total=False): + project_id: int + + region_id: int + + show_stats: bool + """Show statistics""" + + with_ddos: bool + """Show DDoS profile""" diff --git a/src/gcore/types/cloud/load_balancer_listener_detail.py b/src/gcore/types/cloud/load_balancer_listener_detail.py index 41d9a4c6..e230a736 100644 --- a/src/gcore/types/cloud/load_balancer_listener_detail.py +++ b/src/gcore/types/cloud/load_balancer_listener_detail.py @@ -38,7 +38,7 @@ class LoadBalancerListenerDetail(BaseModel): Only used with HTTP and `TERMINATED_HTTPS` protocols. """ - loadbalancer_id: Optional[str] = None + load_balancer_id: Optional[str] = None """Load balancer ID""" name: str diff --git a/src/gcore/types/cloud/load_balancer_metrics.py b/src/gcore/types/cloud/load_balancer_metrics.py new file mode 100644 index 00000000..ffdf6859 --- /dev/null +++ b/src/gcore/types/cloud/load_balancer_metrics.py @@ -0,0 +1,32 @@ +# 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__ = ["LoadBalancerMetrics"] + + +class LoadBalancerMetrics(BaseModel): + cpu_util: Optional[float] = None + """CPU utilization, % (max 100% for multi-core)""" + + memory_util: Optional[float] = None + """RAM utilization, %""" + + network_bps_egress: Optional[float] = FieldInfo(alias="network_Bps_egress", default=None) + """Network out, bytes per second""" + + network_bps_ingress: Optional[float] = FieldInfo(alias="network_Bps_ingress", default=None) + """Network in, bytes per second""" + + network_pps_egress: Optional[float] = None + """Network out, packets per second""" + + network_pps_ingress: Optional[float] = None + """Network in, packets per second""" + + time: Optional[str] = None + """Timestamp""" diff --git a/src/gcore/types/cloud/load_balancer_metrics_list.py b/src/gcore/types/cloud/load_balancer_metrics_list.py new file mode 100644 index 00000000..c270faf1 --- /dev/null +++ b/src/gcore/types/cloud/load_balancer_metrics_list.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List + +from ..._models import BaseModel +from .load_balancer_metrics import LoadBalancerMetrics + +__all__ = ["LoadBalancerMetricsList"] + + +class LoadBalancerMetricsList(BaseModel): + count: int + """Number of objects""" + + results: List[LoadBalancerMetrics] + """Objects""" diff --git a/src/gcore/types/cloud/load_balancer_resize_params.py b/src/gcore/types/cloud/load_balancer_resize_params.py new file mode 100644 index 00000000..05055dfe --- /dev/null +++ b/src/gcore/types/cloud/load_balancer_resize_params.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import Required, TypedDict + +__all__ = ["LoadBalancerResizeParams"] + + +class LoadBalancerResizeParams(TypedDict, total=False): + project_id: int + + region_id: int + + flavor: Required[str] + """Name of the desired flavor to resize to.""" diff --git a/src/gcore/types/cloud/load_balancer_update_params.py b/src/gcore/types/cloud/load_balancer_update_params.py new file mode 100644 index 00000000..0870d49c --- /dev/null +++ b/src/gcore/types/cloud/load_balancer_update_params.py @@ -0,0 +1,69 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Optional +from typing_extensions import TypedDict + +from .tag_update_map_param import TagUpdateMapParam +from .laas_index_retention_policy_param import LaasIndexRetentionPolicyParam +from .load_balancer_member_connectivity import LoadBalancerMemberConnectivity + +__all__ = ["LoadBalancerUpdateParams", "Logging"] + + +class LoadBalancerUpdateParams(TypedDict, total=False): + project_id: int + + region_id: int + + logging: Logging + """Logging configuration""" + + name: str + """Name.""" + + preferred_connectivity: LoadBalancerMemberConnectivity + """ + Preferred option to establish connectivity between load balancer and its pools + members + """ + + tags: Optional[TagUpdateMapParam] + """Update key-value tags using JSON Merge Patch semantics (RFC 7386). + + Provide key-value pairs to add or update tags. Set tag values to `null` to + remove tags. Unspecified tags remain unchanged. Read-only tags are always + preserved and cannot be modified. + + **Examples:** + + - **Add/update tags:** + `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or + updates existing ones. + - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags. + - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only + tags are preserved). + - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates + specified tags. + - **Mixed operations:** + `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}` + adds/updates 'environment' and '`cost_center`' while removing + '`deprecated_tag`', preserving other existing tags. + - **Replace all:** first delete existing tags with null values, then add new + ones in the same request. + """ + + +class Logging(TypedDict, total=False): + destination_region_id: Optional[int] + """Destination region id to which the logs will be written""" + + enabled: bool + """Enable/disable forwarding logs to LaaS""" + + retention_policy: Optional[LaasIndexRetentionPolicyParam] + """The logs retention policy""" + + topic_name: Optional[str] + """The topic name to which the logs will be written""" diff --git a/src/gcore/types/cloud/load_balancers/__init__.py b/src/gcore/types/cloud/load_balancers/__init__.py index c25ce985..433f966c 100644 --- a/src/gcore/types/cloud/load_balancers/__init__.py +++ b/src/gcore/types/cloud/load_balancers/__init__.py @@ -4,6 +4,7 @@ from .pool_list_params import PoolListParams as PoolListParams from .flavor_list_params import FlavorListParams as FlavorListParams +from .metric_list_params import MetricListParams as MetricListParams from .pool_create_params import PoolCreateParams as PoolCreateParams from .pool_update_params import PoolUpdateParams as PoolUpdateParams from .listener_get_params import ListenerGetParams as ListenerGetParams diff --git a/src/gcore/types/cloud/load_balancers/listener_create_params.py b/src/gcore/types/cloud/load_balancers/listener_create_params.py index 7f7bf451..c5b6f5e6 100644 --- a/src/gcore/types/cloud/load_balancers/listener_create_params.py +++ b/src/gcore/types/cloud/load_balancers/listener_create_params.py @@ -18,7 +18,7 @@ class ListenerCreateParams(TypedDict, total=False): region_id: int """Region ID""" - loadbalancer_id: Required[str] + load_balancer_id: Required[str] """Load balancer ID""" name: Required[str] diff --git a/src/gcore/types/cloud/load_balancers/listener_list_params.py b/src/gcore/types/cloud/load_balancers/listener_list_params.py index 783d8482..c3e9925f 100644 --- a/src/gcore/types/cloud/load_balancers/listener_list_params.py +++ b/src/gcore/types/cloud/load_balancers/listener_list_params.py @@ -14,7 +14,7 @@ class ListenerListParams(TypedDict, total=False): region_id: int """Region ID""" - loadbalancer_id: str + load_balancer_id: str """Load Balancer ID""" show_stats: bool diff --git a/src/gcore/types/cloud/load_balancers/metric_list_params.py b/src/gcore/types/cloud/load_balancers/metric_list_params.py new file mode 100644 index 00000000..4af5e414 --- /dev/null +++ b/src/gcore/types/cloud/load_balancers/metric_list_params.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 Required, TypedDict + +from ..instance_metrics_time_unit import InstanceMetricsTimeUnit + +__all__ = ["MetricListParams"] + + +class MetricListParams(TypedDict, total=False): + project_id: int + + region_id: int + + time_interval: Required[int] + """Time interval""" + + time_unit: Required[InstanceMetricsTimeUnit] + """Time interval unit""" diff --git a/src/gcore/types/cloud/load_balancers/pool_create_params.py b/src/gcore/types/cloud/load_balancers/pool_create_params.py index b19fb813..492e9640 100644 --- a/src/gcore/types/cloud/load_balancers/pool_create_params.py +++ b/src/gcore/types/cloud/load_balancers/pool_create_params.py @@ -42,7 +42,7 @@ class PoolCreateParams(TypedDict, total=False): listener_id: Optional[str] """Listener ID""" - loadbalancer_id: Optional[str] + load_balancer_id: Optional[str] """Loadbalancer ID""" members: Optional[Iterable[Member]] diff --git a/src/gcore/types/cloud/load_balancers/pool_list_params.py b/src/gcore/types/cloud/load_balancers/pool_list_params.py index 16020665..1cddb97b 100644 --- a/src/gcore/types/cloud/load_balancers/pool_list_params.py +++ b/src/gcore/types/cloud/load_balancers/pool_list_params.py @@ -20,5 +20,5 @@ class PoolListParams(TypedDict, total=False): listener_id: str """Listener ID""" - loadbalancer_id: str + load_balancer_id: str """Load Balancer ID""" diff --git a/tests/api_resources/cloud/load_balancers/test_listeners.py b/tests/api_resources/cloud/load_balancers/test_listeners.py index 2605c9f6..b7228ea5 100644 --- a/tests/api_resources/cloud/load_balancers/test_listeners.py +++ b/tests/api_resources/cloud/load_balancers/test_listeners.py @@ -22,7 +22,7 @@ def test_method_create(self, client: Gcore) -> None: listener = client.cloud.load_balancers.listeners.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -34,7 +34,7 @@ def test_method_create_with_all_params(self, client: Gcore) -> None: listener = client.cloud.load_balancers.listeners.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -60,7 +60,7 @@ def test_raw_response_create(self, client: Gcore) -> None: response = client.cloud.load_balancers.listeners.with_raw_response.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -76,7 +76,7 @@ def test_streaming_response_create(self, client: Gcore) -> None: with client.cloud.load_balancers.listeners.with_streaming_response.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -171,7 +171,7 @@ def test_method_list_with_all_params(self, client: Gcore) -> None: listener = client.cloud.load_balancers.listeners.list( project_id=1, region_id=1, - loadbalancer_id="00000000-0000-4000-8000-000000000000", + load_balancer_id="00000000-0000-4000-8000-000000000000", show_stats=True, ) assert_matches_type(LoadBalancerListenerList, listener, path=["response"]) @@ -315,7 +315,7 @@ async def test_method_create(self, async_client: AsyncGcore) -> None: listener = await async_client.cloud.load_balancers.listeners.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -327,7 +327,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncGcore) -> listener = await async_client.cloud.load_balancers.listeners.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -353,7 +353,7 @@ async def test_raw_response_create(self, async_client: AsyncGcore) -> None: response = await async_client.cloud.load_balancers.listeners.with_raw_response.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -369,7 +369,7 @@ async def test_streaming_response_create(self, async_client: AsyncGcore) -> None async with async_client.cloud.load_balancers.listeners.with_streaming_response.create( project_id=1, region_id=1, - loadbalancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", + load_balancer_id="30f4f55b-4a7c-48e0-9954-5cddfee216e7", name="my_listener", protocol="HTTP", protocol_port=80, @@ -464,7 +464,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncGcore) -> No listener = await async_client.cloud.load_balancers.listeners.list( project_id=1, region_id=1, - loadbalancer_id="00000000-0000-4000-8000-000000000000", + load_balancer_id="00000000-0000-4000-8000-000000000000", show_stats=True, ) assert_matches_type(LoadBalancerListenerList, listener, path=["response"]) diff --git a/tests/api_resources/cloud/load_balancers/test_metrics.py b/tests/api_resources/cloud/load_balancers/test_metrics.py new file mode 100644 index 00000000..281f1d68 --- /dev/null +++ b/tests/api_resources/cloud/load_balancers/test_metrics.py @@ -0,0 +1,132 @@ +# 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 gcore import Gcore, AsyncGcore +from tests.utils import assert_matches_type +from gcore.types.cloud import LoadBalancerMetricsList + +base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") + + +class TestMetrics: + parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + def test_method_list(self, client: Gcore) -> None: + metric = client.cloud.load_balancers.metrics.list( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) + assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) + + @parametrize + def test_raw_response_list(self, client: Gcore) -> None: + response = client.cloud.load_balancers.metrics.with_raw_response.list( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + metric = response.parse() + assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) + + @parametrize + def test_streaming_response_list(self, client: Gcore) -> None: + with client.cloud.load_balancers.metrics.with_streaming_response.list( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + metric = response.parse() + assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_list(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.metrics.with_raw_response.list( + load_balancer_id="", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) + + +class TestAsyncMetrics: + parametrize = pytest.mark.parametrize( + "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] + ) + + @parametrize + async def test_method_list(self, async_client: AsyncGcore) -> None: + metric = await async_client.cloud.load_balancers.metrics.list( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) + assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) + + @parametrize + async def test_raw_response_list(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.metrics.with_raw_response.list( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + metric = await response.parse() + assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) + + @parametrize + async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.metrics.with_streaming_response.list( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + metric = await response.parse() + assert_matches_type(LoadBalancerMetricsList, metric, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_list(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.metrics.with_raw_response.list( + load_balancer_id="", + project_id=0, + region_id=0, + time_interval=6, + time_unit="day", + ) diff --git a/tests/api_resources/cloud/load_balancers/test_pools.py b/tests/api_resources/cloud/load_balancers/test_pools.py index f926dcc0..0b095c3d 100644 --- a/tests/api_resources/cloud/load_balancers/test_pools.py +++ b/tests/api_resources/cloud/load_balancers/test_pools.py @@ -49,7 +49,7 @@ def test_method_create_with_all_params(self, client: Gcore) -> None: "url_path": "/", }, listener_id="listener_id", - loadbalancer_id="bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", + load_balancer_id="bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", members=[ { "address": "192.168.1.101", @@ -227,7 +227,7 @@ def test_method_list_with_all_params(self, client: Gcore) -> None: region_id=1, details=True, listener_id="00000000-0000-4000-8000-000000000000", - loadbalancer_id="00000000-0000-4000-8000-000000000000", + load_balancer_id="00000000-0000-4000-8000-000000000000", ) assert_matches_type(LoadBalancerPoolList, pool, path=["response"]) @@ -387,7 +387,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncGcore) -> "url_path": "/", }, listener_id="listener_id", - loadbalancer_id="bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", + load_balancer_id="bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", members=[ { "address": "192.168.1.101", @@ -565,7 +565,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncGcore) -> No region_id=1, details=True, listener_id="00000000-0000-4000-8000-000000000000", - loadbalancer_id="00000000-0000-4000-8000-000000000000", + load_balancer_id="00000000-0000-4000-8000-000000000000", ) assert_matches_type(LoadBalancerPoolList, pool, path=["response"]) diff --git a/tests/api_resources/cloud/load_balancers/test_statuses.py b/tests/api_resources/cloud/load_balancers/test_statuses.py index a9583093..da7e88cb 100644 --- a/tests/api_resources/cloud/load_balancers/test_statuses.py +++ b/tests/api_resources/cloud/load_balancers/test_statuses.py @@ -9,7 +9,7 @@ from gcore import Gcore, AsyncGcore from tests.utils import assert_matches_type -from gcore.types.cloud import LoadBalancerStatusList +from gcore.types.cloud import LoadBalancerStatus, LoadBalancerStatusList base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -51,6 +51,52 @@ def test_streaming_response_list(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True + @parametrize + def test_method_get(self, client: Gcore) -> None: + status = client.cloud.load_balancers.statuses.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(LoadBalancerStatus, status, path=["response"]) + + @parametrize + def test_raw_response_get(self, client: Gcore) -> None: + response = client.cloud.load_balancers.statuses.with_raw_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + status = response.parse() + assert_matches_type(LoadBalancerStatus, status, path=["response"]) + + @parametrize + def test_streaming_response_get(self, client: Gcore) -> None: + with client.cloud.load_balancers.statuses.with_streaming_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + status = response.parse() + assert_matches_type(LoadBalancerStatus, status, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_get(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.statuses.with_raw_response.get( + load_balancer_id="", + project_id=0, + region_id=0, + ) + class TestAsyncStatuses: parametrize = pytest.mark.parametrize( @@ -90,3 +136,49 @@ async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: assert_matches_type(LoadBalancerStatusList, status, path=["response"]) assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_get(self, async_client: AsyncGcore) -> None: + status = await async_client.cloud.load_balancers.statuses.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(LoadBalancerStatus, status, path=["response"]) + + @parametrize + async def test_raw_response_get(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.statuses.with_raw_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + status = await response.parse() + assert_matches_type(LoadBalancerStatus, status, path=["response"]) + + @parametrize + async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.statuses.with_streaming_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + status = await response.parse() + assert_matches_type(LoadBalancerStatus, status, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_get(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.statuses.with_raw_response.get( + load_balancer_id="", + project_id=0, + region_id=0, + ) diff --git a/tests/api_resources/cloud/test_load_balancers.py b/tests/api_resources/cloud/test_load_balancers.py index 8bb41cbf..faf824ef 100644 --- a/tests/api_resources/cloud/test_load_balancers.py +++ b/tests/api_resources/cloud/test_load_balancers.py @@ -65,7 +65,7 @@ def test_method_create_with_all_params(self, client: Gcore) -> None: "url_path": "/", }, "listener_id": "listener_id", - "loadbalancer_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", + "load_balancer_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", "members": [ { "address": "192.168.1.101", @@ -158,6 +158,70 @@ def test_streaming_response_create(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True + @parametrize + def test_method_update(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + def test_method_update_with_all_params(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + logging={ + "destination_region_id": 1, + "enabled": True, + "retention_policy": {"period": 45}, + "topic_name": "my-log-name", + }, + name="some_name", + preferred_connectivity="L2", + tags={"foo": "my-tag-value"}, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + def test_raw_response_update(self, client: Gcore) -> None: + response = client.cloud.load_balancers.with_raw_response.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + def test_streaming_response_update(self, client: Gcore) -> None: + with client.cloud.load_balancers.with_streaming_response.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_update(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.with_raw_response.update( + load_balancer_id="", + project_id=0, + region_id=0, + ) + @parametrize def test_method_list(self, client: Gcore) -> None: load_balancer = client.cloud.load_balancers.list( @@ -210,6 +274,215 @@ def test_streaming_response_list(self, client: Gcore) -> None: assert cast(Any, response.is_closed) is True + @parametrize + def test_method_delete(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.delete( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_raw_response_delete(self, client: Gcore) -> None: + response = client.cloud.load_balancers.with_raw_response.delete( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_streaming_response_delete(self, client: Gcore) -> None: + with client.cloud.load_balancers.with_streaming_response.delete( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_delete(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.with_raw_response.delete( + load_balancer_id="", + project_id=0, + region_id=0, + ) + + @parametrize + def test_method_failover(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_method_failover_with_all_params(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + force=True, + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_raw_response_failover(self, client: Gcore) -> None: + response = client.cloud.load_balancers.with_raw_response.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_streaming_response_failover(self, client: Gcore) -> None: + with client.cloud.load_balancers.with_streaming_response.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_failover(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.with_raw_response.failover( + load_balancer_id="", + project_id=0, + region_id=0, + ) + + @parametrize + def test_method_get(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + def test_method_get_with_all_params(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + show_stats=True, + with_ddos=True, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + def test_raw_response_get(self, client: Gcore) -> None: + response = client.cloud.load_balancers.with_raw_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + def test_streaming_response_get(self, client: Gcore) -> None: + with client.cloud.load_balancers.with_streaming_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_get(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.with_raw_response.get( + load_balancer_id="", + project_id=0, + region_id=0, + ) + + @parametrize + def test_method_resize(self, client: Gcore) -> None: + load_balancer = client.cloud.load_balancers.resize( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_raw_response_resize(self, client: Gcore) -> None: + response = client.cloud.load_balancers.with_raw_response.resize( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + def test_streaming_response_resize(self, client: Gcore) -> None: + with client.cloud.load_balancers.with_streaming_response.resize( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_resize(self, client: Gcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + client.cloud.load_balancers.with_raw_response.resize( + load_balancer_id="", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) + class TestAsyncLoadBalancers: parametrize = pytest.mark.parametrize( @@ -260,7 +533,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncGcore) -> "url_path": "/", }, "listener_id": "listener_id", - "loadbalancer_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", + "load_balancer_id": "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", "members": [ { "address": "192.168.1.101", @@ -353,6 +626,70 @@ async def test_streaming_response_create(self, async_client: AsyncGcore) -> None assert cast(Any, response.is_closed) is True + @parametrize + async def test_method_update(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + async def test_method_update_with_all_params(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + logging={ + "destination_region_id": 1, + "enabled": True, + "retention_policy": {"period": 45}, + "topic_name": "my-log-name", + }, + name="some_name", + preferred_connectivity="L2", + tags={"foo": "my-tag-value"}, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + async def test_raw_response_update(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.with_raw_response.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = await response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + async def test_streaming_response_update(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.with_streaming_response.update( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = await response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_update(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.with_raw_response.update( + load_balancer_id="", + project_id=0, + region_id=0, + ) + @parametrize async def test_method_list(self, async_client: AsyncGcore) -> None: load_balancer = await async_client.cloud.load_balancers.list( @@ -404,3 +741,212 @@ async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: assert_matches_type(AsyncOffsetPage[LoadBalancer], load_balancer, path=["response"]) assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_delete(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.delete( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_raw_response_delete(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.with_raw_response.delete( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = await response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_streaming_response_delete(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.with_streaming_response.delete( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = await response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_delete(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.with_raw_response.delete( + load_balancer_id="", + project_id=0, + region_id=0, + ) + + @parametrize + async def test_method_failover(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_method_failover_with_all_params(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + force=True, + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_raw_response_failover(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.with_raw_response.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = await response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_streaming_response_failover(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.with_streaming_response.failover( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = await response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_failover(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.with_raw_response.failover( + load_balancer_id="", + project_id=0, + region_id=0, + ) + + @parametrize + async def test_method_get(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + async def test_method_get_with_all_params(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + show_stats=True, + with_ddos=True, + ) + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + async def test_raw_response_get(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.with_raw_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = await response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + @parametrize + async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.with_streaming_response.get( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = await response.parse() + assert_matches_type(LoadBalancer, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_get(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.with_raw_response.get( + load_balancer_id="", + project_id=0, + region_id=0, + ) + + @parametrize + async def test_method_resize(self, async_client: AsyncGcore) -> None: + load_balancer = await async_client.cloud.load_balancers.resize( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_raw_response_resize(self, async_client: AsyncGcore) -> None: + response = await async_client.cloud.load_balancers.with_raw_response.resize( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + load_balancer = await response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + @parametrize + async def test_streaming_response_resize(self, async_client: AsyncGcore) -> None: + async with async_client.cloud.load_balancers.with_streaming_response.resize( + load_balancer_id="load_balancer_id", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + load_balancer = await response.parse() + assert_matches_type(TaskIDList, load_balancer, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_resize(self, async_client: AsyncGcore) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `load_balancer_id` but received ''"): + await async_client.cloud.load_balancers.with_raw_response.resize( + load_balancer_id="", + project_id=0, + region_id=0, + flavor="lb1-2-4", + ) From eefad21eace29d0c604520d998d227821d1df42c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 16 Oct 2025 11:36:10 +0000 Subject: [PATCH 32/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 7634073e..a2eb2e5b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-61c8daa30b17f90adc70901ef07fff2a1f9ea09c65153b7c7041dfedecd88288.yml -openapi_spec_hash: 9e0d4a49b58c61a8d53e6b4f3123f225 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-e54e8526d5139c8d8a7997847009fe8ec7a790eb4d5b143c7b30ef1db0a8dce0.yml +openapi_spec_hash: 05a6616f8cd320010d34e2a58fee9f05 config_hash: 4424995cf809ff9b2c7ef6f4b5fbdcf8 From 6b55df953a0695b0047b947ab898063df9cba044 Mon Sep 17 00:00:00 2001 From: Danil Krox Date: Thu, 16 Oct 2025 15:56:41 +0200 Subject: [PATCH 33/38] fix(cloud)!: use load_balancer_id in poll methods --- examples/cloud/load_balancers.py | 46 +++++++++---------- examples/cloud/load_balancers_async.py | 46 +++++++++---------- .../cloud/load_balancers/listeners.py | 8 ++-- .../cloud/load_balancers/load_balancers.py | 36 +++++++-------- .../cloud/load_balancers/pools/pools.py | 8 ++-- 5 files changed, 72 insertions(+), 72 deletions(-) diff --git a/examples/cloud/load_balancers.py b/examples/cloud/load_balancers.py index dee3ece5..ae2f4ff7 100644 --- a/examples/cloud/load_balancers.py +++ b/examples/cloud/load_balancers.py @@ -19,19 +19,19 @@ def main() -> None: lb_id = create_load_balancer(client=gcore) list_load_balancers(client=gcore) - get_load_balancer(client=gcore, loadbalancer_id=lb_id) - update_load_balancer(client=gcore, loadbalancer_id=lb_id) - resize_load_balancer(client=gcore, loadbalancer_id=lb_id) - failover_load_balancer(client=gcore, loadbalancer_id=lb_id) + get_load_balancer(client=gcore, load_balancer_id=lb_id) + update_load_balancer(client=gcore, load_balancer_id=lb_id) + resize_load_balancer(client=gcore, load_balancer_id=lb_id) + failover_load_balancer(client=gcore, load_balancer_id=lb_id) # Statuses list_load_balancer_statuses(client=gcore) - get_load_balancer_status(client=gcore, loadbalancer_id=lb_id) + get_load_balancer_status(client=gcore, load_balancer_id=lb_id) # Metrics - get_load_balancer_metrics(client=gcore, loadbalancer_id=lb_id) + get_load_balancer_metrics(client=gcore, load_balancer_id=lb_id) - delete_load_balancer(client=gcore, loadbalancer_id=lb_id) + delete_load_balancer(client=gcore, load_balancer_id=lb_id) def create_load_balancer(*, client: Gcore) -> str: @@ -50,31 +50,31 @@ def list_load_balancers(*, client: Gcore) -> None: print("========================") -def get_load_balancer(*, client: Gcore, loadbalancer_id: str) -> None: +def get_load_balancer(*, client: Gcore, load_balancer_id: str) -> None: print("\n=== GET LOAD BALANCER ===") - lb = client.cloud.load_balancers.get(loadbalancer_id=loadbalancer_id) + lb = client.cloud.load_balancers.get(load_balancer_id=load_balancer_id) flavor_name = lb.flavor.flavor_name if lb.flavor else "Unknown" print(f"Load balancer: ID={lb.id}, name={lb.name}, status={lb.provisioning_status}, flavor={flavor_name}") print("========================") -def update_load_balancer(*, client: Gcore, loadbalancer_id: str) -> None: +def update_load_balancer(*, client: Gcore, load_balancer_id: str) -> None: print("\n=== UPDATE LOAD BALANCER ===") - lb = client.cloud.load_balancers.update(loadbalancer_id=loadbalancer_id, name="gcore-go-example-updated") + lb = client.cloud.load_balancers.update(load_balancer_id=load_balancer_id, name="gcore-go-example-updated") print(f"Updated load balancer: ID={lb.id}, name={lb.name}") print("========================") -def resize_load_balancer(*, client: Gcore, loadbalancer_id: str) -> None: +def resize_load_balancer(*, client: Gcore, load_balancer_id: str) -> None: print("\n=== RESIZE LOAD BALANCER ===") - lb = client.cloud.load_balancers.resize_and_poll(loadbalancer_id=loadbalancer_id, flavor="lb1-2-4") + lb = client.cloud.load_balancers.resize_and_poll(load_balancer_id=load_balancer_id, flavor="lb1-2-4") print(f"Resized load balancer: ID={lb.id}, flavor=lb1-2-4") print("========================") -def failover_load_balancer(*, client: Gcore, loadbalancer_id: str) -> None: +def failover_load_balancer(*, client: Gcore, load_balancer_id: str) -> None: print("\n=== FAILOVER LOAD BALANCER ===") - lb = client.cloud.load_balancers.failover_and_poll(loadbalancer_id=loadbalancer_id) + lb = client.cloud.load_balancers.failover_and_poll(load_balancer_id=load_balancer_id) print(f"Failed over load balancer: ID={lb.id}") print("========================") @@ -89,33 +89,33 @@ def list_load_balancer_statuses(*, client: Gcore) -> None: print("========================") -def get_load_balancer_status(*, client: Gcore, loadbalancer_id: str) -> None: +def get_load_balancer_status(*, client: Gcore, load_balancer_id: str) -> None: print("\n=== GET LOAD BALANCER STATUS ===") - status = client.cloud.load_balancers.statuses.get(loadbalancer_id=loadbalancer_id) + status = client.cloud.load_balancers.statuses.get(load_balancer_id=load_balancer_id) print( f"Load balancer status: ID={status.id}, operating status={status.operating_status}, provisioning status={status.provisioning_status}" ) print("========================") -def get_load_balancer_metrics(*, client: Gcore, loadbalancer_id: str) -> None: +def get_load_balancer_metrics(*, client: Gcore, load_balancer_id: str) -> None: print("\n=== GET LOAD BALANCER METRICS ===") metrics = client.cloud.load_balancers.metrics.list( - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, time_interval=1, time_unit="hour", ) - print(f"Load balancer metrics: ID={loadbalancer_id}") + print(f"Load balancer metrics: ID={load_balancer_id}") if metrics.results: metric = metrics.results[0] print(f"CPU: {metric.cpu_util}%, memory: {metric.memory_util}%, time: {metric.time}") print("========================") -def delete_load_balancer(*, client: Gcore, loadbalancer_id: str) -> None: +def delete_load_balancer(*, client: Gcore, load_balancer_id: str) -> None: print("\n=== DELETE LOAD BALANCER ===") - client.cloud.load_balancers.delete_and_poll(loadbalancer_id=loadbalancer_id) - print(f"Deleted load balancer: ID={loadbalancer_id}") + client.cloud.load_balancers.delete_and_poll(load_balancer_id=load_balancer_id) + print(f"Deleted load balancer: ID={load_balancer_id}") print("========================") diff --git a/examples/cloud/load_balancers_async.py b/examples/cloud/load_balancers_async.py index dea488d5..b4db1cd1 100644 --- a/examples/cloud/load_balancers_async.py +++ b/examples/cloud/load_balancers_async.py @@ -23,19 +23,19 @@ async def main() -> None: lb_id = await create_load_balancer(client=gcore) await list_load_balancers(client=gcore) - await get_load_balancer(client=gcore, loadbalancer_id=lb_id) - await update_load_balancer(client=gcore, loadbalancer_id=lb_id) - await resize_load_balancer(client=gcore, loadbalancer_id=lb_id) - await failover_load_balancer(client=gcore, loadbalancer_id=lb_id) + await get_load_balancer(client=gcore, load_balancer_id=lb_id) + await update_load_balancer(client=gcore, load_balancer_id=lb_id) + await resize_load_balancer(client=gcore, load_balancer_id=lb_id) + await failover_load_balancer(client=gcore, load_balancer_id=lb_id) # Statuses await list_load_balancer_statuses(client=gcore) - await get_load_balancer_status(client=gcore, loadbalancer_id=lb_id) + await get_load_balancer_status(client=gcore, load_balancer_id=lb_id) # Metrics - await get_load_balancer_metrics(client=gcore, loadbalancer_id=lb_id) + await get_load_balancer_metrics(client=gcore, load_balancer_id=lb_id) - await delete_load_balancer(client=gcore, loadbalancer_id=lb_id) + await delete_load_balancer(client=gcore, load_balancer_id=lb_id) async def create_load_balancer(*, client: AsyncGcore) -> str: @@ -56,31 +56,31 @@ async def list_load_balancers(*, client: AsyncGcore) -> None: print("========================") -async def get_load_balancer(*, client: AsyncGcore, loadbalancer_id: str) -> None: +async def get_load_balancer(*, client: AsyncGcore, load_balancer_id: str) -> None: print("\n=== GET LOAD BALANCER ===") - lb = await client.cloud.load_balancers.get(loadbalancer_id=loadbalancer_id) + lb = await client.cloud.load_balancers.get(load_balancer_id=load_balancer_id) flavor_name = lb.flavor.flavor_name if lb.flavor else "Unknown" print(f"Load balancer: ID={lb.id}, name={lb.name}, status={lb.provisioning_status}, flavor={flavor_name}") print("========================") -async def update_load_balancer(*, client: AsyncGcore, loadbalancer_id: str) -> None: +async def update_load_balancer(*, client: AsyncGcore, load_balancer_id: str) -> None: print("\n=== UPDATE LOAD BALANCER ===") - lb = await client.cloud.load_balancers.update(loadbalancer_id=loadbalancer_id, name="gcore-go-example-updated") + lb = await client.cloud.load_balancers.update(load_balancer_id=load_balancer_id, name="gcore-go-example-updated") print(f"Updated load balancer: ID={lb.id}, name={lb.name}") print("========================") -async def resize_load_balancer(*, client: AsyncGcore, loadbalancer_id: str) -> None: +async def resize_load_balancer(*, client: AsyncGcore, load_balancer_id: str) -> None: print("\n=== RESIZE LOAD BALANCER ===") - lb = await client.cloud.load_balancers.resize_and_poll(loadbalancer_id=loadbalancer_id, flavor="lb1-2-4") + lb = await client.cloud.load_balancers.resize_and_poll(load_balancer_id=load_balancer_id, flavor="lb1-2-4") print(f"Resized load balancer: ID={lb.id}, flavor=lb1-2-4") print("========================") -async def failover_load_balancer(*, client: AsyncGcore, loadbalancer_id: str) -> None: +async def failover_load_balancer(*, client: AsyncGcore, load_balancer_id: str) -> None: print("\n=== FAILOVER LOAD BALANCER ===") - lb = await client.cloud.load_balancers.failover_and_poll(loadbalancer_id=loadbalancer_id) + lb = await client.cloud.load_balancers.failover_and_poll(load_balancer_id=load_balancer_id) print(f"Failed over load balancer: ID={lb.id}") print("========================") @@ -95,33 +95,33 @@ async def list_load_balancer_statuses(*, client: AsyncGcore) -> None: print("========================") -async def get_load_balancer_status(*, client: AsyncGcore, loadbalancer_id: str) -> None: +async def get_load_balancer_status(*, client: AsyncGcore, load_balancer_id: str) -> None: print("\n=== GET LOAD BALANCER STATUS ===") - status = await client.cloud.load_balancers.statuses.get(loadbalancer_id=loadbalancer_id) + status = await client.cloud.load_balancers.statuses.get(load_balancer_id=load_balancer_id) print( f"Load balancer status: ID={status.id}, operating status={status.operating_status}, provisioning status={status.provisioning_status}" ) print("========================") -async def get_load_balancer_metrics(*, client: AsyncGcore, loadbalancer_id: str) -> None: +async def get_load_balancer_metrics(*, client: AsyncGcore, load_balancer_id: str) -> None: print("\n=== GET LOAD BALANCER METRICS ===") metrics = await client.cloud.load_balancers.metrics.list( - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, time_interval=1, time_unit="hour", ) - print(f"Load balancer metrics: ID={loadbalancer_id}") + print(f"Load balancer metrics: ID={load_balancer_id}") if metrics.results: metric = metrics.results[0] print(f"CPU: {metric.cpu_util}%, memory: {metric.memory_util}%, time: {metric.time}") print("========================") -async def delete_load_balancer(*, client: AsyncGcore, loadbalancer_id: str) -> None: +async def delete_load_balancer(*, client: AsyncGcore, load_balancer_id: str) -> None: print("\n=== DELETE LOAD BALANCER ===") - await client.cloud.load_balancers.delete_and_poll(loadbalancer_id=loadbalancer_id) - print(f"Deleted load balancer: ID={loadbalancer_id}") + await client.cloud.load_balancers.delete_and_poll(load_balancer_id=load_balancer_id) + print(f"Deleted load balancer: ID={load_balancer_id}") print("========================") diff --git a/src/gcore/resources/cloud/load_balancers/listeners.py b/src/gcore/resources/cloud/load_balancers/listeners.py index eabc4c83..74f33849 100644 --- a/src/gcore/resources/cloud/load_balancers/listeners.py +++ b/src/gcore/resources/cloud/load_balancers/listeners.py @@ -398,7 +398,7 @@ def create_and_poll( *, project_id: int | None = None, region_id: int | None = None, - loadbalancer_id: str, + load_balancer_id: str, name: str, protocol: LbListenerProtocol, protocol_port: int, @@ -422,7 +422,7 @@ def create_and_poll( response = self.create( project_id=project_id, region_id=region_id, - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, name=name, protocol=protocol, protocol_port=protocol_port, @@ -921,7 +921,7 @@ async def create_and_poll( *, project_id: int | None = None, region_id: int | None = None, - loadbalancer_id: str, + load_balancer_id: str, name: str, protocol: LbListenerProtocol, protocol_port: int, @@ -945,7 +945,7 @@ async def create_and_poll( response = await self.create( project_id=project_id, region_id=region_id, - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, name=name, protocol=protocol, protocol_port=protocol_port, diff --git a/src/gcore/resources/cloud/load_balancers/load_balancers.py b/src/gcore/resources/cloud/load_balancers/load_balancers.py index 9916f1e2..1c896b10 100644 --- a/src/gcore/resources/cloud/load_balancers/load_balancers.py +++ b/src/gcore/resources/cloud/load_balancers/load_balancers.py @@ -462,7 +462,7 @@ def create_and_poll( ): raise ValueError(f"Expected exactly one resource to be created in a task") return self.get( - loadbalancer_id=task.created_resources.loadbalancers[0], + load_balancer_id=task.created_resources.loadbalancers[0], project_id=project_id, region_id=region_id, extra_headers=extra_headers, @@ -471,7 +471,7 @@ def create_and_poll( def delete_and_poll( self, - loadbalancer_id: str, + load_balancer_id: str, *, project_id: int | None = None, region_id: int | None = None, @@ -487,7 +487,7 @@ def delete_and_poll( Delete load balancer and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method. """ response = self.delete( - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, project_id=project_id, region_id=region_id, extra_headers=extra_headers, @@ -505,7 +505,7 @@ def delete_and_poll( def failover_and_poll( self, - loadbalancer_id: str, + load_balancer_id: str, *, project_id: int | None = None, region_id: int | None = None, @@ -522,7 +522,7 @@ def failover_and_poll( Failover load balancer and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method. """ response = self.failover( - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, project_id=project_id, region_id=region_id, force=force, @@ -539,7 +539,7 @@ def failover_and_poll( polling_interval_seconds=polling_interval_seconds, ) return self.get( - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, project_id=project_id, region_id=region_id, extra_headers=extra_headers, @@ -548,7 +548,7 @@ def failover_and_poll( def resize_and_poll( self, - loadbalancer_id: str, + load_balancer_id: str, *, project_id: int | None = None, region_id: int | None = None, @@ -565,7 +565,7 @@ def resize_and_poll( Resize load balancer and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method. """ response = self.resize( - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, project_id=project_id, region_id=region_id, flavor=flavor, @@ -582,7 +582,7 @@ def resize_and_poll( polling_interval_seconds=polling_interval_seconds, ) return self.get( - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, project_id=project_id, region_id=region_id, extra_headers=extra_headers, @@ -1147,7 +1147,7 @@ async def create_and_poll( ): raise ValueError(f"Expected exactly one resource to be created in a task") return await self.get( - loadbalancer_id=task.created_resources.loadbalancers[0], + load_balancer_id=task.created_resources.loadbalancers[0], project_id=project_id, region_id=region_id, extra_headers=extra_headers, @@ -1156,7 +1156,7 @@ async def create_and_poll( async def delete_and_poll( self, - loadbalancer_id: str, + load_balancer_id: str, *, project_id: int | None = None, region_id: int | None = None, @@ -1172,7 +1172,7 @@ async def delete_and_poll( Delete load balancer and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method. """ response = await self.delete( - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, project_id=project_id, region_id=region_id, extra_headers=extra_headers, @@ -1190,7 +1190,7 @@ async def delete_and_poll( async def failover_and_poll( self, - loadbalancer_id: str, + load_balancer_id: str, *, project_id: int | None = None, region_id: int | None = None, @@ -1207,7 +1207,7 @@ async def failover_and_poll( Failover load balancer and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method. """ response = await self.failover( - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, project_id=project_id, region_id=region_id, force=force, @@ -1224,7 +1224,7 @@ async def failover_and_poll( polling_interval_seconds=polling_interval_seconds, ) return await self.get( - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, project_id=project_id, region_id=region_id, extra_headers=extra_headers, @@ -1233,7 +1233,7 @@ async def failover_and_poll( async def resize_and_poll( self, - loadbalancer_id: str, + load_balancer_id: str, *, project_id: int | None = None, region_id: int | None = None, @@ -1250,7 +1250,7 @@ async def resize_and_poll( Resize load balancer and poll for the result. Only the first task will be polled. If you need to poll more tasks, use the `tasks.poll` method. """ response = await self.resize( - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, project_id=project_id, region_id=region_id, flavor=flavor, @@ -1267,7 +1267,7 @@ async def resize_and_poll( polling_interval_seconds=polling_interval_seconds, ) return await self.get( - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, project_id=project_id, region_id=region_id, extra_headers=extra_headers, diff --git a/src/gcore/resources/cloud/load_balancers/pools/pools.py b/src/gcore/resources/cloud/load_balancers/pools/pools.py index e2ae0c5a..7d438e05 100644 --- a/src/gcore/resources/cloud/load_balancers/pools/pools.py +++ b/src/gcore/resources/cloud/load_balancers/pools/pools.py @@ -451,7 +451,7 @@ def create_and_poll( crl_secret_id: Optional[str] | Omit = omit, healthmonitor: Optional[pool_create_params.Healthmonitor] | Omit = omit, listener_id: Optional[str] | Omit = omit, - loadbalancer_id: Optional[str] | Omit = omit, + load_balancer_id: Optional[str] | Omit = omit, members: Optional[Iterable[pool_create_params.Member]] | Omit = omit, secret_id: Optional[str] | Omit = omit, session_persistence: Optional[pool_create_params.SessionPersistence] | Omit = omit, @@ -476,7 +476,7 @@ def create_and_poll( crl_secret_id=crl_secret_id, healthmonitor=healthmonitor, listener_id=listener_id, - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, members=members, secret_id=secret_id, session_persistence=session_persistence, @@ -1012,7 +1012,7 @@ async def create_and_poll( crl_secret_id: Optional[str] | Omit = omit, healthmonitor: Optional[pool_create_params.Healthmonitor] | Omit = omit, listener_id: Optional[str] | Omit = omit, - loadbalancer_id: Optional[str] | Omit = omit, + load_balancer_id: Optional[str] | Omit = omit, members: Optional[Iterable[pool_create_params.Member]] | Omit = omit, secret_id: Optional[str] | Omit = omit, session_persistence: Optional[pool_create_params.SessionPersistence] | Omit = omit, @@ -1037,7 +1037,7 @@ async def create_and_poll( crl_secret_id=crl_secret_id, healthmonitor=healthmonitor, listener_id=listener_id, - loadbalancer_id=loadbalancer_id, + load_balancer_id=load_balancer_id, members=members, secret_id=secret_id, session_persistence=session_persistence, From ca4cbbabc6c143e6a1c54e861cafbd38f906ebda Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 16 Oct 2025 14:11:40 +0000 Subject: [PATCH 34/38] feat(api): aggregated API specs update --- .stats.yml | 6 +- api.md | 15 - src/gcore/resources/cdn/logs/__init__.py | 14 - src/gcore/resources/cdn/logs/logs.py | 32 - src/gcore/resources/cdn/logs/settings.py | 1065 ----------------- src/gcore/resources/cdn/statistics.py | 8 +- src/gcore/types/cdn/logs/__init__.py | 4 - src/gcore/types/cdn/logs/log_settings.py | 172 --- .../types/cdn/logs/setting_create_params.py | 200 ---- .../types/cdn/logs/setting_update_params.py | 200 ---- src/gcore/types/cdn/logs_aggregated_stats.py | 2 +- tests/api_resources/cdn/logs/test_settings.py | 568 --------- 12 files changed, 8 insertions(+), 2278 deletions(-) delete mode 100644 src/gcore/resources/cdn/logs/settings.py delete mode 100644 src/gcore/types/cdn/logs/log_settings.py delete mode 100644 src/gcore/types/cdn/logs/setting_create_params.py delete mode 100644 src/gcore/types/cdn/logs/setting_update_params.py delete mode 100644 tests/api_resources/cdn/logs/test_settings.py diff --git a/.stats.yml b/.stats.yml index a2eb2e5b..db89b62d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 612 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-e54e8526d5139c8d8a7997847009fe8ec7a790eb4d5b143c7b30ef1db0a8dce0.yml -openapi_spec_hash: 05a6616f8cd320010d34e2a58fee9f05 +configured_endpoints: 608 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-028d2bc06b6df923be73a9173da89cc0b5f82016051679f7500732da0168431f.yml +openapi_spec_hash: d85526ff52803ee01d44231d0536da87 config_hash: 4424995cf809ff9b2c7ef6f4b5fbdcf8 diff --git a/api.md b/api.md index d2b0533c..ff858a4e 100644 --- a/api.md +++ b/api.md @@ -2251,21 +2251,6 @@ Methods: - client.cdn.logs.list(\*\*params) -> SyncOffsetPageCdnLogs[Data] - client.cdn.logs.download(\*\*params) -> BinaryAPIResponse -### Settings - -Types: - -```python -from gcore.types.cdn.logs import LogSettings -``` - -Methods: - -- client.cdn.logs.settings.create(\*\*params) -> None -- client.cdn.logs.settings.update(\*\*params) -> None -- client.cdn.logs.settings.delete() -> None -- client.cdn.logs.settings.get() -> LogSettings - ## LogsUploader Types: diff --git a/src/gcore/resources/cdn/logs/__init__.py b/src/gcore/resources/cdn/logs/__init__.py index 580717d0..30876fab 100644 --- a/src/gcore/resources/cdn/logs/__init__.py +++ b/src/gcore/resources/cdn/logs/__init__.py @@ -8,22 +8,8 @@ LogsResourceWithStreamingResponse, AsyncLogsResourceWithStreamingResponse, ) -from .settings import ( - SettingsResource, - AsyncSettingsResource, - SettingsResourceWithRawResponse, - AsyncSettingsResourceWithRawResponse, - SettingsResourceWithStreamingResponse, - AsyncSettingsResourceWithStreamingResponse, -) __all__ = [ - "SettingsResource", - "AsyncSettingsResource", - "SettingsResourceWithRawResponse", - "AsyncSettingsResourceWithRawResponse", - "SettingsResourceWithStreamingResponse", - "AsyncSettingsResourceWithStreamingResponse", "LogsResource", "AsyncLogsResource", "LogsResourceWithRawResponse", diff --git a/src/gcore/resources/cdn/logs/logs.py b/src/gcore/resources/cdn/logs/logs.py index 123c80e6..4a03bc86 100644 --- a/src/gcore/resources/cdn/logs/logs.py +++ b/src/gcore/resources/cdn/logs/logs.py @@ -4,14 +4,6 @@ import httpx -from .settings import ( - SettingsResource, - AsyncSettingsResource, - SettingsResourceWithRawResponse, - AsyncSettingsResourceWithRawResponse, - SettingsResourceWithStreamingResponse, - AsyncSettingsResourceWithStreamingResponse, -) from ...._types import Body, Omit, Query, Headers, NotGiven, omit, not_given from ...._utils import maybe_transform, async_maybe_transform from ...._compat import cached_property @@ -39,10 +31,6 @@ class LogsResource(SyncAPIResource): - @cached_property - def settings(self) -> SettingsResource: - return SettingsResource(self._client) - @cached_property def with_raw_response(self) -> LogsResourceWithRawResponse: """ @@ -694,10 +682,6 @@ def download( class AsyncLogsResource(AsyncAPIResource): - @cached_property - def settings(self) -> AsyncSettingsResource: - return AsyncSettingsResource(self._client) - @cached_property def with_raw_response(self) -> AsyncLogsResourceWithRawResponse: """ @@ -1360,10 +1344,6 @@ def __init__(self, logs: LogsResource) -> None: BinaryAPIResponse, ) - @cached_property - def settings(self) -> SettingsResourceWithRawResponse: - return SettingsResourceWithRawResponse(self._logs.settings) - class AsyncLogsResourceWithRawResponse: def __init__(self, logs: AsyncLogsResource) -> None: @@ -1377,10 +1357,6 @@ def __init__(self, logs: AsyncLogsResource) -> None: AsyncBinaryAPIResponse, ) - @cached_property - def settings(self) -> AsyncSettingsResourceWithRawResponse: - return AsyncSettingsResourceWithRawResponse(self._logs.settings) - class LogsResourceWithStreamingResponse: def __init__(self, logs: LogsResource) -> None: @@ -1394,10 +1370,6 @@ def __init__(self, logs: LogsResource) -> None: StreamedBinaryAPIResponse, ) - @cached_property - def settings(self) -> SettingsResourceWithStreamingResponse: - return SettingsResourceWithStreamingResponse(self._logs.settings) - class AsyncLogsResourceWithStreamingResponse: def __init__(self, logs: AsyncLogsResource) -> None: @@ -1410,7 +1382,3 @@ def __init__(self, logs: AsyncLogsResource) -> None: logs.download, AsyncStreamedBinaryAPIResponse, ) - - @cached_property - def settings(self) -> AsyncSettingsResourceWithStreamingResponse: - return AsyncSettingsResourceWithStreamingResponse(self._logs.settings) diff --git a/src/gcore/resources/cdn/logs/settings.py b/src/gcore/resources/cdn/logs/settings.py deleted file mode 100644 index 94e81d6c..00000000 --- a/src/gcore/resources/cdn/logs/settings.py +++ /dev/null @@ -1,1065 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Iterable, Optional - -import httpx - -from ...._types import Body, Omit, Query, Headers, NoneType, NotGiven, omit, not_given -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 ...._base_client import make_request_options -from ....types.cdn.logs import setting_create_params, setting_update_params -from ....types.cdn.logs.log_settings import LogSettings - -__all__ = ["SettingsResource", "AsyncSettingsResource"] - - -class SettingsResource(SyncAPIResource): - @cached_property - def with_raw_response(self) -> SettingsResourceWithRawResponse: - """ - 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/G-Core/gcore-python#accessing-raw-response-data-eg-headers - """ - return SettingsResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> SettingsResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response - """ - return SettingsResourceWithStreamingResponse(self) - - def create( - self, - *, - all_resources_bucket: str, - all_resources_folder: str, - folders: Iterable[setting_create_params.Folder], - for_all_resources: bool, - ftp_hostname: str, - ftp_login: str, - ftp_password: str, - s3_access_key_id: str, - s3_hostname: str, - s3_secret_key: str, - s3_type: str, - sftp_hostname: str, - sftp_login: str, - sftp_password: str, - storage_type: str, - archive_size_mb: Optional[int] | Omit = omit, - enabled: bool | Omit = omit, - ftp_prepend_folder: str | Omit = omit, - ignore_empty_logs: bool | Omit = omit, - s3_aws_region: int | Omit = omit, - s3_bucket_location: str | Omit = omit, - s3_host_bucket: str | Omit = omit, - sftp_key_passphrase: str | Omit = omit, - sftp_prepend_folder: str | Omit = omit, - sftp_private_key: str | Omit = omit, - # 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, - ) -> None: - """ - Setup raw logs settings - - Args: - all_resources_bucket: Name of the S3 bucket to which logs for all CDN resources are delivered. - - all_resources_folder: - Parameter meaning depends on the value of the "`storage_type`" value: - - - If "`storage_type`": s3 - Name of the S3 bucket sub-folder to which logs for - all CDN resources are delivered. - - If "`storage_type`": ftp/sftp - Name of the folder (or path) to which logs for - all CDN resources are delivered. - - folders: List of folders/buckets for receiving CDN resources logs. - - for_all_resources: Defines whether logs of all CDN resources are delivered to one folder/bucket or - to separate ones. - - Possible values: - - - **true** - Logs of all CDN resources are delivered to one folder/bucket. - - **false** - Logs of different CDN resources are delivered to separate - folders/buckets. - - ftp_hostname: FTP storage hostname. - - ftp_login: FTP storage login. - - ftp_password: FTP storage password. - - s3_access_key_id: Access key ID for the S3 account. - - Access Key ID is 20 alpha-numeric characters like 022QF06E7MXBSH9DHM02 - - s3_hostname: S3 storage hostname. - - It is required if "`s3_type`": other. - - s3_secret_key: Secret access key for the S3 account. - - Secret Access Key is 20-50 alpha-numeric-slash-plus characters like - kWcrlUX5JEDGM/LtmEENI/aVmYvHNif5zB+d9+ct - - s3_type: Storage type compatible with S3. - - Possible values: - - - **amazon** – AWS S3 storage. - - **other** – Other (not AWS) S3 compatible storage. - - sftp_hostname: SFTP storage hostname. - - sftp_login: SFTP storage login. - - sftp_password: SFTP storage password. - - It should be empty if "`sftp_private_key`" is set. - - storage_type: Storage type. - - Possible values: - - - **ftp** - - **sftp** - - **s3** - - archive_size_mb: The size of a single piece of the archive in MB. In case of **null** value logs - are delivered without slicing. - - enabled: Enables or disables a log forwarding feature. - - Possible values: - - - **true** - log forwarding feature is active. - - **false** - log forwarding feature is deactivated. - - ftp_prepend_folder: Name of the FTP prepend folder for log delivery. - - **Null** is allowed. - - ignore_empty_logs: Enables or disables the forwarding of empty logs. - - Possible values: - - - **true** - Empty logs are not sent. - - **false** - Empty logs are sent. - - s3_aws_region: Amazon AWS region. - - s3_bucket_location: Location of S3 storage. - - Restrictions: - - - Maximum of 255 symbols. - - Latin letters (A-Z, a-z), digits (0-9), dots, colons, dashes, and underscores - (.:\\__-). - - s3_host_bucket: S3 bucket hostname. - - Restrictions: - - - Maximum of 255 symbols. - - Latin letters (A-Z, a-z,) digits (0-9,) dots, colons, dashes, and underscores. - - Required if "`s3_type`": other. - - sftp_key_passphrase: Passphrase for SFTP private key. - - Restrictions: - - - Should be set if private key encoded with passphrase. - - Should be empty if "`sftp_password`" is set. - - sftp_prepend_folder: Name of the SFTP prepend folder for log delivery. - - **Null** is allowed. - - sftp_private_key: Private key for SFTP authorization. - - Possible values: - - - **RSA** - - **ED25519** - - It should be empty if "`sftp_password`" is set. - - 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 - """ - extra_headers = {"Accept": "*/*", **(extra_headers or {})} - return self._post( - "/cdn/raw_log_settings", - body=maybe_transform( - { - "all_resources_bucket": all_resources_bucket, - "all_resources_folder": all_resources_folder, - "folders": folders, - "for_all_resources": for_all_resources, - "ftp_hostname": ftp_hostname, - "ftp_login": ftp_login, - "ftp_password": ftp_password, - "s3_access_key_id": s3_access_key_id, - "s3_hostname": s3_hostname, - "s3_secret_key": s3_secret_key, - "s3_type": s3_type, - "sftp_hostname": sftp_hostname, - "sftp_login": sftp_login, - "sftp_password": sftp_password, - "storage_type": storage_type, - "archive_size_mb": archive_size_mb, - "enabled": enabled, - "ftp_prepend_folder": ftp_prepend_folder, - "ignore_empty_logs": ignore_empty_logs, - "s3_aws_region": s3_aws_region, - "s3_bucket_location": s3_bucket_location, - "s3_host_bucket": s3_host_bucket, - "sftp_key_passphrase": sftp_key_passphrase, - "sftp_prepend_folder": sftp_prepend_folder, - "sftp_private_key": sftp_private_key, - }, - setting_create_params.SettingCreateParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=NoneType, - ) - - def update( - self, - *, - all_resources_bucket: str, - all_resources_folder: str, - folders: Iterable[setting_update_params.Folder], - for_all_resources: bool, - ftp_hostname: str, - ftp_login: str, - ftp_password: str, - s3_access_key_id: str, - s3_hostname: str, - s3_secret_key: str, - s3_type: str, - sftp_hostname: str, - sftp_login: str, - sftp_password: str, - storage_type: str, - archive_size_mb: Optional[int] | Omit = omit, - enabled: bool | Omit = omit, - ftp_prepend_folder: str | Omit = omit, - ignore_empty_logs: bool | Omit = omit, - s3_aws_region: int | Omit = omit, - s3_bucket_location: str | Omit = omit, - s3_host_bucket: str | Omit = omit, - sftp_key_passphrase: str | Omit = omit, - sftp_prepend_folder: str | Omit = omit, - sftp_private_key: str | Omit = omit, - # 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, - ) -> None: - """ - PATCH method is not allowed. - - Args: - all_resources_bucket: Name of the S3 bucket to which logs for all CDN resources are delivered. - - all_resources_folder: - Parameter meaning depends on the value of the "`storage_type`" value: - - - If "`storage_type`": s3 - Name of the S3 bucket sub-folder to which logs for - all CDN resources are delivered. - - If "`storage_type`": ftp/sftp - Name of the folder (or path) to which logs for - all CDN resources are delivered. - - folders: List of folders/buckets for receiving CDN resources logs. - - for_all_resources: Defines whether logs of all CDN resources are delivered to one folder/bucket or - to separate ones. - - Possible values: - - - **true** - Logs of all CDN resources are delivered to one folder/bucket. - - **false** - Logs of different CDN resources are delivered to separate - folders/buckets. - - ftp_hostname: FTP storage hostname. - - ftp_login: FTP storage login. - - ftp_password: FTP storage password. - - s3_access_key_id: Access key ID for the S3 account. - - Access Key ID is 20 alpha-numeric characters like 022QF06E7MXBSH9DHM02 - - s3_hostname: S3 storage hostname. - - It is required if "`s3_type`": other. - - s3_secret_key: Secret access key for the S3 account. - - Secret Access Key is 20-50 alpha-numeric-slash-plus characters like - kWcrlUX5JEDGM/LtmEENI/aVmYvHNif5zB+d9+ct - - s3_type: Storage type compatible with S3. - - Possible values: - - - **amazon** – AWS S3 storage. - - **other** – Other (not AWS) S3 compatible storage. - - sftp_hostname: SFTP storage hostname. - - sftp_login: SFTP storage login. - - sftp_password: SFTP storage password. - - It should be empty if "`sftp_private_key`" is set. - - storage_type: Storage type. - - Possible values: - - - **ftp** - - **sftp** - - **s3** - - archive_size_mb: The size of a single piece of the archive in MB. In case of **null** value logs - are delivered without slicing. - - enabled: Enables or disables a log forwarding feature. - - Possible values: - - - **true** - log forwarding feature is active. - - **false** - log forwarding feature is deactivated. - - ftp_prepend_folder: Name of the FTP prepend folder for log delivery. - - **Null** is allowed. - - ignore_empty_logs: Enables or disables the forwarding of empty logs. - - Possible values: - - - **true** - Empty logs are not sent. - - **false** - Empty logs are sent. - - s3_aws_region: Amazon AWS region. - - s3_bucket_location: Location of S3 storage. - - Restrictions: - - - Maximum of 255 symbols. - - Latin letters (A-Z, a-z), digits (0-9), dots, colons, dashes, and underscores - (.:\\__-). - - s3_host_bucket: S3 bucket hostname. - - Restrictions: - - - Maximum of 255 symbols. - - Latin letters (A-Z, a-z,) digits (0-9,) dots, colons, dashes, and underscores. - - Required if "`s3_type`": other. - - sftp_key_passphrase: Passphrase for SFTP private key. - - Restrictions: - - - Should be set if private key encoded with passphrase. - - Should be empty if "`sftp_password`" is set. - - sftp_prepend_folder: Name of the SFTP prepend folder for log delivery. - - **Null** is allowed. - - sftp_private_key: Private key for SFTP authorization. - - Possible values: - - - **RSA** - - **ED25519** - - It should be empty if "`sftp_password`" is set. - - 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 - """ - extra_headers = {"Accept": "*/*", **(extra_headers or {})} - return self._put( - "/cdn/raw_log_settings", - body=maybe_transform( - { - "all_resources_bucket": all_resources_bucket, - "all_resources_folder": all_resources_folder, - "folders": folders, - "for_all_resources": for_all_resources, - "ftp_hostname": ftp_hostname, - "ftp_login": ftp_login, - "ftp_password": ftp_password, - "s3_access_key_id": s3_access_key_id, - "s3_hostname": s3_hostname, - "s3_secret_key": s3_secret_key, - "s3_type": s3_type, - "sftp_hostname": sftp_hostname, - "sftp_login": sftp_login, - "sftp_password": sftp_password, - "storage_type": storage_type, - "archive_size_mb": archive_size_mb, - "enabled": enabled, - "ftp_prepend_folder": ftp_prepend_folder, - "ignore_empty_logs": ignore_empty_logs, - "s3_aws_region": s3_aws_region, - "s3_bucket_location": s3_bucket_location, - "s3_host_bucket": s3_host_bucket, - "sftp_key_passphrase": sftp_key_passphrase, - "sftp_prepend_folder": sftp_prepend_folder, - "sftp_private_key": sftp_private_key, - }, - setting_update_params.SettingUpdateParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=NoneType, - ) - - def delete( - self, - *, - # 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, - ) -> None: - """ - Delete the raw logs delivery configuration from the system permanently. - - Notes: - - - **Deactivation Requirement**: Set the `enabled` attribute to `false` before - deletion. - - **Irreversibility**: This action is irreversible. Once deleted, the raw logs - delivery configuration cannot be recovered. - """ - extra_headers = {"Accept": "*/*", **(extra_headers or {})} - return self._delete( - "/cdn/raw_log_settings", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=NoneType, - ) - - def get( - self, - *, - # 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, - ) -> LogSettings: - """Get information about raw logs feature settings.""" - return self._get( - "/cdn/raw_log_settings", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LogSettings, - ) - - -class AsyncSettingsResource(AsyncAPIResource): - @cached_property - def with_raw_response(self) -> AsyncSettingsResourceWithRawResponse: - """ - 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/G-Core/gcore-python#accessing-raw-response-data-eg-headers - """ - return AsyncSettingsResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> AsyncSettingsResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/G-Core/gcore-python#with_streaming_response - """ - return AsyncSettingsResourceWithStreamingResponse(self) - - async def create( - self, - *, - all_resources_bucket: str, - all_resources_folder: str, - folders: Iterable[setting_create_params.Folder], - for_all_resources: bool, - ftp_hostname: str, - ftp_login: str, - ftp_password: str, - s3_access_key_id: str, - s3_hostname: str, - s3_secret_key: str, - s3_type: str, - sftp_hostname: str, - sftp_login: str, - sftp_password: str, - storage_type: str, - archive_size_mb: Optional[int] | Omit = omit, - enabled: bool | Omit = omit, - ftp_prepend_folder: str | Omit = omit, - ignore_empty_logs: bool | Omit = omit, - s3_aws_region: int | Omit = omit, - s3_bucket_location: str | Omit = omit, - s3_host_bucket: str | Omit = omit, - sftp_key_passphrase: str | Omit = omit, - sftp_prepend_folder: str | Omit = omit, - sftp_private_key: str | Omit = omit, - # 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, - ) -> None: - """ - Setup raw logs settings - - Args: - all_resources_bucket: Name of the S3 bucket to which logs for all CDN resources are delivered. - - all_resources_folder: - Parameter meaning depends on the value of the "`storage_type`" value: - - - If "`storage_type`": s3 - Name of the S3 bucket sub-folder to which logs for - all CDN resources are delivered. - - If "`storage_type`": ftp/sftp - Name of the folder (or path) to which logs for - all CDN resources are delivered. - - folders: List of folders/buckets for receiving CDN resources logs. - - for_all_resources: Defines whether logs of all CDN resources are delivered to one folder/bucket or - to separate ones. - - Possible values: - - - **true** - Logs of all CDN resources are delivered to one folder/bucket. - - **false** - Logs of different CDN resources are delivered to separate - folders/buckets. - - ftp_hostname: FTP storage hostname. - - ftp_login: FTP storage login. - - ftp_password: FTP storage password. - - s3_access_key_id: Access key ID for the S3 account. - - Access Key ID is 20 alpha-numeric characters like 022QF06E7MXBSH9DHM02 - - s3_hostname: S3 storage hostname. - - It is required if "`s3_type`": other. - - s3_secret_key: Secret access key for the S3 account. - - Secret Access Key is 20-50 alpha-numeric-slash-plus characters like - kWcrlUX5JEDGM/LtmEENI/aVmYvHNif5zB+d9+ct - - s3_type: Storage type compatible with S3. - - Possible values: - - - **amazon** – AWS S3 storage. - - **other** – Other (not AWS) S3 compatible storage. - - sftp_hostname: SFTP storage hostname. - - sftp_login: SFTP storage login. - - sftp_password: SFTP storage password. - - It should be empty if "`sftp_private_key`" is set. - - storage_type: Storage type. - - Possible values: - - - **ftp** - - **sftp** - - **s3** - - archive_size_mb: The size of a single piece of the archive in MB. In case of **null** value logs - are delivered without slicing. - - enabled: Enables or disables a log forwarding feature. - - Possible values: - - - **true** - log forwarding feature is active. - - **false** - log forwarding feature is deactivated. - - ftp_prepend_folder: Name of the FTP prepend folder for log delivery. - - **Null** is allowed. - - ignore_empty_logs: Enables or disables the forwarding of empty logs. - - Possible values: - - - **true** - Empty logs are not sent. - - **false** - Empty logs are sent. - - s3_aws_region: Amazon AWS region. - - s3_bucket_location: Location of S3 storage. - - Restrictions: - - - Maximum of 255 symbols. - - Latin letters (A-Z, a-z), digits (0-9), dots, colons, dashes, and underscores - (.:\\__-). - - s3_host_bucket: S3 bucket hostname. - - Restrictions: - - - Maximum of 255 symbols. - - Latin letters (A-Z, a-z,) digits (0-9,) dots, colons, dashes, and underscores. - - Required if "`s3_type`": other. - - sftp_key_passphrase: Passphrase for SFTP private key. - - Restrictions: - - - Should be set if private key encoded with passphrase. - - Should be empty if "`sftp_password`" is set. - - sftp_prepend_folder: Name of the SFTP prepend folder for log delivery. - - **Null** is allowed. - - sftp_private_key: Private key for SFTP authorization. - - Possible values: - - - **RSA** - - **ED25519** - - It should be empty if "`sftp_password`" is set. - - 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 - """ - extra_headers = {"Accept": "*/*", **(extra_headers or {})} - return await self._post( - "/cdn/raw_log_settings", - body=await async_maybe_transform( - { - "all_resources_bucket": all_resources_bucket, - "all_resources_folder": all_resources_folder, - "folders": folders, - "for_all_resources": for_all_resources, - "ftp_hostname": ftp_hostname, - "ftp_login": ftp_login, - "ftp_password": ftp_password, - "s3_access_key_id": s3_access_key_id, - "s3_hostname": s3_hostname, - "s3_secret_key": s3_secret_key, - "s3_type": s3_type, - "sftp_hostname": sftp_hostname, - "sftp_login": sftp_login, - "sftp_password": sftp_password, - "storage_type": storage_type, - "archive_size_mb": archive_size_mb, - "enabled": enabled, - "ftp_prepend_folder": ftp_prepend_folder, - "ignore_empty_logs": ignore_empty_logs, - "s3_aws_region": s3_aws_region, - "s3_bucket_location": s3_bucket_location, - "s3_host_bucket": s3_host_bucket, - "sftp_key_passphrase": sftp_key_passphrase, - "sftp_prepend_folder": sftp_prepend_folder, - "sftp_private_key": sftp_private_key, - }, - setting_create_params.SettingCreateParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=NoneType, - ) - - async def update( - self, - *, - all_resources_bucket: str, - all_resources_folder: str, - folders: Iterable[setting_update_params.Folder], - for_all_resources: bool, - ftp_hostname: str, - ftp_login: str, - ftp_password: str, - s3_access_key_id: str, - s3_hostname: str, - s3_secret_key: str, - s3_type: str, - sftp_hostname: str, - sftp_login: str, - sftp_password: str, - storage_type: str, - archive_size_mb: Optional[int] | Omit = omit, - enabled: bool | Omit = omit, - ftp_prepend_folder: str | Omit = omit, - ignore_empty_logs: bool | Omit = omit, - s3_aws_region: int | Omit = omit, - s3_bucket_location: str | Omit = omit, - s3_host_bucket: str | Omit = omit, - sftp_key_passphrase: str | Omit = omit, - sftp_prepend_folder: str | Omit = omit, - sftp_private_key: str | Omit = omit, - # 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, - ) -> None: - """ - PATCH method is not allowed. - - Args: - all_resources_bucket: Name of the S3 bucket to which logs for all CDN resources are delivered. - - all_resources_folder: - Parameter meaning depends on the value of the "`storage_type`" value: - - - If "`storage_type`": s3 - Name of the S3 bucket sub-folder to which logs for - all CDN resources are delivered. - - If "`storage_type`": ftp/sftp - Name of the folder (or path) to which logs for - all CDN resources are delivered. - - folders: List of folders/buckets for receiving CDN resources logs. - - for_all_resources: Defines whether logs of all CDN resources are delivered to one folder/bucket or - to separate ones. - - Possible values: - - - **true** - Logs of all CDN resources are delivered to one folder/bucket. - - **false** - Logs of different CDN resources are delivered to separate - folders/buckets. - - ftp_hostname: FTP storage hostname. - - ftp_login: FTP storage login. - - ftp_password: FTP storage password. - - s3_access_key_id: Access key ID for the S3 account. - - Access Key ID is 20 alpha-numeric characters like 022QF06E7MXBSH9DHM02 - - s3_hostname: S3 storage hostname. - - It is required if "`s3_type`": other. - - s3_secret_key: Secret access key for the S3 account. - - Secret Access Key is 20-50 alpha-numeric-slash-plus characters like - kWcrlUX5JEDGM/LtmEENI/aVmYvHNif5zB+d9+ct - - s3_type: Storage type compatible with S3. - - Possible values: - - - **amazon** – AWS S3 storage. - - **other** – Other (not AWS) S3 compatible storage. - - sftp_hostname: SFTP storage hostname. - - sftp_login: SFTP storage login. - - sftp_password: SFTP storage password. - - It should be empty if "`sftp_private_key`" is set. - - storage_type: Storage type. - - Possible values: - - - **ftp** - - **sftp** - - **s3** - - archive_size_mb: The size of a single piece of the archive in MB. In case of **null** value logs - are delivered without slicing. - - enabled: Enables or disables a log forwarding feature. - - Possible values: - - - **true** - log forwarding feature is active. - - **false** - log forwarding feature is deactivated. - - ftp_prepend_folder: Name of the FTP prepend folder for log delivery. - - **Null** is allowed. - - ignore_empty_logs: Enables or disables the forwarding of empty logs. - - Possible values: - - - **true** - Empty logs are not sent. - - **false** - Empty logs are sent. - - s3_aws_region: Amazon AWS region. - - s3_bucket_location: Location of S3 storage. - - Restrictions: - - - Maximum of 255 symbols. - - Latin letters (A-Z, a-z), digits (0-9), dots, colons, dashes, and underscores - (.:\\__-). - - s3_host_bucket: S3 bucket hostname. - - Restrictions: - - - Maximum of 255 symbols. - - Latin letters (A-Z, a-z,) digits (0-9,) dots, colons, dashes, and underscores. - - Required if "`s3_type`": other. - - sftp_key_passphrase: Passphrase for SFTP private key. - - Restrictions: - - - Should be set if private key encoded with passphrase. - - Should be empty if "`sftp_password`" is set. - - sftp_prepend_folder: Name of the SFTP prepend folder for log delivery. - - **Null** is allowed. - - sftp_private_key: Private key for SFTP authorization. - - Possible values: - - - **RSA** - - **ED25519** - - It should be empty if "`sftp_password`" is set. - - 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 - """ - extra_headers = {"Accept": "*/*", **(extra_headers or {})} - return await self._put( - "/cdn/raw_log_settings", - body=await async_maybe_transform( - { - "all_resources_bucket": all_resources_bucket, - "all_resources_folder": all_resources_folder, - "folders": folders, - "for_all_resources": for_all_resources, - "ftp_hostname": ftp_hostname, - "ftp_login": ftp_login, - "ftp_password": ftp_password, - "s3_access_key_id": s3_access_key_id, - "s3_hostname": s3_hostname, - "s3_secret_key": s3_secret_key, - "s3_type": s3_type, - "sftp_hostname": sftp_hostname, - "sftp_login": sftp_login, - "sftp_password": sftp_password, - "storage_type": storage_type, - "archive_size_mb": archive_size_mb, - "enabled": enabled, - "ftp_prepend_folder": ftp_prepend_folder, - "ignore_empty_logs": ignore_empty_logs, - "s3_aws_region": s3_aws_region, - "s3_bucket_location": s3_bucket_location, - "s3_host_bucket": s3_host_bucket, - "sftp_key_passphrase": sftp_key_passphrase, - "sftp_prepend_folder": sftp_prepend_folder, - "sftp_private_key": sftp_private_key, - }, - setting_update_params.SettingUpdateParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=NoneType, - ) - - async def delete( - self, - *, - # 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, - ) -> None: - """ - Delete the raw logs delivery configuration from the system permanently. - - Notes: - - - **Deactivation Requirement**: Set the `enabled` attribute to `false` before - deletion. - - **Irreversibility**: This action is irreversible. Once deleted, the raw logs - delivery configuration cannot be recovered. - """ - extra_headers = {"Accept": "*/*", **(extra_headers or {})} - return await self._delete( - "/cdn/raw_log_settings", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=NoneType, - ) - - async def get( - self, - *, - # 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, - ) -> LogSettings: - """Get information about raw logs feature settings.""" - return await self._get( - "/cdn/raw_log_settings", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=LogSettings, - ) - - -class SettingsResourceWithRawResponse: - def __init__(self, settings: SettingsResource) -> None: - self._settings = settings - - self.create = to_raw_response_wrapper( - settings.create, - ) - self.update = to_raw_response_wrapper( - settings.update, - ) - self.delete = to_raw_response_wrapper( - settings.delete, - ) - self.get = to_raw_response_wrapper( - settings.get, - ) - - -class AsyncSettingsResourceWithRawResponse: - def __init__(self, settings: AsyncSettingsResource) -> None: - self._settings = settings - - self.create = async_to_raw_response_wrapper( - settings.create, - ) - self.update = async_to_raw_response_wrapper( - settings.update, - ) - self.delete = async_to_raw_response_wrapper( - settings.delete, - ) - self.get = async_to_raw_response_wrapper( - settings.get, - ) - - -class SettingsResourceWithStreamingResponse: - def __init__(self, settings: SettingsResource) -> None: - self._settings = settings - - self.create = to_streamed_response_wrapper( - settings.create, - ) - self.update = to_streamed_response_wrapper( - settings.update, - ) - self.delete = to_streamed_response_wrapper( - settings.delete, - ) - self.get = to_streamed_response_wrapper( - settings.get, - ) - - -class AsyncSettingsResourceWithStreamingResponse: - def __init__(self, settings: AsyncSettingsResource) -> None: - self._settings = settings - - self.create = async_to_streamed_response_wrapper( - settings.create, - ) - self.update = async_to_streamed_response_wrapper( - settings.update, - ) - self.delete = async_to_streamed_response_wrapper( - settings.delete, - ) - self.get = async_to_streamed_response_wrapper( - settings.get, - ) diff --git a/src/gcore/resources/cdn/statistics.py b/src/gcore/resources/cdn/statistics.py index d07e9b46..14f2fa8c 100644 --- a/src/gcore/resources/cdn/statistics.py +++ b/src/gcore/resources/cdn/statistics.py @@ -68,7 +68,7 @@ def get_logs_usage_aggregated( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> LogsAggregatedStats: """ - Get the number of CDN resources that used raw logs. + Get the number of CDN resources that used Logs uploader. Request URL parameters should be added as a query string after the endpoint. @@ -139,7 +139,7 @@ def get_logs_usage_series( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> UsageSeriesStats: """ - Get raw logs usage statistics for up to 90 days starting today. + Get Logs uploader usage statistics for up to 90 days starting today. Request URL parameters should be added as a query string after the endpoint. @@ -696,7 +696,7 @@ async def get_logs_usage_aggregated( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> LogsAggregatedStats: """ - Get the number of CDN resources that used raw logs. + Get the number of CDN resources that used Logs uploader. Request URL parameters should be added as a query string after the endpoint. @@ -767,7 +767,7 @@ async def get_logs_usage_series( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> UsageSeriesStats: """ - Get raw logs usage statistics for up to 90 days starting today. + Get Logs uploader usage statistics for up to 90 days starting today. Request URL parameters should be added as a query string after the endpoint. diff --git a/src/gcore/types/cdn/logs/__init__.py b/src/gcore/types/cdn/logs/__init__.py index 02f4dd5c..f8ee8b14 100644 --- a/src/gcore/types/cdn/logs/__init__.py +++ b/src/gcore/types/cdn/logs/__init__.py @@ -1,7 +1,3 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from __future__ import annotations - -from .log_settings import LogSettings as LogSettings -from .setting_create_params import SettingCreateParams as SettingCreateParams -from .setting_update_params import SettingUpdateParams as SettingUpdateParams diff --git a/src/gcore/types/cdn/logs/log_settings.py b/src/gcore/types/cdn/logs/log_settings.py deleted file mode 100644 index ab1adcc9..00000000 --- a/src/gcore/types/cdn/logs/log_settings.py +++ /dev/null @@ -1,172 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import List, Optional - -from ...._models import BaseModel - -__all__ = ["LogSettings", "Folder"] - - -class Folder(BaseModel): - id: Optional[int] = None - """Parameter meaning depends on the value of the "`storage_type`" value: - - - **s3** - S3 bucket ID. - - **ftp/sftp** - FTP/SFTP folder ID. - """ - - bucket: Optional[str] = None - """S3 bucket name. - - The field is required if "`storage_type`": **s3**. - """ - - cdn_resource: Optional[int] = None - """CDN resource ID.""" - - folder: Optional[str] = None - """Parameter meaning depends on the value of the "`storage_type`" value: - - - **s3** - S3 bucket sub-folder name (optional.) - - **ftp/sftp** - FTP/SFTP folder name (required.) - """ - - -class LogSettings(BaseModel): - all_resources_bucket: Optional[str] = None - """Name of the S3 bucket to which logs of all CDN resources are delivered. - - Applicable for "`storage_type`": S3. - """ - - all_resources_folder: Optional[str] = None - """Parameter meaning depends on the value of the "`storage_type`" value: - - - **s3** - Name of the S3 bucket sub-folder to which logs for all CDN resources - are delivered. - - **ftp/sftp** - Name of the folder (or path) to which logs for all CDN - resources are delivered. - """ - - archive_size_mb: Optional[int] = None - """ - The size of a single piece of the archive in MB. In case of **null** value logs - are delivered without slicing. - """ - - client: Optional[int] = None - """Client ID.""" - - comment: Optional[str] = None - """System comment on the status of settings, if they are suspended.""" - - enabled: Optional[bool] = None - """Enables or disables a log forwarding feature. - - Possible values: - - - **true** - log forwarding feature is active. - - **false** - log forwarding feature is deactivated. - """ - - folders: Optional[List[Folder]] = None - """List of folders/buckets for receiving CDN resources logs.""" - - for_all_resources: Optional[bool] = None - """ - Defines whether logs of all CDN resources are delivered to one folder/bucket or - to separate ones. - - Possible values: - - - **true** - Logs of all CDN resources are delivered to one folder/bucket. - - **false** - Logs of CDN resources are delivered to separate folders/buckets. - """ - - ftp_hostname: Optional[str] = None - """FTP storage hostname.""" - - ftp_login: Optional[str] = None - """FTP storage login.""" - - ftp_prepend_folder: Optional[str] = None - """Name of prepend FTP folder for log delivery.""" - - ignore_empty_logs: Optional[bool] = None - """Enables or disables the forwarding of empty logs. - - Possible values: - - - **true** - Empty logs are not sent. - - **false** - Empty logs are sent. - """ - - s3_access_key_id: Optional[str] = None - """Access key ID for the S3 account. - - Access Key ID is 20 alpha-numeric characters like 022QF06E7MXBSH9DHM02 - """ - - s3_aws_region: Optional[str] = None - """Amazon AWS region.""" - - s3_bucket_location: Optional[str] = None - """S3 storage location. - - Restrictions: - - - Maximum 255 symbols. - - Latin letters (A-Z, a-z,) digits (0-9,) dots, colons, dashes, and underscores - (.:\\__-). - """ - - s3_host_bucket: Optional[str] = None - """S3 storage bucket hostname. - - Restrictions: - - - Maximum 255 symbols. - - Latin letters (A-Z, a-z,) digits (0-9,) dots, colons, dashes, and underscores. - """ - - s3_hostname: Optional[str] = None - """S3 storage hostname.""" - - s3_type: Optional[str] = None - """Storage type compatible with S3. - - Possible values: - - - **amazon** – AWS S3 storage. - - **other** – Other (not AWS) S3 compatible storage. - """ - - sftp_hostname: Optional[str] = None - """SFTP storage hostname.""" - - sftp_login: Optional[str] = None - """SFTP storage login.""" - - sftp_prepend_folder: Optional[str] = None - """Name of prepend SFTP folder for log delivery.""" - - status: Optional[str] = None - """Log delivery status. - - Possible values: - - - **ok** – All/part of attempts to deliver logs were successful. - - **failed** – All attempts to deliver logs failed. - - **pending** - No logs delivery attempts yet. - - **disabled** - Log delivery is disabled. - """ - - storage_type: Optional[str] = None - """Storage type. - - Possible values: - - - **ftp** - - **sftp** - - **s3** - """ diff --git a/src/gcore/types/cdn/logs/setting_create_params.py b/src/gcore/types/cdn/logs/setting_create_params.py deleted file mode 100644 index 20720e89..00000000 --- a/src/gcore/types/cdn/logs/setting_create_params.py +++ /dev/null @@ -1,200 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Iterable, Optional -from typing_extensions import Required, TypedDict - -__all__ = ["SettingCreateParams", "Folder"] - - -class SettingCreateParams(TypedDict, total=False): - all_resources_bucket: Required[str] - """Name of the S3 bucket to which logs for all CDN resources are delivered.""" - - all_resources_folder: Required[str] - """Parameter meaning depends on the value of the "`storage_type`" value: - - - If "`storage_type`": s3 - Name of the S3 bucket sub-folder to which logs for - all CDN resources are delivered. - - If "`storage_type`": ftp/sftp - Name of the folder (or path) to which logs for - all CDN resources are delivered. - """ - - folders: Required[Iterable[Folder]] - """List of folders/buckets for receiving CDN resources logs.""" - - for_all_resources: Required[bool] - """ - Defines whether logs of all CDN resources are delivered to one folder/bucket or - to separate ones. - - Possible values: - - - **true** - Logs of all CDN resources are delivered to one folder/bucket. - - **false** - Logs of different CDN resources are delivered to separate - folders/buckets. - """ - - ftp_hostname: Required[str] - """FTP storage hostname.""" - - ftp_login: Required[str] - """FTP storage login.""" - - ftp_password: Required[str] - """FTP storage password.""" - - s3_access_key_id: Required[str] - """Access key ID for the S3 account. - - Access Key ID is 20 alpha-numeric characters like 022QF06E7MXBSH9DHM02 - """ - - s3_hostname: Required[str] - """S3 storage hostname. - - It is required if "`s3_type`": other. - """ - - s3_secret_key: Required[str] - """Secret access key for the S3 account. - - Secret Access Key is 20-50 alpha-numeric-slash-plus characters like - kWcrlUX5JEDGM/LtmEENI/aVmYvHNif5zB+d9+ct - """ - - s3_type: Required[str] - """Storage type compatible with S3. - - Possible values: - - - **amazon** – AWS S3 storage. - - **other** – Other (not AWS) S3 compatible storage. - """ - - sftp_hostname: Required[str] - """SFTP storage hostname.""" - - sftp_login: Required[str] - """SFTP storage login.""" - - sftp_password: Required[str] - """SFTP storage password. - - It should be empty if "`sftp_private_key`" is set. - """ - - storage_type: Required[str] - """Storage type. - - Possible values: - - - **ftp** - - **sftp** - - **s3** - """ - - archive_size_mb: Optional[int] - """ - The size of a single piece of the archive in MB. In case of **null** value logs - are delivered without slicing. - """ - - enabled: bool - """Enables or disables a log forwarding feature. - - Possible values: - - - **true** - log forwarding feature is active. - - **false** - log forwarding feature is deactivated. - """ - - ftp_prepend_folder: str - """Name of the FTP prepend folder for log delivery. - - **Null** is allowed. - """ - - ignore_empty_logs: bool - """Enables or disables the forwarding of empty logs. - - Possible values: - - - **true** - Empty logs are not sent. - - **false** - Empty logs are sent. - """ - - s3_aws_region: int - """Amazon AWS region.""" - - s3_bucket_location: str - """Location of S3 storage. - - Restrictions: - - - Maximum of 255 symbols. - - Latin letters (A-Z, a-z), digits (0-9), dots, colons, dashes, and underscores - (.:\\__-). - """ - - s3_host_bucket: str - """S3 bucket hostname. - - Restrictions: - - - Maximum of 255 symbols. - - Latin letters (A-Z, a-z,) digits (0-9,) dots, colons, dashes, and underscores. - - Required if "`s3_type`": other. - """ - - sftp_key_passphrase: str - """Passphrase for SFTP private key. - - Restrictions: - - - Should be set if private key encoded with passphrase. - - Should be empty if "`sftp_password`" is set. - """ - - sftp_prepend_folder: str - """Name of the SFTP prepend folder for log delivery. - - **Null** is allowed. - """ - - sftp_private_key: str - """Private key for SFTP authorization. - - Possible values: - - - **RSA** - - **ED25519** - - It should be empty if "`sftp_password`" is set. - """ - - -class Folder(TypedDict, total=False): - id: int - """Parameter meaning depends on the value of the "`storage_type`" value: - - - **s3** - S3 bucket ID. - - **ftp/sftp** - FTP/SFTP folder ID. - """ - - bucket: str - """S3 bucket name. - - The field is required if "`storage_type`": **s3**. - """ - - cdn_resource: int - """CDN resource ID.""" - - folder: str - """Parameter meaning depends on the value of the "`storage_type`" value: - - - **s3** - S3 bucket sub-folder name (optional.) - - **ftp/sftp** - FTP/SFTP folder name (required.) - """ diff --git a/src/gcore/types/cdn/logs/setting_update_params.py b/src/gcore/types/cdn/logs/setting_update_params.py deleted file mode 100644 index b6736ad2..00000000 --- a/src/gcore/types/cdn/logs/setting_update_params.py +++ /dev/null @@ -1,200 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Iterable, Optional -from typing_extensions import Required, TypedDict - -__all__ = ["SettingUpdateParams", "Folder"] - - -class SettingUpdateParams(TypedDict, total=False): - all_resources_bucket: Required[str] - """Name of the S3 bucket to which logs for all CDN resources are delivered.""" - - all_resources_folder: Required[str] - """Parameter meaning depends on the value of the "`storage_type`" value: - - - If "`storage_type`": s3 - Name of the S3 bucket sub-folder to which logs for - all CDN resources are delivered. - - If "`storage_type`": ftp/sftp - Name of the folder (or path) to which logs for - all CDN resources are delivered. - """ - - folders: Required[Iterable[Folder]] - """List of folders/buckets for receiving CDN resources logs.""" - - for_all_resources: Required[bool] - """ - Defines whether logs of all CDN resources are delivered to one folder/bucket or - to separate ones. - - Possible values: - - - **true** - Logs of all CDN resources are delivered to one folder/bucket. - - **false** - Logs of different CDN resources are delivered to separate - folders/buckets. - """ - - ftp_hostname: Required[str] - """FTP storage hostname.""" - - ftp_login: Required[str] - """FTP storage login.""" - - ftp_password: Required[str] - """FTP storage password.""" - - s3_access_key_id: Required[str] - """Access key ID for the S3 account. - - Access Key ID is 20 alpha-numeric characters like 022QF06E7MXBSH9DHM02 - """ - - s3_hostname: Required[str] - """S3 storage hostname. - - It is required if "`s3_type`": other. - """ - - s3_secret_key: Required[str] - """Secret access key for the S3 account. - - Secret Access Key is 20-50 alpha-numeric-slash-plus characters like - kWcrlUX5JEDGM/LtmEENI/aVmYvHNif5zB+d9+ct - """ - - s3_type: Required[str] - """Storage type compatible with S3. - - Possible values: - - - **amazon** – AWS S3 storage. - - **other** – Other (not AWS) S3 compatible storage. - """ - - sftp_hostname: Required[str] - """SFTP storage hostname.""" - - sftp_login: Required[str] - """SFTP storage login.""" - - sftp_password: Required[str] - """SFTP storage password. - - It should be empty if "`sftp_private_key`" is set. - """ - - storage_type: Required[str] - """Storage type. - - Possible values: - - - **ftp** - - **sftp** - - **s3** - """ - - archive_size_mb: Optional[int] - """ - The size of a single piece of the archive in MB. In case of **null** value logs - are delivered without slicing. - """ - - enabled: bool - """Enables or disables a log forwarding feature. - - Possible values: - - - **true** - log forwarding feature is active. - - **false** - log forwarding feature is deactivated. - """ - - ftp_prepend_folder: str - """Name of the FTP prepend folder for log delivery. - - **Null** is allowed. - """ - - ignore_empty_logs: bool - """Enables or disables the forwarding of empty logs. - - Possible values: - - - **true** - Empty logs are not sent. - - **false** - Empty logs are sent. - """ - - s3_aws_region: int - """Amazon AWS region.""" - - s3_bucket_location: str - """Location of S3 storage. - - Restrictions: - - - Maximum of 255 symbols. - - Latin letters (A-Z, a-z), digits (0-9), dots, colons, dashes, and underscores - (.:\\__-). - """ - - s3_host_bucket: str - """S3 bucket hostname. - - Restrictions: - - - Maximum of 255 symbols. - - Latin letters (A-Z, a-z,) digits (0-9,) dots, colons, dashes, and underscores. - - Required if "`s3_type`": other. - """ - - sftp_key_passphrase: str - """Passphrase for SFTP private key. - - Restrictions: - - - Should be set if private key encoded with passphrase. - - Should be empty if "`sftp_password`" is set. - """ - - sftp_prepend_folder: str - """Name of the SFTP prepend folder for log delivery. - - **Null** is allowed. - """ - - sftp_private_key: str - """Private key for SFTP authorization. - - Possible values: - - - **RSA** - - **ED25519** - - It should be empty if "`sftp_password`" is set. - """ - - -class Folder(TypedDict, total=False): - id: int - """Parameter meaning depends on the value of the "`storage_type`" value: - - - **s3** - S3 bucket ID. - - **ftp/sftp** - FTP/SFTP folder ID. - """ - - bucket: str - """S3 bucket name. - - The field is required if "`storage_type`": **s3**. - """ - - cdn_resource: int - """CDN resource ID.""" - - folder: str - """Parameter meaning depends on the value of the "`storage_type`" value: - - - **s3** - S3 bucket sub-folder name (optional.) - - **ftp/sftp** - FTP/SFTP folder name (required.) - """ diff --git a/src/gcore/types/cdn/logs_aggregated_stats.py b/src/gcore/types/cdn/logs_aggregated_stats.py index 30806dfc..4fd29679 100644 --- a/src/gcore/types/cdn/logs_aggregated_stats.py +++ b/src/gcore/types/cdn/logs_aggregated_stats.py @@ -17,7 +17,7 @@ class LogsAggregatedStats(BaseModel): """Statistics parameters.""" raw_logs_usage: Optional[str] = None - """Number of resources that used raw logs.""" + """Number of resources that used Logs uploader.""" resource: Optional[object] = None """Resources IDs by which statistics data is grouped..""" diff --git a/tests/api_resources/cdn/logs/test_settings.py b/tests/api_resources/cdn/logs/test_settings.py deleted file mode 100644 index 3384caf7..00000000 --- a/tests/api_resources/cdn/logs/test_settings.py +++ /dev/null @@ -1,568 +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, cast - -import pytest - -from gcore import Gcore, AsyncGcore -from tests.utils import assert_matches_type -from gcore.types.cdn.logs import LogSettings - -base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") - - -class TestSettings: - parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - - @parametrize - def test_method_create(self, client: Gcore) -> None: - setting = client.cdn.logs.settings.create( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[{}], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - ) - assert setting is None - - @parametrize - def test_method_create_with_all_params(self, client: Gcore) -> None: - setting = client.cdn.logs.settings.create( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[ - { - "id": 0, - "bucket": "bucket", - "cdn_resource": 0, - "folder": "folder", - } - ], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - archive_size_mb=500, - enabled=True, - ftp_prepend_folder="ftp_prepend_folder", - ignore_empty_logs=True, - s3_aws_region=0, - s3_bucket_location="s3_bucket_location", - s3_host_bucket="s3_host_bucket", - sftp_key_passphrase="sftp_key_passphrase", - sftp_prepend_folder="sftp_prepend_folder", - sftp_private_key="sftp_private_key", - ) - assert setting is None - - @parametrize - def test_raw_response_create(self, client: Gcore) -> None: - response = client.cdn.logs.settings.with_raw_response.create( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[{}], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - setting = response.parse() - assert setting is None - - @parametrize - def test_streaming_response_create(self, client: Gcore) -> None: - with client.cdn.logs.settings.with_streaming_response.create( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[{}], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - setting = response.parse() - assert setting is None - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_method_update(self, client: Gcore) -> None: - setting = client.cdn.logs.settings.update( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[{}], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - ) - assert setting is None - - @parametrize - def test_method_update_with_all_params(self, client: Gcore) -> None: - setting = client.cdn.logs.settings.update( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[ - { - "id": 0, - "bucket": "bucket", - "cdn_resource": 0, - "folder": "folder", - } - ], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - archive_size_mb=500, - enabled=True, - ftp_prepend_folder="ftp_prepend_folder", - ignore_empty_logs=True, - s3_aws_region=0, - s3_bucket_location="s3_bucket_location", - s3_host_bucket="s3_host_bucket", - sftp_key_passphrase="sftp_key_passphrase", - sftp_prepend_folder="sftp_prepend_folder", - sftp_private_key="sftp_private_key", - ) - assert setting is None - - @parametrize - def test_raw_response_update(self, client: Gcore) -> None: - response = client.cdn.logs.settings.with_raw_response.update( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[{}], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - setting = response.parse() - assert setting is None - - @parametrize - def test_streaming_response_update(self, client: Gcore) -> None: - with client.cdn.logs.settings.with_streaming_response.update( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[{}], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - setting = response.parse() - assert setting is None - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_method_delete(self, client: Gcore) -> None: - setting = client.cdn.logs.settings.delete() - assert setting is None - - @parametrize - def test_raw_response_delete(self, client: Gcore) -> None: - response = client.cdn.logs.settings.with_raw_response.delete() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - setting = response.parse() - assert setting is None - - @parametrize - def test_streaming_response_delete(self, client: Gcore) -> None: - with client.cdn.logs.settings.with_streaming_response.delete() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - setting = response.parse() - assert setting is None - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_method_get(self, client: Gcore) -> None: - setting = client.cdn.logs.settings.get() - assert_matches_type(LogSettings, setting, path=["response"]) - - @parametrize - def test_raw_response_get(self, client: Gcore) -> None: - response = client.cdn.logs.settings.with_raw_response.get() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - setting = response.parse() - assert_matches_type(LogSettings, setting, path=["response"]) - - @parametrize - def test_streaming_response_get(self, client: Gcore) -> None: - with client.cdn.logs.settings.with_streaming_response.get() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - setting = response.parse() - assert_matches_type(LogSettings, setting, path=["response"]) - - assert cast(Any, response.is_closed) is True - - -class TestAsyncSettings: - parametrize = pytest.mark.parametrize( - "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] - ) - - @parametrize - async def test_method_create(self, async_client: AsyncGcore) -> None: - setting = await async_client.cdn.logs.settings.create( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[{}], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - ) - assert setting is None - - @parametrize - async def test_method_create_with_all_params(self, async_client: AsyncGcore) -> None: - setting = await async_client.cdn.logs.settings.create( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[ - { - "id": 0, - "bucket": "bucket", - "cdn_resource": 0, - "folder": "folder", - } - ], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - archive_size_mb=500, - enabled=True, - ftp_prepend_folder="ftp_prepend_folder", - ignore_empty_logs=True, - s3_aws_region=0, - s3_bucket_location="s3_bucket_location", - s3_host_bucket="s3_host_bucket", - sftp_key_passphrase="sftp_key_passphrase", - sftp_prepend_folder="sftp_prepend_folder", - sftp_private_key="sftp_private_key", - ) - assert setting is None - - @parametrize - async def test_raw_response_create(self, async_client: AsyncGcore) -> None: - response = await async_client.cdn.logs.settings.with_raw_response.create( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[{}], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - setting = await response.parse() - assert setting is None - - @parametrize - async def test_streaming_response_create(self, async_client: AsyncGcore) -> None: - async with async_client.cdn.logs.settings.with_streaming_response.create( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[{}], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - setting = await response.parse() - assert setting is None - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_method_update(self, async_client: AsyncGcore) -> None: - setting = await async_client.cdn.logs.settings.update( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[{}], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - ) - assert setting is None - - @parametrize - async def test_method_update_with_all_params(self, async_client: AsyncGcore) -> None: - setting = await async_client.cdn.logs.settings.update( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[ - { - "id": 0, - "bucket": "bucket", - "cdn_resource": 0, - "folder": "folder", - } - ], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - archive_size_mb=500, - enabled=True, - ftp_prepend_folder="ftp_prepend_folder", - ignore_empty_logs=True, - s3_aws_region=0, - s3_bucket_location="s3_bucket_location", - s3_host_bucket="s3_host_bucket", - sftp_key_passphrase="sftp_key_passphrase", - sftp_prepend_folder="sftp_prepend_folder", - sftp_private_key="sftp_private_key", - ) - assert setting is None - - @parametrize - async def test_raw_response_update(self, async_client: AsyncGcore) -> None: - response = await async_client.cdn.logs.settings.with_raw_response.update( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[{}], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - setting = await response.parse() - assert setting is None - - @parametrize - async def test_streaming_response_update(self, async_client: AsyncGcore) -> None: - async with async_client.cdn.logs.settings.with_streaming_response.update( - all_resources_bucket="all_resources_bucket", - all_resources_folder="all_resources_folder", - folders=[{}], - for_all_resources=True, - ftp_hostname="ftp_hostname", - ftp_login="ftp_login", - ftp_password="ftp_password", - s3_access_key_id="s3_access_key_id", - s3_hostname="s3_hostname", - s3_secret_key="s3_secret_key", - s3_type="s3_type", - sftp_hostname="sftp_hostname", - sftp_login="sftp_login", - sftp_password="sftp_password", - storage_type="storage_type", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - setting = await response.parse() - assert setting is None - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_method_delete(self, async_client: AsyncGcore) -> None: - setting = await async_client.cdn.logs.settings.delete() - assert setting is None - - @parametrize - async def test_raw_response_delete(self, async_client: AsyncGcore) -> None: - response = await async_client.cdn.logs.settings.with_raw_response.delete() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - setting = await response.parse() - assert setting is None - - @parametrize - async def test_streaming_response_delete(self, async_client: AsyncGcore) -> None: - async with async_client.cdn.logs.settings.with_streaming_response.delete() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - setting = await response.parse() - assert setting is None - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_method_get(self, async_client: AsyncGcore) -> None: - setting = await async_client.cdn.logs.settings.get() - assert_matches_type(LogSettings, setting, path=["response"]) - - @parametrize - async def test_raw_response_get(self, async_client: AsyncGcore) -> None: - response = await async_client.cdn.logs.settings.with_raw_response.get() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - setting = await response.parse() - assert_matches_type(LogSettings, setting, path=["response"]) - - @parametrize - async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: - async with async_client.cdn.logs.settings.with_streaming_response.get() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - setting = await response.parse() - assert_matches_type(LogSettings, setting, path=["response"]) - - assert cast(Any, response.is_closed) is True From b030ed6e7f2b26e396ebd2852df3e915b425a761 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 16 Oct 2025 14:40:37 +0000 Subject: [PATCH 35/38] feat(cloud)!: remove get and update list method for billing reservations --- .stats.yml | 4 +- api.md | 5 +- .../resources/cloud/billing_reservations.py | 262 +++--------------- src/gcore/types/cloud/__init__.py | 1 + src/gcore/types/cloud/billing_reservation.py | 166 ++++------- .../cloud/billing_reservation_list_params.py | 46 +-- src/gcore/types/cloud/billing_reservations.py | 16 ++ .../cloud/test_billing_reservations.py | 168 +++-------- 8 files changed, 143 insertions(+), 525 deletions(-) create mode 100644 src/gcore/types/cloud/billing_reservations.py diff --git a/.stats.yml b/.stats.yml index db89b62d..c571d757 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 608 +configured_endpoints: 607 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-028d2bc06b6df923be73a9173da89cc0b5f82016051679f7500732da0168431f.yml openapi_spec_hash: d85526ff52803ee01d44231d0536da87 -config_hash: 4424995cf809ff9b2c7ef6f4b5fbdcf8 +config_hash: ba133b9b8d6b270153eb6a24c4280262 diff --git a/api.md b/api.md index ff858a4e..9aba3b27 100644 --- a/api.md +++ b/api.md @@ -750,13 +750,12 @@ Methods: Types: ```python -from gcore.types.cloud import BillingReservation +from gcore.types.cloud import BillingReservation, BillingReservations ``` Methods: -- client.cloud.billing_reservations.list(\*\*params) -> SyncOffsetPage[BillingReservation] -- client.cloud.billing_reservations.get(reservation_id) -> BillingReservation +- client.cloud.billing_reservations.list(\*\*params) -> BillingReservations ## GPUBaremetalClusters diff --git a/src/gcore/resources/cloud/billing_reservations.py b/src/gcore/resources/cloud/billing_reservations.py index dc107127..19127d09 100644 --- a/src/gcore/resources/cloud/billing_reservations.py +++ b/src/gcore/resources/cloud/billing_reservations.py @@ -2,15 +2,12 @@ from __future__ import annotations -import typing_extensions -from typing import List, Union -from datetime import date, datetime from typing_extensions import Literal import httpx from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given -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 ( @@ -19,10 +16,9 @@ async_to_raw_response_wrapper, async_to_streamed_response_wrapper, ) -from ...pagination import SyncOffsetPage, AsyncOffsetPage from ...types.cloud import billing_reservation_list_params -from ..._base_client import AsyncPaginator, make_request_options -from ...types.cloud.billing_reservation import BillingReservation +from ..._base_client import make_request_options +from ...types.cloud.billing_reservations import BillingReservations __all__ = ["BillingReservationsResource", "AsyncBillingReservationsResource"] @@ -47,71 +43,32 @@ def with_streaming_response(self) -> BillingReservationsResourceWithStreamingRes """ return BillingReservationsResourceWithStreamingResponse(self) - @typing_extensions.deprecated("deprecated") def list( self, *, - activated_from: Union[str, date] | Omit = omit, - activated_to: Union[str, date] | Omit = omit, - created_from: Union[str, datetime] | Omit = omit, - created_to: Union[str, datetime] | Omit = omit, - deactivated_from: Union[str, date] | Omit = omit, - deactivated_to: Union[str, date] | Omit = omit, - limit: int | Omit = omit, metric_name: str | Omit = omit, - offset: int | Omit = omit, - order_by: Literal[ - "active_from.asc", - "active_from.desc", - "active_to.asc", - "active_to.desc", - "created_at.asc", - "created_at.desc", - ] - | Omit = omit, + order_by: Literal["active_from.asc", "active_from.desc", "active_to.asc", "active_to.desc"] | Omit = omit, region_id: int | Omit = omit, - status: List[ - Literal[ - "ACTIVATED", "APPROVED", "COPIED", "CREATED", "EXPIRED", "REJECTED", "RESERVED", "WAITING_FOR_PAYMENT" - ] - ] - | Omit = omit, + show_inactive: bool | Omit = omit, # 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, - ) -> SyncOffsetPage[BillingReservation]: + ) -> BillingReservations: """ - List reservations + Get a list of billing reservations along with detailed information on resource + configurations and associated pricing. Args: - activated_from: Lower bound, starting from what date the reservation was/will be activated - - activated_to: High bound, before what date the reservation was/will be activated - - created_from: Lower bound the filter, showing result(s) equal to or greater than date the - reservation was created - - created_to: High bound the filter, showing result(s) equal to or less date the reservation - was created - - deactivated_from: Lower bound, starting from what date the reservation was/will be deactivated - - deactivated_to: High bound, before what date the reservation was/will be deactivated - - limit: Limit of reservation list page - metric_name: Name from billing features for specific resource - offset: Offset in reservation list - order_by: Order by field and direction. region_id: Region for reservation - status: Field for fixed a status by reservation workflow + show_inactive: Include inactive commits in the response extra_headers: Send extra headers @@ -121,9 +78,8 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ - return self._get_api_list( - "/cloud/v1/reservations", - page=SyncOffsetPage[BillingReservation], + return self._get( + "/cloud/v2/reservations", options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -131,57 +87,15 @@ def list( timeout=timeout, query=maybe_transform( { - "activated_from": activated_from, - "activated_to": activated_to, - "created_from": created_from, - "created_to": created_to, - "deactivated_from": deactivated_from, - "deactivated_to": deactivated_to, - "limit": limit, "metric_name": metric_name, - "offset": offset, "order_by": order_by, "region_id": region_id, - "status": status, + "show_inactive": show_inactive, }, billing_reservation_list_params.BillingReservationListParams, ), ), - model=BillingReservation, - ) - - @typing_extensions.deprecated("deprecated") - def get( - self, - reservation_id: int, - *, - # 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, - ) -> BillingReservation: - """ - Get reservation - - Args: - reservation_id: ID of the reservation - - 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( - f"/cloud/v1/reservations/{reservation_id}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=BillingReservation, + cast_to=BillingReservations, ) @@ -205,71 +119,32 @@ def with_streaming_response(self) -> AsyncBillingReservationsResourceWithStreami """ return AsyncBillingReservationsResourceWithStreamingResponse(self) - @typing_extensions.deprecated("deprecated") - def list( + async def list( self, *, - activated_from: Union[str, date] | Omit = omit, - activated_to: Union[str, date] | Omit = omit, - created_from: Union[str, datetime] | Omit = omit, - created_to: Union[str, datetime] | Omit = omit, - deactivated_from: Union[str, date] | Omit = omit, - deactivated_to: Union[str, date] | Omit = omit, - limit: int | Omit = omit, metric_name: str | Omit = omit, - offset: int | Omit = omit, - order_by: Literal[ - "active_from.asc", - "active_from.desc", - "active_to.asc", - "active_to.desc", - "created_at.asc", - "created_at.desc", - ] - | Omit = omit, + order_by: Literal["active_from.asc", "active_from.desc", "active_to.asc", "active_to.desc"] | Omit = omit, region_id: int | Omit = omit, - status: List[ - Literal[ - "ACTIVATED", "APPROVED", "COPIED", "CREATED", "EXPIRED", "REJECTED", "RESERVED", "WAITING_FOR_PAYMENT" - ] - ] - | Omit = omit, + show_inactive: bool | Omit = omit, # 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[BillingReservation, AsyncOffsetPage[BillingReservation]]: + ) -> BillingReservations: """ - List reservations + Get a list of billing reservations along with detailed information on resource + configurations and associated pricing. Args: - activated_from: Lower bound, starting from what date the reservation was/will be activated - - activated_to: High bound, before what date the reservation was/will be activated - - created_from: Lower bound the filter, showing result(s) equal to or greater than date the - reservation was created - - created_to: High bound the filter, showing result(s) equal to or less date the reservation - was created - - deactivated_from: Lower bound, starting from what date the reservation was/will be deactivated - - deactivated_to: High bound, before what date the reservation was/will be deactivated - - limit: Limit of reservation list page - metric_name: Name from billing features for specific resource - offset: Offset in reservation list - order_by: Order by field and direction. region_id: Region for reservation - status: Field for fixed a status by reservation workflow + show_inactive: Include inactive commits in the response extra_headers: Send extra headers @@ -279,67 +154,24 @@ def list( timeout: Override the client-level default timeout for this request, in seconds """ - return self._get_api_list( - "/cloud/v1/reservations", - page=AsyncOffsetPage[BillingReservation], + return await self._get( + "/cloud/v2/reservations", 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( { - "activated_from": activated_from, - "activated_to": activated_to, - "created_from": created_from, - "created_to": created_to, - "deactivated_from": deactivated_from, - "deactivated_to": deactivated_to, - "limit": limit, "metric_name": metric_name, - "offset": offset, "order_by": order_by, "region_id": region_id, - "status": status, + "show_inactive": show_inactive, }, billing_reservation_list_params.BillingReservationListParams, ), ), - model=BillingReservation, - ) - - @typing_extensions.deprecated("deprecated") - async def get( - self, - reservation_id: int, - *, - # 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, - ) -> BillingReservation: - """ - Get reservation - - Args: - reservation_id: ID of the reservation - - 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( - f"/cloud/v1/reservations/{reservation_id}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=BillingReservation, + cast_to=BillingReservations, ) @@ -347,15 +179,8 @@ class BillingReservationsResourceWithRawResponse: def __init__(self, billing_reservations: BillingReservationsResource) -> None: self._billing_reservations = billing_reservations - self.list = ( # pyright: ignore[reportDeprecated] - to_raw_response_wrapper( - billing_reservations.list, # pyright: ignore[reportDeprecated], - ) - ) - self.get = ( # pyright: ignore[reportDeprecated] - to_raw_response_wrapper( - billing_reservations.get, # pyright: ignore[reportDeprecated], - ) + self.list = to_raw_response_wrapper( + billing_reservations.list, ) @@ -363,15 +188,8 @@ class AsyncBillingReservationsResourceWithRawResponse: def __init__(self, billing_reservations: AsyncBillingReservationsResource) -> None: self._billing_reservations = billing_reservations - self.list = ( # pyright: ignore[reportDeprecated] - async_to_raw_response_wrapper( - billing_reservations.list, # pyright: ignore[reportDeprecated], - ) - ) - self.get = ( # pyright: ignore[reportDeprecated] - async_to_raw_response_wrapper( - billing_reservations.get, # pyright: ignore[reportDeprecated], - ) + self.list = async_to_raw_response_wrapper( + billing_reservations.list, ) @@ -379,15 +197,8 @@ class BillingReservationsResourceWithStreamingResponse: def __init__(self, billing_reservations: BillingReservationsResource) -> None: self._billing_reservations = billing_reservations - self.list = ( # pyright: ignore[reportDeprecated] - to_streamed_response_wrapper( - billing_reservations.list, # pyright: ignore[reportDeprecated], - ) - ) - self.get = ( # pyright: ignore[reportDeprecated] - to_streamed_response_wrapper( - billing_reservations.get, # pyright: ignore[reportDeprecated], - ) + self.list = to_streamed_response_wrapper( + billing_reservations.list, ) @@ -395,13 +206,6 @@ class AsyncBillingReservationsResourceWithStreamingResponse: def __init__(self, billing_reservations: AsyncBillingReservationsResource) -> None: self._billing_reservations = billing_reservations - self.list = ( # pyright: ignore[reportDeprecated] - async_to_streamed_response_wrapper( - billing_reservations.list, # pyright: ignore[reportDeprecated], - ) - ) - self.get = ( # pyright: ignore[reportDeprecated] - async_to_streamed_response_wrapper( - billing_reservations.get, # pyright: ignore[reportDeprecated], - ) + self.list = async_to_streamed_response_wrapper( + billing_reservations.list, ) diff --git a/src/gcore/types/cloud/__init__.py b/src/gcore/types/cloud/__init__.py index 96c25d07..2fd658ef 100644 --- a/src/gcore/types/cloud/__init__.py +++ b/src/gcore/types/cloud/__init__.py @@ -72,6 +72,7 @@ from .security_group_rule import SecurityGroupRule as SecurityGroupRule from .session_persistence import SessionPersistence as SessionPersistence from .ssh_key_list_params import SSHKeyListParams as SSHKeyListParams +from .billing_reservations import BillingReservations as BillingReservations from .cost_report_detailed import CostReportDetailed as CostReportDetailed from .floating_ip_detailed import FloatingIPDetailed as FloatingIPDetailed from .instance_list_params import InstanceListParams as InstanceListParams diff --git a/src/gcore/types/cloud/billing_reservation.py b/src/gcore/types/cloud/billing_reservation.py index 8f36e1bb..5a1c1949 100644 --- a/src/gcore/types/cloud/billing_reservation.py +++ b/src/gcore/types/cloud/billing_reservation.py @@ -1,153 +1,91 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import List, Optional -from datetime import date, datetime -from typing_extensions import Literal +from typing import Optional +from datetime import datetime from ..._models import BaseModel -__all__ = ["BillingReservation", "AmountPrices", "Resource"] +__all__ = ["BillingReservation", "ActiveOvercommit", "Commit", "HardwareInfo"] -class AmountPrices(BaseModel): - commit_price_per_month: str - """Commit price of the item charged per month""" +class ActiveOvercommit(BaseModel): + active_from: datetime + """Billing subscription active from date""" - commit_price_per_unit: str - """Commit price of the item charged per hour""" + plan_item_id: Optional[int] = None + """Billing plan item ID""" - commit_price_total: str - """Commit price of the item charged for all period reservation""" + price_per_month: str + """Price per month""" - currency_code: str - """Currency code (3 letter code per ISO 4217)""" + price_per_unit: str + """Price per unit (hourly)""" - overcommit_price_per_month: str - """Overcommit price of the item charged per month""" + price_total: str + """Total price for the reservation period""" - overcommit_price_per_unit: str - """Overcommit price of the item charged per hour""" + subscription_id: Optional[int] = None + """Billing subscription ID for overcommit""" - overcommit_price_total: str - """Overcommit price of the item charged for all period reservation""" +class Commit(BaseModel): + active_from: datetime + """Billing subscription active from date""" -class Resource(BaseModel): - activity_period: str - """Name of the billing period, e.g month""" + active_to: Optional[datetime] = None + """Billing subscription active to date""" - activity_period_length: int - """Length of the full reservation period by `activity_period`""" + price_per_month: str + """Price per month, per one resource""" - billing_plan_item_id: int - """Billing plan item id""" + price_per_unit: str + """Price per unit, per one resource (hourly)""" - commit_price_per_month: str - """Commit price of the item charged per month""" + price_total: str + """Total price for the reservation period for the full reserved amount""" - commit_price_per_unit: str - """Commit price of the item charged per hour""" + subscription_id: int + """Billing subscription ID for commit""" - commit_price_total: str - """Commit price of the item charged for all period reservation""" - - overcommit_billing_plan_item_id: int - """Overcommit billing plan item id""" - - overcommit_price_per_month: str - """Overcommit price of the item charged per month""" - - overcommit_price_per_unit: str - """Overcommit price of the item charged per hour""" - - overcommit_price_total: str - """Overcommit price of the item charged for all period reservation""" - - resource_count: int - """Number of reserved resource items""" - - resource_name: str - """Resource name""" - - resource_type: Literal["flavor"] - """Resource type""" - - unit_name: str - """Billing unit name""" - - unit_size_month: str - """Minimal billing size, for example it is 744 hours per 1 month.""" - - unit_size_total: str - """Unit size month multiplied by count of resources in the reservation""" +class HardwareInfo(BaseModel): cpu: Optional[str] = None - """Baremetal CPU description""" + """CPU specification""" disk: Optional[str] = None - """Baremetal disk description""" + """Disk specification""" ram: Optional[str] = None - """Baremetal RAM description""" + """RAM specification""" class BillingReservation(BaseModel): - id: int - """Reservation id""" - - active_from: date - """Reservation active from date""" + active_billing_plan_id: int + """Active billing plan ID""" - active_to: date - """Reservation active to date""" + active_overcommit: ActiveOvercommit + """Overcommit pricing details""" - activity_period: str - """Name of the billing period, e.g month""" + commit: Commit + """Commit pricing details""" - activity_period_length: int - """Length of the full reservation period by `activity_period`""" - - amount_prices: AmountPrices - """Reservation amount prices""" - - billing_plan_id: int - """Billing plan id""" - - created_at: datetime - """Reservation creation date""" - - error: Optional[str] = None - """Error message if any occured during reservation""" - - eta: Optional[date] = None - """ETA delivery if bare metal out of stock. - - Value None means that bare metal in stock. - """ - - is_expiration_message_visible: bool - """Hide or show expiration message to customer.""" - - name: str - """Reservation name""" - - next_statuses: List[str] - """List of possible next reservation statuses""" - - region_id: int - """Region id""" + hardware_info: HardwareInfo + """Hardware specifications""" region_name: str """Region name""" - remind_expiration_message: Optional[date] = None - """The date when show expiration date to customer""" + resource_count: int + """Number of reserved resource items""" - resources: List[Resource] - """List of reservation resources""" + resource_name: str + """Resource name""" - status: str - """Reservation status""" + unit_name: str + """Unit name (e.g., 'H' for hours)""" - user_status: str - """User status""" + unit_size_month: str + """Unit size per month (e.g., 744 hours)""" + + unit_size_total: str + """Unit size month multiplied by count of resources in the reservation""" diff --git a/src/gcore/types/cloud/billing_reservation_list_params.py b/src/gcore/types/cloud/billing_reservation_list_params.py index a54c8b26..b0c40c5c 100644 --- a/src/gcore/types/cloud/billing_reservation_list_params.py +++ b/src/gcore/types/cloud/billing_reservation_list_params.py @@ -2,58 +2,20 @@ from __future__ import annotations -from typing import List, Union -from datetime import date, datetime -from typing_extensions import Literal, Annotated, TypedDict - -from ..._utils import PropertyInfo +from typing_extensions import Literal, TypedDict __all__ = ["BillingReservationListParams"] class BillingReservationListParams(TypedDict, total=False): - activated_from: Annotated[Union[str, date], PropertyInfo(format="iso8601")] - """Lower bound, starting from what date the reservation was/will be activated""" - - activated_to: Annotated[Union[str, date], PropertyInfo(format="iso8601")] - """High bound, before what date the reservation was/will be activated""" - - created_from: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")] - """ - Lower bound the filter, showing result(s) equal to or greater than date the - reservation was created - """ - - created_to: Annotated[Union[str, datetime], PropertyInfo(format="iso8601")] - """ - High bound the filter, showing result(s) equal to or less date the reservation - was created - """ - - deactivated_from: Annotated[Union[str, date], PropertyInfo(format="iso8601")] - """Lower bound, starting from what date the reservation was/will be deactivated""" - - deactivated_to: Annotated[Union[str, date], PropertyInfo(format="iso8601")] - """High bound, before what date the reservation was/will be deactivated""" - - limit: int - """Limit of reservation list page""" - metric_name: str """Name from billing features for specific resource""" - offset: int - """Offset in reservation list""" - - order_by: Literal[ - "active_from.asc", "active_from.desc", "active_to.asc", "active_to.desc", "created_at.asc", "created_at.desc" - ] + order_by: Literal["active_from.asc", "active_from.desc", "active_to.asc", "active_to.desc"] """Order by field and direction.""" region_id: int """Region for reservation""" - status: List[ - Literal["ACTIVATED", "APPROVED", "COPIED", "CREATED", "EXPIRED", "REJECTED", "RESERVED", "WAITING_FOR_PAYMENT"] - ] - """Field for fixed a status by reservation workflow""" + show_inactive: bool + """Include inactive commits in the response""" diff --git a/src/gcore/types/cloud/billing_reservations.py b/src/gcore/types/cloud/billing_reservations.py new file mode 100644 index 00000000..d3787fba --- /dev/null +++ b/src/gcore/types/cloud/billing_reservations.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List + +from ..._models import BaseModel +from .billing_reservation import BillingReservation + +__all__ = ["BillingReservations"] + + +class BillingReservations(BaseModel): + count: int + """Number of objects""" + + results: List[BillingReservation] + """Objects""" diff --git a/tests/api_resources/cloud/test_billing_reservations.py b/tests/api_resources/cloud/test_billing_reservations.py index 64ab5b9a..28dd8870 100644 --- a/tests/api_resources/cloud/test_billing_reservations.py +++ b/tests/api_resources/cloud/test_billing_reservations.py @@ -9,11 +9,7 @@ from gcore import Gcore, AsyncGcore from tests.utils import assert_matches_type -from gcore._utils import parse_date, parse_datetime -from gcore.pagination import SyncOffsetPage, AsyncOffsetPage -from gcore.types.cloud import BillingReservation - -# pyright: reportDeprecated=false +from gcore.types.cloud import BillingReservations base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -23,85 +19,36 @@ class TestBillingReservations: @parametrize def test_method_list(self, client: Gcore) -> None: - with pytest.warns(DeprecationWarning): - billing_reservation = client.cloud.billing_reservations.list() - - assert_matches_type(SyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) + billing_reservation = client.cloud.billing_reservations.list() + assert_matches_type(BillingReservations, billing_reservation, path=["response"]) @parametrize def test_method_list_with_all_params(self, client: Gcore) -> None: - with pytest.warns(DeprecationWarning): - billing_reservation = client.cloud.billing_reservations.list( - activated_from=parse_date("2019-12-27"), - activated_to=parse_date("2019-12-27"), - created_from=parse_datetime("2019-12-27T18:11:19.117Z"), - created_to=parse_datetime("2019-12-27T18:11:19.117Z"), - deactivated_from=parse_date("2019-12-27"), - deactivated_to=parse_date("2019-12-27"), - limit=1, - metric_name="metric_name", - offset=0, - order_by="active_from.asc", - region_id=0, - status=["ACTIVATED"], - ) - - assert_matches_type(SyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) + billing_reservation = client.cloud.billing_reservations.list( + metric_name="metric_name", + order_by="active_from.asc", + region_id=0, + show_inactive=True, + ) + assert_matches_type(BillingReservations, billing_reservation, path=["response"]) @parametrize def test_raw_response_list(self, client: Gcore) -> None: - with pytest.warns(DeprecationWarning): - response = client.cloud.billing_reservations.with_raw_response.list() + response = client.cloud.billing_reservations.with_raw_response.list() assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" billing_reservation = response.parse() - assert_matches_type(SyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) + assert_matches_type(BillingReservations, billing_reservation, path=["response"]) @parametrize def test_streaming_response_list(self, client: Gcore) -> None: - with pytest.warns(DeprecationWarning): - with client.cloud.billing_reservations.with_streaming_response.list() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - billing_reservation = response.parse() - assert_matches_type(SyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_method_get(self, client: Gcore) -> None: - with pytest.warns(DeprecationWarning): - billing_reservation = client.cloud.billing_reservations.get( - 0, - ) - - assert_matches_type(BillingReservation, billing_reservation, path=["response"]) - - @parametrize - def test_raw_response_get(self, client: Gcore) -> None: - with pytest.warns(DeprecationWarning): - response = client.cloud.billing_reservations.with_raw_response.get( - 0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - billing_reservation = response.parse() - assert_matches_type(BillingReservation, billing_reservation, path=["response"]) - - @parametrize - def test_streaming_response_get(self, client: Gcore) -> None: - with pytest.warns(DeprecationWarning): - with client.cloud.billing_reservations.with_streaming_response.get( - 0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with client.cloud.billing_reservations.with_streaming_response.list() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - billing_reservation = response.parse() - assert_matches_type(BillingReservation, billing_reservation, path=["response"]) + billing_reservation = response.parse() + assert_matches_type(BillingReservations, billing_reservation, path=["response"]) assert cast(Any, response.is_closed) is True @@ -113,84 +60,35 @@ class TestAsyncBillingReservations: @parametrize async def test_method_list(self, async_client: AsyncGcore) -> None: - with pytest.warns(DeprecationWarning): - billing_reservation = await async_client.cloud.billing_reservations.list() - - assert_matches_type(AsyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) + billing_reservation = await async_client.cloud.billing_reservations.list() + assert_matches_type(BillingReservations, billing_reservation, path=["response"]) @parametrize async def test_method_list_with_all_params(self, async_client: AsyncGcore) -> None: - with pytest.warns(DeprecationWarning): - billing_reservation = await async_client.cloud.billing_reservations.list( - activated_from=parse_date("2019-12-27"), - activated_to=parse_date("2019-12-27"), - created_from=parse_datetime("2019-12-27T18:11:19.117Z"), - created_to=parse_datetime("2019-12-27T18:11:19.117Z"), - deactivated_from=parse_date("2019-12-27"), - deactivated_to=parse_date("2019-12-27"), - limit=1, - metric_name="metric_name", - offset=0, - order_by="active_from.asc", - region_id=0, - status=["ACTIVATED"], - ) - - assert_matches_type(AsyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) + billing_reservation = await async_client.cloud.billing_reservations.list( + metric_name="metric_name", + order_by="active_from.asc", + region_id=0, + show_inactive=True, + ) + assert_matches_type(BillingReservations, billing_reservation, path=["response"]) @parametrize async def test_raw_response_list(self, async_client: AsyncGcore) -> None: - with pytest.warns(DeprecationWarning): - response = await async_client.cloud.billing_reservations.with_raw_response.list() + response = await async_client.cloud.billing_reservations.with_raw_response.list() assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" billing_reservation = await response.parse() - assert_matches_type(AsyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) + assert_matches_type(BillingReservations, billing_reservation, path=["response"]) @parametrize async def test_streaming_response_list(self, async_client: AsyncGcore) -> None: - with pytest.warns(DeprecationWarning): - async with async_client.cloud.billing_reservations.with_streaming_response.list() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - billing_reservation = await response.parse() - assert_matches_type(AsyncOffsetPage[BillingReservation], billing_reservation, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_method_get(self, async_client: AsyncGcore) -> None: - with pytest.warns(DeprecationWarning): - billing_reservation = await async_client.cloud.billing_reservations.get( - 0, - ) - - assert_matches_type(BillingReservation, billing_reservation, path=["response"]) + async with async_client.cloud.billing_reservations.with_streaming_response.list() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - @parametrize - async def test_raw_response_get(self, async_client: AsyncGcore) -> None: - with pytest.warns(DeprecationWarning): - response = await async_client.cloud.billing_reservations.with_raw_response.get( - 0, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - billing_reservation = await response.parse() - assert_matches_type(BillingReservation, billing_reservation, path=["response"]) - - @parametrize - async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: - with pytest.warns(DeprecationWarning): - async with async_client.cloud.billing_reservations.with_streaming_response.get( - 0, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - billing_reservation = await response.parse() - assert_matches_type(BillingReservation, billing_reservation, path=["response"]) + billing_reservation = await response.parse() + assert_matches_type(BillingReservations, billing_reservation, path=["response"]) assert cast(Any, response.is_closed) is True From 0aa709a20ccfc96e282b17a1cd554322a2d92bc7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 16 Oct 2025 16:12:01 +0000 Subject: [PATCH 36/38] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index c571d757..f1cba395 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 607 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-028d2bc06b6df923be73a9173da89cc0b5f82016051679f7500732da0168431f.yml -openapi_spec_hash: d85526ff52803ee01d44231d0536da87 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-69cdddee2436ba596d5c966a54c73d4ed4081564ec1c09282e3736bdb9ec6e20.yml +openapi_spec_hash: 33a4d60dd35c4e8ae937a9b079a25cad config_hash: ba133b9b8d6b270153eb6a24c4280262 From 0b3c21b3f1f971a9d22623ae03c136e3aad84611 Mon Sep 17 00:00:00 2001 From: Algis Dumbris <151737200+algis-dumbris@users.noreply.github.com> Date: Fri, 17 Oct 2025 12:16:16 +0300 Subject: [PATCH 37/38] fix(examples): suppress deprecation warnings for file shares update method (#104) Add pyright ignore comments to file shares examples to suppress deprecation warnings for the update() method. The method is deprecated in favor of the v3 API endpoint, but no replacement method is available in the SDK yet. The examples continue to use the deprecated method as it's the only option currently available, with proper documentation via the ignore comment. --- examples/cloud/file_shares.py | 2 +- examples/cloud/file_shares_async.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/cloud/file_shares.py b/examples/cloud/file_shares.py index 908af045..aa147d12 100644 --- a/examples/cloud/file_shares.py +++ b/examples/cloud/file_shares.py @@ -71,7 +71,7 @@ def get_file_share(*, client: Gcore, file_share_id: str) -> None: def update_file_share(*, client: Gcore, file_share_id: str) -> None: print("\n=== UPDATE FILE SHARE ===") - file_share = client.cloud.file_shares.update( + file_share = client.cloud.file_shares.update( # pyright: ignore[reportDeprecated] file_share_id=file_share_id, name="gcore-go-example-updated", ) diff --git a/examples/cloud/file_shares_async.py b/examples/cloud/file_shares_async.py index 04fd38c3..c7d6f81a 100644 --- a/examples/cloud/file_shares_async.py +++ b/examples/cloud/file_shares_async.py @@ -75,7 +75,7 @@ async def get_file_share(*, client: AsyncGcore, file_share_id: str) -> None: async def update_file_share(*, client: AsyncGcore, file_share_id: str) -> None: print("\n=== UPDATE FILE SHARE ===") - file_share = await client.cloud.file_shares.update( + file_share = await client.cloud.file_shares.update( # pyright: ignore[reportDeprecated] file_share_id=file_share_id, name="gcore-go-example-updated", ) From 46f7dc6a771e8886b1b839e67741f16e7eb97ef6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 17 Oct 2025 09:16:57 +0000 Subject: [PATCH 38/38] release: 0.16.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 40 +++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- src/gcore/_version.py | 2 +- 4 files changed, 43 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 8f3e0a49..b4e9013b 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.15.0" + ".": "0.16.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d027c2b..f838a6df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,45 @@ # Changelog +## 0.16.0 (2025-10-17) + +Full Changelog: [v0.15.0...v0.16.0](https://github.com/G-Core/gcore-python/compare/v0.15.0...v0.16.0) + +### ⚠ BREAKING CHANGES + +* **cloud:** remove get and update list method for billing reservations +* **cloud:** use load_balancer_id in poll methods +* **cloud:** rename to load_balancer_id path param +* **cloud:** rename inference applications deployments update method + +### Features + +* **api:** aggregated API specs update ([ca4cbba](https://github.com/G-Core/gcore-python/commit/ca4cbbabc6c143e6a1c54e861cafbd38f906ebda)) +* **api:** aggregated API specs update ([0d92524](https://github.com/G-Core/gcore-python/commit/0d92524c16aeac6e96b0360c49de70a7912a8485)) +* **api:** aggregated API specs update ([7a58cae](https://github.com/G-Core/gcore-python/commit/7a58cae302e7a3818a11e616f967719db076fd25)) +* **api:** aggregated API specs update ([c62d748](https://github.com/G-Core/gcore-python/commit/c62d7487ca76b74c8919c438b7d50979e75527cf)) +* **api:** aggregated API specs update ([2a0347f](https://github.com/G-Core/gcore-python/commit/2a0347fbb670a29ca3cf0418637cd843bd8d535d)) +* **api:** aggregated API specs update ([1dc8993](https://github.com/G-Core/gcore-python/commit/1dc8993163988b192d1f7bcedd2b4df4259f60d0)) +* **api:** aggregated API specs update ([555824b](https://github.com/G-Core/gcore-python/commit/555824be97e936b2a20077870dfd50a186446e40)) +* **api:** aggregated API specs update ([c8e06a9](https://github.com/G-Core/gcore-python/commit/c8e06a9c4db67838c190b7f985fa99e2ee1bc9f4)) +* **api:** aggregated API specs update ([8eedd02](https://github.com/G-Core/gcore-python/commit/8eedd0251f0519932ccc9034383e56bbf385d4a4)) +* **cloude:** remove cloud_lbmember name ([0c3df8e](https://github.com/G-Core/gcore-python/commit/0c3df8e1330f518b13457f5a3db8e7fcf963ea42)) +* **cloud:** remove get and update list method for billing reservations ([b030ed6](https://github.com/G-Core/gcore-python/commit/b030ed6e7f2b26e396ebd2852df3e915b425a761)) + + +### Bug Fixes + +* **cloud:** rename to load_balancer_id path param ([ab273aa](https://github.com/G-Core/gcore-python/commit/ab273aadd364dc22a1fc8538c8b39c916fd002df)) +* **cloud:** use load_balancer_id in poll methods ([6b55df9](https://github.com/G-Core/gcore-python/commit/6b55df953a0695b0047b947ab898063df9cba044)) +* **examples:** suppress deprecation warnings for file shares update method ([#104](https://github.com/G-Core/gcore-python/issues/104)) ([0b3c21b](https://github.com/G-Core/gcore-python/commit/0b3c21b3f1f971a9d22623ae03c136e3aad84611)) + + +### Chores + +* add pull request template ([2e2997b](https://github.com/G-Core/gcore-python/commit/2e2997b1591f489581b6568c7adf9a4d39d5501c)) +* **ci:** add fossa ([289bea8](https://github.com/G-Core/gcore-python/commit/289bea8c56d1b1e185dc1374628115b708aedcfa)) +* **cloud:** rename inference applications deployments update method ([c672843](https://github.com/G-Core/gcore-python/commit/c6728438a3bba4d47de59bbdf30fe4d1c82a3d97)) +* **internal:** detect missing future annotations with ruff ([9b55e6e](https://github.com/G-Core/gcore-python/commit/9b55e6e072e0f4210545e5fb91d5b628a8512cf8)) + ## 0.15.0 (2025-10-02) Full Changelog: [v0.14.0...v0.15.0](https://github.com/G-Core/gcore-python/compare/v0.14.0...v0.15.0) diff --git a/pyproject.toml b/pyproject.toml index f0e402c1..efdfe116 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "gcore" -version = "0.15.0" +version = "0.16.0" description = "The official Python library for the gcore API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/gcore/_version.py b/src/gcore/_version.py index 0bfdd66b..a0186b0a 100644 --- a/src/gcore/_version.py +++ b/src/gcore/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "gcore" -__version__ = "0.15.0" # x-release-please-version +__version__ = "0.16.0" # x-release-please-version