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
@@ -110,19 +110,18 @@ class CostReportsResource(SyncAPIResource):
110
110
  /v1/`reservation_cost_report`/totals, as the results from this report will not
111
111
  be accurate.
112
112
 
113
- Receiving data from the past hour might lead to incomplete statistics. For the
114
- most accurate data, we recommend accessing the statistics after at least one
115
- hour. Typically, updates are available within a 24-hour period, although the
116
- frequency can vary. Maintenance periods or other exceptions may cause delays,
117
- potentially extending beyond 24 hours until the servers are back online and the
118
- missing data is filled in.
113
+ Data from the past hour may not reflect the full set of statistics. For the most
114
+ complete and accurate results, we recommend accessing the data at least one hour
115
+ after the relevant time period. Updates are generally available within a 24-hour
116
+ window, though timing can vary. Scheduled maintenance or other exceptions may
117
+ occasionally cause delays beyond 24 hours.
119
118
 
120
119
  Args:
121
120
  time_from: The start date of the report period (ISO 8601). The report starts from the
122
- beginning of this day.
121
+ beginning of this day in UTC.
123
122
 
124
123
  time_to: The end date of the report period (ISO 8601). The report ends just before the
125
- beginning of this day.
124
+ beginning of this day in UTC.
126
125
 
127
126
  enable_last_day: Expenses for the last specified day are taken into account. As the default,
128
127
  False.
@@ -150,9 +149,7 @@ class CostReportsResource(SyncAPIResource):
150
149
  timeout: Override the client-level default timeout for this request, in seconds
151
150
  """
152
151
  return self._post(
153
- "/cloud/v1/cost_report/totals"
154
- if self._client._base_url_overridden
155
- else "https://api.gcore.com//cloud/v1/cost_report/totals",
152
+ "/cloud/v1/cost_report/totals",
156
153
  body=maybe_transform(
157
154
  {
158
155
  "time_from": time_from,
@@ -228,12 +225,11 @@ class CostReportsResource(SyncAPIResource):
228
225
  spent billing units (e.g., hours or GB) for resources. The "`time_to`" parameter
229
226
  represents all days in the specified month.
230
227
 
231
- Receiving data from the past hour might lead to incomplete statistics. For the
232
- most accurate data, we recommend accessing the statistics after at least one
233
- hour. Typically, updates are available within a 24-hour period, although the
234
- frequency can vary. Maintenance periods or other exceptions may cause delays,
235
- potentially extending beyond 24 hours until the servers are back online and the
236
- missing data is filled in.
228
+ Data from the past hour may not reflect the full set of statistics. For the most
229
+ complete and accurate results, we recommend accessing the data at least one hour
230
+ after the relevant time period. Updates are generally available within a 24-hour
231
+ window, though timing can vary. Scheduled maintenance or other exceptions may
232
+ occasionally cause delays beyond 24 hours.
237
233
 
238
234
  Args:
239
235
  regions: List of region IDs.
@@ -263,9 +259,7 @@ class CostReportsResource(SyncAPIResource):
263
259
  timeout: Override the client-level default timeout for this request, in seconds
264
260
  """
265
261
  return self._post(
266
- "/cloud/v1/reservation_cost_report/totals"
267
- if self._client._base_url_overridden
268
- else "https://api.gcore.com//cloud/v1/reservation_cost_report/totals",
262
+ "/cloud/v1/reservation_cost_report/totals",
269
263
  body=maybe_transform(
270
264
  {
271
265
  "regions": regions,
@@ -348,19 +342,18 @@ class CostReportsResource(SyncAPIResource):
348
342
  /v1/`reservation_cost_report`/totals, as the results from this report will not
349
343
  be accurate.
350
344
 
351
- Receiving data from the past hour might lead to incomplete statistics. For the
352
- most accurate data, we recommend accessing the statistics after at least one
353
- hour. Typically, updates are available within a 24-hour period, although the
354
- frequency can vary. Maintenance periods or other exceptions may cause delays,
355
- potentially extending beyond 24 hours until the servers are back online and the
356
- missing data is filled in.
345
+ Data from the past hour may not reflect the full set of statistics. For the most
346
+ complete and accurate results, we recommend accessing the data at least one hour
347
+ after the relevant time period. Updates are generally available within a 24-hour
348
+ window, though timing can vary. Scheduled maintenance or other exceptions may
349
+ occasionally cause delays beyond 24 hours.
357
350
 
358
351
  Args:
359
352
  time_from: The start date of the report period (ISO 8601). The report starts from the
360
- beginning of this day.
353
+ beginning of this day in UTC.
361
354
 
362
355
  time_to: The end date of the report period (ISO 8601). The report ends just before the
363
- beginning of this day.
356
+ beginning of this day in UTC.
364
357
 
365
358
  enable_last_day: Expenses for the last specified day are taken into account. As the default,
366
359
  False.
@@ -394,9 +387,7 @@ class CostReportsResource(SyncAPIResource):
394
387
  timeout: Override the client-level default timeout for this request, in seconds
395
388
  """
396
389
  return self._post(
397
- "/cloud/v1/cost_report/resources"
398
- if self._client._base_url_overridden
399
- else "https://api.gcore.com//cloud/v1/cost_report/resources",
390
+ "/cloud/v1/cost_report/resources",
400
391
  body=maybe_transform(
401
392
  {
402
393
  "time_from": time_from,
@@ -501,19 +492,18 @@ class AsyncCostReportsResource(AsyncAPIResource):
501
492
  /v1/`reservation_cost_report`/totals, as the results from this report will not
502
493
  be accurate.
503
494
 
504
- Receiving data from the past hour might lead to incomplete statistics. For the
505
- most accurate data, we recommend accessing the statistics after at least one
506
- hour. Typically, updates are available within a 24-hour period, although the
507
- frequency can vary. Maintenance periods or other exceptions may cause delays,
508
- potentially extending beyond 24 hours until the servers are back online and the
509
- missing data is filled in.
495
+ Data from the past hour may not reflect the full set of statistics. For the most
496
+ complete and accurate results, we recommend accessing the data at least one hour
497
+ after the relevant time period. Updates are generally available within a 24-hour
498
+ window, though timing can vary. Scheduled maintenance or other exceptions may
499
+ occasionally cause delays beyond 24 hours.
510
500
 
511
501
  Args:
512
502
  time_from: The start date of the report period (ISO 8601). The report starts from the
513
- beginning of this day.
503
+ beginning of this day in UTC.
514
504
 
515
505
  time_to: The end date of the report period (ISO 8601). The report ends just before the
516
- beginning of this day.
506
+ beginning of this day in UTC.
517
507
 
518
508
  enable_last_day: Expenses for the last specified day are taken into account. As the default,
519
509
  False.
@@ -541,9 +531,7 @@ class AsyncCostReportsResource(AsyncAPIResource):
541
531
  timeout: Override the client-level default timeout for this request, in seconds
542
532
  """
543
533
  return await self._post(
544
- "/cloud/v1/cost_report/totals"
545
- if self._client._base_url_overridden
546
- else "https://api.gcore.com//cloud/v1/cost_report/totals",
534
+ "/cloud/v1/cost_report/totals",
547
535
  body=await async_maybe_transform(
548
536
  {
549
537
  "time_from": time_from,
@@ -619,12 +607,11 @@ class AsyncCostReportsResource(AsyncAPIResource):
619
607
  spent billing units (e.g., hours or GB) for resources. The "`time_to`" parameter
620
608
  represents all days in the specified month.
621
609
 
622
- Receiving data from the past hour might lead to incomplete statistics. For the
623
- most accurate data, we recommend accessing the statistics after at least one
624
- hour. Typically, updates are available within a 24-hour period, although the
625
- frequency can vary. Maintenance periods or other exceptions may cause delays,
626
- potentially extending beyond 24 hours until the servers are back online and the
627
- missing data is filled in.
610
+ Data from the past hour may not reflect the full set of statistics. For the most
611
+ complete and accurate results, we recommend accessing the data at least one hour
612
+ after the relevant time period. Updates are generally available within a 24-hour
613
+ window, though timing can vary. Scheduled maintenance or other exceptions may
614
+ occasionally cause delays beyond 24 hours.
628
615
 
629
616
  Args:
630
617
  regions: List of region IDs.
@@ -654,9 +641,7 @@ class AsyncCostReportsResource(AsyncAPIResource):
654
641
  timeout: Override the client-level default timeout for this request, in seconds
655
642
  """
656
643
  return await self._post(
657
- "/cloud/v1/reservation_cost_report/totals"
658
- if self._client._base_url_overridden
659
- else "https://api.gcore.com//cloud/v1/reservation_cost_report/totals",
644
+ "/cloud/v1/reservation_cost_report/totals",
660
645
  body=await async_maybe_transform(
661
646
  {
662
647
  "regions": regions,
@@ -739,19 +724,18 @@ class AsyncCostReportsResource(AsyncAPIResource):
739
724
  /v1/`reservation_cost_report`/totals, as the results from this report will not
740
725
  be accurate.
741
726
 
742
- Receiving data from the past hour might lead to incomplete statistics. For the
743
- most accurate data, we recommend accessing the statistics after at least one
744
- hour. Typically, updates are available within a 24-hour period, although the
745
- frequency can vary. Maintenance periods or other exceptions may cause delays,
746
- potentially extending beyond 24 hours until the servers are back online and the
747
- missing data is filled in.
727
+ Data from the past hour may not reflect the full set of statistics. For the most
728
+ complete and accurate results, we recommend accessing the data at least one hour
729
+ after the relevant time period. Updates are generally available within a 24-hour
730
+ window, though timing can vary. Scheduled maintenance or other exceptions may
731
+ occasionally cause delays beyond 24 hours.
748
732
 
749
733
  Args:
750
734
  time_from: The start date of the report period (ISO 8601). The report starts from the
751
- beginning of this day.
735
+ beginning of this day in UTC.
752
736
 
753
737
  time_to: The end date of the report period (ISO 8601). The report ends just before the
754
- beginning of this day.
738
+ beginning of this day in UTC.
755
739
 
756
740
  enable_last_day: Expenses for the last specified day are taken into account. As the default,
757
741
  False.
@@ -785,9 +769,7 @@ class AsyncCostReportsResource(AsyncAPIResource):
785
769
  timeout: Override the client-level default timeout for this request, in seconds
786
770
  """
787
771
  return await self._post(
788
- "/cloud/v1/cost_report/resources"
789
- if self._client._base_url_overridden
790
- else "https://api.gcore.com//cloud/v1/cost_report/resources",
772
+ "/cloud/v1/cost_report/resources",
791
773
  body=await async_maybe_transform(
792
774
  {
793
775
  "time_from": time_from,
@@ -88,9 +88,7 @@ class AccessRulesResource(SyncAPIResource):
88
88
  if not file_share_id:
89
89
  raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
90
90
  return self._post(
91
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule"
92
- if self._client._base_url_overridden
93
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule",
91
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule",
94
92
  body=maybe_transform(
95
93
  {
96
94
  "access_mode": access_mode,
@@ -142,9 +140,7 @@ class AccessRulesResource(SyncAPIResource):
142
140
  if not file_share_id:
143
141
  raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
144
142
  return self._get(
145
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule"
146
- if self._client._base_url_overridden
147
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule",
143
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule",
148
144
  options=make_request_options(
149
145
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
150
146
  ),
@@ -195,9 +191,7 @@ class AccessRulesResource(SyncAPIResource):
195
191
  raise ValueError(f"Expected a non-empty value for `access_rule_id` but received {access_rule_id!r}")
196
192
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
197
193
  return self._delete(
198
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule/{access_rule_id}"
199
- if self._client._base_url_overridden
200
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule/{access_rule_id}",
194
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule/{access_rule_id}",
201
195
  options=make_request_options(
202
196
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
203
197
  ),
@@ -269,9 +263,7 @@ class AsyncAccessRulesResource(AsyncAPIResource):
269
263
  if not file_share_id:
270
264
  raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
271
265
  return await self._post(
272
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule"
273
- if self._client._base_url_overridden
274
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule",
266
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule",
275
267
  body=await async_maybe_transform(
276
268
  {
277
269
  "access_mode": access_mode,
@@ -323,9 +315,7 @@ class AsyncAccessRulesResource(AsyncAPIResource):
323
315
  if not file_share_id:
324
316
  raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
325
317
  return await self._get(
326
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule"
327
- if self._client._base_url_overridden
328
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule",
318
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule",
329
319
  options=make_request_options(
330
320
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
331
321
  ),
@@ -376,9 +366,7 @@ class AsyncAccessRulesResource(AsyncAPIResource):
376
366
  raise ValueError(f"Expected a non-empty value for `access_rule_id` but received {access_rule_id!r}")
377
367
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
378
368
  return await self._delete(
379
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule/{access_rule_id}"
380
- if self._client._base_url_overridden
381
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule/{access_rule_id}",
369
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/access_rule/{access_rule_id}",
382
370
  options=make_request_options(
383
371
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
384
372
  ),
@@ -206,9 +206,7 @@ class FileSharesResource(SyncAPIResource):
206
206
  if region_id is None:
207
207
  region_id = self._client._get_cloud_region_id_path_param()
208
208
  return self._post(
209
- f"/cloud/v1/file_shares/{project_id}/{region_id}"
210
- if self._client._base_url_overridden
211
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}",
209
+ f"/cloud/v1/file_shares/{project_id}/{region_id}",
212
210
  body=maybe_transform(
213
211
  {
214
212
  "name": name,
@@ -244,9 +242,9 @@ class FileSharesResource(SyncAPIResource):
244
242
  extra_query: Query | None = None,
245
243
  extra_body: Body | None = None,
246
244
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
247
- ) -> FileShare:
245
+ ) -> TaskIDList:
248
246
  """
249
- Rename file share or update tags
247
+ Rename file share, update tags or set share specific properties
250
248
 
251
249
  Args:
252
250
  project_id: Project ID
@@ -296,9 +294,7 @@ class FileSharesResource(SyncAPIResource):
296
294
  if not file_share_id:
297
295
  raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
298
296
  return self._patch(
299
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}"
300
- if self._client._base_url_overridden
301
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
297
+ f"/cloud/v3/file_shares/{project_id}/{region_id}/{file_share_id}",
302
298
  body=maybe_transform(
303
299
  {
304
300
  "name": name,
@@ -310,7 +306,55 @@ class FileSharesResource(SyncAPIResource):
310
306
  options=make_request_options(
311
307
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
312
308
  ),
313
- cast_to=FileShare,
309
+ cast_to=TaskIDList,
310
+ )
311
+
312
+ def update_and_poll(
313
+ self,
314
+ file_share_id: str,
315
+ *,
316
+ project_id: int | None = None,
317
+ region_id: int | None = None,
318
+ name: str | Omit = omit,
319
+ share_settings: file_share_update_params.ShareSettings | Omit = omit,
320
+ tags: Optional[TagUpdateMapParam] | Omit = omit,
321
+ polling_interval_seconds: int | Omit = omit,
322
+ polling_timeout_seconds: int | Omit = omit,
323
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
324
+ # The extra values given here take precedence over values defined on the client or passed to this method.
325
+ extra_headers: Headers | None = None,
326
+ extra_query: Query | None = None,
327
+ extra_body: Body | None = None,
328
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
329
+ ) -> FileShare:
330
+ response = self.update(
331
+ file_share_id,
332
+ project_id=project_id,
333
+ region_id=region_id,
334
+ name=name,
335
+ share_settings=share_settings,
336
+ tags=tags,
337
+ extra_headers=extra_headers,
338
+ extra_query=extra_query,
339
+ extra_body=extra_body,
340
+ timeout=timeout,
341
+ )
342
+ if not response.tasks:
343
+ raise ValueError("Expected at least one task to be created")
344
+ self._client.cloud.tasks.poll(
345
+ task_id=response.tasks[0],
346
+ extra_headers=extra_headers,
347
+ polling_interval_seconds=polling_interval_seconds,
348
+ polling_timeout_seconds=polling_timeout_seconds,
349
+ )
350
+ return self.get(
351
+ file_share_id,
352
+ project_id=project_id,
353
+ region_id=region_id,
354
+ extra_headers=extra_headers,
355
+ extra_query=extra_query,
356
+ extra_body=extra_body,
357
+ timeout=timeout,
314
358
  )
315
359
 
316
360
  def list(
@@ -359,9 +403,7 @@ class FileSharesResource(SyncAPIResource):
359
403
  if region_id is None:
360
404
  region_id = self._client._get_cloud_region_id_path_param()
361
405
  return self._get_api_list(
362
- f"/cloud/v1/file_shares/{project_id}/{region_id}"
363
- if self._client._base_url_overridden
364
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}",
406
+ f"/cloud/v1/file_shares/{project_id}/{region_id}",
365
407
  page=SyncOffsetPage[FileShare],
366
408
  options=make_request_options(
367
409
  extra_headers=extra_headers,
@@ -419,9 +461,7 @@ class FileSharesResource(SyncAPIResource):
419
461
  if not file_share_id:
420
462
  raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
421
463
  return self._delete(
422
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}"
423
- if self._client._base_url_overridden
424
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
464
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
425
465
  options=make_request_options(
426
466
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
427
467
  ),
@@ -466,9 +506,7 @@ class FileSharesResource(SyncAPIResource):
466
506
  if not file_share_id:
467
507
  raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
468
508
  return self._get(
469
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}"
470
- if self._client._base_url_overridden
471
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
509
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
472
510
  options=make_request_options(
473
511
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
474
512
  ),
@@ -516,9 +554,7 @@ class FileSharesResource(SyncAPIResource):
516
554
  if not file_share_id:
517
555
  raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
518
556
  return self._post(
519
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend"
520
- if self._client._base_url_overridden
521
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend",
557
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend",
522
558
  body=maybe_transform({"size": size}, file_share_resize_params.FileShareResizeParams),
523
559
  options=make_request_options(
524
560
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
@@ -693,9 +729,7 @@ class AsyncFileSharesResource(AsyncAPIResource):
693
729
  if region_id is None:
694
730
  region_id = self._client._get_cloud_region_id_path_param()
695
731
  return await self._post(
696
- f"/cloud/v1/file_shares/{project_id}/{region_id}"
697
- if self._client._base_url_overridden
698
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}",
732
+ f"/cloud/v1/file_shares/{project_id}/{region_id}",
699
733
  body=await async_maybe_transform(
700
734
  {
701
735
  "name": name,
@@ -731,9 +765,9 @@ class AsyncFileSharesResource(AsyncAPIResource):
731
765
  extra_query: Query | None = None,
732
766
  extra_body: Body | None = None,
733
767
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
734
- ) -> FileShare:
768
+ ) -> TaskIDList:
735
769
  """
736
- Rename file share or update tags
770
+ Rename file share, update tags or set share specific properties
737
771
 
738
772
  Args:
739
773
  project_id: Project ID
@@ -783,9 +817,7 @@ class AsyncFileSharesResource(AsyncAPIResource):
783
817
  if not file_share_id:
784
818
  raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
785
819
  return await self._patch(
786
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}"
787
- if self._client._base_url_overridden
788
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
820
+ f"/cloud/v3/file_shares/{project_id}/{region_id}/{file_share_id}",
789
821
  body=await async_maybe_transform(
790
822
  {
791
823
  "name": name,
@@ -797,7 +829,55 @@ class AsyncFileSharesResource(AsyncAPIResource):
797
829
  options=make_request_options(
798
830
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
799
831
  ),
800
- cast_to=FileShare,
832
+ cast_to=TaskIDList,
833
+ )
834
+
835
+ async def update_and_poll(
836
+ self,
837
+ file_share_id: str,
838
+ *,
839
+ project_id: int | None = None,
840
+ region_id: int | None = None,
841
+ name: str | Omit = omit,
842
+ share_settings: file_share_update_params.ShareSettings | Omit = omit,
843
+ tags: Optional[TagUpdateMapParam] | Omit = omit,
844
+ polling_interval_seconds: int | Omit = omit,
845
+ polling_timeout_seconds: int | Omit = omit,
846
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
847
+ # The extra values given here take precedence over values defined on the client or passed to this method.
848
+ extra_headers: Headers | None = None,
849
+ extra_query: Query | None = None,
850
+ extra_body: Body | None = None,
851
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
852
+ ) -> FileShare:
853
+ response = await self.update(
854
+ file_share_id,
855
+ project_id=project_id,
856
+ region_id=region_id,
857
+ name=name,
858
+ share_settings=share_settings,
859
+ tags=tags,
860
+ extra_headers=extra_headers,
861
+ extra_query=extra_query,
862
+ extra_body=extra_body,
863
+ timeout=timeout,
864
+ )
865
+ if not response.tasks:
866
+ raise ValueError("Expected at least one task to be created")
867
+ await self._client.cloud.tasks.poll(
868
+ task_id=response.tasks[0],
869
+ extra_headers=extra_headers,
870
+ polling_interval_seconds=polling_interval_seconds,
871
+ polling_timeout_seconds=polling_timeout_seconds,
872
+ )
873
+ return await self.get(
874
+ file_share_id,
875
+ project_id=project_id,
876
+ region_id=region_id,
877
+ extra_headers=extra_headers,
878
+ extra_query=extra_query,
879
+ extra_body=extra_body,
880
+ timeout=timeout,
801
881
  )
802
882
 
803
883
  def list(
@@ -846,9 +926,7 @@ class AsyncFileSharesResource(AsyncAPIResource):
846
926
  if region_id is None:
847
927
  region_id = self._client._get_cloud_region_id_path_param()
848
928
  return self._get_api_list(
849
- f"/cloud/v1/file_shares/{project_id}/{region_id}"
850
- if self._client._base_url_overridden
851
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}",
929
+ f"/cloud/v1/file_shares/{project_id}/{region_id}",
852
930
  page=AsyncOffsetPage[FileShare],
853
931
  options=make_request_options(
854
932
  extra_headers=extra_headers,
@@ -906,9 +984,7 @@ class AsyncFileSharesResource(AsyncAPIResource):
906
984
  if not file_share_id:
907
985
  raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
908
986
  return await self._delete(
909
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}"
910
- if self._client._base_url_overridden
911
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
987
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
912
988
  options=make_request_options(
913
989
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
914
990
  ),
@@ -953,9 +1029,7 @@ class AsyncFileSharesResource(AsyncAPIResource):
953
1029
  if not file_share_id:
954
1030
  raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
955
1031
  return await self._get(
956
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}"
957
- if self._client._base_url_overridden
958
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
1032
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}",
959
1033
  options=make_request_options(
960
1034
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
961
1035
  ),
@@ -1003,9 +1077,7 @@ class AsyncFileSharesResource(AsyncAPIResource):
1003
1077
  if not file_share_id:
1004
1078
  raise ValueError(f"Expected a non-empty value for `file_share_id` but received {file_share_id!r}")
1005
1079
  return await self._post(
1006
- f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend"
1007
- if self._client._base_url_overridden
1008
- else f"https://api.gcore.com//cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend",
1080
+ f"/cloud/v1/file_shares/{project_id}/{region_id}/{file_share_id}/extend",
1009
1081
  body=await async_maybe_transform({"size": size}, file_share_resize_params.FileShareResizeParams),
1010
1082
  options=make_request_options(
1011
1083
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
@@ -1024,6 +1096,9 @@ class FileSharesResourceWithRawResponse:
1024
1096
  self.update = to_raw_response_wrapper(
1025
1097
  file_shares.update,
1026
1098
  )
1099
+ self.update_and_poll = to_raw_response_wrapper(
1100
+ file_shares.update_and_poll,
1101
+ )
1027
1102
  self.list = to_raw_response_wrapper(
1028
1103
  file_shares.list,
1029
1104
  )
@@ -1052,6 +1127,9 @@ class AsyncFileSharesResourceWithRawResponse:
1052
1127
  self.update = async_to_raw_response_wrapper(
1053
1128
  file_shares.update,
1054
1129
  )
1130
+ self.update_and_poll = async_to_raw_response_wrapper(
1131
+ file_shares.update_and_poll,
1132
+ )
1055
1133
  self.list = async_to_raw_response_wrapper(
1056
1134
  file_shares.list,
1057
1135
  )
@@ -1080,6 +1158,9 @@ class FileSharesResourceWithStreamingResponse:
1080
1158
  self.update = to_streamed_response_wrapper(
1081
1159
  file_shares.update,
1082
1160
  )
1161
+ self.update_and_poll = to_streamed_response_wrapper(
1162
+ file_shares.update_and_poll,
1163
+ )
1083
1164
  self.list = to_streamed_response_wrapper(
1084
1165
  file_shares.list,
1085
1166
  )
@@ -1108,6 +1189,9 @@ class AsyncFileSharesResourceWithStreamingResponse:
1108
1189
  self.update = async_to_streamed_response_wrapper(
1109
1190
  file_shares.update,
1110
1191
  )
1192
+ self.update_and_pol = async_to_streamed_response_wrapper(
1193
+ file_shares.update_and_poll,
1194
+ )
1111
1195
  self.list = async_to_streamed_response_wrapper(
1112
1196
  file_shares.list,
1113
1197
  )