From 535941718238395cdfc524c0bc5b59b4109fd8d1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 09:29:23 +0000 Subject: [PATCH 1/9] feat(cdn): add client_config subresource for terraform --- .stats.yml | 4 +- api.md | 14 + src/gcore/resources/cdn/__init__.py | 14 + src/gcore/resources/cdn/cdn.py | 32 ++ src/gcore/resources/cdn/client_config.py | 313 ++++++++++++++++++ src/gcore/types/cdn/__init__.py | 2 + .../types/cdn/client_config_replace_params.py | 15 + .../types/cdn/client_config_update_params.py | 15 + tests/api_resources/cdn/test_client_config.py | 202 +++++++++++ 9 files changed, 609 insertions(+), 2 deletions(-) create mode 100644 src/gcore/resources/cdn/client_config.py create mode 100644 src/gcore/types/cdn/client_config_replace_params.py create mode 100644 src/gcore/types/cdn/client_config_update_params.py create mode 100644 tests/api_resources/cdn/test_client_config.py diff --git a/.stats.yml b/.stats.yml index e4e9b35f..9ca9ec3c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 645 +configured_endpoints: 646 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-afac9651736e871ab5942174b1c2b741d31f17c1f4ac61e78f0000f1b3fd8d09.yml openapi_spec_hash: 9c57a763b4c6b82b581defdcaf5f52df -config_hash: 7552912a8ca7c67b43b97f51b67a5ae7 +config_hash: 33e6d5828b3af3964a67af53b2e1654a diff --git a/api.md b/api.md index cbc93dbc..8a2eaa8f 100644 --- a/api.md +++ b/api.md @@ -2577,3 +2577,17 @@ Methods: - client.cdn.ip_ranges.list(\*\*params) -> PublicNetworkList - client.cdn.ip_ranges.list_ips(\*\*params) -> PublicIPList + +## ClientConfig + +Types: + +```python +from gcore.types.cdn import CDNClientConfig +``` + +Methods: + +- client.cdn.client_config.update(\*\*params) -> CDNAccount +- client.cdn.client_config.get() -> CDNAccount +- client.cdn.client_config.replace(\*\*params) -> CDNAccount diff --git a/src/gcore/resources/cdn/__init__.py b/src/gcore/resources/cdn/__init__.py index 869fc050..91878ce3 100644 --- a/src/gcore/resources/cdn/__init__.py +++ b/src/gcore/resources/cdn/__init__.py @@ -72,6 +72,14 @@ CDNResourcesResourceWithStreamingResponse, AsyncCDNResourcesResourceWithStreamingResponse, ) +from .client_config import ( + ClientConfigResource, + AsyncClientConfigResource, + ClientConfigResourceWithRawResponse, + AsyncClientConfigResourceWithRawResponse, + ClientConfigResourceWithStreamingResponse, + AsyncClientConfigResourceWithStreamingResponse, +) from .logs_uploader import ( LogsUploaderResource, AsyncLogsUploaderResource, @@ -192,6 +200,12 @@ "AsyncIPRangesResourceWithRawResponse", "IPRangesResourceWithStreamingResponse", "AsyncIPRangesResourceWithStreamingResponse", + "ClientConfigResource", + "AsyncClientConfigResource", + "ClientConfigResourceWithRawResponse", + "AsyncClientConfigResourceWithRawResponse", + "ClientConfigResourceWithStreamingResponse", + "AsyncClientConfigResourceWithStreamingResponse", "CDNResource", "AsyncCDNResource", "CDNResourceWithRawResponse", diff --git a/src/gcore/resources/cdn/cdn.py b/src/gcore/resources/cdn/cdn.py index 771c3776..4ab4a225 100644 --- a/src/gcore/resources/cdn/cdn.py +++ b/src/gcore/resources/cdn/cdn.py @@ -71,6 +71,14 @@ CertificatesResourceWithStreamingResponse, AsyncCertificatesResourceWithStreamingResponse, ) +from .client_config import ( + ClientConfigResource, + AsyncClientConfigResource, + ClientConfigResourceWithRawResponse, + AsyncClientConfigResourceWithRawResponse, + ClientConfigResourceWithStreamingResponse, + AsyncClientConfigResourceWithStreamingResponse, +) from .origin_groups import ( OriginGroupsResource, AsyncOriginGroupsResource, @@ -183,6 +191,10 @@ def metrics(self) -> MetricsResource: def ip_ranges(self) -> IPRangesResource: return IPRangesResource(self._client) + @cached_property + def client_config(self) -> ClientConfigResource: + return ClientConfigResource(self._client) + @cached_property def with_raw_response(self) -> CDNResourceWithRawResponse: """ @@ -484,6 +496,10 @@ def metrics(self) -> AsyncMetricsResource: def ip_ranges(self) -> AsyncIPRangesResource: return AsyncIPRangesResource(self._client) + @cached_property + def client_config(self) -> AsyncClientConfigResource: + return AsyncClientConfigResource(self._client) + @cached_property def with_raw_response(self) -> AsyncCDNResourceWithRawResponse: """ @@ -810,6 +826,10 @@ def metrics(self) -> MetricsResourceWithRawResponse: def ip_ranges(self) -> IPRangesResourceWithRawResponse: return IPRangesResourceWithRawResponse(self._cdn.ip_ranges) + @cached_property + def client_config(self) -> ClientConfigResourceWithRawResponse: + return ClientConfigResourceWithRawResponse(self._cdn.client_config) + class AsyncCDNResourceWithRawResponse: def __init__(self, cdn: AsyncCDNResource) -> None: @@ -889,6 +909,10 @@ def metrics(self) -> AsyncMetricsResourceWithRawResponse: def ip_ranges(self) -> AsyncIPRangesResourceWithRawResponse: return AsyncIPRangesResourceWithRawResponse(self._cdn.ip_ranges) + @cached_property + def client_config(self) -> AsyncClientConfigResourceWithRawResponse: + return AsyncClientConfigResourceWithRawResponse(self._cdn.client_config) + class CDNResourceWithStreamingResponse: def __init__(self, cdn: CDNResource) -> None: @@ -968,6 +992,10 @@ def metrics(self) -> MetricsResourceWithStreamingResponse: def ip_ranges(self) -> IPRangesResourceWithStreamingResponse: return IPRangesResourceWithStreamingResponse(self._cdn.ip_ranges) + @cached_property + def client_config(self) -> ClientConfigResourceWithStreamingResponse: + return ClientConfigResourceWithStreamingResponse(self._cdn.client_config) + class AsyncCDNResourceWithStreamingResponse: def __init__(self, cdn: AsyncCDNResource) -> None: @@ -1046,3 +1074,7 @@ def metrics(self) -> AsyncMetricsResourceWithStreamingResponse: @cached_property def ip_ranges(self) -> AsyncIPRangesResourceWithStreamingResponse: return AsyncIPRangesResourceWithStreamingResponse(self._cdn.ip_ranges) + + @cached_property + def client_config(self) -> AsyncClientConfigResourceWithStreamingResponse: + return AsyncClientConfigResourceWithStreamingResponse(self._cdn.client_config) diff --git a/src/gcore/resources/cdn/client_config.py b/src/gcore/resources/cdn/client_config.py new file mode 100644 index 00000000..c19b3124 --- /dev/null +++ b/src/gcore/resources/cdn/client_config.py @@ -0,0 +1,313 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import httpx + +from ..._types import Body, Omit, Query, Headers, 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 ...types.cdn import client_config_update_params, client_config_replace_params +from ..._base_client import make_request_options +from ...types.cdn.cdn_account import CDNAccount + +__all__ = ["ClientConfigResource", "AsyncClientConfigResource"] + + +class ClientConfigResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> ClientConfigResourceWithRawResponse: + """ + 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 ClientConfigResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> ClientConfigResourceWithStreamingResponse: + """ + 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 ClientConfigResourceWithStreamingResponse(self) + + def update( + self, + *, + utilization_level: 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, + ) -> CDNAccount: + """ + Change information about CDN service. + + Args: + utilization_level: CDN traffic usage limit in gigabytes. + + When the limit is reached, we will send an email notification. + + 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._patch( + "/cdn/clients/me", + body=maybe_transform( + {"utilization_level": utilization_level}, client_config_update_params.ClientConfigUpdateParams + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=CDNAccount, + ) + + 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, + ) -> CDNAccount: + """Get information about CDN service.""" + return self._get( + "/cdn/clients/me", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=CDNAccount, + ) + + def replace( + self, + *, + utilization_level: 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, + ) -> CDNAccount: + """ + Change information about CDN service. + + Args: + utilization_level: CDN traffic usage limit in gigabytes. + + When the limit is reached, we will send an email notification. + + 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._put( + "/cdn/clients/me", + body=maybe_transform( + {"utilization_level": utilization_level}, client_config_replace_params.ClientConfigReplaceParams + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=CDNAccount, + ) + + +class AsyncClientConfigResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncClientConfigResourceWithRawResponse: + """ + 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 AsyncClientConfigResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncClientConfigResourceWithStreamingResponse: + """ + 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 AsyncClientConfigResourceWithStreamingResponse(self) + + async def update( + self, + *, + utilization_level: 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, + ) -> CDNAccount: + """ + Change information about CDN service. + + Args: + utilization_level: CDN traffic usage limit in gigabytes. + + When the limit is reached, we will send an email notification. + + 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._patch( + "/cdn/clients/me", + body=await async_maybe_transform( + {"utilization_level": utilization_level}, client_config_update_params.ClientConfigUpdateParams + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=CDNAccount, + ) + + 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, + ) -> CDNAccount: + """Get information about CDN service.""" + return await self._get( + "/cdn/clients/me", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=CDNAccount, + ) + + async def replace( + self, + *, + utilization_level: 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, + ) -> CDNAccount: + """ + Change information about CDN service. + + Args: + utilization_level: CDN traffic usage limit in gigabytes. + + When the limit is reached, we will send an email notification. + + 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._put( + "/cdn/clients/me", + body=await async_maybe_transform( + {"utilization_level": utilization_level}, client_config_replace_params.ClientConfigReplaceParams + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=CDNAccount, + ) + + +class ClientConfigResourceWithRawResponse: + def __init__(self, client_config: ClientConfigResource) -> None: + self._client_config = client_config + + self.update = to_raw_response_wrapper( + client_config.update, + ) + self.get = to_raw_response_wrapper( + client_config.get, + ) + self.replace = to_raw_response_wrapper( + client_config.replace, + ) + + +class AsyncClientConfigResourceWithRawResponse: + def __init__(self, client_config: AsyncClientConfigResource) -> None: + self._client_config = client_config + + self.update = async_to_raw_response_wrapper( + client_config.update, + ) + self.get = async_to_raw_response_wrapper( + client_config.get, + ) + self.replace = async_to_raw_response_wrapper( + client_config.replace, + ) + + +class ClientConfigResourceWithStreamingResponse: + def __init__(self, client_config: ClientConfigResource) -> None: + self._client_config = client_config + + self.update = to_streamed_response_wrapper( + client_config.update, + ) + self.get = to_streamed_response_wrapper( + client_config.get, + ) + self.replace = to_streamed_response_wrapper( + client_config.replace, + ) + + +class AsyncClientConfigResourceWithStreamingResponse: + def __init__(self, client_config: AsyncClientConfigResource) -> None: + self._client_config = client_config + + self.update = async_to_streamed_response_wrapper( + client_config.update, + ) + self.get = async_to_streamed_response_wrapper( + client_config.get, + ) + self.replace = async_to_streamed_response_wrapper( + client_config.replace, + ) diff --git a/src/gcore/types/cdn/__init__.py b/src/gcore/types/cdn/__init__.py index 92895e33..6b27c1f9 100644 --- a/src/gcore/types/cdn/__init__.py +++ b/src/gcore/types/cdn/__init__.py @@ -52,10 +52,12 @@ from .origin_group_create_params import OriginGroupCreateParams as OriginGroupCreateParams from .origin_group_update_params import OriginGroupUpdateParams as OriginGroupUpdateParams from .cdn_resource_replace_params import CDNResourceReplaceParams as CDNResourceReplaceParams +from .client_config_update_params import ClientConfigUpdateParams as ClientConfigUpdateParams from .origin_group_replace_params import OriginGroupReplaceParams as OriginGroupReplaceParams from .rule_template_create_params import RuleTemplateCreateParams as RuleTemplateCreateParams from .rule_template_update_params import RuleTemplateUpdateParams as RuleTemplateUpdateParams from .cdn_resource_prefetch_params import CDNResourcePrefetchParams as CDNResourcePrefetchParams +from .client_config_replace_params import ClientConfigReplaceParams as ClientConfigReplaceParams from .rule_template_replace_params import RuleTemplateReplaceParams as RuleTemplateReplaceParams from .certificate_get_status_params import CertificateGetStatusParams as CertificateGetStatusParams from .cdn_list_purge_statuses_params import CDNListPurgeStatusesParams as CDNListPurgeStatusesParams diff --git a/src/gcore/types/cdn/client_config_replace_params.py b/src/gcore/types/cdn/client_config_replace_params.py new file mode 100644 index 00000000..a604b93b --- /dev/null +++ b/src/gcore/types/cdn/client_config_replace_params.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["ClientConfigReplaceParams"] + + +class ClientConfigReplaceParams(TypedDict, total=False): + utilization_level: int + """CDN traffic usage limit in gigabytes. + + When the limit is reached, we will send an email notification. + """ diff --git a/src/gcore/types/cdn/client_config_update_params.py b/src/gcore/types/cdn/client_config_update_params.py new file mode 100644 index 00000000..8f9f22a1 --- /dev/null +++ b/src/gcore/types/cdn/client_config_update_params.py @@ -0,0 +1,15 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing_extensions import TypedDict + +__all__ = ["ClientConfigUpdateParams"] + + +class ClientConfigUpdateParams(TypedDict, total=False): + utilization_level: int + """CDN traffic usage limit in gigabytes. + + When the limit is reached, we will send an email notification. + """ diff --git a/tests/api_resources/cdn/test_client_config.py b/tests/api_resources/cdn/test_client_config.py new file mode 100644 index 00000000..3c296833 --- /dev/null +++ b/tests/api_resources/cdn/test_client_config.py @@ -0,0 +1,202 @@ +# 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 import CDNAccount + +base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") + + +class TestClientConfig: + parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + def test_method_update(self, client: Gcore) -> None: + client_config = client.cdn.client_config.update() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + def test_method_update_with_all_params(self, client: Gcore) -> None: + client_config = client.cdn.client_config.update( + utilization_level=1111, + ) + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + def test_raw_response_update(self, client: Gcore) -> None: + response = client.cdn.client_config.with_raw_response.update() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + client_config = response.parse() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + def test_streaming_response_update(self, client: Gcore) -> None: + with client.cdn.client_config.with_streaming_response.update() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + client_config = response.parse() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_method_get(self, client: Gcore) -> None: + client_config = client.cdn.client_config.get() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + def test_raw_response_get(self, client: Gcore) -> None: + response = client.cdn.client_config.with_raw_response.get() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + client_config = response.parse() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + def test_streaming_response_get(self, client: Gcore) -> None: + with client.cdn.client_config.with_streaming_response.get() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + client_config = response.parse() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_method_replace(self, client: Gcore) -> None: + client_config = client.cdn.client_config.replace() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + def test_method_replace_with_all_params(self, client: Gcore) -> None: + client_config = client.cdn.client_config.replace( + utilization_level=1111, + ) + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + def test_raw_response_replace(self, client: Gcore) -> None: + response = client.cdn.client_config.with_raw_response.replace() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + client_config = response.parse() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + def test_streaming_response_replace(self, client: Gcore) -> None: + with client.cdn.client_config.with_streaming_response.replace() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + client_config = response.parse() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + assert cast(Any, response.is_closed) is True + + +class TestAsyncClientConfig: + parametrize = pytest.mark.parametrize( + "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] + ) + + @parametrize + async def test_method_update(self, async_client: AsyncGcore) -> None: + client_config = await async_client.cdn.client_config.update() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + async def test_method_update_with_all_params(self, async_client: AsyncGcore) -> None: + client_config = await async_client.cdn.client_config.update( + utilization_level=1111, + ) + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + async def test_raw_response_update(self, async_client: AsyncGcore) -> None: + response = await async_client.cdn.client_config.with_raw_response.update() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + client_config = await response.parse() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + async def test_streaming_response_update(self, async_client: AsyncGcore) -> None: + async with async_client.cdn.client_config.with_streaming_response.update() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + client_config = await response.parse() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_get(self, async_client: AsyncGcore) -> None: + client_config = await async_client.cdn.client_config.get() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + async def test_raw_response_get(self, async_client: AsyncGcore) -> None: + response = await async_client.cdn.client_config.with_raw_response.get() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + client_config = await response.parse() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: + async with async_client.cdn.client_config.with_streaming_response.get() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + client_config = await response.parse() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_replace(self, async_client: AsyncGcore) -> None: + client_config = await async_client.cdn.client_config.replace() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + async def test_method_replace_with_all_params(self, async_client: AsyncGcore) -> None: + client_config = await async_client.cdn.client_config.replace( + utilization_level=1111, + ) + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + async def test_raw_response_replace(self, async_client: AsyncGcore) -> None: + response = await async_client.cdn.client_config.with_raw_response.replace() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + client_config = await response.parse() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + @parametrize + async def test_streaming_response_replace(self, async_client: AsyncGcore) -> None: + async with async_client.cdn.client_config.with_streaming_response.replace() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + client_config = await response.parse() + assert_matches_type(CDNAccount, client_config, path=["response"]) + + assert cast(Any, response.is_closed) is True From 449ee945443f9c1c86782bbb96635631ac99d406 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 11:07:02 +0000 Subject: [PATCH 2/9] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9ca9ec3c..8aed1c31 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 646 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-afac9651736e871ab5942174b1c2b741d31f17c1f4ac61e78f0000f1b3fd8d09.yml -openapi_spec_hash: 9c57a763b4c6b82b581defdcaf5f52df +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-bab3396466ec5b697c339ea24bd4489c07ff40d08091f4d4d263d247ef2b00bd.yml +openapi_spec_hash: c7d1eedcfa472650c54e9ec569383949 config_hash: 33e6d5828b3af3964a67af53b2e1654a From 6bc418acdcfed56957b6c571ee2f6f29efa3663e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 13:15:27 +0000 Subject: [PATCH 3/9] feat(api): revert(cdn): remove client_config subresource (#207) Reverts the client_config addition from PR #206. The generated terraform provider fails to compile because it references CDN.ClientConfig from the Go SDK which is only on the `next` branch, not yet on `main`. --- .stats.yml | 4 +- api.md | 14 - src/gcore/resources/cdn/__init__.py | 14 - src/gcore/resources/cdn/cdn.py | 32 -- src/gcore/resources/cdn/client_config.py | 313 ------------------ src/gcore/types/cdn/__init__.py | 2 - .../types/cdn/client_config_replace_params.py | 15 - .../types/cdn/client_config_update_params.py | 15 - tests/api_resources/cdn/test_client_config.py | 202 ----------- 9 files changed, 2 insertions(+), 609 deletions(-) delete mode 100644 src/gcore/resources/cdn/client_config.py delete mode 100644 src/gcore/types/cdn/client_config_replace_params.py delete mode 100644 src/gcore/types/cdn/client_config_update_params.py delete mode 100644 tests/api_resources/cdn/test_client_config.py diff --git a/.stats.yml b/.stats.yml index 8aed1c31..f46ecaf2 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 646 +configured_endpoints: 645 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-bab3396466ec5b697c339ea24bd4489c07ff40d08091f4d4d263d247ef2b00bd.yml openapi_spec_hash: c7d1eedcfa472650c54e9ec569383949 -config_hash: 33e6d5828b3af3964a67af53b2e1654a +config_hash: 841ecfe67afa779a3954fe8800ecb132 diff --git a/api.md b/api.md index 8a2eaa8f..cbc93dbc 100644 --- a/api.md +++ b/api.md @@ -2577,17 +2577,3 @@ Methods: - client.cdn.ip_ranges.list(\*\*params) -> PublicNetworkList - client.cdn.ip_ranges.list_ips(\*\*params) -> PublicIPList - -## ClientConfig - -Types: - -```python -from gcore.types.cdn import CDNClientConfig -``` - -Methods: - -- client.cdn.client_config.update(\*\*params) -> CDNAccount -- client.cdn.client_config.get() -> CDNAccount -- client.cdn.client_config.replace(\*\*params) -> CDNAccount diff --git a/src/gcore/resources/cdn/__init__.py b/src/gcore/resources/cdn/__init__.py index 91878ce3..869fc050 100644 --- a/src/gcore/resources/cdn/__init__.py +++ b/src/gcore/resources/cdn/__init__.py @@ -72,14 +72,6 @@ CDNResourcesResourceWithStreamingResponse, AsyncCDNResourcesResourceWithStreamingResponse, ) -from .client_config import ( - ClientConfigResource, - AsyncClientConfigResource, - ClientConfigResourceWithRawResponse, - AsyncClientConfigResourceWithRawResponse, - ClientConfigResourceWithStreamingResponse, - AsyncClientConfigResourceWithStreamingResponse, -) from .logs_uploader import ( LogsUploaderResource, AsyncLogsUploaderResource, @@ -200,12 +192,6 @@ "AsyncIPRangesResourceWithRawResponse", "IPRangesResourceWithStreamingResponse", "AsyncIPRangesResourceWithStreamingResponse", - "ClientConfigResource", - "AsyncClientConfigResource", - "ClientConfigResourceWithRawResponse", - "AsyncClientConfigResourceWithRawResponse", - "ClientConfigResourceWithStreamingResponse", - "AsyncClientConfigResourceWithStreamingResponse", "CDNResource", "AsyncCDNResource", "CDNResourceWithRawResponse", diff --git a/src/gcore/resources/cdn/cdn.py b/src/gcore/resources/cdn/cdn.py index 4ab4a225..771c3776 100644 --- a/src/gcore/resources/cdn/cdn.py +++ b/src/gcore/resources/cdn/cdn.py @@ -71,14 +71,6 @@ CertificatesResourceWithStreamingResponse, AsyncCertificatesResourceWithStreamingResponse, ) -from .client_config import ( - ClientConfigResource, - AsyncClientConfigResource, - ClientConfigResourceWithRawResponse, - AsyncClientConfigResourceWithRawResponse, - ClientConfigResourceWithStreamingResponse, - AsyncClientConfigResourceWithStreamingResponse, -) from .origin_groups import ( OriginGroupsResource, AsyncOriginGroupsResource, @@ -191,10 +183,6 @@ def metrics(self) -> MetricsResource: def ip_ranges(self) -> IPRangesResource: return IPRangesResource(self._client) - @cached_property - def client_config(self) -> ClientConfigResource: - return ClientConfigResource(self._client) - @cached_property def with_raw_response(self) -> CDNResourceWithRawResponse: """ @@ -496,10 +484,6 @@ def metrics(self) -> AsyncMetricsResource: def ip_ranges(self) -> AsyncIPRangesResource: return AsyncIPRangesResource(self._client) - @cached_property - def client_config(self) -> AsyncClientConfigResource: - return AsyncClientConfigResource(self._client) - @cached_property def with_raw_response(self) -> AsyncCDNResourceWithRawResponse: """ @@ -826,10 +810,6 @@ def metrics(self) -> MetricsResourceWithRawResponse: def ip_ranges(self) -> IPRangesResourceWithRawResponse: return IPRangesResourceWithRawResponse(self._cdn.ip_ranges) - @cached_property - def client_config(self) -> ClientConfigResourceWithRawResponse: - return ClientConfigResourceWithRawResponse(self._cdn.client_config) - class AsyncCDNResourceWithRawResponse: def __init__(self, cdn: AsyncCDNResource) -> None: @@ -909,10 +889,6 @@ def metrics(self) -> AsyncMetricsResourceWithRawResponse: def ip_ranges(self) -> AsyncIPRangesResourceWithRawResponse: return AsyncIPRangesResourceWithRawResponse(self._cdn.ip_ranges) - @cached_property - def client_config(self) -> AsyncClientConfigResourceWithRawResponse: - return AsyncClientConfigResourceWithRawResponse(self._cdn.client_config) - class CDNResourceWithStreamingResponse: def __init__(self, cdn: CDNResource) -> None: @@ -992,10 +968,6 @@ def metrics(self) -> MetricsResourceWithStreamingResponse: def ip_ranges(self) -> IPRangesResourceWithStreamingResponse: return IPRangesResourceWithStreamingResponse(self._cdn.ip_ranges) - @cached_property - def client_config(self) -> ClientConfigResourceWithStreamingResponse: - return ClientConfigResourceWithStreamingResponse(self._cdn.client_config) - class AsyncCDNResourceWithStreamingResponse: def __init__(self, cdn: AsyncCDNResource) -> None: @@ -1074,7 +1046,3 @@ def metrics(self) -> AsyncMetricsResourceWithStreamingResponse: @cached_property def ip_ranges(self) -> AsyncIPRangesResourceWithStreamingResponse: return AsyncIPRangesResourceWithStreamingResponse(self._cdn.ip_ranges) - - @cached_property - def client_config(self) -> AsyncClientConfigResourceWithStreamingResponse: - return AsyncClientConfigResourceWithStreamingResponse(self._cdn.client_config) diff --git a/src/gcore/resources/cdn/client_config.py b/src/gcore/resources/cdn/client_config.py deleted file mode 100644 index c19b3124..00000000 --- a/src/gcore/resources/cdn/client_config.py +++ /dev/null @@ -1,313 +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, Omit, Query, Headers, 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 ...types.cdn import client_config_update_params, client_config_replace_params -from ..._base_client import make_request_options -from ...types.cdn.cdn_account import CDNAccount - -__all__ = ["ClientConfigResource", "AsyncClientConfigResource"] - - -class ClientConfigResource(SyncAPIResource): - @cached_property - def with_raw_response(self) -> ClientConfigResourceWithRawResponse: - """ - 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 ClientConfigResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> ClientConfigResourceWithStreamingResponse: - """ - 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 ClientConfigResourceWithStreamingResponse(self) - - def update( - self, - *, - utilization_level: 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, - ) -> CDNAccount: - """ - Change information about CDN service. - - Args: - utilization_level: CDN traffic usage limit in gigabytes. - - When the limit is reached, we will send an email notification. - - 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._patch( - "/cdn/clients/me", - body=maybe_transform( - {"utilization_level": utilization_level}, client_config_update_params.ClientConfigUpdateParams - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=CDNAccount, - ) - - 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, - ) -> CDNAccount: - """Get information about CDN service.""" - return self._get( - "/cdn/clients/me", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=CDNAccount, - ) - - def replace( - self, - *, - utilization_level: 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, - ) -> CDNAccount: - """ - Change information about CDN service. - - Args: - utilization_level: CDN traffic usage limit in gigabytes. - - When the limit is reached, we will send an email notification. - - 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._put( - "/cdn/clients/me", - body=maybe_transform( - {"utilization_level": utilization_level}, client_config_replace_params.ClientConfigReplaceParams - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=CDNAccount, - ) - - -class AsyncClientConfigResource(AsyncAPIResource): - @cached_property - def with_raw_response(self) -> AsyncClientConfigResourceWithRawResponse: - """ - 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 AsyncClientConfigResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> AsyncClientConfigResourceWithStreamingResponse: - """ - 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 AsyncClientConfigResourceWithStreamingResponse(self) - - async def update( - self, - *, - utilization_level: 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, - ) -> CDNAccount: - """ - Change information about CDN service. - - Args: - utilization_level: CDN traffic usage limit in gigabytes. - - When the limit is reached, we will send an email notification. - - 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._patch( - "/cdn/clients/me", - body=await async_maybe_transform( - {"utilization_level": utilization_level}, client_config_update_params.ClientConfigUpdateParams - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=CDNAccount, - ) - - 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, - ) -> CDNAccount: - """Get information about CDN service.""" - return await self._get( - "/cdn/clients/me", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=CDNAccount, - ) - - async def replace( - self, - *, - utilization_level: 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, - ) -> CDNAccount: - """ - Change information about CDN service. - - Args: - utilization_level: CDN traffic usage limit in gigabytes. - - When the limit is reached, we will send an email notification. - - 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._put( - "/cdn/clients/me", - body=await async_maybe_transform( - {"utilization_level": utilization_level}, client_config_replace_params.ClientConfigReplaceParams - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=CDNAccount, - ) - - -class ClientConfigResourceWithRawResponse: - def __init__(self, client_config: ClientConfigResource) -> None: - self._client_config = client_config - - self.update = to_raw_response_wrapper( - client_config.update, - ) - self.get = to_raw_response_wrapper( - client_config.get, - ) - self.replace = to_raw_response_wrapper( - client_config.replace, - ) - - -class AsyncClientConfigResourceWithRawResponse: - def __init__(self, client_config: AsyncClientConfigResource) -> None: - self._client_config = client_config - - self.update = async_to_raw_response_wrapper( - client_config.update, - ) - self.get = async_to_raw_response_wrapper( - client_config.get, - ) - self.replace = async_to_raw_response_wrapper( - client_config.replace, - ) - - -class ClientConfigResourceWithStreamingResponse: - def __init__(self, client_config: ClientConfigResource) -> None: - self._client_config = client_config - - self.update = to_streamed_response_wrapper( - client_config.update, - ) - self.get = to_streamed_response_wrapper( - client_config.get, - ) - self.replace = to_streamed_response_wrapper( - client_config.replace, - ) - - -class AsyncClientConfigResourceWithStreamingResponse: - def __init__(self, client_config: AsyncClientConfigResource) -> None: - self._client_config = client_config - - self.update = async_to_streamed_response_wrapper( - client_config.update, - ) - self.get = async_to_streamed_response_wrapper( - client_config.get, - ) - self.replace = async_to_streamed_response_wrapper( - client_config.replace, - ) diff --git a/src/gcore/types/cdn/__init__.py b/src/gcore/types/cdn/__init__.py index 6b27c1f9..92895e33 100644 --- a/src/gcore/types/cdn/__init__.py +++ b/src/gcore/types/cdn/__init__.py @@ -52,12 +52,10 @@ from .origin_group_create_params import OriginGroupCreateParams as OriginGroupCreateParams from .origin_group_update_params import OriginGroupUpdateParams as OriginGroupUpdateParams from .cdn_resource_replace_params import CDNResourceReplaceParams as CDNResourceReplaceParams -from .client_config_update_params import ClientConfigUpdateParams as ClientConfigUpdateParams from .origin_group_replace_params import OriginGroupReplaceParams as OriginGroupReplaceParams from .rule_template_create_params import RuleTemplateCreateParams as RuleTemplateCreateParams from .rule_template_update_params import RuleTemplateUpdateParams as RuleTemplateUpdateParams from .cdn_resource_prefetch_params import CDNResourcePrefetchParams as CDNResourcePrefetchParams -from .client_config_replace_params import ClientConfigReplaceParams as ClientConfigReplaceParams from .rule_template_replace_params import RuleTemplateReplaceParams as RuleTemplateReplaceParams from .certificate_get_status_params import CertificateGetStatusParams as CertificateGetStatusParams from .cdn_list_purge_statuses_params import CDNListPurgeStatusesParams as CDNListPurgeStatusesParams diff --git a/src/gcore/types/cdn/client_config_replace_params.py b/src/gcore/types/cdn/client_config_replace_params.py deleted file mode 100644 index a604b93b..00000000 --- a/src/gcore/types/cdn/client_config_replace_params.py +++ /dev/null @@ -1,15 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -__all__ = ["ClientConfigReplaceParams"] - - -class ClientConfigReplaceParams(TypedDict, total=False): - utilization_level: int - """CDN traffic usage limit in gigabytes. - - When the limit is reached, we will send an email notification. - """ diff --git a/src/gcore/types/cdn/client_config_update_params.py b/src/gcore/types/cdn/client_config_update_params.py deleted file mode 100644 index 8f9f22a1..00000000 --- a/src/gcore/types/cdn/client_config_update_params.py +++ /dev/null @@ -1,15 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import TypedDict - -__all__ = ["ClientConfigUpdateParams"] - - -class ClientConfigUpdateParams(TypedDict, total=False): - utilization_level: int - """CDN traffic usage limit in gigabytes. - - When the limit is reached, we will send an email notification. - """ diff --git a/tests/api_resources/cdn/test_client_config.py b/tests/api_resources/cdn/test_client_config.py deleted file mode 100644 index 3c296833..00000000 --- a/tests/api_resources/cdn/test_client_config.py +++ /dev/null @@ -1,202 +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 import CDNAccount - -base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") - - -class TestClientConfig: - parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - - @parametrize - def test_method_update(self, client: Gcore) -> None: - client_config = client.cdn.client_config.update() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - def test_method_update_with_all_params(self, client: Gcore) -> None: - client_config = client.cdn.client_config.update( - utilization_level=1111, - ) - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - def test_raw_response_update(self, client: Gcore) -> None: - response = client.cdn.client_config.with_raw_response.update() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - client_config = response.parse() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - def test_streaming_response_update(self, client: Gcore) -> None: - with client.cdn.client_config.with_streaming_response.update() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - client_config = response.parse() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_method_get(self, client: Gcore) -> None: - client_config = client.cdn.client_config.get() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - def test_raw_response_get(self, client: Gcore) -> None: - response = client.cdn.client_config.with_raw_response.get() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - client_config = response.parse() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - def test_streaming_response_get(self, client: Gcore) -> None: - with client.cdn.client_config.with_streaming_response.get() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - client_config = response.parse() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - def test_method_replace(self, client: Gcore) -> None: - client_config = client.cdn.client_config.replace() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - def test_method_replace_with_all_params(self, client: Gcore) -> None: - client_config = client.cdn.client_config.replace( - utilization_level=1111, - ) - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - def test_raw_response_replace(self, client: Gcore) -> None: - response = client.cdn.client_config.with_raw_response.replace() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - client_config = response.parse() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - def test_streaming_response_replace(self, client: Gcore) -> None: - with client.cdn.client_config.with_streaming_response.replace() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - client_config = response.parse() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - assert cast(Any, response.is_closed) is True - - -class TestAsyncClientConfig: - parametrize = pytest.mark.parametrize( - "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] - ) - - @parametrize - async def test_method_update(self, async_client: AsyncGcore) -> None: - client_config = await async_client.cdn.client_config.update() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - async def test_method_update_with_all_params(self, async_client: AsyncGcore) -> None: - client_config = await async_client.cdn.client_config.update( - utilization_level=1111, - ) - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - async def test_raw_response_update(self, async_client: AsyncGcore) -> None: - response = await async_client.cdn.client_config.with_raw_response.update() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - client_config = await response.parse() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - async def test_streaming_response_update(self, async_client: AsyncGcore) -> None: - async with async_client.cdn.client_config.with_streaming_response.update() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - client_config = await response.parse() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_method_get(self, async_client: AsyncGcore) -> None: - client_config = await async_client.cdn.client_config.get() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - async def test_raw_response_get(self, async_client: AsyncGcore) -> None: - response = await async_client.cdn.client_config.with_raw_response.get() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - client_config = await response.parse() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - async def test_streaming_response_get(self, async_client: AsyncGcore) -> None: - async with async_client.cdn.client_config.with_streaming_response.get() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - client_config = await response.parse() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @parametrize - async def test_method_replace(self, async_client: AsyncGcore) -> None: - client_config = await async_client.cdn.client_config.replace() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - async def test_method_replace_with_all_params(self, async_client: AsyncGcore) -> None: - client_config = await async_client.cdn.client_config.replace( - utilization_level=1111, - ) - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - async def test_raw_response_replace(self, async_client: AsyncGcore) -> None: - response = await async_client.cdn.client_config.with_raw_response.replace() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - client_config = await response.parse() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - @parametrize - async def test_streaming_response_replace(self, async_client: AsyncGcore) -> None: - async with async_client.cdn.client_config.with_streaming_response.replace() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - client_config = await response.parse() - assert_matches_type(CDNAccount, client_config, path=["response"]) - - assert cast(Any, response.is_closed) is True From 3d098db09a0d55743def539fe5d4a96cbbed5d48 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 14:28:57 +0000 Subject: [PATCH 4/9] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index f46ecaf2..90034d6b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 645 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-bab3396466ec5b697c339ea24bd4489c07ff40d08091f4d4d263d247ef2b00bd.yml -openapi_spec_hash: c7d1eedcfa472650c54e9ec569383949 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-69213ba68b3c49b799026d4eff31f8fcee0516596349629e0085447b2ee08807.yml +openapi_spec_hash: 2893764d7ffe22852b35a30344a79c6a config_hash: 841ecfe67afa779a3954fe8800ecb132 From c9e395f4726a540815c962a7bb1c1ba122ae87c7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 14:52:49 +0000 Subject: [PATCH 5/9] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 90034d6b..0d8ddfe6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 645 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-69213ba68b3c49b799026d4eff31f8fcee0516596349629e0085447b2ee08807.yml -openapi_spec_hash: 2893764d7ffe22852b35a30344a79c6a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-8c31abd1135e0eac90290da5a160e341a0d09ca3ca62191a13f079a0f958c0e3.yml +openapi_spec_hash: 3506ce6ee4d6f2057e02e656557ada57 config_hash: 841ecfe67afa779a3954fe8800ecb132 From 6f7ec778e65dce7a413619b85df204268f26d178 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 16:57:27 +0000 Subject: [PATCH 6/9] chore: format all `api.md` files --- api.md | 2580 +------------------------- pyproject.toml | 2 +- src/gcore/resources/cdn/api.md | 308 +++ src/gcore/resources/cloud/api.md | 1181 ++++++++++++ src/gcore/resources/dns/api.md | 159 ++ src/gcore/resources/fastedge/api.md | 122 ++ src/gcore/resources/iam/api.md | 42 + src/gcore/resources/security/api.md | 55 + src/gcore/resources/storage/api.md | 97 + src/gcore/resources/streaming/api.md | 285 +++ src/gcore/resources/waap/api.md | 322 ++++ 11 files changed, 2581 insertions(+), 2572 deletions(-) create mode 100644 src/gcore/resources/cdn/api.md create mode 100644 src/gcore/resources/cloud/api.md create mode 100644 src/gcore/resources/dns/api.md create mode 100644 src/gcore/resources/fastedge/api.md create mode 100644 src/gcore/resources/iam/api.md create mode 100644 src/gcore/resources/security/api.md create mode 100644 src/gcore/resources/storage/api.md create mode 100644 src/gcore/resources/streaming/api.md create mode 100644 src/gcore/resources/waap/api.md diff --git a/api.md b/api.md index cbc93dbc..9faa9ce7 100644 --- a/api.md +++ b/api.md @@ -1,2579 +1,17 @@ -# Cloud +# [Cloud](src/gcore/resources/cloud/api.md) -Types: +# [Waap](src/gcore/resources/waap/api.md) -```python -from gcore.types.cloud import ( - AllowedAddressPairs, - BaremetalFlavor, - BaremetalFlavorList, - BlackholePort, - Console, - DDOSProfile, - DDOSProfileField, - DDOSProfileOptionList, - DDOSProfileStatus, - DDOSProfileTemplate, - DDOSProfileTemplateField, - FixedAddress, - FixedAddressShort, - FlavorHardwareDescription, - FloatingAddress, - FloatingIP, - FloatingIPStatus, - GPUImage, - GPUImageList, - HTTPMethod, - Image, - ImageList, - Instance, - InstanceIsolation, - InstanceList, - InstanceMetricsTimeUnit, - InterfaceIPFamily, - IPAssignment, - IPVersion, - LaasIndexRetentionPolicy, - LoadBalancer, - LoadBalancerInstanceRole, - LoadBalancerMemberConnectivity, - LoadBalancerOperatingStatus, - LoadBalancerStatistics, - Logging, - Network, - NetworkAnySubnetFip, - NetworkDetails, - NetworkInterface, - NetworkInterfaceList, - NetworkSubnetFip, - ProvisioningStatus, - Route, - Subnet, - Tag, - TagList, - TagUpdateMap, - TaskIDList, -) -``` +# [Iam](src/gcore/resources/iam/api.md) -## Projects +# [Fastedge](src/gcore/resources/fastedge/api.md) -Types: +# [Streaming](src/gcore/resources/streaming/api.md) -```python -from gcore.types.cloud import Project -``` +# [Security](src/gcore/resources/security/api.md) -Methods: +# [DNS](src/gcore/resources/dns/api.md) -- client.cloud.projects.create(\*\*params) -> Project -- client.cloud.projects.update(\*, project_id, \*\*params) -> Project -- client.cloud.projects.list(\*\*params) -> SyncOffsetPage[Project] -- client.cloud.projects.delete(\*, project_id) -> TaskIDList -- client.cloud.projects.get(\*, project_id) -> Project +# [Storage](src/gcore/resources/storage/api.md) -## Tasks - -Types: - -```python -from gcore.types.cloud import Task -``` - -Methods: - -- client.cloud.tasks.list(\*\*params) -> SyncOffsetPage[Task] -- client.cloud.tasks.acknowledge_all(\*\*params) -> None -- client.cloud.tasks.acknowledge_one(task_id) -> Task -- client.cloud.tasks.get(task_id) -> Task - -## Regions - -Types: - -```python -from gcore.types.cloud import Region -``` - -Methods: - -- client.cloud.regions.list(\*\*params) -> SyncOffsetPage[Region] -- client.cloud.regions.get(\*, region_id, \*\*params) -> Region - -## Quotas - -Types: - -```python -from gcore.types.cloud import QuotaGetAllResponse, QuotaGetByRegionResponse, QuotaGetGlobalResponse -``` - -Methods: - -- client.cloud.quotas.get_all() -> QuotaGetAllResponse -- client.cloud.quotas.get_by_region(\*, client_id, region_id) -> QuotaGetByRegionResponse -- client.cloud.quotas.get_global(client_id) -> QuotaGetGlobalResponse - -### Requests - -Types: - -```python -from gcore.types.cloud.quotas import RequestListResponse, RequestGetResponse -``` - -Methods: - -- client.cloud.quotas.requests.create(\*\*params) -> None -- client.cloud.quotas.requests.list(\*\*params) -> SyncOffsetPage[RequestListResponse] -- client.cloud.quotas.requests.delete(request_id) -> None -- client.cloud.quotas.requests.get(request_id) -> RequestGetResponse - -## Secrets - -Types: - -```python -from gcore.types.cloud import Secret -``` - -Methods: - -- client.cloud.secrets.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[Secret] -- client.cloud.secrets.delete(secret_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.secrets.get(secret_id, \*, project_id, region_id) -> Secret -- client.cloud.secrets.upload_tls_certificate(\*, project_id, region_id, \*\*params) -> TaskIDList - -## SSHKeys - -Types: - -```python -from gcore.types.cloud import SSHKey, SSHKeyCreated -``` - -Methods: - -- client.cloud.ssh_keys.create(\*, project_id, \*\*params) -> SSHKeyCreated -- client.cloud.ssh_keys.update(ssh_key_id, \*, project_id, \*\*params) -> SSHKey -- client.cloud.ssh_keys.list(\*, project_id, \*\*params) -> SyncOffsetPage[SSHKey] -- client.cloud.ssh_keys.delete(ssh_key_id, \*, project_id) -> None -- client.cloud.ssh_keys.get(ssh_key_id, \*, project_id) -> SSHKey - -## IPRanges - -Types: - -```python -from gcore.types.cloud import IPRanges -``` - -Methods: - -- client.cloud.ip_ranges.list() -> IPRanges - -## LoadBalancers - -Types: - -```python -from gcore.types.cloud import ( - HealthMonitor, - HealthMonitorStatus, - LbAlgorithm, - LbHealthMonitorType, - LbListenerProtocol, - LbPoolProtocol, - LbSessionPersistenceType, - ListenerStatus, - LoadBalancerFlavorDetail, - LoadBalancerFlavorList, - LoadBalancerL7Policy, - LoadBalancerL7PolicyList, - LoadBalancerL7Rule, - LoadBalancerL7RuleList, - LoadBalancerListenerDetail, - LoadBalancerListenerList, - LoadBalancerMetrics, - LoadBalancerMetricsList, - LoadBalancerPool, - LoadBalancerPoolList, - LoadBalancerStatus, - LoadBalancerStatusList, - Member, - MemberStatus, - PoolStatus, - SessionPersistence, -) -``` - -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 - -Methods: - -- client.cloud.load_balancers.l7_policies.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.l7_policies.update(l7policy_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.l7_policies.list(\*, project_id, region_id) -> LoadBalancerL7PolicyList -- client.cloud.load_balancers.l7_policies.delete(l7policy_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.load_balancers.l7_policies.get(l7policy_id, \*, project_id, region_id) -> LoadBalancerL7Policy - -#### Rules - -Methods: - -- client.cloud.load_balancers.l7_policies.rules.create(l7policy_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.l7_policies.rules.list(l7policy_id, \*, project_id, region_id) -> LoadBalancerL7RuleList -- client.cloud.load_balancers.l7_policies.rules.delete(l7rule_id, \*, project_id, region_id, l7policy_id) -> TaskIDList -- client.cloud.load_balancers.l7_policies.rules.get(l7rule_id, \*, project_id, region_id, l7policy_id) -> LoadBalancerL7Rule -- client.cloud.load_balancers.l7_policies.rules.replace(l7rule_id, \*, project_id, region_id, l7policy_id, \*\*params) -> TaskIDList - -### Flavors - -Methods: - -- client.cloud.load_balancers.flavors.list(\*, project_id, region_id, \*\*params) -> LoadBalancerFlavorList - -### Listeners - -Methods: - -- client.cloud.load_balancers.listeners.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.listeners.update(listener_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.listeners.list(\*, project_id, region_id, \*\*params) -> LoadBalancerListenerList -- client.cloud.load_balancers.listeners.delete(listener_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.listeners.get(listener_id, \*, project_id, region_id, \*\*params) -> LoadBalancerListenerDetail - -### Pools - -Methods: - -- client.cloud.load_balancers.pools.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.pools.update(pool_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.pools.list(\*, project_id, region_id, \*\*params) -> LoadBalancerPoolList -- client.cloud.load_balancers.pools.delete(pool_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.load_balancers.pools.get(pool_id, \*, project_id, region_id) -> LoadBalancerPool - -#### HealthMonitors - -Methods: - -- client.cloud.load_balancers.pools.health_monitors.create(pool_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.pools.health_monitors.delete(pool_id, \*, project_id, region_id) -> None - -#### Members - -Methods: - -- client.cloud.load_balancers.pools.members.create(pool_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.load_balancers.pools.members.delete(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 - -Types: - -```python -from gcore.types.cloud import ReservedFixedIP -``` - -Methods: - -- client.cloud.reserved_fixed_ips.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.reserved_fixed_ips.update(port_id, \*, project_id, region_id, \*\*params) -> ReservedFixedIP -- client.cloud.reserved_fixed_ips.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[ReservedFixedIP] -- client.cloud.reserved_fixed_ips.delete(port_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.reserved_fixed_ips.get(port_id, \*, project_id, region_id) -> ReservedFixedIP - -### Vip - -Types: - -```python -from gcore.types.cloud.reserved_fixed_ips import IPWithSubnet -``` - -Methods: - -- client.cloud.reserved_fixed_ips.vip.toggle(port_id, \*, project_id, region_id, \*\*params) -> ReservedFixedIP - -#### CandidatePorts - -Types: - -```python -from gcore.types.cloud.reserved_fixed_ips.vip import CandidatePort, CandidatePortList -``` - -Methods: - -- client.cloud.reserved_fixed_ips.vip.candidate_ports.list(port_id, \*, project_id, region_id) -> CandidatePortList - -#### ConnectedPorts - -Types: - -```python -from gcore.types.cloud.reserved_fixed_ips.vip import ConnectedPort, ConnectedPortList -``` - -Methods: - -- client.cloud.reserved_fixed_ips.vip.connected_ports.list(port_id, \*, project_id, region_id) -> ConnectedPortList -- client.cloud.reserved_fixed_ips.vip.connected_ports.add(port_id, \*, project_id, region_id, \*\*params) -> ConnectedPortList -- client.cloud.reserved_fixed_ips.vip.connected_ports.replace(port_id, \*, project_id, region_id, \*\*params) -> ConnectedPortList - -## Networks - -Methods: - -- client.cloud.networks.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.networks.update(network_id, \*, project_id, region_id, \*\*params) -> Network -- client.cloud.networks.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[Network] -- client.cloud.networks.delete(network_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.networks.get(network_id, \*, project_id, region_id) -> Network - -### Subnets - -Methods: - -- client.cloud.networks.subnets.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.networks.subnets.update(subnet_id, \*, project_id, region_id, \*\*params) -> Subnet -- client.cloud.networks.subnets.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[Subnet] -- client.cloud.networks.subnets.delete(subnet_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.networks.subnets.get(subnet_id, \*, project_id, region_id) -> Subnet - -### Routers - -Types: - -```python -from gcore.types.cloud.networks import Router, RouterList, SubnetID -``` - -Methods: - -- client.cloud.networks.routers.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.networks.routers.update(router_id, \*, project_id, region_id, \*\*params) -> Router -- client.cloud.networks.routers.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[Router] -- client.cloud.networks.routers.delete(router_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.networks.routers.attach_subnet(router_id, \*, project_id, region_id, \*\*params) -> Router -- client.cloud.networks.routers.detach_subnet(router_id, \*, project_id, region_id, \*\*params) -> Router -- client.cloud.networks.routers.get(router_id, \*, project_id, region_id) -> Router - -## Volumes - -Types: - -```python -from gcore.types.cloud import Volume -``` - -Methods: - -- client.cloud.volumes.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.volumes.update(volume_id, \*, project_id, region_id, \*\*params) -> Volume -- client.cloud.volumes.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[Volume] -- client.cloud.volumes.delete(volume_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.volumes.attach_to_instance(volume_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.volumes.change_type(volume_id, \*, project_id, region_id, \*\*params) -> Volume -- client.cloud.volumes.detach_from_instance(volume_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.volumes.get(volume_id, \*, project_id, region_id) -> Volume -- client.cloud.volumes.resize(volume_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.volumes.revert_to_last_snapshot(volume_id, \*, project_id, region_id) -> None - -## FloatingIPs - -Types: - -```python -from gcore.types.cloud import FloatingIPDetailed -``` - -Methods: - -- client.cloud.floating_ips.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.floating_ips.update(floating_ip_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.floating_ips.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[FloatingIPDetailed] -- client.cloud.floating_ips.delete(floating_ip_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.floating_ips.assign(floating_ip_id, \*, project_id, region_id, \*\*params) -> FloatingIP -- client.cloud.floating_ips.get(floating_ip_id, \*, project_id, region_id) -> FloatingIP -- client.cloud.floating_ips.unassign(floating_ip_id, \*, project_id, region_id) -> FloatingIP - -## SecurityGroups - -Types: - -```python -from gcore.types.cloud import SecurityGroup, SecurityGroupRule -``` - -Methods: - -- client.cloud.security_groups.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.security_groups.update(group_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.security_groups.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[SecurityGroup] -- client.cloud.security_groups.delete(group_id, \*, project_id, region_id) -> None -- client.cloud.security_groups.copy(group_id, \*, project_id, region_id, \*\*params) -> SecurityGroup -- client.cloud.security_groups.get(group_id, \*, project_id, region_id) -> SecurityGroup -- client.cloud.security_groups.revert_to_default(group_id, \*, project_id, region_id) -> SecurityGroup - -### Rules - -Methods: - -- client.cloud.security_groups.rules.create(group_id, \*, project_id, region_id, \*\*params) -> SecurityGroupRule -- client.cloud.security_groups.rules.delete(rule_id, \*, project_id, region_id) -> None -- client.cloud.security_groups.rules.replace(rule_id, \*, project_id, region_id, \*\*params) -> SecurityGroupRule - -## Users - -### RoleAssignments - -Types: - -```python -from gcore.types.cloud.users import RoleAssignment, RoleAssignmentUpdatedDeleted -``` - -Methods: - -- client.cloud.users.role_assignments.create(\*\*params) -> RoleAssignment -- client.cloud.users.role_assignments.update(assignment_id, \*\*params) -> RoleAssignmentUpdatedDeleted -- client.cloud.users.role_assignments.list(\*\*params) -> SyncOffsetPage[RoleAssignment] -- client.cloud.users.role_assignments.delete(assignment_id) -> RoleAssignmentUpdatedDeleted - -## Inference - -Types: - -```python -from gcore.types.cloud import InferenceRegionCapacity, InferenceRegionCapacityList -``` - -Methods: - -- client.cloud.inference.get_capacity_by_region() -> InferenceRegionCapacityList - -### Flavors - -Types: - -```python -from gcore.types.cloud.inference import InferenceFlavor -``` - -Methods: - -- client.cloud.inference.flavors.list(\*\*params) -> SyncOffsetPage[InferenceFlavor] -- client.cloud.inference.flavors.get(flavor_name) -> InferenceFlavor - -### Deployments - -Types: - -```python -from gcore.types.cloud.inference import ( - InferenceDeployment, - InferenceDeploymentAPIKey, - Probe, - ProbeConfig, - ProbeExec, - ProbeHTTPGet, - ProbeTcpSocket, -) -``` - -Methods: - -- client.cloud.inference.deployments.create(\*, project_id, \*\*params) -> TaskIDList -- client.cloud.inference.deployments.update(deployment_name, \*, project_id, \*\*params) -> TaskIDList -- client.cloud.inference.deployments.list(\*, project_id, \*\*params) -> SyncOffsetPage[InferenceDeployment] -- client.cloud.inference.deployments.delete(deployment_name, \*, project_id) -> TaskIDList -- client.cloud.inference.deployments.get(deployment_name, \*, project_id) -> InferenceDeployment -- client.cloud.inference.deployments.get_api_key(deployment_name, \*, project_id) -> InferenceDeploymentAPIKey -- client.cloud.inference.deployments.start(deployment_name, \*, project_id) -> None -- client.cloud.inference.deployments.stop(deployment_name, \*, project_id) -> None - -#### Logs - -Types: - -```python -from gcore.types.cloud.inference.deployments import InferenceDeploymentLog -``` - -Methods: - -- client.cloud.inference.deployments.logs.list(deployment_name, \*, project_id, \*\*params) -> SyncOffsetPage[InferenceDeploymentLog] - -### RegistryCredentials - -Types: - -```python -from gcore.types.cloud.inference import InferenceRegistryCredentials -``` - -Methods: - -- client.cloud.inference.registry_credentials.create(\*, project_id, \*\*params) -> InferenceRegistryCredentials -- client.cloud.inference.registry_credentials.list(\*, project_id, \*\*params) -> SyncOffsetPage[InferenceRegistryCredentials] -- client.cloud.inference.registry_credentials.delete(credential_name, \*, project_id) -> None -- client.cloud.inference.registry_credentials.get(credential_name, \*, project_id) -> InferenceRegistryCredentials -- client.cloud.inference.registry_credentials.replace(credential_name, \*, project_id, \*\*params) -> InferenceRegistryCredentials - -### Secrets - -Types: - -```python -from gcore.types.cloud.inference import InferenceSecret -``` - -Methods: - -- client.cloud.inference.secrets.create(\*, project_id, \*\*params) -> InferenceSecret -- client.cloud.inference.secrets.list(\*, project_id, \*\*params) -> SyncOffsetPage[InferenceSecret] -- client.cloud.inference.secrets.delete(secret_name, \*, project_id) -> None -- client.cloud.inference.secrets.get(secret_name, \*, project_id) -> InferenceSecret -- client.cloud.inference.secrets.replace(secret_name, \*, project_id, \*\*params) -> InferenceSecret - -### APIKeys - -Types: - -```python -from gcore.types.cloud.inference import InferenceAPIKey, InferenceAPIKeyCreated -``` - -Methods: - -- client.cloud.inference.api_keys.create(\*, project_id, \*\*params) -> InferenceAPIKeyCreated -- client.cloud.inference.api_keys.update(api_key_name, \*, project_id, \*\*params) -> InferenceAPIKey -- client.cloud.inference.api_keys.list(\*, project_id, \*\*params) -> SyncOffsetPage[InferenceAPIKey] -- client.cloud.inference.api_keys.delete(api_key_name, \*, project_id) -> None -- client.cloud.inference.api_keys.get(api_key_name, \*, project_id) -> InferenceAPIKey - -### Applications - -#### Deployments - -Types: - -```python -from gcore.types.cloud.inference.applications import ( - InferenceApplicationDeployment, - InferenceApplicationDeploymentList, -) -``` - -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 - -#### Templates - -Types: - -```python -from gcore.types.cloud.inference.applications import ( - InferenceApplicationTemplate, - InferenceApplicationTemplateList, -) -``` - -Methods: - -- client.cloud.inference.applications.templates.list() -> InferenceApplicationTemplateList -- client.cloud.inference.applications.templates.get(application_name) -> InferenceApplicationTemplate - -## PlacementGroups - -Types: - -```python -from gcore.types.cloud import PlacementGroup, PlacementGroupList -``` - -Methods: - -- client.cloud.placement_groups.create(\*, project_id, region_id, \*\*params) -> PlacementGroup -- client.cloud.placement_groups.list(\*, project_id, region_id) -> PlacementGroupList -- client.cloud.placement_groups.delete(group_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.placement_groups.get(group_id, \*, project_id, region_id) -> PlacementGroup - -## Baremetal - -### Images - -Methods: - -- client.cloud.baremetal.images.list(\*, project_id, region_id, \*\*params) -> ImageList - -### Flavors - -Methods: - -- client.cloud.baremetal.flavors.list(\*, project_id, region_id, \*\*params) -> BaremetalFlavorList - -### Servers - -Types: - -```python -from gcore.types.cloud.baremetal import ( - BaremetalFixedAddress, - BaremetalFloatingAddress, - BaremetalServer, -) -``` - -Methods: - -- client.cloud.baremetal.servers.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.baremetal.servers.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[BaremetalServer] -- client.cloud.baremetal.servers.rebuild(server_id, \*, project_id, region_id, \*\*params) -> TaskIDList - -## Registries - -Types: - -```python -from gcore.types.cloud import Registry, RegistryList, RegistryTag -``` - -Methods: - -- client.cloud.registries.create(\*, project_id, region_id, \*\*params) -> Registry -- client.cloud.registries.list(\*, project_id, region_id) -> RegistryList -- client.cloud.registries.delete(registry_id, \*, project_id, region_id) -> None -- client.cloud.registries.get(registry_id, \*, project_id, region_id) -> Registry -- client.cloud.registries.resize(registry_id, \*, project_id, region_id, \*\*params) -> Registry - -### Repositories - -Types: - -```python -from gcore.types.cloud.registries import RegistryRepository, RegistryRepositoryList -``` - -Methods: - -- client.cloud.registries.repositories.list(registry_id, \*, project_id, region_id) -> RegistryRepositoryList -- client.cloud.registries.repositories.delete(repository_name, \*, project_id, region_id, registry_id) -> None - -### Artifacts - -Types: - -```python -from gcore.types.cloud.registries import RegistryArtifact, RegistryArtifactList -``` - -Methods: - -- client.cloud.registries.artifacts.list(repository_name, \*, project_id, region_id, registry_id) -> RegistryArtifactList -- client.cloud.registries.artifacts.delete(digest, \*, project_id, region_id, registry_id, repository_name) -> None - -### Tags - -Methods: - -- client.cloud.registries.tags.delete(tag_name, \*, project_id, region_id, registry_id, repository_name, digest) -> None - -### Users - -Types: - -```python -from gcore.types.cloud.registries import ( - RegistryUser, - RegistryUserCreated, - RegistryUserList, - UserRefreshSecretResponse, -) -``` - -Methods: - -- client.cloud.registries.users.create(registry_id, \*, project_id, region_id, \*\*params) -> RegistryUserCreated -- client.cloud.registries.users.update(user_id, \*, project_id, region_id, registry_id, \*\*params) -> RegistryUser -- client.cloud.registries.users.list(registry_id, \*, project_id, region_id) -> RegistryUserList -- client.cloud.registries.users.delete(user_id, \*, project_id, region_id, registry_id) -> None -- client.cloud.registries.users.create_multiple(registry_id, \*, project_id, region_id, \*\*params) -> RegistryUserCreated -- client.cloud.registries.users.refresh_secret(user_id, \*, project_id, region_id, registry_id) -> UserRefreshSecretResponse - -## FileShares - -Types: - -```python -from gcore.types.cloud import FileShare -``` - -Methods: - -- client.cloud.file_shares.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.file_shares.update(file_share_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.file_shares.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[FileShare] -- client.cloud.file_shares.delete(file_share_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.file_shares.get(file_share_id, \*, project_id, region_id) -> FileShare -- client.cloud.file_shares.resize(file_share_id, \*, project_id, region_id, \*\*params) -> TaskIDList - -### AccessRules - -Types: - -```python -from gcore.types.cloud.file_shares import AccessRule, AccessRuleList -``` - -Methods: - -- client.cloud.file_shares.access_rules.create(file_share_id, \*, project_id, region_id, \*\*params) -> AccessRule -- client.cloud.file_shares.access_rules.list(file_share_id, \*, project_id, region_id) -> AccessRuleList -- client.cloud.file_shares.access_rules.delete(access_rule_id, \*, project_id, region_id, file_share_id) -> None - -## BillingReservations - -Types: - -```python -from gcore.types.cloud import BillingReservation, BillingReservations -``` - -Methods: - -- client.cloud.billing_reservations.list(\*\*params) -> BillingReservations - -## GPUBaremetal - -### Clusters - -Types: - -```python -from gcore.types.cloud.gpu_baremetal import GPUBaremetalCluster -``` - -Methods: - -- client.cloud.gpu_baremetal.clusters.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.gpu_baremetal.clusters.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[GPUBaremetalCluster] -- client.cloud.gpu_baremetal.clusters.delete(cluster_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.gpu_baremetal.clusters.action(cluster_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.gpu_baremetal.clusters.get(cluster_id, \*, project_id, region_id) -> GPUBaremetalCluster -- client.cloud.gpu_baremetal.clusters.powercycle_all_servers(cluster_id, \*, project_id, region_id) -> GPUBaremetalClusterServerV1List -- client.cloud.gpu_baremetal.clusters.reboot_all_servers(cluster_id, \*, project_id, region_id) -> GPUBaremetalClusterServerV1List -- client.cloud.gpu_baremetal.clusters.rebuild(cluster_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.gpu_baremetal.clusters.resize(cluster_id, \*, project_id, region_id, \*\*params) -> TaskIDList - -#### Interfaces - -Methods: - -- client.cloud.gpu_baremetal.clusters.interfaces.list(cluster_id, \*, project_id, region_id) -> NetworkInterfaceList -- client.cloud.gpu_baremetal.clusters.interfaces.attach(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.gpu_baremetal.clusters.interfaces.detach(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList - -#### Servers - -Types: - -```python -from gcore.types.cloud.gpu_baremetal.clusters import ( - GPUBaremetalClusterServer, - GPUBaremetalClusterServerV1, - GPUBaremetalClusterServerV1List, -) -``` - -Methods: - -- client.cloud.gpu_baremetal.clusters.servers.list(cluster_id, \*, project_id, region_id, \*\*params) -> SyncOffsetPage[GPUBaremetalClusterServer] -- client.cloud.gpu_baremetal.clusters.servers.delete(instance_id, \*, project_id, region_id, cluster_id, \*\*params) -> TaskIDList -- client.cloud.gpu_baremetal.clusters.servers.get_console(instance_id, \*, project_id, region_id) -> Console -- client.cloud.gpu_baremetal.clusters.servers.powercycle(instance_id, \*, project_id, region_id) -> GPUBaremetalClusterServerV1 -- client.cloud.gpu_baremetal.clusters.servers.reboot(instance_id, \*, project_id, region_id) -> GPUBaremetalClusterServerV1 - -#### Flavors - -Types: - -```python -from gcore.types.cloud.gpu_baremetal.clusters import GPUBaremetalFlavor, GPUBaremetalFlavorList -``` - -Methods: - -- client.cloud.gpu_baremetal.clusters.flavors.list(\*, project_id, region_id, \*\*params) -> GPUBaremetalFlavorList - -#### Images - -Methods: - -- client.cloud.gpu_baremetal.clusters.images.list(\*, project_id, region_id) -> GPUImageList -- client.cloud.gpu_baremetal.clusters.images.delete(image_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.gpu_baremetal.clusters.images.get(image_id, \*, project_id, region_id) -> GPUImage -- client.cloud.gpu_baremetal.clusters.images.upload(\*, project_id, region_id, \*\*params) -> TaskIDList - -## GPUVirtual - -### Clusters - -Types: - -```python -from gcore.types.cloud.gpu_virtual import GPUVirtualCluster -``` - -Methods: - -- client.cloud.gpu_virtual.clusters.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.gpu_virtual.clusters.update(cluster_id, \*, project_id, region_id, \*\*params) -> GPUVirtualCluster -- client.cloud.gpu_virtual.clusters.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[GPUVirtualCluster] -- client.cloud.gpu_virtual.clusters.delete(cluster_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.gpu_virtual.clusters.action(cluster_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.gpu_virtual.clusters.get(cluster_id, \*, project_id, region_id) -> GPUVirtualCluster - -#### Servers - -Types: - -```python -from gcore.types.cloud.gpu_virtual.clusters import ( - GPUVirtualClusterServer, - GPUVirtualClusterServerList, -) -``` - -Methods: - -- client.cloud.gpu_virtual.clusters.servers.list(cluster_id, \*, project_id, region_id, \*\*params) -> GPUVirtualClusterServerList -- client.cloud.gpu_virtual.clusters.servers.delete(server_id, \*, project_id, region_id, cluster_id, \*\*params) -> TaskIDList - -#### Volumes - -Types: - -```python -from gcore.types.cloud.gpu_virtual.clusters import ( - GPUVirtualClusterVolume, - GPUVirtualClusterVolumeList, -) -``` - -Methods: - -- client.cloud.gpu_virtual.clusters.volumes.list(cluster_id, \*, project_id, region_id) -> GPUVirtualClusterVolumeList - -#### Interfaces - -Types: - -```python -from gcore.types.cloud.gpu_virtual.clusters import GPUVirtualInterface, GPUVirtualInterfaceList -``` - -Methods: - -- client.cloud.gpu_virtual.clusters.interfaces.list(cluster_id, \*, project_id, region_id) -> GPUVirtualInterfaceList - -#### Flavors - -Types: - -```python -from gcore.types.cloud.gpu_virtual.clusters import GPUVirtualFlavor, GPUVirtualFlavorList -``` - -Methods: - -- client.cloud.gpu_virtual.clusters.flavors.list(\*, project_id, region_id, \*\*params) -> GPUVirtualFlavorList - -#### Images - -Methods: - -- client.cloud.gpu_virtual.clusters.images.list(\*, project_id, region_id) -> GPUImageList -- client.cloud.gpu_virtual.clusters.images.delete(image_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.gpu_virtual.clusters.images.get(image_id, \*, project_id, region_id) -> GPUImage -- client.cloud.gpu_virtual.clusters.images.upload(\*, project_id, region_id, \*\*params) -> TaskIDList - -## Instances - -Types: - -```python -from gcore.types.cloud import InstanceInterface -``` - -Methods: - -- client.cloud.instances.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.instances.update(instance_id, \*, project_id, region_id, \*\*params) -> Instance -- client.cloud.instances.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[Instance] -- client.cloud.instances.delete(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.instances.action(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.instances.add_to_placement_group(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.instances.assign_security_group(instance_id, \*, project_id, region_id, \*\*params) -> None -- client.cloud.instances.disable_port_security(port_id, \*, project_id, region_id) -> InstanceInterface -- client.cloud.instances.enable_port_security(port_id, \*, project_id, region_id) -> InstanceInterface -- client.cloud.instances.get(instance_id, \*, project_id, region_id) -> Instance -- client.cloud.instances.get_console(instance_id, \*, project_id, region_id, \*\*params) -> Console -- client.cloud.instances.remove_from_placement_group(instance_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.instances.resize(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.instances.unassign_security_group(instance_id, \*, project_id, region_id, \*\*params) -> None - -### Flavors - -Types: - -```python -from gcore.types.cloud.instances import InstanceFlavorDetailed, InstanceFlavorList -``` - -Methods: - -- client.cloud.instances.flavors.list(\*, project_id, region_id, \*\*params) -> InstanceFlavorList - -### Interfaces - -Methods: - -- client.cloud.instances.interfaces.list(instance_id, \*, project_id, region_id) -> NetworkInterfaceList -- client.cloud.instances.interfaces.attach(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.instances.interfaces.detach(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList - -### Images - -Methods: - -- client.cloud.instances.images.update(image_id, \*, project_id, region_id, \*\*params) -> Image -- client.cloud.instances.images.list(\*, project_id, region_id, \*\*params) -> ImageList -- client.cloud.instances.images.delete(image_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.instances.images.create_from_volume(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.instances.images.get(image_id, \*, project_id, region_id, \*\*params) -> Image -- client.cloud.instances.images.upload(\*, project_id, region_id, \*\*params) -> TaskIDList - -### Metrics - -Types: - -```python -from gcore.types.cloud.instances import Metrics, MetricsList -``` - -Methods: - -- client.cloud.instances.metrics.list(instance_id, \*, project_id, region_id, \*\*params) -> MetricsList - -## K8S - -Types: - -```python -from gcore.types.cloud import K8SClusterVersion, K8SClusterVersionList -``` - -Methods: - -- client.cloud.k8s.list_versions(\*, project_id, region_id) -> K8SClusterVersionList - -### Flavors - -Methods: - -- client.cloud.k8s.flavors.list(\*, project_id, region_id, \*\*params) -> BaremetalFlavorList - -### Clusters - -Types: - -```python -from gcore.types.cloud.k8s import ( - K8SCluster, - K8SClusterCertificate, - K8SClusterKubeconfig, - K8SClusterList, -) -``` - -Methods: - -- client.cloud.k8s.clusters.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.k8s.clusters.update(cluster_name, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.k8s.clusters.list(\*, project_id, region_id) -> K8SClusterList -- client.cloud.k8s.clusters.delete(cluster_name, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.k8s.clusters.get(cluster_name, \*, project_id, region_id) -> K8SCluster -- client.cloud.k8s.clusters.get_certificate(cluster_name, \*, project_id, region_id) -> K8SClusterCertificate -- client.cloud.k8s.clusters.get_kubeconfig(cluster_name, \*, project_id, region_id) -> K8SClusterKubeconfig -- client.cloud.k8s.clusters.list_versions_for_upgrade(cluster_name, \*, project_id, region_id) -> K8SClusterVersionList -- client.cloud.k8s.clusters.upgrade(cluster_name, \*, project_id, region_id, \*\*params) -> TaskIDList - -#### Nodes - -Methods: - -- client.cloud.k8s.clusters.nodes.list(cluster_name, \*, project_id, region_id, \*\*params) -> InstanceList -- client.cloud.k8s.clusters.nodes.delete(instance_id, \*, project_id, region_id, cluster_name) -> None - -#### Pools - -Types: - -```python -from gcore.types.cloud.k8s.clusters import K8SClusterPool, K8SClusterPoolList, K8SClusterPoolQuota -``` - -Methods: - -- client.cloud.k8s.clusters.pools.create(cluster_name, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.k8s.clusters.pools.update(pool_name, \*, project_id, region_id, cluster_name, \*\*params) -> K8SClusterPool -- client.cloud.k8s.clusters.pools.list(cluster_name, \*, project_id, region_id) -> K8SClusterPoolList -- client.cloud.k8s.clusters.pools.delete(pool_name, \*, project_id, region_id, cluster_name) -> TaskIDList -- client.cloud.k8s.clusters.pools.check_quota(\*, project_id, region_id, \*\*params) -> K8SClusterPoolQuota -- client.cloud.k8s.clusters.pools.get(pool_name, \*, project_id, region_id, cluster_name) -> K8SClusterPool -- client.cloud.k8s.clusters.pools.resize(pool_name, \*, project_id, region_id, cluster_name, \*\*params) -> TaskIDList - -##### Nodes - -Methods: - -- client.cloud.k8s.clusters.pools.nodes.list(pool_name, \*, project_id, region_id, cluster_name, \*\*params) -> InstanceList -- client.cloud.k8s.clusters.pools.nodes.delete(instance_id, \*, project_id, region_id, cluster_name, pool_name) -> None - -## AuditLogs - -Types: - -```python -from gcore.types.cloud import AuditLogEntry -``` - -Methods: - -- client.cloud.audit_logs.list(\*\*params) -> SyncOffsetPage[AuditLogEntry] - -## CostReports - -Types: - -```python -from gcore.types.cloud import CostReportAggregated, CostReportAggregatedMonthly, CostReportDetailed -``` - -Methods: - -- client.cloud.cost_reports.get_aggregated(\*\*params) -> CostReportAggregated -- client.cloud.cost_reports.get_aggregated_monthly(\*\*params) -> CostReportAggregatedMonthly -- client.cloud.cost_reports.get_detailed(\*\*params) -> CostReportDetailed - -## UsageReports - -Types: - -```python -from gcore.types.cloud import UsageReport -``` - -Methods: - -- client.cloud.usage_reports.get(\*\*params) -> UsageReport - -## Databases - -### Postgres - -#### Clusters - -Types: - -```python -from gcore.types.cloud.databases.postgres import PostgresCluster, PostgresClusterShort -``` - -Methods: - -- client.cloud.databases.postgres.clusters.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.databases.postgres.clusters.update(cluster_name, \*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.databases.postgres.clusters.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[PostgresClusterShort] -- client.cloud.databases.postgres.clusters.delete(cluster_name, \*, project_id, region_id) -> TaskIDList -- client.cloud.databases.postgres.clusters.get(cluster_name, \*, project_id, region_id) -> PostgresCluster - -##### UserCredentials - -Types: - -```python -from gcore.types.cloud.databases.postgres.clusters import PostgresUserCredentials -``` - -Methods: - -- client.cloud.databases.postgres.clusters.user_credentials.get(username, \*, project_id, region_id, cluster_name) -> PostgresUserCredentials -- client.cloud.databases.postgres.clusters.user_credentials.regenerate(username, \*, project_id, region_id, cluster_name) -> PostgresUserCredentials - -#### Configurations - -Types: - -```python -from gcore.types.cloud.databases.postgres import PostgresConfiguration -``` - -Methods: - -- client.cloud.databases.postgres.configurations.get(\*, project_id, region_id) -> PostgresConfiguration - -#### CustomConfigurations - -Types: - -```python -from gcore.types.cloud.databases.postgres import PgConfValidation -``` - -Methods: - -- client.cloud.databases.postgres.custom_configurations.validate(\*, project_id, region_id, \*\*params) -> PgConfValidation - -## VolumeSnapshots - -Types: - -```python -from gcore.types.cloud import Snapshot -``` - -Methods: - -- client.cloud.volume_snapshots.create(\*, project_id, region_id, \*\*params) -> TaskIDList -- client.cloud.volume_snapshots.update(snapshot_id, \*, project_id, region_id, \*\*params) -> Snapshot -- client.cloud.volume_snapshots.delete(snapshot_id, \*, project_id, region_id) -> TaskIDList -- client.cloud.volume_snapshots.get(snapshot_id, \*, project_id, region_id) -> Snapshot - -# Waap - -Types: - -```python -from gcore.types.waap import WaapGetAccountOverviewResponse -``` - -Methods: - -- client.waap.get_account_overview() -> WaapGetAccountOverviewResponse - -## Statistics - -Types: - -```python -from gcore.types.waap import WaapStatisticItem, WaapStatisticsSeries -``` - -Methods: - -- client.waap.statistics.get_usage_series(\*\*params) -> WaapStatisticsSeries - -## Domains - -Types: - -```python -from gcore.types.waap import ( - WaapDetailedDomain, - WaapDomainAPISettings, - WaapDomainDDOSSettings, - WaapDomainSettingsModel, - WaapPolicyMode, - WaapRuleSet, - WaapSummaryDomain, - DomainListRuleSetsResponse, -) -``` - -Methods: - -- client.waap.domains.update(domain_id, \*\*params) -> None -- client.waap.domains.list(\*\*params) -> SyncOffsetPage[WaapSummaryDomain] -- client.waap.domains.delete(domain_id) -> None -- client.waap.domains.get(domain_id) -> WaapDetailedDomain -- client.waap.domains.list_rule_sets(domain_id) -> DomainListRuleSetsResponse -- client.waap.domains.toggle_policy(policy_id, \*, domain_id) -> WaapPolicyMode - -### Settings - -Methods: - -- client.waap.domains.settings.update(domain_id, \*\*params) -> None -- client.waap.domains.settings.get(domain_id) -> WaapDomainSettingsModel - -### APIPaths - -Types: - -```python -from gcore.types.waap.domains import WaapAPIPath -``` - -Methods: - -- client.waap.domains.api_paths.create(domain_id, \*\*params) -> WaapAPIPath -- client.waap.domains.api_paths.update(path_id, \*, domain_id, \*\*params) -> None -- client.waap.domains.api_paths.list(domain_id, \*\*params) -> SyncOffsetPage[WaapAPIPath] -- client.waap.domains.api_paths.delete(path_id, \*, domain_id) -> None -- client.waap.domains.api_paths.get(path_id, \*, domain_id) -> WaapAPIPath - -### APIPathGroups - -Types: - -```python -from gcore.types.waap.domains import APIPathGroupList -``` - -Methods: - -- client.waap.domains.api_path_groups.list(domain_id) -> APIPathGroupList - -### APIDiscovery - -Types: - -```python -from gcore.types.waap.domains import WaapAPIDiscoverySettings, WaapAPIScanResult, WaapTaskID -``` - -Methods: - -- client.waap.domains.api_discovery.get_scan_result(scan_id, \*, domain_id) -> WaapAPIScanResult -- client.waap.domains.api_discovery.get_settings(domain_id) -> WaapAPIDiscoverySettings -- client.waap.domains.api_discovery.list_scan_results(domain_id, \*\*params) -> SyncOffsetPage[WaapAPIScanResult] -- client.waap.domains.api_discovery.scan_openapi(domain_id) -> WaapTaskID -- client.waap.domains.api_discovery.update_settings(domain_id, \*\*params) -> WaapAPIDiscoverySettings -- client.waap.domains.api_discovery.upload_openapi(domain_id, \*\*params) -> WaapTaskID - -### Insights - -Types: - -```python -from gcore.types.waap.domains import WaapInsight -``` - -Methods: - -- client.waap.domains.insights.list(domain_id, \*\*params) -> SyncOffsetPage[WaapInsight] -- client.waap.domains.insights.get(insight_id, \*, domain_id) -> WaapInsight -- client.waap.domains.insights.replace(insight_id, \*, domain_id, \*\*params) -> WaapInsight - -### InsightSilences - -Types: - -```python -from gcore.types.waap.domains import WaapInsightSilence -``` - -Methods: - -- client.waap.domains.insight_silences.create(domain_id, \*\*params) -> WaapInsightSilence -- client.waap.domains.insight_silences.update(silence_id, \*, domain_id, \*\*params) -> WaapInsightSilence -- client.waap.domains.insight_silences.list(domain_id, \*\*params) -> SyncOffsetPage[WaapInsightSilence] -- client.waap.domains.insight_silences.delete(silence_id, \*, domain_id) -> None -- client.waap.domains.insight_silences.get(silence_id, \*, domain_id) -> WaapInsightSilence - -### Statistics - -Types: - -```python -from gcore.types.waap.domains import ( - WaapBlockedStatistics, - WaapCountStatistics, - WaapDDOSAttack, - WaapDDOSInfo, - WaapEventStatistics, - WaapRequestDetails, - WaapRequestSummary, - WaapTrafficMetrics, - StatisticGetTrafficSeriesResponse, -) -``` - -Methods: - -- client.waap.domains.statistics.get_ddos_attacks(domain_id, \*\*params) -> SyncOffsetPage[WaapDDOSAttack] -- client.waap.domains.statistics.get_ddos_info(domain_id, \*\*params) -> SyncOffsetPage[WaapDDOSInfo] -- client.waap.domains.statistics.get_events_aggregated(domain_id, \*\*params) -> WaapEventStatistics -- client.waap.domains.statistics.get_request_details(request_id, \*, domain_id) -> WaapRequestDetails -- client.waap.domains.statistics.get_requests_series(domain_id, \*\*params) -> SyncOffsetPage[WaapRequestSummary] -- client.waap.domains.statistics.get_traffic_series(domain_id, \*\*params) -> StatisticGetTrafficSeriesResponse - -### CustomRules - -Types: - -```python -from gcore.types.waap.domains import WaapCustomRule -``` - -Methods: - -- client.waap.domains.custom_rules.create(domain_id, \*\*params) -> WaapCustomRule -- client.waap.domains.custom_rules.update(rule_id, \*, domain_id, \*\*params) -> None -- client.waap.domains.custom_rules.list(domain_id, \*\*params) -> SyncOffsetPage[WaapCustomRule] -- client.waap.domains.custom_rules.delete(rule_id, \*, domain_id) -> None -- client.waap.domains.custom_rules.delete_multiple(domain_id, \*\*params) -> None -- client.waap.domains.custom_rules.get(rule_id, \*, domain_id) -> WaapCustomRule -- client.waap.domains.custom_rules.toggle(action, \*, domain_id, rule_id) -> None - -### FirewallRules - -Types: - -```python -from gcore.types.waap.domains import WaapFirewallRule -``` - -Methods: - -- client.waap.domains.firewall_rules.create(domain_id, \*\*params) -> WaapFirewallRule -- client.waap.domains.firewall_rules.update(rule_id, \*, domain_id, \*\*params) -> None -- client.waap.domains.firewall_rules.list(domain_id, \*\*params) -> SyncOffsetPage[WaapFirewallRule] -- client.waap.domains.firewall_rules.delete(rule_id, \*, domain_id) -> None -- client.waap.domains.firewall_rules.delete_multiple(domain_id, \*\*params) -> None -- client.waap.domains.firewall_rules.get(rule_id, \*, domain_id) -> WaapFirewallRule -- client.waap.domains.firewall_rules.toggle(action, \*, domain_id, rule_id) -> None - -### AdvancedRules - -Types: - -```python -from gcore.types.waap.domains import WaapAdvancedRule -``` - -Methods: - -- client.waap.domains.advanced_rules.create(domain_id, \*\*params) -> WaapAdvancedRule -- client.waap.domains.advanced_rules.update(rule_id, \*, domain_id, \*\*params) -> None -- client.waap.domains.advanced_rules.list(domain_id, \*\*params) -> SyncOffsetPage[WaapAdvancedRule] -- client.waap.domains.advanced_rules.delete(rule_id, \*, domain_id) -> None -- client.waap.domains.advanced_rules.get(rule_id, \*, domain_id) -> WaapAdvancedRule -- client.waap.domains.advanced_rules.toggle(action, \*, domain_id, rule_id) -> None - -## CustomPageSets - -Types: - -```python -from gcore.types.waap import WaapCustomPagePreview, WaapCustomPageSet -``` - -Methods: - -- client.waap.custom_page_sets.create(\*\*params) -> WaapCustomPageSet -- client.waap.custom_page_sets.update(set_id, \*\*params) -> None -- client.waap.custom_page_sets.list(\*\*params) -> SyncOffsetPage[WaapCustomPageSet] -- client.waap.custom_page_sets.delete(set_id) -> None -- client.waap.custom_page_sets.get(set_id) -> WaapCustomPageSet -- client.waap.custom_page_sets.preview(\*\*params) -> WaapCustomPagePreview - -## AdvancedRules - -Types: - -```python -from gcore.types.waap import WaapAdvancedRuleDescriptor, WaapAdvancedRuleDescriptorList -``` - -Methods: - -- client.waap.advanced_rules.list() -> WaapAdvancedRuleDescriptorList - -## Tags - -Types: - -```python -from gcore.types.waap import WaapTag -``` - -Methods: - -- client.waap.tags.list(\*\*params) -> SyncOffsetPage[WaapTag] - -## Organizations - -Types: - -```python -from gcore.types.waap import WaapOrganization -``` - -Methods: - -- client.waap.organizations.list(\*\*params) -> SyncOffsetPage[WaapOrganization] - -## Insights - -Types: - -```python -from gcore.types.waap import WaapInsightType -``` - -Methods: - -- client.waap.insights.list_types(\*\*params) -> SyncOffsetPage[WaapInsightType] - -## IPInfo - -Types: - -```python -from gcore.types.waap import ( - WaapIPCountryAttack, - WaapIPDDOSInfoModel, - WaapIPInfo, - WaapRuleBlockedRequests, - WaapTimeSeriesAttack, - WaapTopSession, - WaapTopURL, - WaapTopUserAgent, - IPInfoGetAttackTimeSeriesResponse, - IPInfoGetBlockedRequestsResponse, - IPInfoGetTopURLsResponse, - IPInfoGetTopUserAgentsResponse, - IPInfoGetTopUserSessionsResponse, - IPInfoListAttackedCountriesResponse, -) -``` - -Methods: - -- client.waap.ip_info.get_attack_time_series(\*\*params) -> IPInfoGetAttackTimeSeriesResponse -- client.waap.ip_info.get_blocked_requests(\*\*params) -> IPInfoGetBlockedRequestsResponse -- client.waap.ip_info.get_ddos_attack_series(\*\*params) -> WaapIPDDOSInfoModel -- client.waap.ip_info.get_ip_info(\*\*params) -> WaapIPInfo -- client.waap.ip_info.get_top_urls(\*\*params) -> IPInfoGetTopURLsResponse -- client.waap.ip_info.get_top_user_agents(\*\*params) -> IPInfoGetTopUserAgentsResponse -- client.waap.ip_info.get_top_user_sessions(\*\*params) -> IPInfoGetTopUserSessionsResponse -- client.waap.ip_info.list_attacked_countries(\*\*params) -> IPInfoListAttackedCountriesResponse - -### Metrics - -Types: - -```python -from gcore.types.waap.ip_info import WaapIPInfoCounts -``` - -Methods: - -- client.waap.ip_info.metrics.list(\*\*params) -> WaapIPInfoCounts - -# Iam - -Types: - -```python -from gcore.types.iam import AccountOverview -``` - -Methods: - -- client.iam.get_account_overview() -> AccountOverview - -## APITokens - -Types: - -```python -from gcore.types.iam import APIToken, APITokenCreated, APITokenList -``` - -Methods: - -- client.iam.api_tokens.create(client_id, \*\*params) -> APITokenCreated -- client.iam.api_tokens.list(client_id, \*\*params) -> APITokenList -- client.iam.api_tokens.delete(token_id, \*, client_id) -> None -- client.iam.api_tokens.get(token_id, \*, client_id) -> APIToken - -## Users - -Types: - -```python -from gcore.types.iam import User, UserDetailed, UserInvite, UserUpdated -``` - -Methods: - -- client.iam.users.update(user_id, \*\*params) -> UserUpdated -- client.iam.users.list(\*\*params) -> SyncOffsetPage[User] -- client.iam.users.delete(user_id, \*, client_id) -> None -- client.iam.users.get(user_id) -> UserDetailed -- client.iam.users.invite(\*\*params) -> UserInvite - -# Fastedge - -Types: - -```python -from gcore.types.fastedge import Client -``` - -Methods: - -- client.fastedge.get_account_overview() -> Client - -## Templates - -Types: - -```python -from gcore.types.fastedge import Template, TemplateParameter, TemplateShort -``` - -Methods: - -- client.fastedge.templates.create(\*\*params) -> TemplateShort -- client.fastedge.templates.list(\*\*params) -> SyncOffsetPageFastedgeTemplates[TemplateShort] -- client.fastedge.templates.delete(id, \*\*params) -> None -- client.fastedge.templates.get(id) -> Template -- client.fastedge.templates.replace(id, \*\*params) -> TemplateShort - -## Secrets - -Types: - -```python -from gcore.types.fastedge import Secret, SecretShort, SecretCreateResponse, SecretListResponse -``` - -Methods: - -- client.fastedge.secrets.create(\*\*params) -> SecretCreateResponse -- client.fastedge.secrets.update(id, \*\*params) -> Secret -- client.fastedge.secrets.list(\*\*params) -> SecretListResponse -- client.fastedge.secrets.delete(id, \*\*params) -> None -- client.fastedge.secrets.get(id) -> Secret -- client.fastedge.secrets.replace(id, \*\*params) -> Secret - -## Binaries - -Types: - -```python -from gcore.types.fastedge import Binary, BinaryShort, BinaryListResponse -``` - -Methods: - -- client.fastedge.binaries.create(body, \*\*params) -> BinaryShort -- client.fastedge.binaries.list() -> BinaryListResponse -- client.fastedge.binaries.delete(id) -> None -- client.fastedge.binaries.get(id) -> Binary - -## Statistics - -Types: - -```python -from gcore.types.fastedge import ( - CallStatus, - DurationStats, - StatisticGetCallSeriesResponse, - StatisticGetDurationSeriesResponse, -) -``` - -Methods: - -- client.fastedge.statistics.get_call_series(\*\*params) -> StatisticGetCallSeriesResponse -- client.fastedge.statistics.get_duration_series(\*\*params) -> StatisticGetDurationSeriesResponse - -## Apps - -Types: - -```python -from gcore.types.fastedge import App, AppShort -``` - -Methods: - -- client.fastedge.apps.create(\*\*params) -> AppShort -- client.fastedge.apps.update(id, \*\*params) -> AppShort -- client.fastedge.apps.list(\*\*params) -> SyncOffsetPageFastedgeApps[AppShort] -- client.fastedge.apps.delete(id) -> None -- client.fastedge.apps.get(id) -> App -- client.fastedge.apps.replace(id, \*\*params) -> AppShort - -### Logs - -Types: - -```python -from gcore.types.fastedge.apps import Log -``` - -Methods: - -- client.fastedge.apps.logs.list(id, \*\*params) -> SyncOffsetPageFastedgeAppLogs[Log] - -## KvStores - -Types: - -```python -from gcore.types.fastedge import KvStore, KvStoreShort, KvStoreCreateResponse, KvStoreListResponse -``` - -Methods: - -- client.fastedge.kv_stores.create(\*\*params) -> KvStoreCreateResponse -- client.fastedge.kv_stores.list(\*\*params) -> KvStoreListResponse -- client.fastedge.kv_stores.delete(id) -> None -- client.fastedge.kv_stores.get(id) -> KvStore -- client.fastedge.kv_stores.replace(id, \*\*params) -> KvStore - -# Streaming - -Types: - -```python -from gcore.types.streaming import CreateVideo, Video -``` - -## AITasks - -Types: - -```python -from gcore.types.streaming import ( - AIContentmoderationHardnudity, - AIContentmoderationNsfw, - AIContentmoderationSoftnudity, - AIContentmoderationSport, - AITask, - AITaskCreateResponse, - AITaskCancelResponse, - AITaskGetResponse, - AITaskGetAISettingsResponse, -) -``` - -Methods: - -- client.streaming.ai_tasks.create(\*\*params) -> AITaskCreateResponse -- client.streaming.ai_tasks.list(\*\*params) -> SyncPageStreamingAI[AITask] -- client.streaming.ai_tasks.cancel(task_id) -> AITaskCancelResponse -- client.streaming.ai_tasks.get(task_id) -> AITaskGetResponse -- client.streaming.ai_tasks.get_ai_settings(\*\*params) -> AITaskGetAISettingsResponse - -## Broadcasts - -Types: - -```python -from gcore.types.streaming import Broadcast, BroadcastSpectatorsCount -``` - -Methods: - -- client.streaming.broadcasts.create(\*\*params) -> None -- client.streaming.broadcasts.update(broadcast_id, \*\*params) -> Broadcast -- client.streaming.broadcasts.list(\*\*params) -> SyncPageStreaming[Broadcast] -- client.streaming.broadcasts.delete(broadcast_id) -> None -- client.streaming.broadcasts.get(broadcast_id) -> Broadcast -- client.streaming.broadcasts.get_spectators_count(broadcast_id) -> BroadcastSpectatorsCount - -## Directories - -Types: - -```python -from gcore.types.streaming import ( - DirectoriesTree, - DirectoryBase, - DirectoryItem, - DirectoryVideo, - DirectoryGetResponse, -) -``` - -Methods: - -- client.streaming.directories.create(\*\*params) -> DirectoryBase -- client.streaming.directories.update(directory_id, \*\*params) -> DirectoryBase -- client.streaming.directories.delete(directory_id) -> None -- client.streaming.directories.get(directory_id) -> DirectoryGetResponse -- client.streaming.directories.get_tree() -> DirectoriesTree - -## Players - -Types: - -```python -from gcore.types.streaming import Player -``` - -Methods: - -- client.streaming.players.create(\*\*params) -> None -- client.streaming.players.update(player_id, \*\*params) -> Player -- client.streaming.players.list(\*\*params) -> SyncPageStreaming[Player] -- client.streaming.players.delete(player_id) -> None -- client.streaming.players.get(player_id) -> Player -- client.streaming.players.preview(player_id) -> None - -## QualitySets - -Types: - -```python -from gcore.types.streaming import QualitySets -``` - -Methods: - -- client.streaming.quality_sets.list() -> QualitySets -- client.streaming.quality_sets.set_default(\*\*params) -> QualitySets - -## Playlists - -Types: - -```python -from gcore.types.streaming import ( - Playlist, - PlaylistCreated, - PlaylistVideo, - PlaylistListVideosResponse, -) -``` - -Methods: - -- client.streaming.playlists.create(\*\*params) -> PlaylistCreated -- client.streaming.playlists.update(playlist_id, \*\*params) -> Playlist -- client.streaming.playlists.list(\*\*params) -> SyncPageStreaming[Playlist] -- client.streaming.playlists.delete(playlist_id) -> None -- client.streaming.playlists.get(playlist_id) -> Playlist -- client.streaming.playlists.list_videos(playlist_id) -> PlaylistListVideosResponse - -## Videos - -Types: - -```python -from gcore.types.streaming import ( - DirectUploadParameters, - Subtitle, - SubtitleBase, - SubtitleBody, - SubtitleUpdated, - VideoCreateResponse, - VideoCreateMultipleResponse, -) -``` - -Methods: - -- client.streaming.videos.create(\*\*params) -> VideoCreateResponse -- client.streaming.videos.update(video_id, \*\*params) -> Video -- client.streaming.videos.list(\*\*params) -> SyncPageStreaming[Video] -- client.streaming.videos.delete(video_id) -> None -- client.streaming.videos.create_multiple(\*\*params) -> VideoCreateMultipleResponse -- client.streaming.videos.get(video_id) -> Video -- client.streaming.videos.get_parameters_for_direct_upload(video_id) -> DirectUploadParameters -- client.streaming.videos.list_names(\*\*params) -> None - -### Subtitles - -Types: - -```python -from gcore.types.streaming.videos import SubtitleListResponse -``` - -Methods: - -- client.streaming.videos.subtitles.create(video_id, \*\*params) -> Subtitle -- client.streaming.videos.subtitles.update(id, \*, video_id, \*\*params) -> SubtitleBase -- client.streaming.videos.subtitles.list(video_id) -> SubtitleListResponse -- client.streaming.videos.subtitles.delete(id, \*, video_id) -> None -- client.streaming.videos.subtitles.get(id, \*, video_id) -> Subtitle - -## Streams - -Types: - -```python -from gcore.types.streaming import ( - Clip, - Stream, - StreamListClipsResponse, - StreamStartRecordingResponse, -) -``` - -Methods: - -- client.streaming.streams.create(\*\*params) -> Stream -- client.streaming.streams.update(stream_id, \*\*params) -> Stream -- client.streaming.streams.list(\*\*params) -> SyncPageStreaming[Stream] -- client.streaming.streams.delete(stream_id) -> None -- client.streaming.streams.clear_dvr(stream_id) -> None -- client.streaming.streams.create_clip(stream_id, \*\*params) -> Clip -- client.streaming.streams.get(stream_id) -> Stream -- client.streaming.streams.list_clips(stream_id) -> StreamListClipsResponse -- client.streaming.streams.start_recording(stream_id) -> StreamStartRecordingResponse -- client.streaming.streams.stop_recording(stream_id) -> Video - -### Overlays - -Types: - -```python -from gcore.types.streaming.streams import ( - Overlay, - OverlayCreateResponse, - OverlayListResponse, - OverlayUpdateMultipleResponse, -) -``` - -Methods: - -- client.streaming.streams.overlays.create(stream_id, \*\*params) -> OverlayCreateResponse -- client.streaming.streams.overlays.update(overlay_id, \*, stream_id, \*\*params) -> Overlay -- client.streaming.streams.overlays.list(stream_id) -> OverlayListResponse -- client.streaming.streams.overlays.delete(overlay_id, \*, stream_id) -> None -- client.streaming.streams.overlays.get(overlay_id, \*, stream_id) -> Overlay -- client.streaming.streams.overlays.update_multiple(stream_id, \*\*params) -> OverlayUpdateMultipleResponse - -## Restreams - -Types: - -```python -from gcore.types.streaming import Restream -``` - -Methods: - -- client.streaming.restreams.create(\*\*params) -> None -- client.streaming.restreams.update(restream_id, \*\*params) -> Restream -- client.streaming.restreams.list(\*\*params) -> SyncPageStreaming[Restream] -- client.streaming.restreams.delete(restream_id) -> None -- client.streaming.restreams.get(restream_id) -> Restream - -## Statistics - -Types: - -```python -from gcore.types.streaming import ( - Ffprobes, - MaxStreamSeries, - PopularVideos, - StorageSeries, - StreamSeries, - UniqueViewers, - UniqueViewersCDN, - Views, - ViewsByBrowser, - ViewsByCountry, - ViewsByHostname, - ViewsByOperatingSystem, - ViewsByReferer, - ViewsByRegion, - ViewsHeatmap, - VodStatisticsSeries, - VodTotalStreamDurationSeries, - StatisticGetLiveUniqueViewersResponse, - StatisticGetVodWatchTimeTotalCDNResponse, -) -``` - -Methods: - -- client.streaming.statistics.get_ffprobes(\*\*params) -> Ffprobes -- client.streaming.statistics.get_live_unique_viewers(\*\*params) -> StatisticGetLiveUniqueViewersResponse -- client.streaming.statistics.get_live_watch_time_cdn(\*\*params) -> StreamSeries -- client.streaming.statistics.get_live_watch_time_total_cdn(\*\*params) -> VodTotalStreamDurationSeries -- client.streaming.statistics.get_max_streams_series(\*\*params) -> MaxStreamSeries -- client.streaming.statistics.get_popular_videos(\*\*params) -> PopularVideos -- client.streaming.statistics.get_storage_series(\*\*params) -> StorageSeries -- client.streaming.statistics.get_stream_series(\*\*params) -> StreamSeries -- client.streaming.statistics.get_unique_viewers(\*\*params) -> UniqueViewers -- client.streaming.statistics.get_unique_viewers_cdn(\*\*params) -> UniqueViewersCDN -- client.streaming.statistics.get_views(\*\*params) -> Views -- client.streaming.statistics.get_views_by_browsers(\*\*params) -> ViewsByBrowser -- client.streaming.statistics.get_views_by_country(\*\*params) -> ViewsByCountry -- client.streaming.statistics.get_views_by_hostname(\*\*params) -> ViewsByHostname -- client.streaming.statistics.get_views_by_operating_system(\*\*params) -> ViewsByOperatingSystem -- client.streaming.statistics.get_views_by_referer(\*\*params) -> ViewsByReferer -- client.streaming.statistics.get_views_by_region(\*\*params) -> ViewsByRegion -- client.streaming.statistics.get_views_heatmap(\*\*params) -> ViewsHeatmap -- client.streaming.statistics.get_vod_storage_volume(\*\*params) -> VodStatisticsSeries -- client.streaming.statistics.get_vod_transcoding_duration(\*\*params) -> VodStatisticsSeries -- client.streaming.statistics.get_vod_unique_viewers_cdn(\*\*params) -> VodStatisticsSeries -- client.streaming.statistics.get_vod_watch_time_cdn(\*\*params) -> VodStatisticsSeries -- client.streaming.statistics.get_vod_watch_time_total_cdn(\*\*params) -> StatisticGetVodWatchTimeTotalCDNResponse - -# Security - -## Events - -Types: - -```python -from gcore.types.security import ClientView -``` - -Methods: - -- client.security.events.list(\*\*params) -> SyncOffsetPage[ClientView] - -## BgpAnnounces - -Types: - -```python -from gcore.types.security import ClientAnnounce, BgpAnnounceListResponse -``` - -Methods: - -- client.security.bgp_announces.list(\*\*params) -> BgpAnnounceListResponse -- client.security.bgp_announces.toggle(\*\*params) -> object - -## ProfileTemplates - -Types: - -```python -from gcore.types.security import ClientProfileTemplate, ProfileTemplateListResponse -``` - -Methods: - -- client.security.profile_templates.list() -> ProfileTemplateListResponse - -## Profiles - -Types: - -```python -from gcore.types.security import ClientProfile, ProfileListResponse -``` - -Methods: - -- client.security.profiles.create(\*\*params) -> ClientProfile -- client.security.profiles.list(\*\*params) -> ProfileListResponse -- client.security.profiles.delete(id) -> None -- client.security.profiles.get(id) -> ClientProfile -- client.security.profiles.recreate(id, \*\*params) -> ClientProfile -- client.security.profiles.replace(id, \*\*params) -> ClientProfile - -# DNS - -Types: - -```python -from gcore.types.dns import DNSGetAccountOverviewResponse, DNSLookupResponse -``` - -Methods: - -- client.dns.get_account_overview() -> DNSGetAccountOverviewResponse -- client.dns.lookup(\*\*params) -> DNSLookupResponse - -## Locations - -Types: - -```python -from gcore.types.dns import ( - DNSLocationTranslations, - LocationListResponse, - LocationListContinentsResponse, - LocationListCountriesResponse, - LocationListRegionsResponse, -) -``` - -Methods: - -- client.dns.locations.list() -> LocationListResponse -- client.dns.locations.list_continents() -> LocationListContinentsResponse -- client.dns.locations.list_countries() -> LocationListCountriesResponse -- client.dns.locations.list_regions() -> LocationListRegionsResponse - -## Metrics - -Types: - -```python -from gcore.types.dns import MetricListResponse -``` - -Methods: - -- client.dns.metrics.list(\*\*params) -> str - -## Pickers - -Types: - -```python -from gcore.types.dns import DNSLabelName, PickerListResponse -``` - -Methods: - -- client.dns.pickers.list() -> PickerListResponse - -### Presets - -Types: - -```python -from gcore.types.dns.pickers import PresetListResponse -``` - -Methods: - -- client.dns.pickers.presets.list() -> PresetListResponse - -## Zones - -Types: - -```python -from gcore.types.dns import ( - DNSNameServer, - ZoneCreateResponse, - ZoneListResponse, - ZoneCheckDelegationStatusResponse, - ZoneExportResponse, - ZoneGetResponse, - ZoneGetStatisticsResponse, - ZoneImportResponse, -) -``` - -Methods: - -- client.dns.zones.create(\*\*params) -> ZoneCreateResponse -- client.dns.zones.list(\*\*params) -> ZoneListResponse -- client.dns.zones.delete(name) -> object -- client.dns.zones.check_delegation_status(name) -> ZoneCheckDelegationStatusResponse -- client.dns.zones.disable(name) -> object -- client.dns.zones.enable(name) -> object -- client.dns.zones.export(zone_name) -> ZoneExportResponse -- client.dns.zones.get(name) -> ZoneGetResponse -- client.dns.zones.get_statistics(name, \*\*params) -> ZoneGetStatisticsResponse -- client.dns.zones.import\_(zone_name, \*\*params) -> ZoneImportResponse -- client.dns.zones.replace(path_name, \*\*params) -> object - -### Dnssec - -Types: - -```python -from gcore.types.dns.zones import DnssecUpdateResponse, DnssecGetResponse -``` - -Methods: - -- client.dns.zones.dnssec.update(name, \*\*params) -> DnssecUpdateResponse -- client.dns.zones.dnssec.get(name) -> DnssecGetResponse - -### Rrsets - -Types: - -```python -from gcore.types.dns.zones import ( - DNSFailoverLog, - DNSOutputRrset, - RrsetListResponse, - RrsetGetFailoverLogsResponse, -) -``` - -Methods: - -- client.dns.zones.rrsets.create(rrset_type, \*, zone_name, rrset_name, \*\*params) -> DNSOutputRrset -- client.dns.zones.rrsets.list(zone_name, \*\*params) -> RrsetListResponse -- client.dns.zones.rrsets.delete(rrset_type, \*, zone_name, rrset_name) -> object -- client.dns.zones.rrsets.get(rrset_type, \*, zone_name, rrset_name) -> DNSOutputRrset -- client.dns.zones.rrsets.get_failover_logs(rrset_type, \*, zone_name, rrset_name, \*\*params) -> RrsetGetFailoverLogsResponse -- client.dns.zones.rrsets.replace(rrset_type, \*, zone_name, rrset_name, \*\*params) -> DNSOutputRrset - -## NetworkMappings - -Types: - -```python -from gcore.types.dns import ( - DNSMappingEntry, - DNSNetworkMapping, - NetworkMappingCreateResponse, - NetworkMappingListResponse, - NetworkMappingImportResponse, -) -``` - -Methods: - -- client.dns.network_mappings.create(\*\*params) -> NetworkMappingCreateResponse -- client.dns.network_mappings.list(\*\*params) -> NetworkMappingListResponse -- client.dns.network_mappings.delete(id) -> object -- client.dns.network_mappings.get(id) -> DNSNetworkMapping -- client.dns.network_mappings.get_by_name(name) -> DNSNetworkMapping -- client.dns.network*mappings.import*() -> NetworkMappingImportResponse -- client.dns.network_mappings.replace(id, \*\*params) -> object - -# Storage - -Types: - -```python -from gcore.types.storage import Storage -``` - -Methods: - -- client.storage.create(\*\*params) -> Storage -- client.storage.update(storage_id, \*\*params) -> Storage -- client.storage.list(\*\*params) -> SyncOffsetPage[Storage] -- client.storage.delete(storage_id) -> None -- client.storage.get(storage_id) -> Storage -- client.storage.link_ssh_key(key_id, \*, storage_id) -> None -- client.storage.restore(storage_id, \*\*params) -> None -- client.storage.unlink_ssh_key(key_id, \*, storage_id) -> None - -## Locations - -Types: - -```python -from gcore.types.storage import Location -``` - -Methods: - -- client.storage.locations.list(\*\*params) -> SyncOffsetPage[Location] - -## Statistics - -Types: - -```python -from gcore.types.storage import UsageSeries, UsageTotal, StatisticGetUsageSeriesResponse -``` - -Methods: - -- client.storage.statistics.get_usage_aggregated(\*\*params) -> UsageTotal -- client.storage.statistics.get_usage_series(\*\*params) -> StatisticGetUsageSeriesResponse - -## Credentials - -Methods: - -- client.storage.credentials.recreate(storage_id, \*\*params) -> Storage - -## Buckets - -Types: - -```python -from gcore.types.storage import Bucket -``` - -Methods: - -- client.storage.buckets.create(bucket_name, \*, storage_id) -> None -- client.storage.buckets.list(storage_id, \*\*params) -> SyncOffsetPage[Bucket] -- client.storage.buckets.delete(bucket_name, \*, storage_id) -> None - -### Cors - -Types: - -```python -from gcore.types.storage.buckets import BucketCors -``` - -Methods: - -- client.storage.buckets.cors.create(bucket_name, \*, storage_id, \*\*params) -> None -- client.storage.buckets.cors.get(bucket_name, \*, storage_id) -> BucketCors - -### Lifecycle - -Methods: - -- client.storage.buckets.lifecycle.create(bucket_name, \*, storage_id, \*\*params) -> None -- client.storage.buckets.lifecycle.delete(bucket_name, \*, storage_id) -> None - -### Policy - -Types: - -```python -from gcore.types.storage.buckets import BucketPolicy, PolicyGetResponse -``` - -Methods: - -- client.storage.buckets.policy.create(bucket_name, \*, storage_id) -> None -- client.storage.buckets.policy.delete(bucket_name, \*, storage_id) -> None -- client.storage.buckets.policy.get(bucket_name, \*, storage_id) -> PolicyGetResponse - -# CDN - -Types: - -```python -from gcore.types.cdn import ( - AlibabaRegions, - AwsRegions, - CDNAccount, - CDNAccountLimits, - CDNAvailableFeatures, - PurgeStatus, - CDNListPurgeStatusesResponse, -) -``` - -Methods: - -- client.cdn.get_account_limits() -> CDNAccountLimits -- client.cdn.get_account_overview() -> CDNAccount -- client.cdn.get_available_features() -> CDNAvailableFeatures -- client.cdn.list_alibaba_regions() -> AlibabaRegions -- client.cdn.list_aws_regions() -> AwsRegions -- client.cdn.list_purge_statuses(\*\*params) -> CDNListPurgeStatusesResponse -- client.cdn.update_account(\*\*params) -> CDNAccount - -## CDNResources - -Types: - -```python -from gcore.types.cdn import CDNResource, CDNResourceList -``` - -Methods: - -- client.cdn.cdn_resources.create(\*\*params) -> CDNResource -- client.cdn.cdn_resources.update(resource_id, \*\*params) -> CDNResource -- client.cdn.cdn_resources.list(\*\*params) -> CDNResourceList -- client.cdn.cdn_resources.delete(resource_id) -> None -- client.cdn.cdn_resources.get(resource_id) -> CDNResource -- client.cdn.cdn_resources.prefetch(resource_id, \*\*params) -> None -- client.cdn.cdn_resources.prevalidate_ssl_le_certificate(resource_id) -> None -- client.cdn.cdn_resources.purge(resource_id, \*\*params) -> None -- client.cdn.cdn_resources.replace(resource_id, \*\*params) -> CDNResource - -### Shield - -Types: - -```python -from gcore.types.cdn.cdn_resources import OriginShielding, OriginShieldingReplaced -``` - -Methods: - -- client.cdn.cdn_resources.shield.get(resource_id) -> OriginShielding -- client.cdn.cdn_resources.shield.replace(resource_id, \*\*params) -> object - -### Rules - -Types: - -```python -from gcore.types.cdn.cdn_resources import CDNResourceRule, RuleListResponse -``` - -Methods: - -- client.cdn.cdn_resources.rules.create(resource_id, \*\*params) -> CDNResourceRule -- client.cdn.cdn_resources.rules.update(rule_id, \*, resource_id, \*\*params) -> CDNResourceRule -- client.cdn.cdn_resources.rules.list(resource_id) -> RuleListResponse -- client.cdn.cdn_resources.rules.delete(rule_id, \*, resource_id) -> None -- client.cdn.cdn_resources.rules.get(rule_id, \*, resource_id) -> CDNResourceRule -- client.cdn.cdn_resources.rules.replace(rule_id, \*, resource_id, \*\*params) -> CDNResourceRule - -## Shields - -Types: - -```python -from gcore.types.cdn import ShieldListResponse -``` - -Methods: - -- client.cdn.shields.list() -> ShieldListResponse - -## OriginGroups - -Types: - -```python -from gcore.types.cdn import OriginGroups, OriginGroupsList -``` - -Methods: - -- client.cdn.origin_groups.create(\*\*params) -> OriginGroups -- client.cdn.origin_groups.update(origin_group_id, \*\*params) -> OriginGroups -- client.cdn.origin_groups.list(\*\*params) -> OriginGroupsList -- client.cdn.origin_groups.delete(origin_group_id) -> None -- client.cdn.origin_groups.get(origin_group_id) -> OriginGroups -- client.cdn.origin_groups.replace(origin_group_id, \*\*params) -> OriginGroups - -## RuleTemplates - -Types: - -```python -from gcore.types.cdn import RuleTemplate, RuleTemplateList -``` - -Methods: - -- client.cdn.rule_templates.create(\*\*params) -> RuleTemplate -- client.cdn.rule_templates.update(rule_template_id, \*\*params) -> RuleTemplate -- client.cdn.rule_templates.list() -> RuleTemplateList -- client.cdn.rule_templates.delete(rule_template_id) -> None -- client.cdn.rule_templates.get(rule_template_id) -> RuleTemplate -- client.cdn.rule_templates.replace(rule_template_id, \*\*params) -> RuleTemplate - -## Certificates - -Types: - -```python -from gcore.types.cdn import SslDetail, SslDetailList, SslRequestStatus -``` - -Methods: - -- client.cdn.certificates.create(\*\*params) -> None -- client.cdn.certificates.list(\*\*params) -> SslDetailList -- client.cdn.certificates.delete(ssl_id) -> None -- client.cdn.certificates.force_retry(cert_id) -> None -- client.cdn.certificates.get(ssl_id) -> SslDetail -- client.cdn.certificates.get_status(cert_id, \*\*params) -> SslRequestStatus -- client.cdn.certificates.renew(cert_id) -> None -- client.cdn.certificates.replace(ssl_id, \*\*params) -> SslDetail - -## TrustedCaCertificates - -Types: - -```python -from gcore.types.cdn import CaCertificate, CaCertificateList -``` - -Methods: - -- client.cdn.trusted_ca_certificates.create(\*\*params) -> CaCertificate -- client.cdn.trusted_ca_certificates.list(\*\*params) -> CaCertificateList -- client.cdn.trusted_ca_certificates.delete(id) -> None -- client.cdn.trusted_ca_certificates.get(id) -> CaCertificate -- client.cdn.trusted_ca_certificates.replace(id, \*\*params) -> CaCertificate - -## AuditLogs - -Types: - -```python -from gcore.types.cdn import CDNAuditLogEntry -``` - -Methods: - -- client.cdn.audit_logs.list(\*\*params) -> SyncOffsetPage[CDNAuditLogEntry] -- client.cdn.audit_logs.get(log_id) -> CDNAuditLogEntry - -## Logs - -Types: - -```python -from gcore.types.cdn import CDNLogEntry -``` - -Methods: - -- client.cdn.logs.list(\*\*params) -> SyncOffsetPageCDNLogs[Data] -- client.cdn.logs.download(\*\*params) -> BinaryAPIResponse - -## LogsUploader - -Types: - -```python -from gcore.types.cdn import LogsUploaderValidation -``` - -### Policies - -Types: - -```python -from gcore.types.cdn.logs_uploader import ( - LogsUploaderPolicy, - LogsUploaderPolicyList, - PolicyListFieldsResponse, -) -``` - -Methods: - -- client.cdn.logs_uploader.policies.create(\*\*params) -> LogsUploaderPolicy -- client.cdn.logs_uploader.policies.update(id, \*\*params) -> LogsUploaderPolicy -- client.cdn.logs_uploader.policies.list(\*\*params) -> LogsUploaderPolicyList -- client.cdn.logs_uploader.policies.delete(id) -> None -- client.cdn.logs_uploader.policies.get(id) -> LogsUploaderPolicy -- client.cdn.logs_uploader.policies.list_fields() -> PolicyListFieldsResponse -- client.cdn.logs_uploader.policies.replace(id, \*\*params) -> LogsUploaderPolicy - -### Targets - -Types: - -```python -from gcore.types.cdn.logs_uploader import LogsUploaderTarget, LogsUploaderTargetList -``` - -Methods: - -- client.cdn.logs_uploader.targets.create(\*\*params) -> LogsUploaderTarget -- client.cdn.logs_uploader.targets.update(id, \*\*params) -> LogsUploaderTarget -- client.cdn.logs_uploader.targets.list(\*\*params) -> LogsUploaderTargetList -- client.cdn.logs_uploader.targets.delete(id) -> None -- client.cdn.logs_uploader.targets.get(id) -> LogsUploaderTarget -- client.cdn.logs_uploader.targets.replace(id, \*\*params) -> LogsUploaderTarget -- client.cdn.logs_uploader.targets.validate(id) -> LogsUploaderValidation - -### Configs - -Types: - -```python -from gcore.types.cdn.logs_uploader import LogsUploaderConfig, LogsUploaderConfigList -``` - -Methods: - -- client.cdn.logs_uploader.configs.create(\*\*params) -> LogsUploaderConfig -- client.cdn.logs_uploader.configs.update(id, \*\*params) -> LogsUploaderConfig -- client.cdn.logs_uploader.configs.list(\*\*params) -> LogsUploaderConfigList -- client.cdn.logs_uploader.configs.delete(id) -> None -- client.cdn.logs_uploader.configs.get(id) -> LogsUploaderConfig -- client.cdn.logs_uploader.configs.replace(id, \*\*params) -> LogsUploaderConfig -- client.cdn.logs_uploader.configs.validate(id) -> LogsUploaderValidation - -## Statistics - -Types: - -```python -from gcore.types.cdn import ( - LogsAggregatedStats, - ResourceAggregatedStats, - ResourceUsageStats, - ShieldAggregatedStats, - UsageSeriesStats, -) -``` - -Methods: - -- client.cdn.statistics.get_logs_usage_aggregated(\*\*params) -> LogsAggregatedStats -- client.cdn.statistics.get_logs_usage_series(\*\*params) -> UsageSeriesStats -- client.cdn.statistics.get_resource_usage_aggregated(\*\*params) -> ResourceAggregatedStats -- client.cdn.statistics.get_resource_usage_series(\*\*params) -> ResourceUsageStats -- client.cdn.statistics.get_shield_usage_aggregated(\*\*params) -> ShieldAggregatedStats -- client.cdn.statistics.get_shield_usage_series(\*\*params) -> UsageSeriesStats - -## NetworkCapacity - -Types: - -```python -from gcore.types.cdn import NetworkCapacity -``` - -Methods: - -- client.cdn.network_capacity.list() -> NetworkCapacity - -## Metrics - -Types: - -```python -from gcore.types.cdn import CDNMetrics, CDNMetricsGroups, CDNMetricsValues -``` - -Methods: - -- client.cdn.metrics.list(\*\*params) -> CDNMetrics - -## IPRanges - -Types: - -```python -from gcore.types.cdn import PublicIPList, PublicNetworkList -``` - -Methods: - -- client.cdn.ip_ranges.list(\*\*params) -> PublicNetworkList -- client.cdn.ip_ranges.list_ips(\*\*params) -> PublicIPList +# [CDN](src/gcore/resources/cdn/api.md) diff --git a/pyproject.toml b/pyproject.toml index 4b9b2d7c..98c0ae3c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -71,7 +71,7 @@ format = { chain = [ # run formatting again to fix any inconsistencies when imports are stripped "format:ruff", ]} -"format:docs" = "python scripts/utils/ruffen-docs.py README.md api.md" +"format:docs" = "bash -c 'python scripts/utils/ruffen-docs.py README.md $(find . -type f -name api.md)'" "format:ruff" = "ruff format" "lint" = { chain = [ diff --git a/src/gcore/resources/cdn/api.md b/src/gcore/resources/cdn/api.md new file mode 100644 index 00000000..70919175 --- /dev/null +++ b/src/gcore/resources/cdn/api.md @@ -0,0 +1,308 @@ +# CDN + +Types: + +```python +from gcore.types.cdn import ( + AlibabaRegions, + AwsRegions, + CDNAccount, + CDNAccountLimits, + CDNAvailableFeatures, + PurgeStatus, + CDNListPurgeStatusesResponse, +) +``` + +Methods: + +- client.cdn.get_account_limits() -> CDNAccountLimits +- client.cdn.get_account_overview() -> CDNAccount +- client.cdn.get_available_features() -> CDNAvailableFeatures +- client.cdn.list_alibaba_regions() -> AlibabaRegions +- client.cdn.list_aws_regions() -> AwsRegions +- client.cdn.list_purge_statuses(\*\*params) -> CDNListPurgeStatusesResponse +- client.cdn.update_account(\*\*params) -> CDNAccount + +## CDNResources + +Types: + +```python +from gcore.types.cdn import CDNResource, CDNResourceList +``` + +Methods: + +- client.cdn.cdn_resources.create(\*\*params) -> CDNResource +- client.cdn.cdn_resources.update(resource_id, \*\*params) -> CDNResource +- client.cdn.cdn_resources.list(\*\*params) -> CDNResourceList +- client.cdn.cdn_resources.delete(resource_id) -> None +- client.cdn.cdn_resources.get(resource_id) -> CDNResource +- client.cdn.cdn_resources.prefetch(resource_id, \*\*params) -> None +- client.cdn.cdn_resources.prevalidate_ssl_le_certificate(resource_id) -> None +- client.cdn.cdn_resources.purge(resource_id, \*\*params) -> None +- client.cdn.cdn_resources.replace(resource_id, \*\*params) -> CDNResource + +### Shield + +Types: + +```python +from gcore.types.cdn.cdn_resources import OriginShielding, OriginShieldingReplaced +``` + +Methods: + +- client.cdn.cdn_resources.shield.get(resource_id) -> OriginShielding +- client.cdn.cdn_resources.shield.replace(resource_id, \*\*params) -> object + +### Rules + +Types: + +```python +from gcore.types.cdn.cdn_resources import CDNResourceRule, RuleListResponse +``` + +Methods: + +- client.cdn.cdn_resources.rules.create(resource_id, \*\*params) -> CDNResourceRule +- client.cdn.cdn_resources.rules.update(rule_id, \*, resource_id, \*\*params) -> CDNResourceRule +- client.cdn.cdn_resources.rules.list(resource_id) -> RuleListResponse +- client.cdn.cdn_resources.rules.delete(rule_id, \*, resource_id) -> None +- client.cdn.cdn_resources.rules.get(rule_id, \*, resource_id) -> CDNResourceRule +- client.cdn.cdn_resources.rules.replace(rule_id, \*, resource_id, \*\*params) -> CDNResourceRule + +## Shields + +Types: + +```python +from gcore.types.cdn import ShieldListResponse +``` + +Methods: + +- client.cdn.shields.list() -> ShieldListResponse + +## OriginGroups + +Types: + +```python +from gcore.types.cdn import OriginGroups, OriginGroupsList +``` + +Methods: + +- client.cdn.origin_groups.create(\*\*params) -> OriginGroups +- client.cdn.origin_groups.update(origin_group_id, \*\*params) -> OriginGroups +- client.cdn.origin_groups.list(\*\*params) -> OriginGroupsList +- client.cdn.origin_groups.delete(origin_group_id) -> None +- client.cdn.origin_groups.get(origin_group_id) -> OriginGroups +- client.cdn.origin_groups.replace(origin_group_id, \*\*params) -> OriginGroups + +## RuleTemplates + +Types: + +```python +from gcore.types.cdn import RuleTemplate, RuleTemplateList +``` + +Methods: + +- client.cdn.rule_templates.create(\*\*params) -> RuleTemplate +- client.cdn.rule_templates.update(rule_template_id, \*\*params) -> RuleTemplate +- client.cdn.rule_templates.list() -> RuleTemplateList +- client.cdn.rule_templates.delete(rule_template_id) -> None +- client.cdn.rule_templates.get(rule_template_id) -> RuleTemplate +- client.cdn.rule_templates.replace(rule_template_id, \*\*params) -> RuleTemplate + +## Certificates + +Types: + +```python +from gcore.types.cdn import SslDetail, SslDetailList, SslRequestStatus +``` + +Methods: + +- client.cdn.certificates.create(\*\*params) -> None +- client.cdn.certificates.list(\*\*params) -> SslDetailList +- client.cdn.certificates.delete(ssl_id) -> None +- client.cdn.certificates.force_retry(cert_id) -> None +- client.cdn.certificates.get(ssl_id) -> SslDetail +- client.cdn.certificates.get_status(cert_id, \*\*params) -> SslRequestStatus +- client.cdn.certificates.renew(cert_id) -> None +- client.cdn.certificates.replace(ssl_id, \*\*params) -> SslDetail + +## TrustedCaCertificates + +Types: + +```python +from gcore.types.cdn import CaCertificate, CaCertificateList +``` + +Methods: + +- client.cdn.trusted_ca_certificates.create(\*\*params) -> CaCertificate +- client.cdn.trusted_ca_certificates.list(\*\*params) -> CaCertificateList +- client.cdn.trusted_ca_certificates.delete(id) -> None +- client.cdn.trusted_ca_certificates.get(id) -> CaCertificate +- client.cdn.trusted_ca_certificates.replace(id, \*\*params) -> CaCertificate + +## AuditLogs + +Types: + +```python +from gcore.types.cdn import CDNAuditLogEntry +``` + +Methods: + +- client.cdn.audit_logs.list(\*\*params) -> SyncOffsetPage[CDNAuditLogEntry] +- client.cdn.audit_logs.get(log_id) -> CDNAuditLogEntry + +## Logs + +Types: + +```python +from gcore.types.cdn import CDNLogEntry +``` + +Methods: + +- client.cdn.logs.list(\*\*params) -> SyncOffsetPageCDNLogs[Data] +- client.cdn.logs.download(\*\*params) -> BinaryAPIResponse + +## LogsUploader + +Types: + +```python +from gcore.types.cdn import LogsUploaderValidation +``` + +### Policies + +Types: + +```python +from gcore.types.cdn.logs_uploader import ( + LogsUploaderPolicy, + LogsUploaderPolicyList, + PolicyListFieldsResponse, +) +``` + +Methods: + +- client.cdn.logs_uploader.policies.create(\*\*params) -> LogsUploaderPolicy +- client.cdn.logs_uploader.policies.update(id, \*\*params) -> LogsUploaderPolicy +- client.cdn.logs_uploader.policies.list(\*\*params) -> LogsUploaderPolicyList +- client.cdn.logs_uploader.policies.delete(id) -> None +- client.cdn.logs_uploader.policies.get(id) -> LogsUploaderPolicy +- client.cdn.logs_uploader.policies.list_fields() -> PolicyListFieldsResponse +- client.cdn.logs_uploader.policies.replace(id, \*\*params) -> LogsUploaderPolicy + +### Targets + +Types: + +```python +from gcore.types.cdn.logs_uploader import LogsUploaderTarget, LogsUploaderTargetList +``` + +Methods: + +- client.cdn.logs_uploader.targets.create(\*\*params) -> LogsUploaderTarget +- client.cdn.logs_uploader.targets.update(id, \*\*params) -> LogsUploaderTarget +- client.cdn.logs_uploader.targets.list(\*\*params) -> LogsUploaderTargetList +- client.cdn.logs_uploader.targets.delete(id) -> None +- client.cdn.logs_uploader.targets.get(id) -> LogsUploaderTarget +- client.cdn.logs_uploader.targets.replace(id, \*\*params) -> LogsUploaderTarget +- client.cdn.logs_uploader.targets.validate(id) -> LogsUploaderValidation + +### Configs + +Types: + +```python +from gcore.types.cdn.logs_uploader import LogsUploaderConfig, LogsUploaderConfigList +``` + +Methods: + +- client.cdn.logs_uploader.configs.create(\*\*params) -> LogsUploaderConfig +- client.cdn.logs_uploader.configs.update(id, \*\*params) -> LogsUploaderConfig +- client.cdn.logs_uploader.configs.list(\*\*params) -> LogsUploaderConfigList +- client.cdn.logs_uploader.configs.delete(id) -> None +- client.cdn.logs_uploader.configs.get(id) -> LogsUploaderConfig +- client.cdn.logs_uploader.configs.replace(id, \*\*params) -> LogsUploaderConfig +- client.cdn.logs_uploader.configs.validate(id) -> LogsUploaderValidation + +## Statistics + +Types: + +```python +from gcore.types.cdn import ( + LogsAggregatedStats, + ResourceAggregatedStats, + ResourceUsageStats, + ShieldAggregatedStats, + UsageSeriesStats, +) +``` + +Methods: + +- client.cdn.statistics.get_logs_usage_aggregated(\*\*params) -> LogsAggregatedStats +- client.cdn.statistics.get_logs_usage_series(\*\*params) -> UsageSeriesStats +- client.cdn.statistics.get_resource_usage_aggregated(\*\*params) -> ResourceAggregatedStats +- client.cdn.statistics.get_resource_usage_series(\*\*params) -> ResourceUsageStats +- client.cdn.statistics.get_shield_usage_aggregated(\*\*params) -> ShieldAggregatedStats +- client.cdn.statistics.get_shield_usage_series(\*\*params) -> UsageSeriesStats + +## NetworkCapacity + +Types: + +```python +from gcore.types.cdn import NetworkCapacity +``` + +Methods: + +- client.cdn.network_capacity.list() -> NetworkCapacity + +## Metrics + +Types: + +```python +from gcore.types.cdn import CDNMetrics, CDNMetricsGroups, CDNMetricsValues +``` + +Methods: + +- client.cdn.metrics.list(\*\*params) -> CDNMetrics + +## IPRanges + +Types: + +```python +from gcore.types.cdn import PublicIPList, PublicNetworkList +``` + +Methods: + +- client.cdn.ip_ranges.list(\*\*params) -> PublicNetworkList +- client.cdn.ip_ranges.list_ips(\*\*params) -> PublicIPList diff --git a/src/gcore/resources/cloud/api.md b/src/gcore/resources/cloud/api.md new file mode 100644 index 00000000..5e26e6a1 --- /dev/null +++ b/src/gcore/resources/cloud/api.md @@ -0,0 +1,1181 @@ +# Cloud + +Types: + +```python +from gcore.types.cloud import ( + AllowedAddressPairs, + BaremetalFlavor, + BaremetalFlavorList, + BlackholePort, + Console, + DDOSProfile, + DDOSProfileField, + DDOSProfileOptionList, + DDOSProfileStatus, + DDOSProfileTemplate, + DDOSProfileTemplateField, + FixedAddress, + FixedAddressShort, + FlavorHardwareDescription, + FloatingAddress, + FloatingIP, + FloatingIPStatus, + GPUImage, + GPUImageList, + HTTPMethod, + Image, + ImageList, + Instance, + InstanceIsolation, + InstanceList, + InstanceMetricsTimeUnit, + InterfaceIPFamily, + IPAssignment, + IPVersion, + LaasIndexRetentionPolicy, + LoadBalancer, + LoadBalancerInstanceRole, + LoadBalancerMemberConnectivity, + LoadBalancerOperatingStatus, + LoadBalancerStatistics, + Logging, + Network, + NetworkAnySubnetFip, + NetworkDetails, + NetworkInterface, + NetworkInterfaceList, + NetworkSubnetFip, + ProvisioningStatus, + Route, + Subnet, + Tag, + TagList, + TagUpdateMap, + TaskIDList, +) +``` + +## Projects + +Types: + +```python +from gcore.types.cloud import Project +``` + +Methods: + +- client.cloud.projects.create(\*\*params) -> Project +- client.cloud.projects.update(\*, project_id, \*\*params) -> Project +- client.cloud.projects.list(\*\*params) -> SyncOffsetPage[Project] +- client.cloud.projects.delete(\*, project_id) -> TaskIDList +- client.cloud.projects.get(\*, project_id) -> Project + +## Tasks + +Types: + +```python +from gcore.types.cloud import Task +``` + +Methods: + +- client.cloud.tasks.list(\*\*params) -> SyncOffsetPage[Task] +- client.cloud.tasks.acknowledge_all(\*\*params) -> None +- client.cloud.tasks.acknowledge_one(task_id) -> Task +- client.cloud.tasks.get(task_id) -> Task + +## Regions + +Types: + +```python +from gcore.types.cloud import Region +``` + +Methods: + +- client.cloud.regions.list(\*\*params) -> SyncOffsetPage[Region] +- client.cloud.regions.get(\*, region_id, \*\*params) -> Region + +## Quotas + +Types: + +```python +from gcore.types.cloud import QuotaGetAllResponse, QuotaGetByRegionResponse, QuotaGetGlobalResponse +``` + +Methods: + +- client.cloud.quotas.get_all() -> QuotaGetAllResponse +- client.cloud.quotas.get_by_region(\*, client_id, region_id) -> QuotaGetByRegionResponse +- client.cloud.quotas.get_global(client_id) -> QuotaGetGlobalResponse + +### Requests + +Types: + +```python +from gcore.types.cloud.quotas import RequestListResponse, RequestGetResponse +``` + +Methods: + +- client.cloud.quotas.requests.create(\*\*params) -> None +- client.cloud.quotas.requests.list(\*\*params) -> SyncOffsetPage[RequestListResponse] +- client.cloud.quotas.requests.delete(request_id) -> None +- client.cloud.quotas.requests.get(request_id) -> RequestGetResponse + +## Secrets + +Types: + +```python +from gcore.types.cloud import Secret +``` + +Methods: + +- client.cloud.secrets.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[Secret] +- client.cloud.secrets.delete(secret_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.secrets.get(secret_id, \*, project_id, region_id) -> Secret +- client.cloud.secrets.upload_tls_certificate(\*, project_id, region_id, \*\*params) -> TaskIDList + +## SSHKeys + +Types: + +```python +from gcore.types.cloud import SSHKey, SSHKeyCreated +``` + +Methods: + +- client.cloud.ssh_keys.create(\*, project_id, \*\*params) -> SSHKeyCreated +- client.cloud.ssh_keys.update(ssh_key_id, \*, project_id, \*\*params) -> SSHKey +- client.cloud.ssh_keys.list(\*, project_id, \*\*params) -> SyncOffsetPage[SSHKey] +- client.cloud.ssh_keys.delete(ssh_key_id, \*, project_id) -> None +- client.cloud.ssh_keys.get(ssh_key_id, \*, project_id) -> SSHKey + +## IPRanges + +Types: + +```python +from gcore.types.cloud import IPRanges +``` + +Methods: + +- client.cloud.ip_ranges.list() -> IPRanges + +## LoadBalancers + +Types: + +```python +from gcore.types.cloud import ( + HealthMonitor, + HealthMonitorStatus, + LbAlgorithm, + LbHealthMonitorType, + LbListenerProtocol, + LbPoolProtocol, + LbSessionPersistenceType, + ListenerStatus, + LoadBalancerFlavorDetail, + LoadBalancerFlavorList, + LoadBalancerL7Policy, + LoadBalancerL7PolicyList, + LoadBalancerL7Rule, + LoadBalancerL7RuleList, + LoadBalancerListenerDetail, + LoadBalancerListenerList, + LoadBalancerMetrics, + LoadBalancerMetricsList, + LoadBalancerPool, + LoadBalancerPoolList, + LoadBalancerStatus, + LoadBalancerStatusList, + Member, + MemberStatus, + PoolStatus, + SessionPersistence, +) +``` + +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 + +Methods: + +- client.cloud.load_balancers.l7_policies.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.l7_policies.update(l7policy_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.l7_policies.list(\*, project_id, region_id) -> LoadBalancerL7PolicyList +- client.cloud.load_balancers.l7_policies.delete(l7policy_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.load_balancers.l7_policies.get(l7policy_id, \*, project_id, region_id) -> LoadBalancerL7Policy + +#### Rules + +Methods: + +- client.cloud.load_balancers.l7_policies.rules.create(l7policy_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.l7_policies.rules.list(l7policy_id, \*, project_id, region_id) -> LoadBalancerL7RuleList +- client.cloud.load_balancers.l7_policies.rules.delete(l7rule_id, \*, project_id, region_id, l7policy_id) -> TaskIDList +- client.cloud.load_balancers.l7_policies.rules.get(l7rule_id, \*, project_id, region_id, l7policy_id) -> LoadBalancerL7Rule +- client.cloud.load_balancers.l7_policies.rules.replace(l7rule_id, \*, project_id, region_id, l7policy_id, \*\*params) -> TaskIDList + +### Flavors + +Methods: + +- client.cloud.load_balancers.flavors.list(\*, project_id, region_id, \*\*params) -> LoadBalancerFlavorList + +### Listeners + +Methods: + +- client.cloud.load_balancers.listeners.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.listeners.update(listener_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.listeners.list(\*, project_id, region_id, \*\*params) -> LoadBalancerListenerList +- client.cloud.load_balancers.listeners.delete(listener_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.listeners.get(listener_id, \*, project_id, region_id, \*\*params) -> LoadBalancerListenerDetail + +### Pools + +Methods: + +- client.cloud.load_balancers.pools.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.pools.update(pool_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.pools.list(\*, project_id, region_id, \*\*params) -> LoadBalancerPoolList +- client.cloud.load_balancers.pools.delete(pool_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.load_balancers.pools.get(pool_id, \*, project_id, region_id) -> LoadBalancerPool + +#### HealthMonitors + +Methods: + +- client.cloud.load_balancers.pools.health_monitors.create(pool_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.pools.health_monitors.delete(pool_id, \*, project_id, region_id) -> None + +#### Members + +Methods: + +- client.cloud.load_balancers.pools.members.create(pool_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.load_balancers.pools.members.delete(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 + +Types: + +```python +from gcore.types.cloud import ReservedFixedIP +``` + +Methods: + +- client.cloud.reserved_fixed_ips.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.reserved_fixed_ips.update(port_id, \*, project_id, region_id, \*\*params) -> ReservedFixedIP +- client.cloud.reserved_fixed_ips.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[ReservedFixedIP] +- client.cloud.reserved_fixed_ips.delete(port_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.reserved_fixed_ips.get(port_id, \*, project_id, region_id) -> ReservedFixedIP + +### Vip + +Types: + +```python +from gcore.types.cloud.reserved_fixed_ips import IPWithSubnet +``` + +Methods: + +- client.cloud.reserved_fixed_ips.vip.toggle(port_id, \*, project_id, region_id, \*\*params) -> ReservedFixedIP + +#### CandidatePorts + +Types: + +```python +from gcore.types.cloud.reserved_fixed_ips.vip import CandidatePort, CandidatePortList +``` + +Methods: + +- client.cloud.reserved_fixed_ips.vip.candidate_ports.list(port_id, \*, project_id, region_id) -> CandidatePortList + +#### ConnectedPorts + +Types: + +```python +from gcore.types.cloud.reserved_fixed_ips.vip import ConnectedPort, ConnectedPortList +``` + +Methods: + +- client.cloud.reserved_fixed_ips.vip.connected_ports.list(port_id, \*, project_id, region_id) -> ConnectedPortList +- client.cloud.reserved_fixed_ips.vip.connected_ports.add(port_id, \*, project_id, region_id, \*\*params) -> ConnectedPortList +- client.cloud.reserved_fixed_ips.vip.connected_ports.replace(port_id, \*, project_id, region_id, \*\*params) -> ConnectedPortList + +## Networks + +Methods: + +- client.cloud.networks.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.networks.update(network_id, \*, project_id, region_id, \*\*params) -> Network +- client.cloud.networks.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[Network] +- client.cloud.networks.delete(network_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.networks.get(network_id, \*, project_id, region_id) -> Network + +### Subnets + +Methods: + +- client.cloud.networks.subnets.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.networks.subnets.update(subnet_id, \*, project_id, region_id, \*\*params) -> Subnet +- client.cloud.networks.subnets.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[Subnet] +- client.cloud.networks.subnets.delete(subnet_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.networks.subnets.get(subnet_id, \*, project_id, region_id) -> Subnet + +### Routers + +Types: + +```python +from gcore.types.cloud.networks import Router, RouterList, SubnetID +``` + +Methods: + +- client.cloud.networks.routers.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.networks.routers.update(router_id, \*, project_id, region_id, \*\*params) -> Router +- client.cloud.networks.routers.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[Router] +- client.cloud.networks.routers.delete(router_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.networks.routers.attach_subnet(router_id, \*, project_id, region_id, \*\*params) -> Router +- client.cloud.networks.routers.detach_subnet(router_id, \*, project_id, region_id, \*\*params) -> Router +- client.cloud.networks.routers.get(router_id, \*, project_id, region_id) -> Router + +## Volumes + +Types: + +```python +from gcore.types.cloud import Volume +``` + +Methods: + +- client.cloud.volumes.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.volumes.update(volume_id, \*, project_id, region_id, \*\*params) -> Volume +- client.cloud.volumes.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[Volume] +- client.cloud.volumes.delete(volume_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.volumes.attach_to_instance(volume_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.volumes.change_type(volume_id, \*, project_id, region_id, \*\*params) -> Volume +- client.cloud.volumes.detach_from_instance(volume_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.volumes.get(volume_id, \*, project_id, region_id) -> Volume +- client.cloud.volumes.resize(volume_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.volumes.revert_to_last_snapshot(volume_id, \*, project_id, region_id) -> None + +## FloatingIPs + +Types: + +```python +from gcore.types.cloud import FloatingIPDetailed +``` + +Methods: + +- client.cloud.floating_ips.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.floating_ips.update(floating_ip_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.floating_ips.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[FloatingIPDetailed] +- client.cloud.floating_ips.delete(floating_ip_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.floating_ips.assign(floating_ip_id, \*, project_id, region_id, \*\*params) -> FloatingIP +- client.cloud.floating_ips.get(floating_ip_id, \*, project_id, region_id) -> FloatingIP +- client.cloud.floating_ips.unassign(floating_ip_id, \*, project_id, region_id) -> FloatingIP + +## SecurityGroups + +Types: + +```python +from gcore.types.cloud import SecurityGroup, SecurityGroupRule +``` + +Methods: + +- client.cloud.security_groups.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.security_groups.update(group_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.security_groups.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[SecurityGroup] +- client.cloud.security_groups.delete(group_id, \*, project_id, region_id) -> None +- client.cloud.security_groups.copy(group_id, \*, project_id, region_id, \*\*params) -> SecurityGroup +- client.cloud.security_groups.get(group_id, \*, project_id, region_id) -> SecurityGroup +- client.cloud.security_groups.revert_to_default(group_id, \*, project_id, region_id) -> SecurityGroup + +### Rules + +Methods: + +- client.cloud.security_groups.rules.create(group_id, \*, project_id, region_id, \*\*params) -> SecurityGroupRule +- client.cloud.security_groups.rules.delete(rule_id, \*, project_id, region_id) -> None +- client.cloud.security_groups.rules.replace(rule_id, \*, project_id, region_id, \*\*params) -> SecurityGroupRule + +## Users + +### RoleAssignments + +Types: + +```python +from gcore.types.cloud.users import RoleAssignment, RoleAssignmentUpdatedDeleted +``` + +Methods: + +- client.cloud.users.role_assignments.create(\*\*params) -> RoleAssignment +- client.cloud.users.role_assignments.update(assignment_id, \*\*params) -> RoleAssignmentUpdatedDeleted +- client.cloud.users.role_assignments.list(\*\*params) -> SyncOffsetPage[RoleAssignment] +- client.cloud.users.role_assignments.delete(assignment_id) -> RoleAssignmentUpdatedDeleted + +## Inference + +Types: + +```python +from gcore.types.cloud import InferenceRegionCapacity, InferenceRegionCapacityList +``` + +Methods: + +- client.cloud.inference.get_capacity_by_region() -> InferenceRegionCapacityList + +### Flavors + +Types: + +```python +from gcore.types.cloud.inference import InferenceFlavor +``` + +Methods: + +- client.cloud.inference.flavors.list(\*\*params) -> SyncOffsetPage[InferenceFlavor] +- client.cloud.inference.flavors.get(flavor_name) -> InferenceFlavor + +### Deployments + +Types: + +```python +from gcore.types.cloud.inference import ( + InferenceDeployment, + InferenceDeploymentAPIKey, + Probe, + ProbeConfig, + ProbeExec, + ProbeHTTPGet, + ProbeTcpSocket, +) +``` + +Methods: + +- client.cloud.inference.deployments.create(\*, project_id, \*\*params) -> TaskIDList +- client.cloud.inference.deployments.update(deployment_name, \*, project_id, \*\*params) -> TaskIDList +- client.cloud.inference.deployments.list(\*, project_id, \*\*params) -> SyncOffsetPage[InferenceDeployment] +- client.cloud.inference.deployments.delete(deployment_name, \*, project_id) -> TaskIDList +- client.cloud.inference.deployments.get(deployment_name, \*, project_id) -> InferenceDeployment +- client.cloud.inference.deployments.get_api_key(deployment_name, \*, project_id) -> InferenceDeploymentAPIKey +- client.cloud.inference.deployments.start(deployment_name, \*, project_id) -> None +- client.cloud.inference.deployments.stop(deployment_name, \*, project_id) -> None + +#### Logs + +Types: + +```python +from gcore.types.cloud.inference.deployments import InferenceDeploymentLog +``` + +Methods: + +- client.cloud.inference.deployments.logs.list(deployment_name, \*, project_id, \*\*params) -> SyncOffsetPage[InferenceDeploymentLog] + +### RegistryCredentials + +Types: + +```python +from gcore.types.cloud.inference import InferenceRegistryCredentials +``` + +Methods: + +- client.cloud.inference.registry_credentials.create(\*, project_id, \*\*params) -> InferenceRegistryCredentials +- client.cloud.inference.registry_credentials.list(\*, project_id, \*\*params) -> SyncOffsetPage[InferenceRegistryCredentials] +- client.cloud.inference.registry_credentials.delete(credential_name, \*, project_id) -> None +- client.cloud.inference.registry_credentials.get(credential_name, \*, project_id) -> InferenceRegistryCredentials +- client.cloud.inference.registry_credentials.replace(credential_name, \*, project_id, \*\*params) -> InferenceRegistryCredentials + +### Secrets + +Types: + +```python +from gcore.types.cloud.inference import InferenceSecret +``` + +Methods: + +- client.cloud.inference.secrets.create(\*, project_id, \*\*params) -> InferenceSecret +- client.cloud.inference.secrets.list(\*, project_id, \*\*params) -> SyncOffsetPage[InferenceSecret] +- client.cloud.inference.secrets.delete(secret_name, \*, project_id) -> None +- client.cloud.inference.secrets.get(secret_name, \*, project_id) -> InferenceSecret +- client.cloud.inference.secrets.replace(secret_name, \*, project_id, \*\*params) -> InferenceSecret + +### APIKeys + +Types: + +```python +from gcore.types.cloud.inference import InferenceAPIKey, InferenceAPIKeyCreated +``` + +Methods: + +- client.cloud.inference.api_keys.create(\*, project_id, \*\*params) -> InferenceAPIKeyCreated +- client.cloud.inference.api_keys.update(api_key_name, \*, project_id, \*\*params) -> InferenceAPIKey +- client.cloud.inference.api_keys.list(\*, project_id, \*\*params) -> SyncOffsetPage[InferenceAPIKey] +- client.cloud.inference.api_keys.delete(api_key_name, \*, project_id) -> None +- client.cloud.inference.api_keys.get(api_key_name, \*, project_id) -> InferenceAPIKey + +### Applications + +#### Deployments + +Types: + +```python +from gcore.types.cloud.inference.applications import ( + InferenceApplicationDeployment, + InferenceApplicationDeploymentList, +) +``` + +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 + +#### Templates + +Types: + +```python +from gcore.types.cloud.inference.applications import ( + InferenceApplicationTemplate, + InferenceApplicationTemplateList, +) +``` + +Methods: + +- client.cloud.inference.applications.templates.list() -> InferenceApplicationTemplateList +- client.cloud.inference.applications.templates.get(application_name) -> InferenceApplicationTemplate + +## PlacementGroups + +Types: + +```python +from gcore.types.cloud import PlacementGroup, PlacementGroupList +``` + +Methods: + +- client.cloud.placement_groups.create(\*, project_id, region_id, \*\*params) -> PlacementGroup +- client.cloud.placement_groups.list(\*, project_id, region_id) -> PlacementGroupList +- client.cloud.placement_groups.delete(group_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.placement_groups.get(group_id, \*, project_id, region_id) -> PlacementGroup + +## Baremetal + +### Images + +Methods: + +- client.cloud.baremetal.images.list(\*, project_id, region_id, \*\*params) -> ImageList + +### Flavors + +Methods: + +- client.cloud.baremetal.flavors.list(\*, project_id, region_id, \*\*params) -> BaremetalFlavorList + +### Servers + +Types: + +```python +from gcore.types.cloud.baremetal import ( + BaremetalFixedAddress, + BaremetalFloatingAddress, + BaremetalServer, +) +``` + +Methods: + +- client.cloud.baremetal.servers.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.baremetal.servers.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[BaremetalServer] +- client.cloud.baremetal.servers.rebuild(server_id, \*, project_id, region_id, \*\*params) -> TaskIDList + +## Registries + +Types: + +```python +from gcore.types.cloud import Registry, RegistryList, RegistryTag +``` + +Methods: + +- client.cloud.registries.create(\*, project_id, region_id, \*\*params) -> Registry +- client.cloud.registries.list(\*, project_id, region_id) -> RegistryList +- client.cloud.registries.delete(registry_id, \*, project_id, region_id) -> None +- client.cloud.registries.get(registry_id, \*, project_id, region_id) -> Registry +- client.cloud.registries.resize(registry_id, \*, project_id, region_id, \*\*params) -> Registry + +### Repositories + +Types: + +```python +from gcore.types.cloud.registries import RegistryRepository, RegistryRepositoryList +``` + +Methods: + +- client.cloud.registries.repositories.list(registry_id, \*, project_id, region_id) -> RegistryRepositoryList +- client.cloud.registries.repositories.delete(repository_name, \*, project_id, region_id, registry_id) -> None + +### Artifacts + +Types: + +```python +from gcore.types.cloud.registries import RegistryArtifact, RegistryArtifactList +``` + +Methods: + +- client.cloud.registries.artifacts.list(repository_name, \*, project_id, region_id, registry_id) -> RegistryArtifactList +- client.cloud.registries.artifacts.delete(digest, \*, project_id, region_id, registry_id, repository_name) -> None + +### Tags + +Methods: + +- client.cloud.registries.tags.delete(tag_name, \*, project_id, region_id, registry_id, repository_name, digest) -> None + +### Users + +Types: + +```python +from gcore.types.cloud.registries import ( + RegistryUser, + RegistryUserCreated, + RegistryUserList, + UserRefreshSecretResponse, +) +``` + +Methods: + +- client.cloud.registries.users.create(registry_id, \*, project_id, region_id, \*\*params) -> RegistryUserCreated +- client.cloud.registries.users.update(user_id, \*, project_id, region_id, registry_id, \*\*params) -> RegistryUser +- client.cloud.registries.users.list(registry_id, \*, project_id, region_id) -> RegistryUserList +- client.cloud.registries.users.delete(user_id, \*, project_id, region_id, registry_id) -> None +- client.cloud.registries.users.create_multiple(registry_id, \*, project_id, region_id, \*\*params) -> RegistryUserCreated +- client.cloud.registries.users.refresh_secret(user_id, \*, project_id, region_id, registry_id) -> UserRefreshSecretResponse + +## FileShares + +Types: + +```python +from gcore.types.cloud import FileShare +``` + +Methods: + +- client.cloud.file_shares.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.file_shares.update(file_share_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.file_shares.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[FileShare] +- client.cloud.file_shares.delete(file_share_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.file_shares.get(file_share_id, \*, project_id, region_id) -> FileShare +- client.cloud.file_shares.resize(file_share_id, \*, project_id, region_id, \*\*params) -> TaskIDList + +### AccessRules + +Types: + +```python +from gcore.types.cloud.file_shares import AccessRule, AccessRuleList +``` + +Methods: + +- client.cloud.file_shares.access_rules.create(file_share_id, \*, project_id, region_id, \*\*params) -> AccessRule +- client.cloud.file_shares.access_rules.list(file_share_id, \*, project_id, region_id) -> AccessRuleList +- client.cloud.file_shares.access_rules.delete(access_rule_id, \*, project_id, region_id, file_share_id) -> None + +## BillingReservations + +Types: + +```python +from gcore.types.cloud import BillingReservation, BillingReservations +``` + +Methods: + +- client.cloud.billing_reservations.list(\*\*params) -> BillingReservations + +## GPUBaremetal + +### Clusters + +Types: + +```python +from gcore.types.cloud.gpu_baremetal import GPUBaremetalCluster +``` + +Methods: + +- client.cloud.gpu_baremetal.clusters.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.gpu_baremetal.clusters.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[GPUBaremetalCluster] +- client.cloud.gpu_baremetal.clusters.delete(cluster_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.gpu_baremetal.clusters.action(cluster_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.gpu_baremetal.clusters.get(cluster_id, \*, project_id, region_id) -> GPUBaremetalCluster +- client.cloud.gpu_baremetal.clusters.powercycle_all_servers(cluster_id, \*, project_id, region_id) -> GPUBaremetalClusterServerV1List +- client.cloud.gpu_baremetal.clusters.reboot_all_servers(cluster_id, \*, project_id, region_id) -> GPUBaremetalClusterServerV1List +- client.cloud.gpu_baremetal.clusters.rebuild(cluster_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.gpu_baremetal.clusters.resize(cluster_id, \*, project_id, region_id, \*\*params) -> TaskIDList + +#### Interfaces + +Methods: + +- client.cloud.gpu_baremetal.clusters.interfaces.list(cluster_id, \*, project_id, region_id) -> NetworkInterfaceList +- client.cloud.gpu_baremetal.clusters.interfaces.attach(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.gpu_baremetal.clusters.interfaces.detach(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList + +#### Servers + +Types: + +```python +from gcore.types.cloud.gpu_baremetal.clusters import ( + GPUBaremetalClusterServer, + GPUBaremetalClusterServerV1, + GPUBaremetalClusterServerV1List, +) +``` + +Methods: + +- client.cloud.gpu_baremetal.clusters.servers.list(cluster_id, \*, project_id, region_id, \*\*params) -> SyncOffsetPage[GPUBaremetalClusterServer] +- client.cloud.gpu_baremetal.clusters.servers.delete(instance_id, \*, project_id, region_id, cluster_id, \*\*params) -> TaskIDList +- client.cloud.gpu_baremetal.clusters.servers.get_console(instance_id, \*, project_id, region_id) -> Console +- client.cloud.gpu_baremetal.clusters.servers.powercycle(instance_id, \*, project_id, region_id) -> GPUBaremetalClusterServerV1 +- client.cloud.gpu_baremetal.clusters.servers.reboot(instance_id, \*, project_id, region_id) -> GPUBaremetalClusterServerV1 + +#### Flavors + +Types: + +```python +from gcore.types.cloud.gpu_baremetal.clusters import GPUBaremetalFlavor, GPUBaremetalFlavorList +``` + +Methods: + +- client.cloud.gpu_baremetal.clusters.flavors.list(\*, project_id, region_id, \*\*params) -> GPUBaremetalFlavorList + +#### Images + +Methods: + +- client.cloud.gpu_baremetal.clusters.images.list(\*, project_id, region_id) -> GPUImageList +- client.cloud.gpu_baremetal.clusters.images.delete(image_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.gpu_baremetal.clusters.images.get(image_id, \*, project_id, region_id) -> GPUImage +- client.cloud.gpu_baremetal.clusters.images.upload(\*, project_id, region_id, \*\*params) -> TaskIDList + +## GPUVirtual + +### Clusters + +Types: + +```python +from gcore.types.cloud.gpu_virtual import GPUVirtualCluster +``` + +Methods: + +- client.cloud.gpu_virtual.clusters.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.gpu_virtual.clusters.update(cluster_id, \*, project_id, region_id, \*\*params) -> GPUVirtualCluster +- client.cloud.gpu_virtual.clusters.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[GPUVirtualCluster] +- client.cloud.gpu_virtual.clusters.delete(cluster_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.gpu_virtual.clusters.action(cluster_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.gpu_virtual.clusters.get(cluster_id, \*, project_id, region_id) -> GPUVirtualCluster + +#### Servers + +Types: + +```python +from gcore.types.cloud.gpu_virtual.clusters import ( + GPUVirtualClusterServer, + GPUVirtualClusterServerList, +) +``` + +Methods: + +- client.cloud.gpu_virtual.clusters.servers.list(cluster_id, \*, project_id, region_id, \*\*params) -> GPUVirtualClusterServerList +- client.cloud.gpu_virtual.clusters.servers.delete(server_id, \*, project_id, region_id, cluster_id, \*\*params) -> TaskIDList + +#### Volumes + +Types: + +```python +from gcore.types.cloud.gpu_virtual.clusters import ( + GPUVirtualClusterVolume, + GPUVirtualClusterVolumeList, +) +``` + +Methods: + +- client.cloud.gpu_virtual.clusters.volumes.list(cluster_id, \*, project_id, region_id) -> GPUVirtualClusterVolumeList + +#### Interfaces + +Types: + +```python +from gcore.types.cloud.gpu_virtual.clusters import GPUVirtualInterface, GPUVirtualInterfaceList +``` + +Methods: + +- client.cloud.gpu_virtual.clusters.interfaces.list(cluster_id, \*, project_id, region_id) -> GPUVirtualInterfaceList + +#### Flavors + +Types: + +```python +from gcore.types.cloud.gpu_virtual.clusters import GPUVirtualFlavor, GPUVirtualFlavorList +``` + +Methods: + +- client.cloud.gpu_virtual.clusters.flavors.list(\*, project_id, region_id, \*\*params) -> GPUVirtualFlavorList + +#### Images + +Methods: + +- client.cloud.gpu_virtual.clusters.images.list(\*, project_id, region_id) -> GPUImageList +- client.cloud.gpu_virtual.clusters.images.delete(image_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.gpu_virtual.clusters.images.get(image_id, \*, project_id, region_id) -> GPUImage +- client.cloud.gpu_virtual.clusters.images.upload(\*, project_id, region_id, \*\*params) -> TaskIDList + +## Instances + +Types: + +```python +from gcore.types.cloud import InstanceInterface +``` + +Methods: + +- client.cloud.instances.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.instances.update(instance_id, \*, project_id, region_id, \*\*params) -> Instance +- client.cloud.instances.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[Instance] +- client.cloud.instances.delete(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.instances.action(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.instances.add_to_placement_group(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.instances.assign_security_group(instance_id, \*, project_id, region_id, \*\*params) -> None +- client.cloud.instances.disable_port_security(port_id, \*, project_id, region_id) -> InstanceInterface +- client.cloud.instances.enable_port_security(port_id, \*, project_id, region_id) -> InstanceInterface +- client.cloud.instances.get(instance_id, \*, project_id, region_id) -> Instance +- client.cloud.instances.get_console(instance_id, \*, project_id, region_id, \*\*params) -> Console +- client.cloud.instances.remove_from_placement_group(instance_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.instances.resize(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.instances.unassign_security_group(instance_id, \*, project_id, region_id, \*\*params) -> None + +### Flavors + +Types: + +```python +from gcore.types.cloud.instances import InstanceFlavorDetailed, InstanceFlavorList +``` + +Methods: + +- client.cloud.instances.flavors.list(\*, project_id, region_id, \*\*params) -> InstanceFlavorList + +### Interfaces + +Methods: + +- client.cloud.instances.interfaces.list(instance_id, \*, project_id, region_id) -> NetworkInterfaceList +- client.cloud.instances.interfaces.attach(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.instances.interfaces.detach(instance_id, \*, project_id, region_id, \*\*params) -> TaskIDList + +### Images + +Methods: + +- client.cloud.instances.images.update(image_id, \*, project_id, region_id, \*\*params) -> Image +- client.cloud.instances.images.list(\*, project_id, region_id, \*\*params) -> ImageList +- client.cloud.instances.images.delete(image_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.instances.images.create_from_volume(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.instances.images.get(image_id, \*, project_id, region_id, \*\*params) -> Image +- client.cloud.instances.images.upload(\*, project_id, region_id, \*\*params) -> TaskIDList + +### Metrics + +Types: + +```python +from gcore.types.cloud.instances import Metrics, MetricsList +``` + +Methods: + +- client.cloud.instances.metrics.list(instance_id, \*, project_id, region_id, \*\*params) -> MetricsList + +## K8S + +Types: + +```python +from gcore.types.cloud import K8SClusterVersion, K8SClusterVersionList +``` + +Methods: + +- client.cloud.k8s.list_versions(\*, project_id, region_id) -> K8SClusterVersionList + +### Flavors + +Methods: + +- client.cloud.k8s.flavors.list(\*, project_id, region_id, \*\*params) -> BaremetalFlavorList + +### Clusters + +Types: + +```python +from gcore.types.cloud.k8s import ( + K8SCluster, + K8SClusterCertificate, + K8SClusterKubeconfig, + K8SClusterList, +) +``` + +Methods: + +- client.cloud.k8s.clusters.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.k8s.clusters.update(cluster_name, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.k8s.clusters.list(\*, project_id, region_id) -> K8SClusterList +- client.cloud.k8s.clusters.delete(cluster_name, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.k8s.clusters.get(cluster_name, \*, project_id, region_id) -> K8SCluster +- client.cloud.k8s.clusters.get_certificate(cluster_name, \*, project_id, region_id) -> K8SClusterCertificate +- client.cloud.k8s.clusters.get_kubeconfig(cluster_name, \*, project_id, region_id) -> K8SClusterKubeconfig +- client.cloud.k8s.clusters.list_versions_for_upgrade(cluster_name, \*, project_id, region_id) -> K8SClusterVersionList +- client.cloud.k8s.clusters.upgrade(cluster_name, \*, project_id, region_id, \*\*params) -> TaskIDList + +#### Nodes + +Methods: + +- client.cloud.k8s.clusters.nodes.list(cluster_name, \*, project_id, region_id, \*\*params) -> InstanceList +- client.cloud.k8s.clusters.nodes.delete(instance_id, \*, project_id, region_id, cluster_name) -> None + +#### Pools + +Types: + +```python +from gcore.types.cloud.k8s.clusters import K8SClusterPool, K8SClusterPoolList, K8SClusterPoolQuota +``` + +Methods: + +- client.cloud.k8s.clusters.pools.create(cluster_name, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.k8s.clusters.pools.update(pool_name, \*, project_id, region_id, cluster_name, \*\*params) -> K8SClusterPool +- client.cloud.k8s.clusters.pools.list(cluster_name, \*, project_id, region_id) -> K8SClusterPoolList +- client.cloud.k8s.clusters.pools.delete(pool_name, \*, project_id, region_id, cluster_name) -> TaskIDList +- client.cloud.k8s.clusters.pools.check_quota(\*, project_id, region_id, \*\*params) -> K8SClusterPoolQuota +- client.cloud.k8s.clusters.pools.get(pool_name, \*, project_id, region_id, cluster_name) -> K8SClusterPool +- client.cloud.k8s.clusters.pools.resize(pool_name, \*, project_id, region_id, cluster_name, \*\*params) -> TaskIDList + +##### Nodes + +Methods: + +- client.cloud.k8s.clusters.pools.nodes.list(pool_name, \*, project_id, region_id, cluster_name, \*\*params) -> InstanceList +- client.cloud.k8s.clusters.pools.nodes.delete(instance_id, \*, project_id, region_id, cluster_name, pool_name) -> None + +## AuditLogs + +Types: + +```python +from gcore.types.cloud import AuditLogEntry +``` + +Methods: + +- client.cloud.audit_logs.list(\*\*params) -> SyncOffsetPage[AuditLogEntry] + +## CostReports + +Types: + +```python +from gcore.types.cloud import CostReportAggregated, CostReportAggregatedMonthly, CostReportDetailed +``` + +Methods: + +- client.cloud.cost_reports.get_aggregated(\*\*params) -> CostReportAggregated +- client.cloud.cost_reports.get_aggregated_monthly(\*\*params) -> CostReportAggregatedMonthly +- client.cloud.cost_reports.get_detailed(\*\*params) -> CostReportDetailed + +## UsageReports + +Types: + +```python +from gcore.types.cloud import UsageReport +``` + +Methods: + +- client.cloud.usage_reports.get(\*\*params) -> UsageReport + +## Databases + +### Postgres + +#### Clusters + +Types: + +```python +from gcore.types.cloud.databases.postgres import PostgresCluster, PostgresClusterShort +``` + +Methods: + +- client.cloud.databases.postgres.clusters.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.databases.postgres.clusters.update(cluster_name, \*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.databases.postgres.clusters.list(\*, project_id, region_id, \*\*params) -> SyncOffsetPage[PostgresClusterShort] +- client.cloud.databases.postgres.clusters.delete(cluster_name, \*, project_id, region_id) -> TaskIDList +- client.cloud.databases.postgres.clusters.get(cluster_name, \*, project_id, region_id) -> PostgresCluster + +##### UserCredentials + +Types: + +```python +from gcore.types.cloud.databases.postgres.clusters import PostgresUserCredentials +``` + +Methods: + +- client.cloud.databases.postgres.clusters.user_credentials.get(username, \*, project_id, region_id, cluster_name) -> PostgresUserCredentials +- client.cloud.databases.postgres.clusters.user_credentials.regenerate(username, \*, project_id, region_id, cluster_name) -> PostgresUserCredentials + +#### Configurations + +Types: + +```python +from gcore.types.cloud.databases.postgres import PostgresConfiguration +``` + +Methods: + +- client.cloud.databases.postgres.configurations.get(\*, project_id, region_id) -> PostgresConfiguration + +#### CustomConfigurations + +Types: + +```python +from gcore.types.cloud.databases.postgres import PgConfValidation +``` + +Methods: + +- client.cloud.databases.postgres.custom_configurations.validate(\*, project_id, region_id, \*\*params) -> PgConfValidation + +## VolumeSnapshots + +Types: + +```python +from gcore.types.cloud import Snapshot +``` + +Methods: + +- client.cloud.volume_snapshots.create(\*, project_id, region_id, \*\*params) -> TaskIDList +- client.cloud.volume_snapshots.update(snapshot_id, \*, project_id, region_id, \*\*params) -> Snapshot +- client.cloud.volume_snapshots.delete(snapshot_id, \*, project_id, region_id) -> TaskIDList +- client.cloud.volume_snapshots.get(snapshot_id, \*, project_id, region_id) -> Snapshot diff --git a/src/gcore/resources/dns/api.md b/src/gcore/resources/dns/api.md new file mode 100644 index 00000000..ff89a8bc --- /dev/null +++ b/src/gcore/resources/dns/api.md @@ -0,0 +1,159 @@ +# DNS + +Types: + +```python +from gcore.types.dns import DNSGetAccountOverviewResponse, DNSLookupResponse +``` + +Methods: + +- client.dns.get_account_overview() -> DNSGetAccountOverviewResponse +- client.dns.lookup(\*\*params) -> DNSLookupResponse + +## Locations + +Types: + +```python +from gcore.types.dns import ( + DNSLocationTranslations, + LocationListResponse, + LocationListContinentsResponse, + LocationListCountriesResponse, + LocationListRegionsResponse, +) +``` + +Methods: + +- client.dns.locations.list() -> LocationListResponse +- client.dns.locations.list_continents() -> LocationListContinentsResponse +- client.dns.locations.list_countries() -> LocationListCountriesResponse +- client.dns.locations.list_regions() -> LocationListRegionsResponse + +## Metrics + +Types: + +```python +from gcore.types.dns import MetricListResponse +``` + +Methods: + +- client.dns.metrics.list(\*\*params) -> str + +## Pickers + +Types: + +```python +from gcore.types.dns import DNSLabelName, PickerListResponse +``` + +Methods: + +- client.dns.pickers.list() -> PickerListResponse + +### Presets + +Types: + +```python +from gcore.types.dns.pickers import PresetListResponse +``` + +Methods: + +- client.dns.pickers.presets.list() -> PresetListResponse + +## Zones + +Types: + +```python +from gcore.types.dns import ( + DNSNameServer, + ZoneCreateResponse, + ZoneListResponse, + ZoneCheckDelegationStatusResponse, + ZoneExportResponse, + ZoneGetResponse, + ZoneGetStatisticsResponse, + ZoneImportResponse, +) +``` + +Methods: + +- client.dns.zones.create(\*\*params) -> ZoneCreateResponse +- client.dns.zones.list(\*\*params) -> ZoneListResponse +- client.dns.zones.delete(name) -> object +- client.dns.zones.check_delegation_status(name) -> ZoneCheckDelegationStatusResponse +- client.dns.zones.disable(name) -> object +- client.dns.zones.enable(name) -> object +- client.dns.zones.export(zone_name) -> ZoneExportResponse +- client.dns.zones.get(name) -> ZoneGetResponse +- client.dns.zones.get_statistics(name, \*\*params) -> ZoneGetStatisticsResponse +- client.dns.zones.import\_(zone_name, \*\*params) -> ZoneImportResponse +- client.dns.zones.replace(path_name, \*\*params) -> object + +### Dnssec + +Types: + +```python +from gcore.types.dns.zones import DnssecUpdateResponse, DnssecGetResponse +``` + +Methods: + +- client.dns.zones.dnssec.update(name, \*\*params) -> DnssecUpdateResponse +- client.dns.zones.dnssec.get(name) -> DnssecGetResponse + +### Rrsets + +Types: + +```python +from gcore.types.dns.zones import ( + DNSFailoverLog, + DNSOutputRrset, + RrsetListResponse, + RrsetGetFailoverLogsResponse, +) +``` + +Methods: + +- client.dns.zones.rrsets.create(rrset_type, \*, zone_name, rrset_name, \*\*params) -> DNSOutputRrset +- client.dns.zones.rrsets.list(zone_name, \*\*params) -> RrsetListResponse +- client.dns.zones.rrsets.delete(rrset_type, \*, zone_name, rrset_name) -> object +- client.dns.zones.rrsets.get(rrset_type, \*, zone_name, rrset_name) -> DNSOutputRrset +- client.dns.zones.rrsets.get_failover_logs(rrset_type, \*, zone_name, rrset_name, \*\*params) -> RrsetGetFailoverLogsResponse +- client.dns.zones.rrsets.replace(rrset_type, \*, zone_name, rrset_name, \*\*params) -> DNSOutputRrset + +## NetworkMappings + +Types: + +```python +from gcore.types.dns import ( + DNSMappingEntry, + DNSNetworkMapping, + NetworkMappingCreateResponse, + NetworkMappingListResponse, + NetworkMappingImportResponse, +) +``` + +Methods: + +- client.dns.network_mappings.create(\*\*params) -> NetworkMappingCreateResponse +- client.dns.network_mappings.list(\*\*params) -> NetworkMappingListResponse +- client.dns.network_mappings.delete(id) -> object +- client.dns.network_mappings.get(id) -> DNSNetworkMapping +- client.dns.network_mappings.get_by_name(name) -> DNSNetworkMapping +- client.dns.network*mappings.import*() -> NetworkMappingImportResponse +- client.dns.network_mappings.replace(id, \*\*params) -> object diff --git a/src/gcore/resources/fastedge/api.md b/src/gcore/resources/fastedge/api.md new file mode 100644 index 00000000..8d835d33 --- /dev/null +++ b/src/gcore/resources/fastedge/api.md @@ -0,0 +1,122 @@ +# Fastedge + +Types: + +```python +from gcore.types.fastedge import Client +``` + +Methods: + +- client.fastedge.get_account_overview() -> Client + +## Templates + +Types: + +```python +from gcore.types.fastedge import Template, TemplateParameter, TemplateShort +``` + +Methods: + +- client.fastedge.templates.create(\*\*params) -> TemplateShort +- client.fastedge.templates.list(\*\*params) -> SyncOffsetPageFastedgeTemplates[TemplateShort] +- client.fastedge.templates.delete(id, \*\*params) -> None +- client.fastedge.templates.get(id) -> Template +- client.fastedge.templates.replace(id, \*\*params) -> TemplateShort + +## Secrets + +Types: + +```python +from gcore.types.fastedge import Secret, SecretShort, SecretCreateResponse, SecretListResponse +``` + +Methods: + +- client.fastedge.secrets.create(\*\*params) -> SecretCreateResponse +- client.fastedge.secrets.update(id, \*\*params) -> Secret +- client.fastedge.secrets.list(\*\*params) -> SecretListResponse +- client.fastedge.secrets.delete(id, \*\*params) -> None +- client.fastedge.secrets.get(id) -> Secret +- client.fastedge.secrets.replace(id, \*\*params) -> Secret + +## Binaries + +Types: + +```python +from gcore.types.fastedge import Binary, BinaryShort, BinaryListResponse +``` + +Methods: + +- client.fastedge.binaries.create(body, \*\*params) -> BinaryShort +- client.fastedge.binaries.list() -> BinaryListResponse +- client.fastedge.binaries.delete(id) -> None +- client.fastedge.binaries.get(id) -> Binary + +## Statistics + +Types: + +```python +from gcore.types.fastedge import ( + CallStatus, + DurationStats, + StatisticGetCallSeriesResponse, + StatisticGetDurationSeriesResponse, +) +``` + +Methods: + +- client.fastedge.statistics.get_call_series(\*\*params) -> StatisticGetCallSeriesResponse +- client.fastedge.statistics.get_duration_series(\*\*params) -> StatisticGetDurationSeriesResponse + +## Apps + +Types: + +```python +from gcore.types.fastedge import App, AppShort +``` + +Methods: + +- client.fastedge.apps.create(\*\*params) -> AppShort +- client.fastedge.apps.update(id, \*\*params) -> AppShort +- client.fastedge.apps.list(\*\*params) -> SyncOffsetPageFastedgeApps[AppShort] +- client.fastedge.apps.delete(id) -> None +- client.fastedge.apps.get(id) -> App +- client.fastedge.apps.replace(id, \*\*params) -> AppShort + +### Logs + +Types: + +```python +from gcore.types.fastedge.apps import Log +``` + +Methods: + +- client.fastedge.apps.logs.list(id, \*\*params) -> SyncOffsetPageFastedgeAppLogs[Log] + +## KvStores + +Types: + +```python +from gcore.types.fastedge import KvStore, KvStoreShort, KvStoreCreateResponse, KvStoreListResponse +``` + +Methods: + +- client.fastedge.kv_stores.create(\*\*params) -> KvStoreCreateResponse +- client.fastedge.kv_stores.list(\*\*params) -> KvStoreListResponse +- client.fastedge.kv_stores.delete(id) -> None +- client.fastedge.kv_stores.get(id) -> KvStore +- client.fastedge.kv_stores.replace(id, \*\*params) -> KvStore diff --git a/src/gcore/resources/iam/api.md b/src/gcore/resources/iam/api.md new file mode 100644 index 00000000..b6411972 --- /dev/null +++ b/src/gcore/resources/iam/api.md @@ -0,0 +1,42 @@ +# Iam + +Types: + +```python +from gcore.types.iam import AccountOverview +``` + +Methods: + +- client.iam.get_account_overview() -> AccountOverview + +## APITokens + +Types: + +```python +from gcore.types.iam import APIToken, APITokenCreated, APITokenList +``` + +Methods: + +- client.iam.api_tokens.create(client_id, \*\*params) -> APITokenCreated +- client.iam.api_tokens.list(client_id, \*\*params) -> APITokenList +- client.iam.api_tokens.delete(token_id, \*, client_id) -> None +- client.iam.api_tokens.get(token_id, \*, client_id) -> APIToken + +## Users + +Types: + +```python +from gcore.types.iam import User, UserDetailed, UserInvite, UserUpdated +``` + +Methods: + +- client.iam.users.update(user_id, \*\*params) -> UserUpdated +- client.iam.users.list(\*\*params) -> SyncOffsetPage[User] +- client.iam.users.delete(user_id, \*, client_id) -> None +- client.iam.users.get(user_id) -> UserDetailed +- client.iam.users.invite(\*\*params) -> UserInvite diff --git a/src/gcore/resources/security/api.md b/src/gcore/resources/security/api.md new file mode 100644 index 00000000..228f9548 --- /dev/null +++ b/src/gcore/resources/security/api.md @@ -0,0 +1,55 @@ +# Security + +## Events + +Types: + +```python +from gcore.types.security import ClientView +``` + +Methods: + +- client.security.events.list(\*\*params) -> SyncOffsetPage[ClientView] + +## BgpAnnounces + +Types: + +```python +from gcore.types.security import ClientAnnounce, BgpAnnounceListResponse +``` + +Methods: + +- client.security.bgp_announces.list(\*\*params) -> BgpAnnounceListResponse +- client.security.bgp_announces.toggle(\*\*params) -> object + +## ProfileTemplates + +Types: + +```python +from gcore.types.security import ClientProfileTemplate, ProfileTemplateListResponse +``` + +Methods: + +- client.security.profile_templates.list() -> ProfileTemplateListResponse + +## Profiles + +Types: + +```python +from gcore.types.security import ClientProfile, ProfileListResponse +``` + +Methods: + +- client.security.profiles.create(\*\*params) -> ClientProfile +- client.security.profiles.list(\*\*params) -> ProfileListResponse +- client.security.profiles.delete(id) -> None +- client.security.profiles.get(id) -> ClientProfile +- client.security.profiles.recreate(id, \*\*params) -> ClientProfile +- client.security.profiles.replace(id, \*\*params) -> ClientProfile diff --git a/src/gcore/resources/storage/api.md b/src/gcore/resources/storage/api.md new file mode 100644 index 00000000..83eea9dc --- /dev/null +++ b/src/gcore/resources/storage/api.md @@ -0,0 +1,97 @@ +# Storage + +Types: + +```python +from gcore.types.storage import Storage +``` + +Methods: + +- client.storage.create(\*\*params) -> Storage +- client.storage.update(storage_id, \*\*params) -> Storage +- client.storage.list(\*\*params) -> SyncOffsetPage[Storage] +- client.storage.delete(storage_id) -> None +- client.storage.get(storage_id) -> Storage +- client.storage.link_ssh_key(key_id, \*, storage_id) -> None +- client.storage.restore(storage_id, \*\*params) -> None +- client.storage.unlink_ssh_key(key_id, \*, storage_id) -> None + +## Locations + +Types: + +```python +from gcore.types.storage import Location +``` + +Methods: + +- client.storage.locations.list(\*\*params) -> SyncOffsetPage[Location] + +## Statistics + +Types: + +```python +from gcore.types.storage import UsageSeries, UsageTotal, StatisticGetUsageSeriesResponse +``` + +Methods: + +- client.storage.statistics.get_usage_aggregated(\*\*params) -> UsageTotal +- client.storage.statistics.get_usage_series(\*\*params) -> StatisticGetUsageSeriesResponse + +## Credentials + +Methods: + +- client.storage.credentials.recreate(storage_id, \*\*params) -> Storage + +## Buckets + +Types: + +```python +from gcore.types.storage import Bucket +``` + +Methods: + +- client.storage.buckets.create(bucket_name, \*, storage_id) -> None +- client.storage.buckets.list(storage_id, \*\*params) -> SyncOffsetPage[Bucket] +- client.storage.buckets.delete(bucket_name, \*, storage_id) -> None + +### Cors + +Types: + +```python +from gcore.types.storage.buckets import BucketCors +``` + +Methods: + +- client.storage.buckets.cors.create(bucket_name, \*, storage_id, \*\*params) -> None +- client.storage.buckets.cors.get(bucket_name, \*, storage_id) -> BucketCors + +### Lifecycle + +Methods: + +- client.storage.buckets.lifecycle.create(bucket_name, \*, storage_id, \*\*params) -> None +- client.storage.buckets.lifecycle.delete(bucket_name, \*, storage_id) -> None + +### Policy + +Types: + +```python +from gcore.types.storage.buckets import BucketPolicy, PolicyGetResponse +``` + +Methods: + +- client.storage.buckets.policy.create(bucket_name, \*, storage_id) -> None +- client.storage.buckets.policy.delete(bucket_name, \*, storage_id) -> None +- client.storage.buckets.policy.get(bucket_name, \*, storage_id) -> PolicyGetResponse diff --git a/src/gcore/resources/streaming/api.md b/src/gcore/resources/streaming/api.md new file mode 100644 index 00000000..1e868475 --- /dev/null +++ b/src/gcore/resources/streaming/api.md @@ -0,0 +1,285 @@ +# Streaming + +Types: + +```python +from gcore.types.streaming import CreateVideo, Video +``` + +## AITasks + +Types: + +```python +from gcore.types.streaming import ( + AIContentmoderationHardnudity, + AIContentmoderationNsfw, + AIContentmoderationSoftnudity, + AIContentmoderationSport, + AITask, + AITaskCreateResponse, + AITaskCancelResponse, + AITaskGetResponse, + AITaskGetAISettingsResponse, +) +``` + +Methods: + +- client.streaming.ai_tasks.create(\*\*params) -> AITaskCreateResponse +- client.streaming.ai_tasks.list(\*\*params) -> SyncPageStreamingAI[AITask] +- client.streaming.ai_tasks.cancel(task_id) -> AITaskCancelResponse +- client.streaming.ai_tasks.get(task_id) -> AITaskGetResponse +- client.streaming.ai_tasks.get_ai_settings(\*\*params) -> AITaskGetAISettingsResponse + +## Broadcasts + +Types: + +```python +from gcore.types.streaming import Broadcast, BroadcastSpectatorsCount +``` + +Methods: + +- client.streaming.broadcasts.create(\*\*params) -> None +- client.streaming.broadcasts.update(broadcast_id, \*\*params) -> Broadcast +- client.streaming.broadcasts.list(\*\*params) -> SyncPageStreaming[Broadcast] +- client.streaming.broadcasts.delete(broadcast_id) -> None +- client.streaming.broadcasts.get(broadcast_id) -> Broadcast +- client.streaming.broadcasts.get_spectators_count(broadcast_id) -> BroadcastSpectatorsCount + +## Directories + +Types: + +```python +from gcore.types.streaming import ( + DirectoriesTree, + DirectoryBase, + DirectoryItem, + DirectoryVideo, + DirectoryGetResponse, +) +``` + +Methods: + +- client.streaming.directories.create(\*\*params) -> DirectoryBase +- client.streaming.directories.update(directory_id, \*\*params) -> DirectoryBase +- client.streaming.directories.delete(directory_id) -> None +- client.streaming.directories.get(directory_id) -> DirectoryGetResponse +- client.streaming.directories.get_tree() -> DirectoriesTree + +## Players + +Types: + +```python +from gcore.types.streaming import Player +``` + +Methods: + +- client.streaming.players.create(\*\*params) -> None +- client.streaming.players.update(player_id, \*\*params) -> Player +- client.streaming.players.list(\*\*params) -> SyncPageStreaming[Player] +- client.streaming.players.delete(player_id) -> None +- client.streaming.players.get(player_id) -> Player +- client.streaming.players.preview(player_id) -> None + +## QualitySets + +Types: + +```python +from gcore.types.streaming import QualitySets +``` + +Methods: + +- client.streaming.quality_sets.list() -> QualitySets +- client.streaming.quality_sets.set_default(\*\*params) -> QualitySets + +## Playlists + +Types: + +```python +from gcore.types.streaming import ( + Playlist, + PlaylistCreated, + PlaylistVideo, + PlaylistListVideosResponse, +) +``` + +Methods: + +- client.streaming.playlists.create(\*\*params) -> PlaylistCreated +- client.streaming.playlists.update(playlist_id, \*\*params) -> Playlist +- client.streaming.playlists.list(\*\*params) -> SyncPageStreaming[Playlist] +- client.streaming.playlists.delete(playlist_id) -> None +- client.streaming.playlists.get(playlist_id) -> Playlist +- client.streaming.playlists.list_videos(playlist_id) -> PlaylistListVideosResponse + +## Videos + +Types: + +```python +from gcore.types.streaming import ( + DirectUploadParameters, + Subtitle, + SubtitleBase, + SubtitleBody, + SubtitleUpdated, + VideoCreateResponse, + VideoCreateMultipleResponse, +) +``` + +Methods: + +- client.streaming.videos.create(\*\*params) -> VideoCreateResponse +- client.streaming.videos.update(video_id, \*\*params) -> Video +- client.streaming.videos.list(\*\*params) -> SyncPageStreaming[Video] +- client.streaming.videos.delete(video_id) -> None +- client.streaming.videos.create_multiple(\*\*params) -> VideoCreateMultipleResponse +- client.streaming.videos.get(video_id) -> Video +- client.streaming.videos.get_parameters_for_direct_upload(video_id) -> DirectUploadParameters +- client.streaming.videos.list_names(\*\*params) -> None + +### Subtitles + +Types: + +```python +from gcore.types.streaming.videos import SubtitleListResponse +``` + +Methods: + +- client.streaming.videos.subtitles.create(video_id, \*\*params) -> Subtitle +- client.streaming.videos.subtitles.update(id, \*, video_id, \*\*params) -> SubtitleBase +- client.streaming.videos.subtitles.list(video_id) -> SubtitleListResponse +- client.streaming.videos.subtitles.delete(id, \*, video_id) -> None +- client.streaming.videos.subtitles.get(id, \*, video_id) -> Subtitle + +## Streams + +Types: + +```python +from gcore.types.streaming import ( + Clip, + Stream, + StreamListClipsResponse, + StreamStartRecordingResponse, +) +``` + +Methods: + +- client.streaming.streams.create(\*\*params) -> Stream +- client.streaming.streams.update(stream_id, \*\*params) -> Stream +- client.streaming.streams.list(\*\*params) -> SyncPageStreaming[Stream] +- client.streaming.streams.delete(stream_id) -> None +- client.streaming.streams.clear_dvr(stream_id) -> None +- client.streaming.streams.create_clip(stream_id, \*\*params) -> Clip +- client.streaming.streams.get(stream_id) -> Stream +- client.streaming.streams.list_clips(stream_id) -> StreamListClipsResponse +- client.streaming.streams.start_recording(stream_id) -> StreamStartRecordingResponse +- client.streaming.streams.stop_recording(stream_id) -> Video + +### Overlays + +Types: + +```python +from gcore.types.streaming.streams import ( + Overlay, + OverlayCreateResponse, + OverlayListResponse, + OverlayUpdateMultipleResponse, +) +``` + +Methods: + +- client.streaming.streams.overlays.create(stream_id, \*\*params) -> OverlayCreateResponse +- client.streaming.streams.overlays.update(overlay_id, \*, stream_id, \*\*params) -> Overlay +- client.streaming.streams.overlays.list(stream_id) -> OverlayListResponse +- client.streaming.streams.overlays.delete(overlay_id, \*, stream_id) -> None +- client.streaming.streams.overlays.get(overlay_id, \*, stream_id) -> Overlay +- client.streaming.streams.overlays.update_multiple(stream_id, \*\*params) -> OverlayUpdateMultipleResponse + +## Restreams + +Types: + +```python +from gcore.types.streaming import Restream +``` + +Methods: + +- client.streaming.restreams.create(\*\*params) -> None +- client.streaming.restreams.update(restream_id, \*\*params) -> Restream +- client.streaming.restreams.list(\*\*params) -> SyncPageStreaming[Restream] +- client.streaming.restreams.delete(restream_id) -> None +- client.streaming.restreams.get(restream_id) -> Restream + +## Statistics + +Types: + +```python +from gcore.types.streaming import ( + Ffprobes, + MaxStreamSeries, + PopularVideos, + StorageSeries, + StreamSeries, + UniqueViewers, + UniqueViewersCDN, + Views, + ViewsByBrowser, + ViewsByCountry, + ViewsByHostname, + ViewsByOperatingSystem, + ViewsByReferer, + ViewsByRegion, + ViewsHeatmap, + VodStatisticsSeries, + VodTotalStreamDurationSeries, + StatisticGetLiveUniqueViewersResponse, + StatisticGetVodWatchTimeTotalCDNResponse, +) +``` + +Methods: + +- client.streaming.statistics.get_ffprobes(\*\*params) -> Ffprobes +- client.streaming.statistics.get_live_unique_viewers(\*\*params) -> StatisticGetLiveUniqueViewersResponse +- client.streaming.statistics.get_live_watch_time_cdn(\*\*params) -> StreamSeries +- client.streaming.statistics.get_live_watch_time_total_cdn(\*\*params) -> VodTotalStreamDurationSeries +- client.streaming.statistics.get_max_streams_series(\*\*params) -> MaxStreamSeries +- client.streaming.statistics.get_popular_videos(\*\*params) -> PopularVideos +- client.streaming.statistics.get_storage_series(\*\*params) -> StorageSeries +- client.streaming.statistics.get_stream_series(\*\*params) -> StreamSeries +- client.streaming.statistics.get_unique_viewers(\*\*params) -> UniqueViewers +- client.streaming.statistics.get_unique_viewers_cdn(\*\*params) -> UniqueViewersCDN +- client.streaming.statistics.get_views(\*\*params) -> Views +- client.streaming.statistics.get_views_by_browsers(\*\*params) -> ViewsByBrowser +- client.streaming.statistics.get_views_by_country(\*\*params) -> ViewsByCountry +- client.streaming.statistics.get_views_by_hostname(\*\*params) -> ViewsByHostname +- client.streaming.statistics.get_views_by_operating_system(\*\*params) -> ViewsByOperatingSystem +- client.streaming.statistics.get_views_by_referer(\*\*params) -> ViewsByReferer +- client.streaming.statistics.get_views_by_region(\*\*params) -> ViewsByRegion +- client.streaming.statistics.get_views_heatmap(\*\*params) -> ViewsHeatmap +- client.streaming.statistics.get_vod_storage_volume(\*\*params) -> VodStatisticsSeries +- client.streaming.statistics.get_vod_transcoding_duration(\*\*params) -> VodStatisticsSeries +- client.streaming.statistics.get_vod_unique_viewers_cdn(\*\*params) -> VodStatisticsSeries +- client.streaming.statistics.get_vod_watch_time_cdn(\*\*params) -> VodStatisticsSeries +- client.streaming.statistics.get_vod_watch_time_total_cdn(\*\*params) -> StatisticGetVodWatchTimeTotalCDNResponse diff --git a/src/gcore/resources/waap/api.md b/src/gcore/resources/waap/api.md new file mode 100644 index 00000000..52a55dc6 --- /dev/null +++ b/src/gcore/resources/waap/api.md @@ -0,0 +1,322 @@ +# Waap + +Types: + +```python +from gcore.types.waap import WaapGetAccountOverviewResponse +``` + +Methods: + +- client.waap.get_account_overview() -> WaapGetAccountOverviewResponse + +## Statistics + +Types: + +```python +from gcore.types.waap import WaapStatisticItem, WaapStatisticsSeries +``` + +Methods: + +- client.waap.statistics.get_usage_series(\*\*params) -> WaapStatisticsSeries + +## Domains + +Types: + +```python +from gcore.types.waap import ( + WaapDetailedDomain, + WaapDomainAPISettings, + WaapDomainDDOSSettings, + WaapDomainSettingsModel, + WaapPolicyMode, + WaapRuleSet, + WaapSummaryDomain, + DomainListRuleSetsResponse, +) +``` + +Methods: + +- client.waap.domains.update(domain_id, \*\*params) -> None +- client.waap.domains.list(\*\*params) -> SyncOffsetPage[WaapSummaryDomain] +- client.waap.domains.delete(domain_id) -> None +- client.waap.domains.get(domain_id) -> WaapDetailedDomain +- client.waap.domains.list_rule_sets(domain_id) -> DomainListRuleSetsResponse +- client.waap.domains.toggle_policy(policy_id, \*, domain_id) -> WaapPolicyMode + +### Settings + +Methods: + +- client.waap.domains.settings.update(domain_id, \*\*params) -> None +- client.waap.domains.settings.get(domain_id) -> WaapDomainSettingsModel + +### APIPaths + +Types: + +```python +from gcore.types.waap.domains import WaapAPIPath +``` + +Methods: + +- client.waap.domains.api_paths.create(domain_id, \*\*params) -> WaapAPIPath +- client.waap.domains.api_paths.update(path_id, \*, domain_id, \*\*params) -> None +- client.waap.domains.api_paths.list(domain_id, \*\*params) -> SyncOffsetPage[WaapAPIPath] +- client.waap.domains.api_paths.delete(path_id, \*, domain_id) -> None +- client.waap.domains.api_paths.get(path_id, \*, domain_id) -> WaapAPIPath + +### APIPathGroups + +Types: + +```python +from gcore.types.waap.domains import APIPathGroupList +``` + +Methods: + +- client.waap.domains.api_path_groups.list(domain_id) -> APIPathGroupList + +### APIDiscovery + +Types: + +```python +from gcore.types.waap.domains import WaapAPIDiscoverySettings, WaapAPIScanResult, WaapTaskID +``` + +Methods: + +- client.waap.domains.api_discovery.get_scan_result(scan_id, \*, domain_id) -> WaapAPIScanResult +- client.waap.domains.api_discovery.get_settings(domain_id) -> WaapAPIDiscoverySettings +- client.waap.domains.api_discovery.list_scan_results(domain_id, \*\*params) -> SyncOffsetPage[WaapAPIScanResult] +- client.waap.domains.api_discovery.scan_openapi(domain_id) -> WaapTaskID +- client.waap.domains.api_discovery.update_settings(domain_id, \*\*params) -> WaapAPIDiscoverySettings +- client.waap.domains.api_discovery.upload_openapi(domain_id, \*\*params) -> WaapTaskID + +### Insights + +Types: + +```python +from gcore.types.waap.domains import WaapInsight +``` + +Methods: + +- client.waap.domains.insights.list(domain_id, \*\*params) -> SyncOffsetPage[WaapInsight] +- client.waap.domains.insights.get(insight_id, \*, domain_id) -> WaapInsight +- client.waap.domains.insights.replace(insight_id, \*, domain_id, \*\*params) -> WaapInsight + +### InsightSilences + +Types: + +```python +from gcore.types.waap.domains import WaapInsightSilence +``` + +Methods: + +- client.waap.domains.insight_silences.create(domain_id, \*\*params) -> WaapInsightSilence +- client.waap.domains.insight_silences.update(silence_id, \*, domain_id, \*\*params) -> WaapInsightSilence +- client.waap.domains.insight_silences.list(domain_id, \*\*params) -> SyncOffsetPage[WaapInsightSilence] +- client.waap.domains.insight_silences.delete(silence_id, \*, domain_id) -> None +- client.waap.domains.insight_silences.get(silence_id, \*, domain_id) -> WaapInsightSilence + +### Statistics + +Types: + +```python +from gcore.types.waap.domains import ( + WaapBlockedStatistics, + WaapCountStatistics, + WaapDDOSAttack, + WaapDDOSInfo, + WaapEventStatistics, + WaapRequestDetails, + WaapRequestSummary, + WaapTrafficMetrics, + StatisticGetTrafficSeriesResponse, +) +``` + +Methods: + +- client.waap.domains.statistics.get_ddos_attacks(domain_id, \*\*params) -> SyncOffsetPage[WaapDDOSAttack] +- client.waap.domains.statistics.get_ddos_info(domain_id, \*\*params) -> SyncOffsetPage[WaapDDOSInfo] +- client.waap.domains.statistics.get_events_aggregated(domain_id, \*\*params) -> WaapEventStatistics +- client.waap.domains.statistics.get_request_details(request_id, \*, domain_id) -> WaapRequestDetails +- client.waap.domains.statistics.get_requests_series(domain_id, \*\*params) -> SyncOffsetPage[WaapRequestSummary] +- client.waap.domains.statistics.get_traffic_series(domain_id, \*\*params) -> StatisticGetTrafficSeriesResponse + +### CustomRules + +Types: + +```python +from gcore.types.waap.domains import WaapCustomRule +``` + +Methods: + +- client.waap.domains.custom_rules.create(domain_id, \*\*params) -> WaapCustomRule +- client.waap.domains.custom_rules.update(rule_id, \*, domain_id, \*\*params) -> None +- client.waap.domains.custom_rules.list(domain_id, \*\*params) -> SyncOffsetPage[WaapCustomRule] +- client.waap.domains.custom_rules.delete(rule_id, \*, domain_id) -> None +- client.waap.domains.custom_rules.delete_multiple(domain_id, \*\*params) -> None +- client.waap.domains.custom_rules.get(rule_id, \*, domain_id) -> WaapCustomRule +- client.waap.domains.custom_rules.toggle(action, \*, domain_id, rule_id) -> None + +### FirewallRules + +Types: + +```python +from gcore.types.waap.domains import WaapFirewallRule +``` + +Methods: + +- client.waap.domains.firewall_rules.create(domain_id, \*\*params) -> WaapFirewallRule +- client.waap.domains.firewall_rules.update(rule_id, \*, domain_id, \*\*params) -> None +- client.waap.domains.firewall_rules.list(domain_id, \*\*params) -> SyncOffsetPage[WaapFirewallRule] +- client.waap.domains.firewall_rules.delete(rule_id, \*, domain_id) -> None +- client.waap.domains.firewall_rules.delete_multiple(domain_id, \*\*params) -> None +- client.waap.domains.firewall_rules.get(rule_id, \*, domain_id) -> WaapFirewallRule +- client.waap.domains.firewall_rules.toggle(action, \*, domain_id, rule_id) -> None + +### AdvancedRules + +Types: + +```python +from gcore.types.waap.domains import WaapAdvancedRule +``` + +Methods: + +- client.waap.domains.advanced_rules.create(domain_id, \*\*params) -> WaapAdvancedRule +- client.waap.domains.advanced_rules.update(rule_id, \*, domain_id, \*\*params) -> None +- client.waap.domains.advanced_rules.list(domain_id, \*\*params) -> SyncOffsetPage[WaapAdvancedRule] +- client.waap.domains.advanced_rules.delete(rule_id, \*, domain_id) -> None +- client.waap.domains.advanced_rules.get(rule_id, \*, domain_id) -> WaapAdvancedRule +- client.waap.domains.advanced_rules.toggle(action, \*, domain_id, rule_id) -> None + +## CustomPageSets + +Types: + +```python +from gcore.types.waap import WaapCustomPagePreview, WaapCustomPageSet +``` + +Methods: + +- client.waap.custom_page_sets.create(\*\*params) -> WaapCustomPageSet +- client.waap.custom_page_sets.update(set_id, \*\*params) -> None +- client.waap.custom_page_sets.list(\*\*params) -> SyncOffsetPage[WaapCustomPageSet] +- client.waap.custom_page_sets.delete(set_id) -> None +- client.waap.custom_page_sets.get(set_id) -> WaapCustomPageSet +- client.waap.custom_page_sets.preview(\*\*params) -> WaapCustomPagePreview + +## AdvancedRules + +Types: + +```python +from gcore.types.waap import WaapAdvancedRuleDescriptor, WaapAdvancedRuleDescriptorList +``` + +Methods: + +- client.waap.advanced_rules.list() -> WaapAdvancedRuleDescriptorList + +## Tags + +Types: + +```python +from gcore.types.waap import WaapTag +``` + +Methods: + +- client.waap.tags.list(\*\*params) -> SyncOffsetPage[WaapTag] + +## Organizations + +Types: + +```python +from gcore.types.waap import WaapOrganization +``` + +Methods: + +- client.waap.organizations.list(\*\*params) -> SyncOffsetPage[WaapOrganization] + +## Insights + +Types: + +```python +from gcore.types.waap import WaapInsightType +``` + +Methods: + +- client.waap.insights.list_types(\*\*params) -> SyncOffsetPage[WaapInsightType] + +## IPInfo + +Types: + +```python +from gcore.types.waap import ( + WaapIPCountryAttack, + WaapIPDDOSInfoModel, + WaapIPInfo, + WaapRuleBlockedRequests, + WaapTimeSeriesAttack, + WaapTopSession, + WaapTopURL, + WaapTopUserAgent, + IPInfoGetAttackTimeSeriesResponse, + IPInfoGetBlockedRequestsResponse, + IPInfoGetTopURLsResponse, + IPInfoGetTopUserAgentsResponse, + IPInfoGetTopUserSessionsResponse, + IPInfoListAttackedCountriesResponse, +) +``` + +Methods: + +- client.waap.ip_info.get_attack_time_series(\*\*params) -> IPInfoGetAttackTimeSeriesResponse +- client.waap.ip_info.get_blocked_requests(\*\*params) -> IPInfoGetBlockedRequestsResponse +- client.waap.ip_info.get_ddos_attack_series(\*\*params) -> WaapIPDDOSInfoModel +- client.waap.ip_info.get_ip_info(\*\*params) -> WaapIPInfo +- client.waap.ip_info.get_top_urls(\*\*params) -> IPInfoGetTopURLsResponse +- client.waap.ip_info.get_top_user_agents(\*\*params) -> IPInfoGetTopUserAgentsResponse +- client.waap.ip_info.get_top_user_sessions(\*\*params) -> IPInfoGetTopUserSessionsResponse +- client.waap.ip_info.list_attacked_countries(\*\*params) -> IPInfoListAttackedCountriesResponse + +### Metrics + +Types: + +```python +from gcore.types.waap.ip_info import WaapIPInfoCounts +``` + +Methods: + +- client.waap.ip_info.metrics.list(\*\*params) -> WaapIPInfoCounts From 329f548a5aaf9d012af3b0cc4eb73a124ec1a6df Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 07:49:04 +0000 Subject: [PATCH 7/9] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 0d8ddfe6..6cbd581b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 645 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-8c31abd1135e0eac90290da5a160e341a0d09ca3ca62191a13f079a0f958c0e3.yml openapi_spec_hash: 3506ce6ee4d6f2057e02e656557ada57 -config_hash: 841ecfe67afa779a3954fe8800ecb132 +config_hash: bc578a7de14c42e33b7d4bd4502218f2 From d6b782c24f6534edc3c2013d644e0d5f9fdffac5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 10:22:21 +0000 Subject: [PATCH 8/9] feat(api): aggregated API specs update --- .stats.yml | 4 +- .../resources/cdn/logs_uploader/policies.py | 60 +++++++++++++++++++ .../cdn/logs_uploader/logs_uploader_policy.py | 11 ++++ .../cdn/logs_uploader/policy_create_params.py | 11 ++++ .../logs_uploader/policy_replace_params.py | 11 ++++ .../cdn/logs_uploader/policy_update_params.py | 11 ++++ .../cdn/logs_uploader/test_policies.py | 6 ++ 7 files changed, 112 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6cbd581b..fae1a1cb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 645 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-8c31abd1135e0eac90290da5a160e341a0d09ca3ca62191a13f079a0f958c0e3.yml -openapi_spec_hash: 3506ce6ee4d6f2057e02e656557ada57 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-9259165aabf370bac0e114d6934e471a5ac10c13bbd4bb8e3a868ab3ac04c1b0.yml +openapi_spec_hash: ae218d74dd0778c09d4ea5f932519e56 config_hash: bc578a7de14c42e33b7d4bd4502218f2 diff --git a/src/gcore/resources/cdn/logs_uploader/policies.py b/src/gcore/resources/cdn/logs_uploader/policies.py index a6d933fb..e4d15912 100644 --- a/src/gcore/resources/cdn/logs_uploader/policies.py +++ b/src/gcore/resources/cdn/logs_uploader/policies.py @@ -64,6 +64,7 @@ def create( format_type: Literal["json", ""] | Omit = omit, include_empty_logs: bool | Omit = omit, include_shield_logs: bool | Omit = omit, + log_sample_rate: float | Omit = omit, name: str | Omit = omit, retry_interval_minutes: int | Omit = omit, rotate_interval_minutes: int | Omit = omit, @@ -116,6 +117,14 @@ def create( include_shield_logs: Include logs from origin shielding in the upload. + log_sample_rate: Sampling rate for logs. A value between 0 and 1 that determines the fraction of + log entries to collect. + + - **1** - collect all logs (default). + - **0.5** - collect approximately 50% of logs. + - **0** - collect no logs (effectively disables logging without removing the + policy). + name: Name of the policy. retry_interval_minutes: Interval in minutes to retry failed uploads. @@ -152,6 +161,7 @@ def create( "format_type": format_type, "include_empty_logs": include_empty_logs, "include_shield_logs": include_shield_logs, + "log_sample_rate": log_sample_rate, "name": name, "retry_interval_minutes": retry_interval_minutes, "rotate_interval_minutes": rotate_interval_minutes, @@ -181,6 +191,7 @@ def update( format_type: Literal["json", ""] | Omit = omit, include_empty_logs: bool | Omit = omit, include_shield_logs: bool | Omit = omit, + log_sample_rate: float | Omit = omit, name: str | Omit = omit, retry_interval_minutes: int | Omit = omit, rotate_interval_minutes: int | Omit = omit, @@ -233,6 +244,14 @@ def update( include_shield_logs: Include logs from origin shielding in the upload. + log_sample_rate: Sampling rate for logs. A value between 0 and 1 that determines the fraction of + log entries to collect. + + - **1** - collect all logs (default). + - **0.5** - collect approximately 50% of logs. + - **0** - collect no logs (effectively disables logging without removing the + policy). + name: Name of the policy. retry_interval_minutes: Interval in minutes to retry failed uploads. @@ -269,6 +288,7 @@ def update( "format_type": format_type, "include_empty_logs": include_empty_logs, "include_shield_logs": include_shield_logs, + "log_sample_rate": log_sample_rate, "name": name, "retry_interval_minutes": retry_interval_minutes, "rotate_interval_minutes": rotate_interval_minutes, @@ -431,6 +451,7 @@ def replace( format_type: Literal["json", ""] | Omit = omit, include_empty_logs: bool | Omit = omit, include_shield_logs: bool | Omit = omit, + log_sample_rate: float | Omit = omit, name: str | Omit = omit, retry_interval_minutes: int | Omit = omit, rotate_interval_minutes: int | Omit = omit, @@ -483,6 +504,14 @@ def replace( include_shield_logs: Include logs from origin shielding in the upload. + log_sample_rate: Sampling rate for logs. A value between 0 and 1 that determines the fraction of + log entries to collect. + + - **1** - collect all logs (default). + - **0.5** - collect approximately 50% of logs. + - **0** - collect no logs (effectively disables logging without removing the + policy). + name: Name of the policy. retry_interval_minutes: Interval in minutes to retry failed uploads. @@ -519,6 +548,7 @@ def replace( "format_type": format_type, "include_empty_logs": include_empty_logs, "include_shield_logs": include_shield_logs, + "log_sample_rate": log_sample_rate, "name": name, "retry_interval_minutes": retry_interval_minutes, "rotate_interval_minutes": rotate_interval_minutes, @@ -568,6 +598,7 @@ async def create( format_type: Literal["json", ""] | Omit = omit, include_empty_logs: bool | Omit = omit, include_shield_logs: bool | Omit = omit, + log_sample_rate: float | Omit = omit, name: str | Omit = omit, retry_interval_minutes: int | Omit = omit, rotate_interval_minutes: int | Omit = omit, @@ -620,6 +651,14 @@ async def create( include_shield_logs: Include logs from origin shielding in the upload. + log_sample_rate: Sampling rate for logs. A value between 0 and 1 that determines the fraction of + log entries to collect. + + - **1** - collect all logs (default). + - **0.5** - collect approximately 50% of logs. + - **0** - collect no logs (effectively disables logging without removing the + policy). + name: Name of the policy. retry_interval_minutes: Interval in minutes to retry failed uploads. @@ -656,6 +695,7 @@ async def create( "format_type": format_type, "include_empty_logs": include_empty_logs, "include_shield_logs": include_shield_logs, + "log_sample_rate": log_sample_rate, "name": name, "retry_interval_minutes": retry_interval_minutes, "rotate_interval_minutes": rotate_interval_minutes, @@ -685,6 +725,7 @@ async def update( format_type: Literal["json", ""] | Omit = omit, include_empty_logs: bool | Omit = omit, include_shield_logs: bool | Omit = omit, + log_sample_rate: float | Omit = omit, name: str | Omit = omit, retry_interval_minutes: int | Omit = omit, rotate_interval_minutes: int | Omit = omit, @@ -737,6 +778,14 @@ async def update( include_shield_logs: Include logs from origin shielding in the upload. + log_sample_rate: Sampling rate for logs. A value between 0 and 1 that determines the fraction of + log entries to collect. + + - **1** - collect all logs (default). + - **0.5** - collect approximately 50% of logs. + - **0** - collect no logs (effectively disables logging without removing the + policy). + name: Name of the policy. retry_interval_minutes: Interval in minutes to retry failed uploads. @@ -773,6 +822,7 @@ async def update( "format_type": format_type, "include_empty_logs": include_empty_logs, "include_shield_logs": include_shield_logs, + "log_sample_rate": log_sample_rate, "name": name, "retry_interval_minutes": retry_interval_minutes, "rotate_interval_minutes": rotate_interval_minutes, @@ -935,6 +985,7 @@ async def replace( format_type: Literal["json", ""] | Omit = omit, include_empty_logs: bool | Omit = omit, include_shield_logs: bool | Omit = omit, + log_sample_rate: float | Omit = omit, name: str | Omit = omit, retry_interval_minutes: int | Omit = omit, rotate_interval_minutes: int | Omit = omit, @@ -987,6 +1038,14 @@ async def replace( include_shield_logs: Include logs from origin shielding in the upload. + log_sample_rate: Sampling rate for logs. A value between 0 and 1 that determines the fraction of + log entries to collect. + + - **1** - collect all logs (default). + - **0.5** - collect approximately 50% of logs. + - **0** - collect no logs (effectively disables logging without removing the + policy). + name: Name of the policy. retry_interval_minutes: Interval in minutes to retry failed uploads. @@ -1023,6 +1082,7 @@ async def replace( "format_type": format_type, "include_empty_logs": include_empty_logs, "include_shield_logs": include_shield_logs, + "log_sample_rate": log_sample_rate, "name": name, "retry_interval_minutes": retry_interval_minutes, "rotate_interval_minutes": rotate_interval_minutes, diff --git a/src/gcore/types/cdn/logs_uploader/logs_uploader_policy.py b/src/gcore/types/cdn/logs_uploader/logs_uploader_policy.py index dd6cfc5a..b71e8375 100644 --- a/src/gcore/types/cdn/logs_uploader/logs_uploader_policy.py +++ b/src/gcore/types/cdn/logs_uploader/logs_uploader_policy.py @@ -66,6 +66,17 @@ class LogsUploaderPolicy(BaseModel): include_shield_logs: Optional[bool] = None """Include logs from origin shielding in the upload.""" + log_sample_rate: Optional[float] = None + """Sampling rate for logs. + + A value between 0 and 1 that determines the fraction of log entries to collect. + + - **1** - collect all logs (default). + - **0.5** - collect approximately 50% of logs. + - **0** - collect no logs (effectively disables logging without removing the + policy). + """ + name: Optional[str] = None """Name of the policy.""" diff --git a/src/gcore/types/cdn/logs_uploader/policy_create_params.py b/src/gcore/types/cdn/logs_uploader/policy_create_params.py index 7179d9d1..4d25b99a 100644 --- a/src/gcore/types/cdn/logs_uploader/policy_create_params.py +++ b/src/gcore/types/cdn/logs_uploader/policy_create_params.py @@ -59,6 +59,17 @@ class PolicyCreateParams(TypedDict, total=False): include_shield_logs: bool """Include logs from origin shielding in the upload.""" + log_sample_rate: float + """Sampling rate for logs. + + A value between 0 and 1 that determines the fraction of log entries to collect. + + - **1** - collect all logs (default). + - **0.5** - collect approximately 50% of logs. + - **0** - collect no logs (effectively disables logging without removing the + policy). + """ + name: str """Name of the policy.""" diff --git a/src/gcore/types/cdn/logs_uploader/policy_replace_params.py b/src/gcore/types/cdn/logs_uploader/policy_replace_params.py index cc779079..1087c1f7 100644 --- a/src/gcore/types/cdn/logs_uploader/policy_replace_params.py +++ b/src/gcore/types/cdn/logs_uploader/policy_replace_params.py @@ -59,6 +59,17 @@ class PolicyReplaceParams(TypedDict, total=False): include_shield_logs: bool """Include logs from origin shielding in the upload.""" + log_sample_rate: float + """Sampling rate for logs. + + A value between 0 and 1 that determines the fraction of log entries to collect. + + - **1** - collect all logs (default). + - **0.5** - collect approximately 50% of logs. + - **0** - collect no logs (effectively disables logging without removing the + policy). + """ + name: str """Name of the policy.""" diff --git a/src/gcore/types/cdn/logs_uploader/policy_update_params.py b/src/gcore/types/cdn/logs_uploader/policy_update_params.py index 0e8ce99d..43ad9e99 100644 --- a/src/gcore/types/cdn/logs_uploader/policy_update_params.py +++ b/src/gcore/types/cdn/logs_uploader/policy_update_params.py @@ -59,6 +59,17 @@ class PolicyUpdateParams(TypedDict, total=False): include_shield_logs: bool """Include logs from origin shielding in the upload.""" + log_sample_rate: float + """Sampling rate for logs. + + A value between 0 and 1 that determines the fraction of log entries to collect. + + - **1** - collect all logs (default). + - **0.5** - collect approximately 50% of logs. + - **0** - collect no logs (effectively disables logging without removing the + policy). + """ + name: str """Name of the policy.""" diff --git a/tests/api_resources/cdn/logs_uploader/test_policies.py b/tests/api_resources/cdn/logs_uploader/test_policies.py index e197ed4c..249b03cc 100644 --- a/tests/api_resources/cdn/logs_uploader/test_policies.py +++ b/tests/api_resources/cdn/logs_uploader/test_policies.py @@ -39,6 +39,7 @@ def test_method_create_with_all_params(self, client: Gcore) -> None: format_type="json", include_empty_logs=True, include_shield_logs=True, + log_sample_rate=1, name="Policy", retry_interval_minutes=32, rotate_interval_minutes=32, @@ -89,6 +90,7 @@ def test_method_update_with_all_params(self, client: Gcore) -> None: format_type="json", include_empty_logs=True, include_shield_logs=True, + log_sample_rate=0.5, name="Policy", retry_interval_minutes=32, rotate_interval_minutes=32, @@ -263,6 +265,7 @@ def test_method_replace_with_all_params(self, client: Gcore) -> None: format_type="json", include_empty_logs=True, include_shield_logs=True, + log_sample_rate=1, name="Policy", retry_interval_minutes=32, rotate_interval_minutes=32, @@ -320,6 +323,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncGcore) -> format_type="json", include_empty_logs=True, include_shield_logs=True, + log_sample_rate=1, name="Policy", retry_interval_minutes=32, rotate_interval_minutes=32, @@ -370,6 +374,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncGcore) -> format_type="json", include_empty_logs=True, include_shield_logs=True, + log_sample_rate=0.5, name="Policy", retry_interval_minutes=32, rotate_interval_minutes=32, @@ -544,6 +549,7 @@ async def test_method_replace_with_all_params(self, async_client: AsyncGcore) -> format_type="json", include_empty_logs=True, include_shield_logs=True, + log_sample_rate=1, name="Policy", retry_interval_minutes=32, rotate_interval_minutes=32, From ce8ca57dca917fe87e825b2f0f116e5891ac0359 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 10:22:43 +0000 Subject: [PATCH 9/9] release: 0.33.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 15 +++++++++++++++ pyproject.toml | 2 +- src/gcore/_version.py | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f04d0896..57dc0c3d 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.32.0" + ".": "0.33.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a2a6a34..d90a52da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 0.33.0 (2026-02-13) + +Full Changelog: [v0.32.0...v0.33.0](https://github.com/G-Core/gcore-python/compare/v0.32.0...v0.33.0) + +### Features + +* **api:** aggregated API specs update ([d6b782c](https://github.com/G-Core/gcore-python/commit/d6b782c24f6534edc3c2013d644e0d5f9fdffac5)) +* **api:** revert(cdn): remove client_config subresource ([#207](https://github.com/G-Core/gcore-python/issues/207)) ([6bc418a](https://github.com/G-Core/gcore-python/commit/6bc418acdcfed56957b6c571ee2f6f29efa3663e)) +* **cdn:** add client_config subresource for terraform ([5359417](https://github.com/G-Core/gcore-python/commit/535941718238395cdfc524c0bc5b59b4109fd8d1)) + + +### Chores + +* format all `api.md` files ([6f7ec77](https://github.com/G-Core/gcore-python/commit/6f7ec778e65dce7a413619b85df204268f26d178)) + ## 0.32.0 (2026-02-11) Full Changelog: [v0.31.0...v0.32.0](https://github.com/G-Core/gcore-python/compare/v0.31.0...v0.32.0) diff --git a/pyproject.toml b/pyproject.toml index 98c0ae3c..3c044082 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "gcore" -version = "0.32.0" +version = "0.33.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 0211e7f4..f2c32ca0 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.32.0" # x-release-please-version +__version__ = "0.33.0" # x-release-please-version