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
@@ -20,7 +20,6 @@ from ..._response import (
20
20
  async_to_streamed_response_wrapper,
21
21
  )
22
22
  from ...pagination import SyncOffsetPage, AsyncOffsetPage
23
- from ...lib.polling import extract_timeout_value
24
23
  from ...types.cloud import task_list_params, task_acknowledge_all_params
25
24
  from ..._base_client import AsyncPaginator, make_request_options
26
25
  from ...types.cloud.task import Task
@@ -53,6 +52,7 @@ class TasksResource(SyncAPIResource):
53
52
  task_id: str,
54
53
  *,
55
54
  polling_interval_seconds: int | Omit = omit,
55
+ polling_timeout_seconds: int | Omit = omit,
56
56
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
57
57
  # The extra values given here take precedence over values defined on the client or passed to this method.
58
58
  extra_headers: Headers | None = None,
@@ -65,16 +65,22 @@ class TasksResource(SyncAPIResource):
65
65
  # Ensure the polling interval is at least 1 second
66
66
  polling_interval_seconds = max(1, polling_interval_seconds)
67
67
 
68
- if not is_given(timeout):
69
- timeout = extract_timeout_value(self._client.timeout)
68
+ if not is_given(polling_timeout_seconds):
69
+ polling_timeout_seconds = cast(int, self._client.cloud_polling_timeout_seconds)
70
70
 
71
- end_time = time.time() + timeout
71
+ if polling_timeout_seconds <= polling_interval_seconds:
72
+ raise ValueError(
73
+ f"`polling_timeout_seconds` must be greater than `polling_interval_seconds` ({polling_interval_seconds})"
74
+ )
75
+
76
+ end_time = time.time() + polling_timeout_seconds
72
77
  while time.time() <= end_time:
73
78
  task = self.get(
74
79
  task_id,
75
80
  extra_headers=extra_headers,
76
81
  extra_query=extra_query,
77
82
  extra_body=extra_body,
83
+ timeout=timeout,
78
84
  )
79
85
  if task.state == "ERROR":
80
86
  raise ValueError(task.error or f"Task {task_id} failed")
@@ -178,9 +184,9 @@ class TasksResource(SyncAPIResource):
178
184
  '`suspend_vm`', '`sync_private_flavors`', '`update_ddos_profile`',
179
185
  '`update_inference_application`', '`update_inference_instance`',
180
186
  '`update_k8s_cluster_v2`', '`update_lbmetadata`',
181
- '`update_port_allowed_address_pairs`', '`update_tags_gpu_virtual_cluster`',
182
- '`upgrade_k8s_cluster_v2`', '`upscale_ai_cluster_gpu`',
183
- '`upscale_gpu_virtual_cluster`']
187
+ '`update_port_allowed_address_pairs`', '`update_sfs`',
188
+ '`update_tags_gpu_virtual_cluster`', '`upgrade_k8s_cluster_v2`',
189
+ '`upscale_ai_cluster_gpu`', '`upscale_gpu_virtual_cluster`']
184
190
 
185
191
  to_timestamp: ISO formatted datetime string. Filter the tasks by creation date less than or
186
192
  equal to `to_timestamp`
@@ -194,7 +200,7 @@ class TasksResource(SyncAPIResource):
194
200
  timeout: Override the client-level default timeout for this request, in seconds
195
201
  """
196
202
  return self._get_api_list(
197
- "/cloud/v1/tasks" if self._client._base_url_overridden else "https://api.gcore.com//cloud/v1/tasks",
203
+ "/cloud/v1/tasks",
198
204
  page=SyncOffsetPage[Task],
199
205
  options=make_request_options(
200
206
  extra_headers=extra_headers,
@@ -251,9 +257,7 @@ class TasksResource(SyncAPIResource):
251
257
  """
252
258
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
253
259
  return self._post(
254
- "/cloud/v1/tasks/acknowledge_all"
255
- if self._client._base_url_overridden
256
- else "https://api.gcore.com//cloud/v1/tasks/acknowledge_all",
260
+ "/cloud/v1/tasks/acknowledge_all",
257
261
  options=make_request_options(
258
262
  extra_headers=extra_headers,
259
263
  extra_query=extra_query,
@@ -298,9 +302,7 @@ class TasksResource(SyncAPIResource):
298
302
  if not task_id:
299
303
  raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}")
300
304
  return self._post(
301
- f"/cloud/v1/tasks/{task_id}/acknowledge"
302
- if self._client._base_url_overridden
303
- else f"https://api.gcore.com//cloud/v1/tasks/{task_id}/acknowledge",
305
+ f"/cloud/v1/tasks/{task_id}/acknowledge",
304
306
  options=make_request_options(
305
307
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
306
308
  ),
@@ -335,9 +337,7 @@ class TasksResource(SyncAPIResource):
335
337
  if not task_id:
336
338
  raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}")
337
339
  return self._get(
338
- f"/cloud/v1/tasks/{task_id}"
339
- if self._client._base_url_overridden
340
- else f"https://api.gcore.com//cloud/v1/tasks/{task_id}",
340
+ f"/cloud/v1/tasks/{task_id}",
341
341
  options=make_request_options(
342
342
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
343
343
  ),
@@ -370,6 +370,7 @@ class AsyncTasksResource(AsyncAPIResource):
370
370
  task_id: str,
371
371
  *,
372
372
  polling_interval_seconds: int | Omit = omit,
373
+ polling_timeout_seconds: int | Omit = omit,
373
374
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
374
375
  # The extra values given here take precedence over values defined on the client or passed to this method.
375
376
  extra_headers: Headers | None = None,
@@ -379,17 +380,25 @@ class AsyncTasksResource(AsyncAPIResource):
379
380
  ) -> Task:
380
381
  if not is_given(polling_interval_seconds):
381
382
  polling_interval_seconds = cast(int, self._client.cloud_polling_interval_seconds)
383
+ # Ensure the polling interval is at least 1 second
384
+ polling_interval_seconds = max(1, polling_interval_seconds)
385
+
386
+ if not is_given(polling_timeout_seconds):
387
+ polling_timeout_seconds = cast(int, self._client.cloud_polling_timeout_seconds)
382
388
 
383
- if not is_given(timeout):
384
- timeout = extract_timeout_value(self._client.timeout)
389
+ if polling_timeout_seconds <= polling_interval_seconds:
390
+ raise ValueError(
391
+ f"`polling_timeout_seconds` must be greater than `polling_interval_seconds` ({polling_interval_seconds})"
392
+ )
385
393
 
386
- end_time = time.time() + timeout
394
+ end_time = time.time() + polling_timeout_seconds
387
395
  while time.time() <= end_time:
388
396
  task = await self.get(
389
397
  task_id,
390
398
  extra_headers=extra_headers,
391
399
  extra_query=extra_query,
392
400
  extra_body=extra_body,
401
+ timeout=timeout,
393
402
  )
394
403
  if task.state == "ERROR":
395
404
  raise ValueError(task.error or f"Task {task_id} failed")
@@ -493,9 +502,9 @@ class AsyncTasksResource(AsyncAPIResource):
493
502
  '`suspend_vm`', '`sync_private_flavors`', '`update_ddos_profile`',
494
503
  '`update_inference_application`', '`update_inference_instance`',
495
504
  '`update_k8s_cluster_v2`', '`update_lbmetadata`',
496
- '`update_port_allowed_address_pairs`', '`update_tags_gpu_virtual_cluster`',
497
- '`upgrade_k8s_cluster_v2`', '`upscale_ai_cluster_gpu`',
498
- '`upscale_gpu_virtual_cluster`']
505
+ '`update_port_allowed_address_pairs`', '`update_sfs`',
506
+ '`update_tags_gpu_virtual_cluster`', '`upgrade_k8s_cluster_v2`',
507
+ '`upscale_ai_cluster_gpu`', '`upscale_gpu_virtual_cluster`']
499
508
 
500
509
  to_timestamp: ISO formatted datetime string. Filter the tasks by creation date less than or
501
510
  equal to `to_timestamp`
@@ -509,7 +518,7 @@ class AsyncTasksResource(AsyncAPIResource):
509
518
  timeout: Override the client-level default timeout for this request, in seconds
510
519
  """
511
520
  return self._get_api_list(
512
- "/cloud/v1/tasks" if self._client._base_url_overridden else "https://api.gcore.com//cloud/v1/tasks",
521
+ "/cloud/v1/tasks",
513
522
  page=AsyncOffsetPage[Task],
514
523
  options=make_request_options(
515
524
  extra_headers=extra_headers,
@@ -566,9 +575,7 @@ class AsyncTasksResource(AsyncAPIResource):
566
575
  """
567
576
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
568
577
  return await self._post(
569
- "/cloud/v1/tasks/acknowledge_all"
570
- if self._client._base_url_overridden
571
- else "https://api.gcore.com//cloud/v1/tasks/acknowledge_all",
578
+ "/cloud/v1/tasks/acknowledge_all",
572
579
  options=make_request_options(
573
580
  extra_headers=extra_headers,
574
581
  extra_query=extra_query,
@@ -613,9 +620,7 @@ class AsyncTasksResource(AsyncAPIResource):
613
620
  if not task_id:
614
621
  raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}")
615
622
  return await self._post(
616
- f"/cloud/v1/tasks/{task_id}/acknowledge"
617
- if self._client._base_url_overridden
618
- else f"https://api.gcore.com//cloud/v1/tasks/{task_id}/acknowledge",
623
+ f"/cloud/v1/tasks/{task_id}/acknowledge",
619
624
  options=make_request_options(
620
625
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
621
626
  ),
@@ -650,9 +655,7 @@ class AsyncTasksResource(AsyncAPIResource):
650
655
  if not task_id:
651
656
  raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}")
652
657
  return await self._get(
653
- f"/cloud/v1/tasks/{task_id}"
654
- if self._client._base_url_overridden
655
- else f"https://api.gcore.com//cloud/v1/tasks/{task_id}",
658
+ f"/cloud/v1/tasks/{task_id}",
656
659
  options=make_request_options(
657
660
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
658
661
  ),
@@ -95,21 +95,20 @@ class UsageReportsResource(SyncAPIResource):
95
95
  extra_body: Body | None = None,
96
96
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
97
97
  ) -> UsageReport:
98
- """Receiving data from the past hour might lead to incomplete statistics.
98
+ """Data from the past hour may not reflect the full set of statistics.
99
99
 
100
- For the
101
- most accurate data, we recommend accessing the statistics after at least one
102
- hour. Typically, updates are available within a 24-hour period, although the
103
- frequency can vary. Maintenance periods or other exceptions may cause delays,
104
- potentially extending beyond 24 hours until the servers are back online and the
105
- missing data is filled in.
100
+ For the most
101
+ complete and accurate results, we recommend accessing the data at least one hour
102
+ after the relevant time period. Updates are generally available within a 24-hour
103
+ window, though timing can vary. Scheduled maintenance or other exceptions may
104
+ occasionally cause delays beyond 24 hours.
106
105
 
107
106
  Args:
108
107
  time_from: The start date of the report period (ISO 8601). The report starts from the
109
- beginning of this day.
108
+ beginning of this day in UTC.
110
109
 
111
110
  time_to: The end date of the report period (ISO 8601). The report ends just before the
112
- beginning of this day.
111
+ beginning of this day in UTC.
113
112
 
114
113
  enable_last_day: Expenses for the last specified day are taken into account. As the default,
115
114
  False.
@@ -139,9 +138,7 @@ class UsageReportsResource(SyncAPIResource):
139
138
  timeout: Override the client-level default timeout for this request, in seconds
140
139
  """
141
140
  return self._post(
142
- "/cloud/v1/usage_report"
143
- if self._client._base_url_overridden
144
- else "https://api.gcore.com//cloud/v1/usage_report",
141
+ "/cloud/v1/usage_report",
145
142
  body=maybe_transform(
146
143
  {
147
144
  "time_from": time_from,
@@ -235,21 +232,20 @@ class AsyncUsageReportsResource(AsyncAPIResource):
235
232
  extra_body: Body | None = None,
236
233
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
237
234
  ) -> UsageReport:
238
- """Receiving data from the past hour might lead to incomplete statistics.
235
+ """Data from the past hour may not reflect the full set of statistics.
239
236
 
240
- For the
241
- most accurate data, we recommend accessing the statistics after at least one
242
- hour. Typically, updates are available within a 24-hour period, although the
243
- frequency can vary. Maintenance periods or other exceptions may cause delays,
244
- potentially extending beyond 24 hours until the servers are back online and the
245
- missing data is filled in.
237
+ For the most
238
+ complete and accurate results, we recommend accessing the data at least one hour
239
+ after the relevant time period. Updates are generally available within a 24-hour
240
+ window, though timing can vary. Scheduled maintenance or other exceptions may
241
+ occasionally cause delays beyond 24 hours.
246
242
 
247
243
  Args:
248
244
  time_from: The start date of the report period (ISO 8601). The report starts from the
249
- beginning of this day.
245
+ beginning of this day in UTC.
250
246
 
251
247
  time_to: The end date of the report period (ISO 8601). The report ends just before the
252
- beginning of this day.
248
+ beginning of this day in UTC.
253
249
 
254
250
  enable_last_day: Expenses for the last specified day are taken into account. As the default,
255
251
  False.
@@ -279,9 +275,7 @@ class AsyncUsageReportsResource(AsyncAPIResource):
279
275
  timeout: Override the client-level default timeout for this request, in seconds
280
276
  """
281
277
  return await self._post(
282
- "/cloud/v1/usage_report"
283
- if self._client._base_url_overridden
284
- else "https://api.gcore.com//cloud/v1/usage_report",
278
+ "/cloud/v1/usage_report",
285
279
  body=await async_maybe_transform(
286
280
  {
287
281
  "time_from": time_from,
@@ -85,9 +85,7 @@ class RoleAssignmentsResource(SyncAPIResource):
85
85
  timeout: Override the client-level default timeout for this request, in seconds
86
86
  """
87
87
  return self._post(
88
- "/cloud/v1/users/assignments"
89
- if self._client._base_url_overridden
90
- else "https://api.gcore.com//cloud/v1/users/assignments",
88
+ "/cloud/v1/users/assignments",
91
89
  body=maybe_transform(
92
90
  {
93
91
  "role": role,
@@ -141,9 +139,7 @@ class RoleAssignmentsResource(SyncAPIResource):
141
139
  timeout: Override the client-level default timeout for this request, in seconds
142
140
  """
143
141
  return self._patch(
144
- f"/cloud/v1/users/assignments/{assignment_id}"
145
- if self._client._base_url_overridden
146
- else f"https://api.gcore.com//cloud/v1/users/assignments/{assignment_id}",
142
+ f"/cloud/v1/users/assignments/{assignment_id}",
147
143
  body=maybe_transform(
148
144
  {
149
145
  "role": role,
@@ -195,9 +191,7 @@ class RoleAssignmentsResource(SyncAPIResource):
195
191
  timeout: Override the client-level default timeout for this request, in seconds
196
192
  """
197
193
  return self._get_api_list(
198
- "/cloud/v1/users/assignments"
199
- if self._client._base_url_overridden
200
- else "https://api.gcore.com//cloud/v1/users/assignments",
194
+ "/cloud/v1/users/assignments",
201
195
  page=SyncOffsetPage[RoleAssignment],
202
196
  options=make_request_options(
203
197
  extra_headers=extra_headers,
@@ -243,9 +237,7 @@ class RoleAssignmentsResource(SyncAPIResource):
243
237
  timeout: Override the client-level default timeout for this request, in seconds
244
238
  """
245
239
  return self._delete(
246
- f"/cloud/v1/users/assignments/{assignment_id}"
247
- if self._client._base_url_overridden
248
- else f"https://api.gcore.com//cloud/v1/users/assignments/{assignment_id}",
240
+ f"/cloud/v1/users/assignments/{assignment_id}",
249
241
  options=make_request_options(
250
242
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
251
243
  ),
@@ -308,9 +300,7 @@ class AsyncRoleAssignmentsResource(AsyncAPIResource):
308
300
  timeout: Override the client-level default timeout for this request, in seconds
309
301
  """
310
302
  return await self._post(
311
- "/cloud/v1/users/assignments"
312
- if self._client._base_url_overridden
313
- else "https://api.gcore.com//cloud/v1/users/assignments",
303
+ "/cloud/v1/users/assignments",
314
304
  body=await async_maybe_transform(
315
305
  {
316
306
  "role": role,
@@ -364,9 +354,7 @@ class AsyncRoleAssignmentsResource(AsyncAPIResource):
364
354
  timeout: Override the client-level default timeout for this request, in seconds
365
355
  """
366
356
  return await self._patch(
367
- f"/cloud/v1/users/assignments/{assignment_id}"
368
- if self._client._base_url_overridden
369
- else f"https://api.gcore.com//cloud/v1/users/assignments/{assignment_id}",
357
+ f"/cloud/v1/users/assignments/{assignment_id}",
370
358
  body=await async_maybe_transform(
371
359
  {
372
360
  "role": role,
@@ -418,9 +406,7 @@ class AsyncRoleAssignmentsResource(AsyncAPIResource):
418
406
  timeout: Override the client-level default timeout for this request, in seconds
419
407
  """
420
408
  return self._get_api_list(
421
- "/cloud/v1/users/assignments"
422
- if self._client._base_url_overridden
423
- else "https://api.gcore.com//cloud/v1/users/assignments",
409
+ "/cloud/v1/users/assignments",
424
410
  page=AsyncOffsetPage[RoleAssignment],
425
411
  options=make_request_options(
426
412
  extra_headers=extra_headers,
@@ -466,9 +452,7 @@ class AsyncRoleAssignmentsResource(AsyncAPIResource):
466
452
  timeout: Override the client-level default timeout for this request, in seconds
467
453
  """
468
454
  return await self._delete(
469
- f"/cloud/v1/users/assignments/{assignment_id}"
470
- if self._client._base_url_overridden
471
- else f"https://api.gcore.com//cloud/v1/users/assignments/{assignment_id}",
455
+ f"/cloud/v1/users/assignments/{assignment_id}",
472
456
  options=make_request_options(
473
457
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
474
458
  ),