gcore 0.15.0__py3-none-any.whl → 0.17.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of gcore might be problematic. Click here for more details.

Files changed (199) hide show
  1. gcore/_client.py +18 -8
  2. gcore/_version.py +1 -1
  3. gcore/resources/cdn/audit_log.py +4 -12
  4. gcore/resources/cdn/cdn.py +130 -39
  5. gcore/resources/cdn/certificates.py +16 -40
  6. gcore/resources/cdn/ip_ranges.py +4 -8
  7. gcore/resources/cdn/{logs/logs.py → logs.py} +13 -53
  8. gcore/resources/cdn/logs_uploader/configs.py +14 -42
  9. gcore/resources/cdn/logs_uploader/policies.py +14 -42
  10. gcore/resources/cdn/logs_uploader/targets.py +14 -42
  11. gcore/resources/cdn/metrics.py +2 -6
  12. gcore/resources/cdn/network_capacity.py +2 -6
  13. gcore/resources/cdn/origin_groups.py +12 -32
  14. gcore/resources/cdn/resources/resources.py +18 -46
  15. gcore/resources/cdn/resources/rules.py +12 -36
  16. gcore/resources/cdn/resources/shield.py +4 -12
  17. gcore/resources/cdn/rule_templates.py +12 -36
  18. gcore/resources/cdn/shields.py +2 -6
  19. gcore/resources/cdn/statistics.py +16 -40
  20. gcore/resources/cdn/trusted_ca_certificates.py +10 -30
  21. gcore/resources/cloud/audit_logs.py +2 -6
  22. gcore/resources/cloud/baremetal/flavors.py +2 -6
  23. gcore/resources/cloud/baremetal/images.py +2 -6
  24. gcore/resources/cloud/baremetal/servers.py +14 -18
  25. gcore/resources/cloud/billing_reservations.py +25 -208
  26. gcore/resources/cloud/cloud.py +18 -0
  27. gcore/resources/cloud/cost_reports.py +44 -62
  28. gcore/resources/cloud/file_shares/access_rules.py +6 -18
  29. gcore/resources/cloud/file_shares/file_shares.py +126 -42
  30. gcore/resources/cloud/floating_ips.py +22 -42
  31. gcore/resources/cloud/gpu_baremetal_clusters/flavors.py +2 -6
  32. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +30 -54
  33. gcore/resources/cloud/gpu_baremetal_clusters/images.py +16 -24
  34. gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +2 -6
  35. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +18 -42
  36. gcore/resources/cloud/inference/api_keys.py +10 -30
  37. gcore/resources/cloud/inference/applications/deployments.py +135 -155
  38. gcore/resources/cloud/inference/applications/templates.py +4 -12
  39. gcore/resources/cloud/inference/deployments/deployments.py +28 -48
  40. gcore/resources/cloud/inference/deployments/logs.py +2 -6
  41. gcore/resources/cloud/inference/flavors.py +4 -12
  42. gcore/resources/cloud/inference/inference.py +2 -6
  43. gcore/resources/cloud/inference/registry_credentials.py +10 -30
  44. gcore/resources/cloud/inference/secrets.py +10 -30
  45. gcore/resources/cloud/instances/flavors.py +2 -6
  46. gcore/resources/cloud/instances/images.py +24 -36
  47. gcore/resources/cloud/instances/instances.py +119 -94
  48. gcore/resources/cloud/instances/interfaces.py +18 -18
  49. gcore/resources/cloud/instances/metrics.py +2 -6
  50. gcore/resources/cloud/ip_ranges.py +2 -6
  51. gcore/resources/cloud/k8s/clusters/clusters.py +18 -54
  52. gcore/resources/cloud/k8s/clusters/nodes.py +4 -12
  53. gcore/resources/cloud/k8s/clusters/pools/nodes.py +4 -12
  54. gcore/resources/cloud/k8s/clusters/pools/pools.py +12 -36
  55. gcore/resources/cloud/k8s/flavors.py +2 -6
  56. gcore/resources/cloud/k8s/k8s.py +2 -6
  57. gcore/resources/cloud/load_balancers/flavors.py +2 -6
  58. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +22 -30
  59. gcore/resources/cloud/load_balancers/l7_policies/rules.py +22 -30
  60. gcore/resources/cloud/load_balancers/listeners.py +38 -46
  61. gcore/resources/cloud/load_balancers/load_balancers.py +509 -521
  62. gcore/resources/cloud/load_balancers/metrics.py +8 -12
  63. gcore/resources/cloud/load_balancers/pools/health_monitors.py +4 -12
  64. gcore/resources/cloud/load_balancers/pools/members.py +4 -12
  65. gcore/resources/cloud/load_balancers/pools/pools.py +38 -46
  66. gcore/resources/cloud/load_balancers/statuses.py +10 -18
  67. gcore/resources/cloud/networks/networks.py +18 -30
  68. gcore/resources/cloud/networks/routers.py +14 -42
  69. gcore/resources/cloud/networks/subnets.py +14 -30
  70. gcore/resources/cloud/placement_groups.py +16 -24
  71. gcore/resources/cloud/projects.py +117 -129
  72. gcore/resources/cloud/quotas/quotas.py +6 -18
  73. gcore/resources/cloud/quotas/requests.py +8 -24
  74. gcore/resources/cloud/regions.py +4 -8
  75. gcore/resources/cloud/registries/artifacts.py +4 -12
  76. gcore/resources/cloud/registries/registries.py +10 -30
  77. gcore/resources/cloud/registries/repositories.py +4 -12
  78. gcore/resources/cloud/registries/tags.py +2 -6
  79. gcore/resources/cloud/registries/users.py +12 -36
  80. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +28 -30
  81. gcore/resources/cloud/reserved_fixed_ips/vip.py +10 -30
  82. gcore/resources/cloud/secrets.py +12 -24
  83. gcore/resources/cloud/security_groups/rules.py +6 -18
  84. gcore/resources/cloud/security_groups/security_groups.py +14 -42
  85. gcore/resources/cloud/ssh_keys.py +10 -30
  86. gcore/resources/cloud/tasks.py +36 -33
  87. gcore/resources/cloud/usage_reports.py +18 -24
  88. gcore/resources/cloud/users/role_assignments.py +8 -24
  89. gcore/resources/cloud/volumes.py +47 -61
  90. gcore/resources/dns/dns.py +4 -8
  91. gcore/resources/dns/locations.py +8 -20
  92. gcore/resources/dns/metrics.py +2 -6
  93. gcore/resources/dns/pickers/pickers.py +2 -2
  94. gcore/resources/dns/pickers/presets.py +2 -6
  95. gcore/resources/dns/zones/dnssec.py +4 -12
  96. gcore/resources/dns/zones/rrsets.py +12 -36
  97. gcore/resources/dns/zones/zones.py +22 -58
  98. gcore/resources/fastedge/apps/apps.py +12 -28
  99. gcore/resources/fastedge/apps/logs.py +2 -6
  100. gcore/resources/fastedge/binaries.py +8 -24
  101. gcore/resources/fastedge/fastedge.py +2 -2
  102. gcore/resources/fastedge/kv_stores.py +10 -22
  103. gcore/resources/fastedge/secrets.py +12 -36
  104. gcore/resources/fastedge/statistics.py +4 -12
  105. gcore/resources/fastedge/templates.py +10 -30
  106. gcore/resources/iam/api_tokens.py +8 -24
  107. gcore/resources/iam/iam.py +2 -2
  108. gcore/resources/iam/users.py +10 -26
  109. gcore/resources/security/bgp_announces.py +4 -12
  110. gcore/resources/security/events.py +2 -6
  111. gcore/resources/security/profile_templates.py +2 -6
  112. gcore/resources/security/profiles.py +16 -40
  113. gcore/resources/storage/buckets/buckets.py +6 -18
  114. gcore/resources/storage/buckets/cors.py +4 -12
  115. gcore/resources/storage/buckets/lifecycle.py +4 -12
  116. gcore/resources/storage/buckets/policy.py +6 -18
  117. gcore/resources/storage/credentials.py +2 -6
  118. gcore/resources/storage/locations.py +2 -6
  119. gcore/resources/storage/statistics.py +4 -12
  120. gcore/resources/storage/storage.py +16 -48
  121. gcore/resources/streaming/ai_tasks.py +10 -18
  122. gcore/resources/streaming/broadcasts.py +12 -36
  123. gcore/resources/streaming/directories.py +10 -30
  124. gcore/resources/streaming/players.py +12 -28
  125. gcore/resources/streaming/playlists.py +12 -36
  126. gcore/resources/streaming/quality_sets.py +4 -12
  127. gcore/resources/streaming/restreams.py +10 -30
  128. gcore/resources/streaming/statistics.py +46 -138
  129. gcore/resources/streaming/streams/overlays.py +12 -36
  130. gcore/resources/streaming/streams/streams.py +20 -52
  131. gcore/resources/streaming/videos/subtitles.py +10 -30
  132. gcore/resources/streaming/videos/videos.py +16 -40
  133. gcore/resources/waap/advanced_rules.py +2 -6
  134. gcore/resources/waap/custom_page_sets.py +12 -36
  135. gcore/resources/waap/domains/advanced_rules.py +12 -36
  136. gcore/resources/waap/domains/api_discovery.py +12 -36
  137. gcore/resources/waap/domains/api_path_groups.py +2 -6
  138. gcore/resources/waap/domains/api_paths.py +10 -30
  139. gcore/resources/waap/domains/custom_rules.py +14 -42
  140. gcore/resources/waap/domains/domains.py +12 -32
  141. gcore/resources/waap/domains/firewall_rules.py +14 -42
  142. gcore/resources/waap/domains/insight_silences.py +10 -30
  143. gcore/resources/waap/domains/insights.py +6 -18
  144. gcore/resources/waap/domains/settings.py +4 -12
  145. gcore/resources/waap/domains/statistics.py +12 -36
  146. gcore/resources/waap/insights.py +2 -6
  147. gcore/resources/waap/ip_info/ip_info.py +16 -48
  148. gcore/resources/waap/ip_info/metrics.py +2 -6
  149. gcore/resources/waap/organizations.py +2 -6
  150. gcore/resources/waap/statistics.py +2 -6
  151. gcore/resources/waap/tags.py +2 -2
  152. gcore/resources/waap/waap.py +2 -2
  153. gcore/types/cdn/__init__.py +3 -0
  154. gcore/types/cdn/alibaba_regions.py +22 -0
  155. gcore/types/cdn/aws_regions.py +22 -0
  156. gcore/types/cdn/cdn_list_purge_statuses_response.py +10 -0
  157. gcore/types/cdn/cdn_resource.py +1 -1
  158. gcore/types/cdn/logs_aggregated_stats.py +1 -1
  159. gcore/types/cdn/resource_create_params.py +1 -1
  160. gcore/types/cdn/resource_replace_params.py +1 -1
  161. gcore/types/cdn/resource_update_params.py +1 -1
  162. gcore/types/cdn/resources/cdn_resource_rule.py +1 -1
  163. gcore/types/cdn/resources/rule_create_params.py +1 -1
  164. gcore/types/cdn/resources/rule_replace_params.py +1 -1
  165. gcore/types/cdn/resources/rule_update_params.py +1 -1
  166. gcore/types/cdn/rule_template.py +1 -1
  167. gcore/types/cdn/rule_template_create_params.py +1 -1
  168. gcore/types/cdn/rule_template_replace_params.py +1 -1
  169. gcore/types/cdn/rule_template_update_params.py +1 -1
  170. gcore/types/cloud/__init__.py +2 -1
  171. gcore/types/cloud/billing_reservation.py +52 -114
  172. gcore/types/cloud/billing_reservation_list_params.py +4 -42
  173. gcore/types/cloud/billing_reservations.py +16 -0
  174. gcore/types/cloud/cost_report_get_aggregated_params.py +2 -2
  175. gcore/types/cloud/cost_report_get_detailed_params.py +2 -2
  176. gcore/types/cloud/inference/applications/__init__.py +1 -1
  177. gcore/types/cloud/inference/applications/{deployment_patch_params.py → deployment_update_params.py} +2 -2
  178. gcore/types/cloud/instance_list_params.py +1 -1
  179. gcore/types/cloud/instance_update_params.py +31 -3
  180. gcore/types/cloud/load_balancer_create_params.py +1 -1
  181. gcore/types/cloud/load_balancer_listener_detail.py +1 -1
  182. gcore/types/cloud/load_balancers/listener_create_params.py +1 -1
  183. gcore/types/cloud/load_balancers/listener_list_params.py +1 -1
  184. gcore/types/cloud/load_balancers/pool_create_params.py +1 -1
  185. gcore/types/cloud/load_balancers/pool_list_params.py +1 -1
  186. gcore/types/cloud/{project_replace_params.py → project_update_params.py} +2 -2
  187. gcore/types/cloud/task_list_params.py +3 -3
  188. gcore/types/cloud/usage_report_get_params.py +2 -2
  189. gcore/types/security/profile_create_params.py +2 -2
  190. {gcore-0.15.0.dist-info → gcore-0.17.0.dist-info}/METADATA +2 -2
  191. {gcore-0.15.0.dist-info → gcore-0.17.0.dist-info}/RECORD +193 -195
  192. gcore/resources/cdn/logs/__init__.py +0 -33
  193. gcore/resources/cdn/logs/settings.py +0 -1081
  194. gcore/types/cdn/logs/__init__.py +0 -7
  195. gcore/types/cdn/logs/log_settings.py +0 -172
  196. gcore/types/cdn/logs/setting_create_params.py +0 -200
  197. gcore/types/cdn/logs/setting_update_params.py +0 -200
  198. {gcore-0.15.0.dist-info → gcore-0.17.0.dist-info}/WHEEL +0 -0
  199. {gcore-0.15.0.dist-info → gcore-0.17.0.dist-info}/licenses/LICENSE +0 -0
gcore/_client.py CHANGED
@@ -59,6 +59,7 @@ class Gcore(SyncAPIClient):
59
59
  cloud_project_id: int | None
60
60
  cloud_region_id: int | None
61
61
  cloud_polling_interval_seconds: int | None
62
+ cloud_polling_timeout_seconds: int | None
62
63
 
63
64
  def __init__(
64
65
  self,
@@ -67,6 +68,7 @@ class Gcore(SyncAPIClient):
67
68
  cloud_project_id: int | None = None,
68
69
  cloud_region_id: int | None = None,
69
70
  cloud_polling_interval_seconds: int | None = 3,
71
+ cloud_polling_timeout_seconds: int | None = 7200,
70
72
  base_url: str | httpx.URL | None = None,
71
73
  timeout: float | Timeout | None | NotGiven = not_given,
72
74
  max_retries: int = DEFAULT_MAX_RETRIES,
@@ -113,9 +115,12 @@ class Gcore(SyncAPIClient):
113
115
  cloud_polling_interval_seconds = 3
114
116
  self.cloud_polling_interval_seconds = cloud_polling_interval_seconds
115
117
 
118
+ if cloud_polling_timeout_seconds is None:
119
+ cloud_polling_timeout_seconds = 7200
120
+ self.cloud_polling_timeout_seconds = cloud_polling_timeout_seconds
121
+
116
122
  if base_url is None:
117
123
  base_url = os.environ.get("GCORE_BASE_URL")
118
- self._base_url_overridden = base_url is not None
119
124
  if base_url is None:
120
125
  base_url = f"https://api.gcore.com"
121
126
 
@@ -169,6 +174,7 @@ class Gcore(SyncAPIClient):
169
174
  cloud_project_id: int | None = None,
170
175
  cloud_region_id: int | None = None,
171
176
  cloud_polling_interval_seconds: int | None = None,
177
+ cloud_polling_timeout_seconds: int | None = None,
172
178
  base_url: str | httpx.URL | None = None,
173
179
  timeout: float | Timeout | None | NotGiven = not_given,
174
180
  http_client: httpx.Client | None = None,
@@ -201,11 +207,12 @@ class Gcore(SyncAPIClient):
201
207
  params = set_default_query
202
208
 
203
209
  http_client = http_client or self._client
204
- client = self.__class__(
210
+ return self.__class__(
205
211
  api_key=api_key or self.api_key,
206
212
  cloud_project_id=cloud_project_id or self.cloud_project_id,
207
213
  cloud_region_id=cloud_region_id or self.cloud_region_id,
208
214
  cloud_polling_interval_seconds=cloud_polling_interval_seconds or self.cloud_polling_interval_seconds,
215
+ cloud_polling_timeout_seconds=cloud_polling_timeout_seconds or self.cloud_polling_timeout_seconds,
209
216
  base_url=base_url or self.base_url,
210
217
  timeout=self.timeout if isinstance(timeout, NotGiven) else timeout,
211
218
  http_client=http_client,
@@ -214,8 +221,6 @@ class Gcore(SyncAPIClient):
214
221
  default_query=params,
215
222
  **_extra_kwargs,
216
223
  )
217
- client._base_url_overridden = self._base_url_overridden or base_url is not None
218
- return client
219
224
 
220
225
  # Alias for `copy` for nicer inline usage, e.g.
221
226
  # client.with_options(timeout=10).foo.create(...)
@@ -291,6 +296,7 @@ class AsyncGcore(AsyncAPIClient):
291
296
  cloud_project_id: int | None
292
297
  cloud_region_id: int | None
293
298
  cloud_polling_interval_seconds: int | None
299
+ cloud_polling_timeout_seconds: int | None
294
300
 
295
301
  def __init__(
296
302
  self,
@@ -299,6 +305,7 @@ class AsyncGcore(AsyncAPIClient):
299
305
  cloud_project_id: int | None = None,
300
306
  cloud_region_id: int | None = None,
301
307
  cloud_polling_interval_seconds: int | None = 3,
308
+ cloud_polling_timeout_seconds: int | None = 7200,
302
309
  base_url: str | httpx.URL | None = None,
303
310
  timeout: float | Timeout | None | NotGiven = not_given,
304
311
  max_retries: int = DEFAULT_MAX_RETRIES,
@@ -345,9 +352,12 @@ class AsyncGcore(AsyncAPIClient):
345
352
  cloud_polling_interval_seconds = 3
346
353
  self.cloud_polling_interval_seconds = cloud_polling_interval_seconds
347
354
 
355
+ if cloud_polling_timeout_seconds is None:
356
+ cloud_polling_timeout_seconds = 7200
357
+ self.cloud_polling_timeout_seconds = cloud_polling_timeout_seconds
358
+
348
359
  if base_url is None:
349
360
  base_url = os.environ.get("GCORE_BASE_URL")
350
- self._base_url_overridden = base_url is not None
351
361
  if base_url is None:
352
362
  base_url = f"https://api.gcore.com"
353
363
 
@@ -401,6 +411,7 @@ class AsyncGcore(AsyncAPIClient):
401
411
  cloud_project_id: int | None = None,
402
412
  cloud_region_id: int | None = None,
403
413
  cloud_polling_interval_seconds: int | None = None,
414
+ cloud_polling_timeout_seconds: int | None = None,
404
415
  base_url: str | httpx.URL | None = None,
405
416
  timeout: float | Timeout | None | NotGiven = not_given,
406
417
  http_client: httpx.AsyncClient | None = None,
@@ -433,11 +444,12 @@ class AsyncGcore(AsyncAPIClient):
433
444
  params = set_default_query
434
445
 
435
446
  http_client = http_client or self._client
436
- client = self.__class__(
447
+ return self.__class__(
437
448
  api_key=api_key or self.api_key,
438
449
  cloud_project_id=cloud_project_id or self.cloud_project_id,
439
450
  cloud_region_id=cloud_region_id or self.cloud_region_id,
440
451
  cloud_polling_interval_seconds=cloud_polling_interval_seconds or self.cloud_polling_interval_seconds,
452
+ cloud_polling_timeout_seconds=cloud_polling_timeout_seconds or self.cloud_polling_timeout_seconds,
441
453
  base_url=base_url or self.base_url,
442
454
  timeout=self.timeout if isinstance(timeout, NotGiven) else timeout,
443
455
  http_client=http_client,
@@ -446,8 +458,6 @@ class AsyncGcore(AsyncAPIClient):
446
458
  default_query=params,
447
459
  **_extra_kwargs,
448
460
  )
449
- client._base_url_overridden = self._base_url_overridden or base_url is not None
450
- return client
451
461
 
452
462
  # Alias for `copy` for nicer inline usage, e.g.
453
463
  # client.with_options(timeout=10).foo.create(...)
gcore/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "gcore"
4
- __version__ = "0.15.0" # x-release-please-version
4
+ __version__ = "0.17.0" # x-release-please-version
@@ -125,9 +125,7 @@ class AuditLogResource(SyncAPIResource):
125
125
  timeout: Override the client-level default timeout for this request, in seconds
126
126
  """
127
127
  return self._get_api_list(
128
- "/cdn/activity_log/requests"
129
- if self._client._base_url_overridden
130
- else "https://api.gcore.com//cdn/activity_log/requests",
128
+ "/cdn/activity_log/requests",
131
129
  page=SyncOffsetPage[CdnAuditLogEntry],
132
130
  options=make_request_options(
133
131
  extra_headers=extra_headers,
@@ -180,9 +178,7 @@ class AuditLogResource(SyncAPIResource):
180
178
  timeout: Override the client-level default timeout for this request, in seconds
181
179
  """
182
180
  return self._get(
183
- f"/cdn/activity_log/requests/{log_id}"
184
- if self._client._base_url_overridden
185
- else f"https://api.gcore.com//cdn/activity_log/requests/{log_id}",
181
+ f"/cdn/activity_log/requests/{log_id}",
186
182
  options=make_request_options(
187
183
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
188
184
  ),
@@ -293,9 +289,7 @@ class AsyncAuditLogResource(AsyncAPIResource):
293
289
  timeout: Override the client-level default timeout for this request, in seconds
294
290
  """
295
291
  return self._get_api_list(
296
- "/cdn/activity_log/requests"
297
- if self._client._base_url_overridden
298
- else "https://api.gcore.com//cdn/activity_log/requests",
292
+ "/cdn/activity_log/requests",
299
293
  page=AsyncOffsetPage[CdnAuditLogEntry],
300
294
  options=make_request_options(
301
295
  extra_headers=extra_headers,
@@ -348,9 +342,7 @@ class AsyncAuditLogResource(AsyncAPIResource):
348
342
  timeout: Override the client-level default timeout for this request, in seconds
349
343
  """
350
344
  return await self._get(
351
- f"/cdn/activity_log/requests/{log_id}"
352
- if self._client._base_url_overridden
353
- else f"https://api.gcore.com//cdn/activity_log/requests/{log_id}",
345
+ f"/cdn/activity_log/requests/{log_id}",
354
346
  options=make_request_options(
355
347
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
356
348
  ),
@@ -4,6 +4,14 @@ from __future__ import annotations
4
4
 
5
5
  import httpx
6
6
 
7
+ from .logs import (
8
+ LogsResource,
9
+ AsyncLogsResource,
10
+ LogsResourceWithRawResponse,
11
+ AsyncLogsResourceWithRawResponse,
12
+ LogsResourceWithStreamingResponse,
13
+ AsyncLogsResourceWithStreamingResponse,
14
+ )
7
15
  from .metrics import (
8
16
  MetricsResource,
9
17
  AsyncMetricsResource,
@@ -39,14 +47,6 @@ from .ip_ranges import (
39
47
  IPRangesResourceWithStreamingResponse,
40
48
  AsyncIPRangesResourceWithStreamingResponse,
41
49
  )
42
- from .logs.logs import (
43
- LogsResource,
44
- AsyncLogsResource,
45
- LogsResourceWithRawResponse,
46
- AsyncLogsResourceWithRawResponse,
47
- LogsResourceWithStreamingResponse,
48
- AsyncLogsResourceWithStreamingResponse,
49
- )
50
50
  from .statistics import (
51
51
  StatisticsResource,
52
52
  AsyncStatisticsResource,
@@ -63,7 +63,6 @@ from ..._response import (
63
63
  async_to_streamed_response_wrapper,
64
64
  )
65
65
  from ...types.cdn import cdn_update_account_params, cdn_list_purge_statuses_params
66
- from ...pagination import SyncOffsetPageCdn, AsyncOffsetPageCdn
67
66
  from .certificates import (
68
67
  CertificatesResource,
69
68
  AsyncCertificatesResource,
@@ -80,7 +79,7 @@ from .origin_groups import (
80
79
  OriginGroupsResourceWithStreamingResponse,
81
80
  AsyncOriginGroupsResourceWithStreamingResponse,
82
81
  )
83
- from ..._base_client import AsyncPaginator, make_request_options
82
+ from ..._base_client import make_request_options
84
83
  from .rule_templates import (
85
84
  RuleTemplatesResource,
86
85
  AsyncRuleTemplatesResource,
@@ -105,6 +104,7 @@ from .resources.resources import (
105
104
  ResourcesResourceWithStreamingResponse,
106
105
  AsyncResourcesResourceWithStreamingResponse,
107
106
  )
107
+ from ...types.cdn.aws_regions import AwsRegions
108
108
  from ...types.cdn.cdn_account import CdnAccount
109
109
  from .trusted_ca_certificates import (
110
110
  TrustedCaCertificatesResource,
@@ -114,7 +114,7 @@ from .trusted_ca_certificates import (
114
114
  TrustedCaCertificatesResourceWithStreamingResponse,
115
115
  AsyncTrustedCaCertificatesResourceWithStreamingResponse,
116
116
  )
117
- from ...types.cdn.purge_status import PurgeStatus
117
+ from ...types.cdn.alibaba_regions import AlibabaRegions
118
118
  from .logs_uploader.logs_uploader import (
119
119
  LogsUploaderResource,
120
120
  AsyncLogsUploaderResource,
@@ -125,6 +125,7 @@ from .logs_uploader.logs_uploader import (
125
125
  )
126
126
  from ...types.cdn.cdn_account_limits import CdnAccountLimits
127
127
  from ...types.cdn.cdn_available_features import CdnAvailableFeatures
128
+ from ...types.cdn.cdn_list_purge_statuses_response import CdnListPurgeStatusesResponse
128
129
 
129
130
  __all__ = ["CdnResource", "AsyncCdnResource"]
130
131
 
@@ -213,9 +214,7 @@ class CdnResource(SyncAPIResource):
213
214
  ) -> CdnAccountLimits:
214
215
  """Get information about CDN service limits."""
215
216
  return self._get(
216
- "/cdn/clients/me/limits"
217
- if self._client._base_url_overridden
218
- else "https://api.gcore.com//cdn/clients/me/limits",
217
+ "/cdn/clients/me/limits",
219
218
  options=make_request_options(
220
219
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
221
220
  ),
@@ -234,7 +233,7 @@ class CdnResource(SyncAPIResource):
234
233
  ) -> CdnAccount:
235
234
  """Get information about CDN service."""
236
235
  return self._get(
237
- "/cdn/clients/me" if self._client._base_url_overridden else "https://api.gcore.com//cdn/clients/me",
236
+ "/cdn/clients/me",
238
237
  options=make_request_options(
239
238
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
240
239
  ),
@@ -253,15 +252,51 @@ class CdnResource(SyncAPIResource):
253
252
  ) -> CdnAvailableFeatures:
254
253
  """Get information about available CDN features."""
255
254
  return self._get(
256
- "/cdn/clients/me/features"
257
- if self._client._base_url_overridden
258
- else "https://api.gcore.com//cdn/clients/me/features",
255
+ "/cdn/clients/me/features",
259
256
  options=make_request_options(
260
257
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
261
258
  ),
262
259
  cast_to=CdnAvailableFeatures,
263
260
  )
264
261
 
262
+ def list_alibaba_regions(
263
+ self,
264
+ *,
265
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
266
+ # The extra values given here take precedence over values defined on the client or passed to this method.
267
+ extra_headers: Headers | None = None,
268
+ extra_query: Query | None = None,
269
+ extra_body: Body | None = None,
270
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
271
+ ) -> AlibabaRegions:
272
+ """Get the list of Alibaba Cloud regions."""
273
+ return self._get(
274
+ "/cdn/alibaba_regions",
275
+ options=make_request_options(
276
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
277
+ ),
278
+ cast_to=AlibabaRegions,
279
+ )
280
+
281
+ def list_aws_regions(
282
+ self,
283
+ *,
284
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
285
+ # The extra values given here take precedence over values defined on the client or passed to this method.
286
+ extra_headers: Headers | None = None,
287
+ extra_query: Query | None = None,
288
+ extra_body: Body | None = None,
289
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
290
+ ) -> AwsRegions:
291
+ """Get the list of Amazon AWS regions."""
292
+ return self._get(
293
+ "/cdn/aws_regions",
294
+ options=make_request_options(
295
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
296
+ ),
297
+ cast_to=AwsRegions,
298
+ )
299
+
265
300
  def list_purge_statuses(
266
301
  self,
267
302
  *,
@@ -278,7 +313,7 @@ class CdnResource(SyncAPIResource):
278
313
  extra_query: Query | None = None,
279
314
  extra_body: Body | None = None,
280
315
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
281
- ) -> SyncOffsetPageCdn[PurgeStatus]:
316
+ ) -> CdnListPurgeStatusesResponse:
282
317
  """
283
318
  Get purges history.
284
319
 
@@ -334,9 +369,8 @@ class CdnResource(SyncAPIResource):
334
369
 
335
370
  timeout: Override the client-level default timeout for this request, in seconds
336
371
  """
337
- return self._get_api_list(
338
- "/cdn/purge_statuses" if self._client._base_url_overridden else "https://api.gcore.com//cdn/purge_statuses",
339
- page=SyncOffsetPageCdn[PurgeStatus],
372
+ return self._get(
373
+ "/cdn/purge_statuses",
340
374
  options=make_request_options(
341
375
  extra_headers=extra_headers,
342
376
  extra_query=extra_query,
@@ -355,7 +389,7 @@ class CdnResource(SyncAPIResource):
355
389
  cdn_list_purge_statuses_params.CdnListPurgeStatusesParams,
356
390
  ),
357
391
  ),
358
- model=PurgeStatus,
392
+ cast_to=CdnListPurgeStatusesResponse,
359
393
  )
360
394
 
361
395
  def update_account(
@@ -386,7 +420,7 @@ class CdnResource(SyncAPIResource):
386
420
  timeout: Override the client-level default timeout for this request, in seconds
387
421
  """
388
422
  return self._patch(
389
- "/cdn/clients/me" if self._client._base_url_overridden else "https://api.gcore.com//cdn/clients/me",
423
+ "/cdn/clients/me",
390
424
  body=maybe_transform(
391
425
  {"utilization_level": utilization_level}, cdn_update_account_params.CdnUpdateAccountParams
392
426
  ),
@@ -481,9 +515,7 @@ class AsyncCdnResource(AsyncAPIResource):
481
515
  ) -> CdnAccountLimits:
482
516
  """Get information about CDN service limits."""
483
517
  return await self._get(
484
- "/cdn/clients/me/limits"
485
- if self._client._base_url_overridden
486
- else "https://api.gcore.com//cdn/clients/me/limits",
518
+ "/cdn/clients/me/limits",
487
519
  options=make_request_options(
488
520
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
489
521
  ),
@@ -502,7 +534,7 @@ class AsyncCdnResource(AsyncAPIResource):
502
534
  ) -> CdnAccount:
503
535
  """Get information about CDN service."""
504
536
  return await self._get(
505
- "/cdn/clients/me" if self._client._base_url_overridden else "https://api.gcore.com//cdn/clients/me",
537
+ "/cdn/clients/me",
506
538
  options=make_request_options(
507
539
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
508
540
  ),
@@ -521,16 +553,52 @@ class AsyncCdnResource(AsyncAPIResource):
521
553
  ) -> CdnAvailableFeatures:
522
554
  """Get information about available CDN features."""
523
555
  return await self._get(
524
- "/cdn/clients/me/features"
525
- if self._client._base_url_overridden
526
- else "https://api.gcore.com//cdn/clients/me/features",
556
+ "/cdn/clients/me/features",
527
557
  options=make_request_options(
528
558
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
529
559
  ),
530
560
  cast_to=CdnAvailableFeatures,
531
561
  )
532
562
 
533
- def list_purge_statuses(
563
+ async def list_alibaba_regions(
564
+ self,
565
+ *,
566
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
567
+ # The extra values given here take precedence over values defined on the client or passed to this method.
568
+ extra_headers: Headers | None = None,
569
+ extra_query: Query | None = None,
570
+ extra_body: Body | None = None,
571
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
572
+ ) -> AlibabaRegions:
573
+ """Get the list of Alibaba Cloud regions."""
574
+ return await self._get(
575
+ "/cdn/alibaba_regions",
576
+ options=make_request_options(
577
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
578
+ ),
579
+ cast_to=AlibabaRegions,
580
+ )
581
+
582
+ async def list_aws_regions(
583
+ self,
584
+ *,
585
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
586
+ # The extra values given here take precedence over values defined on the client or passed to this method.
587
+ extra_headers: Headers | None = None,
588
+ extra_query: Query | None = None,
589
+ extra_body: Body | None = None,
590
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
591
+ ) -> AwsRegions:
592
+ """Get the list of Amazon AWS regions."""
593
+ return await self._get(
594
+ "/cdn/aws_regions",
595
+ options=make_request_options(
596
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
597
+ ),
598
+ cast_to=AwsRegions,
599
+ )
600
+
601
+ async def list_purge_statuses(
534
602
  self,
535
603
  *,
536
604
  cname: str | Omit = omit,
@@ -546,7 +614,7 @@ class AsyncCdnResource(AsyncAPIResource):
546
614
  extra_query: Query | None = None,
547
615
  extra_body: Body | None = None,
548
616
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
549
- ) -> AsyncPaginator[PurgeStatus, AsyncOffsetPageCdn[PurgeStatus]]:
617
+ ) -> CdnListPurgeStatusesResponse:
550
618
  """
551
619
  Get purges history.
552
620
 
@@ -602,15 +670,14 @@ class AsyncCdnResource(AsyncAPIResource):
602
670
 
603
671
  timeout: Override the client-level default timeout for this request, in seconds
604
672
  """
605
- return self._get_api_list(
606
- "/cdn/purge_statuses" if self._client._base_url_overridden else "https://api.gcore.com//cdn/purge_statuses",
607
- page=AsyncOffsetPageCdn[PurgeStatus],
673
+ return await self._get(
674
+ "/cdn/purge_statuses",
608
675
  options=make_request_options(
609
676
  extra_headers=extra_headers,
610
677
  extra_query=extra_query,
611
678
  extra_body=extra_body,
612
679
  timeout=timeout,
613
- query=maybe_transform(
680
+ query=await async_maybe_transform(
614
681
  {
615
682
  "cname": cname,
616
683
  "from_created": from_created,
@@ -623,7 +690,7 @@ class AsyncCdnResource(AsyncAPIResource):
623
690
  cdn_list_purge_statuses_params.CdnListPurgeStatusesParams,
624
691
  ),
625
692
  ),
626
- model=PurgeStatus,
693
+ cast_to=CdnListPurgeStatusesResponse,
627
694
  )
628
695
 
629
696
  async def update_account(
@@ -654,7 +721,7 @@ class AsyncCdnResource(AsyncAPIResource):
654
721
  timeout: Override the client-level default timeout for this request, in seconds
655
722
  """
656
723
  return await self._patch(
657
- "/cdn/clients/me" if self._client._base_url_overridden else "https://api.gcore.com//cdn/clients/me",
724
+ "/cdn/clients/me",
658
725
  body=await async_maybe_transform(
659
726
  {"utilization_level": utilization_level}, cdn_update_account_params.CdnUpdateAccountParams
660
727
  ),
@@ -678,6 +745,12 @@ class CdnResourceWithRawResponse:
678
745
  self.get_available_features = to_raw_response_wrapper(
679
746
  cdn.get_available_features,
680
747
  )
748
+ self.list_alibaba_regions = to_raw_response_wrapper(
749
+ cdn.list_alibaba_regions,
750
+ )
751
+ self.list_aws_regions = to_raw_response_wrapper(
752
+ cdn.list_aws_regions,
753
+ )
681
754
  self.list_purge_statuses = to_raw_response_wrapper(
682
755
  cdn.list_purge_statuses,
683
756
  )
@@ -751,6 +824,12 @@ class AsyncCdnResourceWithRawResponse:
751
824
  self.get_available_features = async_to_raw_response_wrapper(
752
825
  cdn.get_available_features,
753
826
  )
827
+ self.list_alibaba_regions = async_to_raw_response_wrapper(
828
+ cdn.list_alibaba_regions,
829
+ )
830
+ self.list_aws_regions = async_to_raw_response_wrapper(
831
+ cdn.list_aws_regions,
832
+ )
754
833
  self.list_purge_statuses = async_to_raw_response_wrapper(
755
834
  cdn.list_purge_statuses,
756
835
  )
@@ -824,6 +903,12 @@ class CdnResourceWithStreamingResponse:
824
903
  self.get_available_features = to_streamed_response_wrapper(
825
904
  cdn.get_available_features,
826
905
  )
906
+ self.list_alibaba_regions = to_streamed_response_wrapper(
907
+ cdn.list_alibaba_regions,
908
+ )
909
+ self.list_aws_regions = to_streamed_response_wrapper(
910
+ cdn.list_aws_regions,
911
+ )
827
912
  self.list_purge_statuses = to_streamed_response_wrapper(
828
913
  cdn.list_purge_statuses,
829
914
  )
@@ -897,6 +982,12 @@ class AsyncCdnResourceWithStreamingResponse:
897
982
  self.get_available_features = async_to_streamed_response_wrapper(
898
983
  cdn.get_available_features,
899
984
  )
985
+ self.list_alibaba_regions = async_to_streamed_response_wrapper(
986
+ cdn.list_alibaba_regions,
987
+ )
988
+ self.list_aws_regions = async_to_streamed_response_wrapper(
989
+ cdn.list_aws_regions,
990
+ )
900
991
  self.list_purge_statuses = async_to_streamed_response_wrapper(
901
992
  cdn.list_purge_statuses,
902
993
  )