gcore 0.3.0__py3-none-any.whl → 0.5.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 (226) hide show
  1. gcore/__init__.py +2 -1
  2. gcore/_base_client.py +31 -2
  3. gcore/_client.py +18 -0
  4. gcore/_constants.py +2 -2
  5. gcore/_models.py +8 -5
  6. gcore/_version.py +1 -1
  7. gcore/pagination.py +252 -1
  8. gcore/resources/__init__.py +28 -0
  9. gcore/resources/cloud/baremetal/flavors.py +11 -137
  10. gcore/resources/cloud/baremetal/images.py +10 -12
  11. gcore/resources/cloud/baremetal/servers.py +33 -30
  12. gcore/resources/cloud/billing_reservations.py +2 -2
  13. gcore/resources/cloud/file_shares/file_shares.py +7 -8
  14. gcore/resources/cloud/floating_ips.py +7 -12
  15. gcore/resources/cloud/gpu_baremetal_clusters/gpu_baremetal_clusters.py +33 -22
  16. gcore/resources/cloud/gpu_baremetal_clusters/images.py +9 -10
  17. gcore/resources/cloud/gpu_baremetal_clusters/interfaces.py +2 -2
  18. gcore/resources/cloud/gpu_baremetal_clusters/servers.py +8 -4
  19. gcore/resources/cloud/inference/deployments/deployments.py +76 -35
  20. gcore/resources/cloud/inference/deployments/logs.py +7 -7
  21. gcore/resources/cloud/inference/inference.py +5 -5
  22. gcore/resources/cloud/inference/models.py +16 -15
  23. gcore/resources/cloud/inference/registry_credentials.py +18 -18
  24. gcore/resources/cloud/inference/secrets.py +12 -13
  25. gcore/resources/cloud/instances/flavors.py +9 -233
  26. gcore/resources/cloud/instances/images.py +47 -37
  27. gcore/resources/cloud/instances/instances.py +49 -34
  28. gcore/resources/cloud/instances/interfaces.py +2 -2
  29. gcore/resources/cloud/ip_ranges.py +34 -2
  30. gcore/resources/cloud/load_balancers/l7_policies/l7_policies.py +10 -2
  31. gcore/resources/cloud/load_balancers/listeners.py +17 -8
  32. gcore/resources/cloud/load_balancers/load_balancers.py +73 -21
  33. gcore/resources/cloud/load_balancers/metrics.py +2 -2
  34. gcore/resources/cloud/load_balancers/pools/health_monitors.py +2 -2
  35. gcore/resources/cloud/load_balancers/pools/members.py +6 -2
  36. gcore/resources/cloud/networks/networks.py +81 -17
  37. gcore/resources/cloud/networks/routers.py +18 -18
  38. gcore/resources/cloud/networks/subnets.py +51 -11
  39. gcore/resources/cloud/projects.py +38 -24
  40. gcore/resources/cloud/quotas/quotas.py +6 -6
  41. gcore/resources/cloud/quotas/requests.py +8 -8
  42. gcore/resources/cloud/registries/artifacts.py +4 -4
  43. gcore/resources/cloud/registries/registries.py +14 -16
  44. gcore/resources/cloud/registries/repositories.py +4 -4
  45. gcore/resources/cloud/registries/tags.py +2 -2
  46. gcore/resources/cloud/registries/users.py +21 -22
  47. gcore/resources/cloud/reserved_fixed_ips/reserved_fixed_ips.py +20 -20
  48. gcore/resources/cloud/reserved_fixed_ips/vip.py +10 -10
  49. gcore/resources/cloud/secrets.py +14 -224
  50. gcore/resources/cloud/security_groups/rules.py +6 -6
  51. gcore/resources/cloud/security_groups/security_groups.py +70 -31
  52. gcore/resources/cloud/tasks.py +34 -32
  53. gcore/resources/cloud/users/role_assignments.py +12 -14
  54. gcore/resources/cloud/volumes.py +139 -49
  55. gcore/resources/fastedge/__init__.py +103 -0
  56. gcore/resources/fastedge/apps/__init__.py +33 -0
  57. gcore/resources/fastedge/apps/apps.py +932 -0
  58. gcore/resources/fastedge/apps/logs.py +248 -0
  59. gcore/resources/fastedge/binaries.py +286 -0
  60. gcore/resources/fastedge/fastedge.py +327 -0
  61. gcore/resources/fastedge/kv_stores.py +523 -0
  62. gcore/resources/fastedge/secrets.py +687 -0
  63. gcore/resources/fastedge/statistics.py +347 -0
  64. gcore/resources/fastedge/templates.py +652 -0
  65. gcore/resources/iam/__init__.py +47 -0
  66. gcore/resources/iam/api_tokens.py +521 -0
  67. gcore/resources/iam/iam.py +199 -0
  68. gcore/resources/iam/users.py +642 -0
  69. gcore/resources/waap/__init__.py +0 -14
  70. gcore/resources/waap/waap.py +0 -32
  71. gcore/types/cloud/__init__.py +2 -28
  72. gcore/types/cloud/baremetal/__init__.py +0 -1
  73. gcore/types/cloud/baremetal/image_list_params.py +1 -5
  74. gcore/types/cloud/baremetal/server_create_params.py +5 -9
  75. gcore/types/cloud/baremetal/server_list_params.py +1 -5
  76. gcore/types/cloud/ddos_profile.py +9 -3
  77. gcore/types/cloud/file_share_create_params.py +3 -5
  78. gcore/types/cloud/floating_ip_create_params.py +2 -4
  79. gcore/types/cloud/floating_ip_list_params.py +1 -5
  80. gcore/types/cloud/gpu_baremetal_cluster_create_params.py +3 -4
  81. gcore/types/cloud/gpu_baremetal_clusters/image_upload_params.py +2 -4
  82. gcore/types/cloud/health_monitor.py +6 -1
  83. gcore/types/cloud/inference/__init__.py +12 -8
  84. gcore/types/cloud/inference/deployment_create_params.py +224 -7
  85. gcore/types/cloud/inference/deployment_update_params.py +24 -3
  86. gcore/types/cloud/inference/deployments/__init__.py +1 -0
  87. gcore/types/cloud/inference/{inference_log.py → deployments/inference_deployment_log.py} +3 -3
  88. gcore/types/cloud/inference/inference_deployment.py +266 -0
  89. gcore/types/cloud/inference/{inference_apikey_secret.py → inference_deployment_api_key.py} +2 -2
  90. gcore/types/cloud/inference/{mlcatalog_model_card.py → inference_model.py} +2 -2
  91. gcore/types/cloud/inference/{inference_registry_credential.py → inference_registry_credentials.py} +2 -2
  92. gcore/types/cloud/inference/{inference_registry_credential_full.py → inference_registry_credentials_create.py} +2 -2
  93. gcore/types/cloud/inference/inference_secret.py +10 -3
  94. gcore/types/cloud/inference/model_list_params.py +2 -4
  95. gcore/types/cloud/{container_probe.py → inference/probe.py} +9 -9
  96. gcore/types/cloud/{container_probe_config.py → inference/probe_config.py} +5 -5
  97. gcore/types/cloud/{container_probe_exec.py → inference/probe_exec.py} +3 -3
  98. gcore/types/cloud/{container_probe_http_get.py → inference/probe_http_get.py} +3 -3
  99. gcore/types/cloud/{container_probe_tcp_socket.py → inference/probe_tcp_socket.py} +3 -3
  100. gcore/types/cloud/inference/secret_create_params.py +10 -4
  101. gcore/types/cloud/inference/secret_replace_params.py +10 -4
  102. gcore/types/cloud/{region_capacity.py → inference_region_capacity.py} +10 -3
  103. gcore/types/cloud/{region_capacity_list.py → inference_region_capacity_list.py} +4 -4
  104. gcore/types/cloud/instance_create_params.py +8 -9
  105. gcore/types/cloud/instance_list_params.py +1 -5
  106. gcore/types/cloud/instances/__init__.py +0 -2
  107. gcore/types/cloud/instances/image_create_from_volume_params.py +2 -4
  108. gcore/types/cloud/instances/image_list_params.py +1 -5
  109. gcore/types/cloud/instances/image_upload_params.py +2 -4
  110. gcore/types/cloud/load_balancer_create_params.py +8 -4
  111. gcore/types/cloud/load_balancer_list_params.py +1 -5
  112. gcore/types/cloud/load_balancer_update_params.py +24 -0
  113. gcore/types/cloud/load_balancers/pool_create_params.py +6 -1
  114. gcore/types/cloud/load_balancers/pool_update_params.py +6 -1
  115. gcore/types/cloud/load_balancers/pools/member_add_params.py +6 -1
  116. gcore/types/cloud/member.py +6 -1
  117. gcore/types/cloud/network_create_params.py +2 -3
  118. gcore/types/cloud/network_list_params.py +4 -5
  119. gcore/types/cloud/network_update_params.py +28 -2
  120. gcore/types/cloud/networks/router_list_params.py +2 -2
  121. gcore/types/cloud/networks/subnet_create_params.py +2 -3
  122. gcore/types/cloud/networks/subnet_list_params.py +1 -5
  123. gcore/types/cloud/networks/subnet_update_params.py +25 -0
  124. gcore/types/cloud/registries/__init__.py +1 -0
  125. gcore/types/cloud/registries/user_refresh_secret_response.py +31 -0
  126. gcore/types/cloud/reserved_fixed_ip_list_params.py +2 -2
  127. gcore/types/cloud/security_group_list_params.py +3 -7
  128. gcore/types/cloud/security_group_update_params.py +25 -0
  129. gcore/types/cloud/tag_update_map_param.py +2 -2
  130. gcore/types/cloud/task_list_params.py +15 -14
  131. gcore/types/cloud/volume_list_params.py +1 -5
  132. gcore/types/cloud/volume_update_params.py +29 -3
  133. gcore/types/fastedge/__init__.py +48 -0
  134. gcore/types/fastedge/app.py +81 -0
  135. gcore/types/fastedge/app_create_params.py +56 -0
  136. gcore/types/fastedge/app_list_params.py +50 -0
  137. gcore/types/fastedge/app_param.py +56 -0
  138. gcore/types/fastedge/app_replace_params.py +17 -0
  139. gcore/types/fastedge/app_short.py +60 -0
  140. gcore/types/fastedge/app_update_params.py +56 -0
  141. gcore/types/fastedge/apps/__init__.py +6 -0
  142. gcore/types/fastedge/apps/log.py +28 -0
  143. gcore/types/fastedge/apps/log_list_params.py +37 -0
  144. gcore/types/fastedge/binary.py +40 -0
  145. gcore/types/fastedge/binary_list_response.py +12 -0
  146. gcore/types/fastedge/binary_short.py +32 -0
  147. gcore/types/fastedge/call_status.py +24 -0
  148. gcore/types/fastedge/client.py +57 -0
  149. gcore/types/fastedge/duration_stats.py +30 -0
  150. gcore/types/fastedge/kv_store.py +33 -0
  151. gcore/types/fastedge/kv_store_create_params.py +23 -0
  152. gcore/types/fastedge/kv_store_get_response.py +10 -0
  153. gcore/types/fastedge/kv_store_list_params.py +12 -0
  154. gcore/types/fastedge/kv_store_list_response.py +15 -0
  155. gcore/types/fastedge/kv_store_replace_params.py +23 -0
  156. gcore/types/fastedge/kv_store_short.py +19 -0
  157. gcore/types/fastedge/kv_store_stats.py +26 -0
  158. gcore/types/fastedge/secret.py +29 -0
  159. gcore/types/fastedge/secret_create_params.py +27 -0
  160. gcore/types/fastedge/secret_create_response.py +12 -0
  161. gcore/types/fastedge/secret_delete_params.py +12 -0
  162. gcore/types/fastedge/secret_list_params.py +15 -0
  163. gcore/types/{cloud → fastedge}/secret_list_response.py +2 -6
  164. gcore/types/fastedge/secret_replace_params.py +27 -0
  165. gcore/types/fastedge/secret_short.py +21 -0
  166. gcore/types/fastedge/secret_update_params.py +27 -0
  167. gcore/types/fastedge/statistic_get_call_series_params.py +28 -0
  168. gcore/types/fastedge/statistic_get_call_series_response.py +12 -0
  169. gcore/types/fastedge/statistic_get_duration_series_params.py +28 -0
  170. gcore/types/fastedge/statistic_get_duration_series_response.py +12 -0
  171. gcore/types/fastedge/template.py +31 -0
  172. gcore/types/fastedge/template_create_params.py +30 -0
  173. gcore/types/fastedge/template_delete_params.py +12 -0
  174. gcore/types/fastedge/template_list_params.py +25 -0
  175. gcore/types/fastedge/template_parameter.py +22 -0
  176. gcore/types/fastedge/template_parameter_param.py +21 -0
  177. gcore/types/fastedge/template_replace_params.py +30 -0
  178. gcore/types/fastedge/template_short.py +27 -0
  179. gcore/types/iam/__init__.py +17 -0
  180. gcore/types/iam/account_overview.py +488 -0
  181. gcore/types/iam/api_token.py +78 -0
  182. gcore/types/iam/api_token_create.py +15 -0
  183. gcore/types/iam/api_token_create_params.py +42 -0
  184. gcore/types/iam/api_token_list.py +81 -0
  185. gcore/types/iam/api_token_list_params.py +41 -0
  186. gcore/types/iam/user.py +86 -0
  187. gcore/types/iam/user_detailed.py +104 -0
  188. gcore/types/iam/user_invite.py +15 -0
  189. gcore/types/iam/user_invite_params.py +37 -0
  190. gcore/types/iam/user_list_params.py +15 -0
  191. gcore/types/iam/user_update.py +104 -0
  192. gcore/types/iam/user_update_params.py +52 -0
  193. gcore/types/waap/__init__.py +0 -1
  194. gcore/types/waap/domains/custom_rule_create_params.py +7 -3
  195. gcore/types/waap/domains/custom_rule_update_params.py +7 -3
  196. gcore/types/waap/waap_custom_rule.py +7 -3
  197. {gcore-0.3.0.dist-info → gcore-0.5.0.dist-info}/METADATA +44 -5
  198. {gcore-0.3.0.dist-info → gcore-0.5.0.dist-info}/RECORD +200 -151
  199. gcore/resources/waap/clients.py +0 -135
  200. gcore/types/cloud/aws_iam_data.py +0 -13
  201. gcore/types/cloud/aws_iam_data_param.py +0 -15
  202. gcore/types/cloud/baremetal/flavor_list_suitable_params.py +0 -22
  203. gcore/types/cloud/capacity.py +0 -13
  204. gcore/types/cloud/container_probe_config_create_param.py +0 -17
  205. gcore/types/cloud/container_probe_create_param.py +0 -38
  206. gcore/types/cloud/container_probe_exec_create_param.py +0 -13
  207. gcore/types/cloud/container_probe_http_get_create_param.py +0 -25
  208. gcore/types/cloud/container_probe_tcp_socket_create_param.py +0 -12
  209. gcore/types/cloud/container_scale.py +0 -25
  210. gcore/types/cloud/container_scale_trigger_rate.py +0 -13
  211. gcore/types/cloud/container_scale_trigger_sqs.py +0 -33
  212. gcore/types/cloud/container_scale_trigger_threshold.py +0 -10
  213. gcore/types/cloud/container_scale_triggers.py +0 -36
  214. gcore/types/cloud/deploy_status.py +0 -13
  215. gcore/types/cloud/inference/container.py +0 -26
  216. gcore/types/cloud/inference/inference.py +0 -95
  217. gcore/types/cloud/inference/mlcatalog_order_by_choices.py +0 -7
  218. gcore/types/cloud/inference_probes.py +0 -19
  219. gcore/types/cloud/ingress_opts_out.py +0 -16
  220. gcore/types/cloud/ingress_opts_param.py +0 -18
  221. gcore/types/cloud/instances/flavor_list_for_resize_params.py +0 -16
  222. gcore/types/cloud/instances/flavor_list_suitable_params.py +0 -59
  223. gcore/types/cloud/secret_create_params.py +0 -66
  224. gcore/types/waap/client_me_response.py +0 -34
  225. {gcore-0.3.0.dist-info → gcore-0.5.0.dist-info}/WHEEL +0 -0
  226. {gcore-0.3.0.dist-info → gcore-0.5.0.dist-info}/licenses/LICENSE +0 -0
@@ -2,11 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Iterable, Optional
5
+ from typing import Dict, List, Iterable, Optional
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
8
  from ..ip_version import IPVersion
9
- from ..tag_update_map_param import TagUpdateMapParam
10
9
 
11
10
  __all__ = ["SubnetCreateParams", "HostRoute"]
12
11
 
@@ -60,7 +59,7 @@ class SubnetCreateParams(TypedDict, total=False):
60
59
  find a router created during network creation.
61
60
  """
62
61
 
63
- tags: TagUpdateMapParam
62
+ tags: Dict[str, str]
64
63
  """Key-value tags to associate with the resource.
65
64
 
66
65
  A tag is a key-value pair that can be associated with a resource, enabling
@@ -51,8 +51,4 @@ class SubnetListParams(TypedDict, total=False):
51
51
  """Optional. Filter by tag keys. ?`tag_key`=key1&`tag_key`=key2"""
52
52
 
53
53
  tag_key_value: str
54
- """Optional.
55
-
56
- Filter by tag key-value pairs. curl -G --data-urlencode "`tag_key_value`={"key":
57
- "value"}" --url "https://example.com/cloud/v1/resource/1/1"
58
- """
54
+ """Optional. Filter by tag key-value pairs."""
@@ -5,6 +5,8 @@ from __future__ import annotations
5
5
  from typing import List, Iterable, Optional
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
+ from ..tag_update_map_param import TagUpdateMapParam
9
+
8
10
  __all__ = ["SubnetUpdateParams", "HostRoute"]
9
11
 
10
12
 
@@ -35,6 +37,29 @@ class SubnetUpdateParams(TypedDict, total=False):
35
37
  name: Optional[str]
36
38
  """Name"""
37
39
 
40
+ tags: Optional[TagUpdateMapParam]
41
+ """Update key-value tags using JSON Merge Patch semantics (RFC 7386).
42
+
43
+ Provide key-value pairs to add or update tags. Set tag values to `null` to
44
+ remove tags. Unspecified tags remain unchanged. Read-only tags are always
45
+ preserved and cannot be modified. **Examples:**
46
+
47
+ - **Add/update tags:**
48
+ `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
49
+ updates existing ones.
50
+ - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
51
+ - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
52
+ tags are preserved).
53
+ - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
54
+ specified tags.
55
+ - **Mixed operations:**
56
+ `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
57
+ adds/updates 'environment' and '`cost_center`' while removing
58
+ '`deprecated_tag`', preserving other existing tags.
59
+ - **Replace all:** first delete existing tags with null values, then add new
60
+ ones in the same request.
61
+ """
62
+
38
63
 
39
64
  class HostRoute(TypedDict, total=False):
40
65
  destination: Required[str]
@@ -12,3 +12,4 @@ from .registry_user_created import RegistryUserCreated as RegistryUserCreated
12
12
  from .registry_artifact_list import RegistryArtifactList as RegistryArtifactList
13
13
  from .registry_repository_list import RegistryRepositoryList as RegistryRepositoryList
14
14
  from .user_create_multiple_params import UserCreateMultipleParams as UserCreateMultipleParams
15
+ from .user_refresh_secret_response import UserRefreshSecretResponse as UserRefreshSecretResponse
@@ -0,0 +1,31 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+
6
+ from ...._models import BaseModel
7
+
8
+ __all__ = ["UserRefreshSecretResponse"]
9
+
10
+
11
+ class UserRefreshSecretResponse(BaseModel):
12
+ id: int
13
+ """User ID"""
14
+
15
+ created_at: datetime
16
+ """User creation date-time"""
17
+
18
+ duration: int
19
+ """User account operating time, days"""
20
+
21
+ expires_at: datetime
22
+ """User operation end date-time"""
23
+
24
+ name: str
25
+ """User name"""
26
+
27
+ read_only: Optional[bool] = None
28
+ """Read-only user"""
29
+
30
+ secret: Optional[str] = None
31
+ """User secret"""
@@ -39,8 +39,8 @@ class ReservedFixedIPListParams(TypedDict, total=False):
39
39
  order_by: str
40
40
  """
41
41
  Ordering reserved fixed IP list result by name, status, `updated_at`,
42
- `created_at` or `fixed_ip_address` fields of the reserved fixed IP and
43
- directions (status.asc), default is "`fixed_ip_address`.asc"
42
+ `created_at` or `fixed_ip_address` fields and directions (status.asc), default
43
+ is "`fixed_ip_address`.asc"
44
44
  """
45
45
 
46
46
  vip_only: bool
@@ -14,17 +14,13 @@ class SecurityGroupListParams(TypedDict, total=False):
14
14
  region_id: int
15
15
 
16
16
  limit: int
17
- """Limit the number of returned limit request entities."""
17
+ """Limit the number of returned security groups"""
18
18
 
19
19
  offset: int
20
- """Offset value is used to exclude the first set of records from the result."""
20
+ """Offset value is used to exclude the first set of records from the result"""
21
21
 
22
22
  tag_key: List[str]
23
23
  """Filter by tag keys."""
24
24
 
25
25
  tag_key_value: str
26
- """Filter by tag key-value pairs.
27
-
28
- Must be a valid JSON string. curl -G --data-urlencode "`tag_key_value`={"key":
29
- "value"}" --url "http://localhost:1111/v1/securitygroups/1/1"
30
- """
26
+ """Filter by tag key-value pairs. Must be a valid JSON string."""
@@ -5,6 +5,8 @@ from __future__ import annotations
5
5
  from typing import Iterable, Optional
6
6
  from typing_extensions import Literal, Required, TypedDict
7
7
 
8
+ from .tag_update_map_param import TagUpdateMapParam
9
+
8
10
  __all__ = ["SecurityGroupUpdateParams", "ChangedRule"]
9
11
 
10
12
 
@@ -19,6 +21,29 @@ class SecurityGroupUpdateParams(TypedDict, total=False):
19
21
  name: str
20
22
  """Name"""
21
23
 
24
+ tags: Optional[TagUpdateMapParam]
25
+ """Update key-value tags using JSON Merge Patch semantics (RFC 7386).
26
+
27
+ Provide key-value pairs to add or update tags. Set tag values to `null` to
28
+ remove tags. Unspecified tags remain unchanged. Read-only tags are always
29
+ preserved and cannot be modified. **Examples:**
30
+
31
+ - **Add/update tags:**
32
+ `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
33
+ updates existing ones.
34
+ - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
35
+ - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
36
+ tags are preserved).
37
+ - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
38
+ specified tags.
39
+ - **Mixed operations:**
40
+ `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
41
+ adds/updates 'environment' and '`cost_center`' while removing
42
+ '`deprecated_tag`', preserving other existing tags.
43
+ - **Replace all:** first delete existing tags with null values, then add new
44
+ ones in the same request.
45
+ """
46
+
22
47
 
23
48
  class ChangedRule(TypedDict, total=False):
24
49
  action: Required[Literal["create", "delete"]]
@@ -2,9 +2,9 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Dict
5
+ from typing import Dict, Optional
6
6
  from typing_extensions import TypeAlias
7
7
 
8
8
  __all__ = ["TagUpdateMapParam"]
9
9
 
10
- TagUpdateMapParam: TypeAlias = Dict[str, str]
10
+ TagUpdateMapParam: TypeAlias = Dict[str, Optional[str]]
@@ -65,7 +65,8 @@ class TaskListParams(TypedDict, total=False):
65
65
  '`create_ai_cluster_gpu`', '`create_bm`', '`create_caas_container`',
66
66
  '`create_dbaas_postgres_cluster`', '`create_ddos_profile`',
67
67
  '`create_faas_function`', '`create_faas_namespace`', '`create_fip`',
68
- '`create_gpu_virtual_cluster`', '`create_image`', '`create_inference_instance`',
68
+ '`create_gpu_virtual_cluster`', '`create_image`',
69
+ '`create_inference_application`', '`create_inference_instance`',
69
70
  '`create_inference_instance_key`', '`create_k8s_cluster_pool_v2`',
70
71
  '`create_k8s_cluster_v2`', '`create_l7policy`', '`create_l7rule`',
71
72
  '`create_lblistener`', '`create_lbmember`', '`create_lbpool`',
@@ -77,14 +78,14 @@ class TaskListParams(TypedDict, total=False):
77
78
  '`delete_dbaas_postgres_cluster`', '`delete_ddos_profile`',
78
79
  '`delete_faas_function`', '`delete_faas_namespace`', '`delete_fip`',
79
80
  '`delete_gpu_virtual_cluster`', '`delete_gpu_virtual_server`', '`delete_image`',
80
- '`delete_inference_instance`', '`delete_k8s_cluster_pool_v2`',
81
- '`delete_k8s_cluster_v2`', '`delete_l7policy`', '`delete_l7rule`',
82
- '`delete_lblistener`', '`delete_lbmember`', '`delete_lbmetadata`',
83
- '`delete_lbpool`', '`delete_loadbalancer`', '`delete_network`',
84
- '`delete_reserved_fixed_ip`', '`delete_router`', '`delete_secret`',
85
- '`delete_servergroup`', '`delete_sfs`', '`delete_snapshot`', '`delete_subnet`',
86
- '`delete_vm`', '`delete_volume`', '`detach_vm_interface`', '`detach_volume`',
87
- '`download_image`', '`downscale_ai_cluster_gpu`',
81
+ '`delete_inference_application`', '`delete_inference_instance`',
82
+ '`delete_k8s_cluster_pool_v2`', '`delete_k8s_cluster_v2`', '`delete_l7policy`',
83
+ '`delete_l7rule`', '`delete_lblistener`', '`delete_lbmember`',
84
+ '`delete_lbmetadata`', '`delete_lbpool`', '`delete_loadbalancer`',
85
+ '`delete_network`', '`delete_reserved_fixed_ip`', '`delete_router`',
86
+ '`delete_secret`', '`delete_servergroup`', '`delete_sfs`', '`delete_snapshot`',
87
+ '`delete_subnet`', '`delete_vm`', '`delete_volume`', '`detach_vm_interface`',
88
+ '`detach_volume`', '`download_image`', '`downscale_ai_cluster_gpu`',
88
89
  '`downscale_gpu_virtual_cluster`', '`extend_sfs`', '`extend_volume`',
89
90
  '`failover_loadbalancer`', '`hard_reboot_gpu_baremetal_server`',
90
91
  '`hard_reboot_gpu_virtual_cluster`', '`hard_reboot_gpu_virtual_server`',
@@ -100,11 +101,11 @@ class TaskListParams(TypedDict, total=False):
100
101
  '`start_gpu_virtual_server`', '`start_vm`', '`stop_gpu_baremetal_server`',
101
102
  '`stop_gpu_virtual_cluster`', '`stop_gpu_virtual_server`', '`stop_vm`',
102
103
  '`suspend_vm`', '`sync_private_flavors`', '`update_ddos_profile`',
103
- '`update_inference_instance`', '`update_inference_instance_key`',
104
- '`update_k8s_cluster_v2`', '`update_lbmetadata`',
105
- '`update_port_allowed_address_pairs`', '`update_tags_gpu_virtual_cluster`',
106
- '`upgrade_k8s_cluster_v2`', '`upscale_ai_cluster_gpu`',
107
- '`upscale_gpu_virtual_cluster`']
104
+ '`update_inference_application`', '`update_inference_instance`',
105
+ '`update_inference_instance_key`', '`update_k8s_cluster_v2`',
106
+ '`update_lbmetadata`', '`update_port_allowed_address_pairs`',
107
+ '`update_tags_gpu_virtual_cluster`', '`upgrade_k8s_cluster_v2`',
108
+ '`upscale_ai_cluster_gpu`', '`upscale_gpu_virtual_cluster`']
108
109
  """
109
110
 
110
111
  to_timestamp: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
@@ -49,8 +49,4 @@ class VolumeListParams(TypedDict, total=False):
49
49
  """Optional. Filter by tag keys. ?`tag_key`=key1&`tag_key`=key2"""
50
50
 
51
51
  tag_key_value: str
52
- """Optional.
53
-
54
- Filter by tag key-value pairs. curl -G --data-urlencode "`tag_key_value`={"key":
55
- "value"}" --url "https://example.com/cloud/v1/resource/1/1"
56
- """
52
+ """Optional. Filter by tag key-value pairs."""
@@ -2,7 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing_extensions import Required, TypedDict
5
+ from typing import Optional
6
+ from typing_extensions import TypedDict
7
+
8
+ from .tag_update_map_param import TagUpdateMapParam
6
9
 
7
10
  __all__ = ["VolumeUpdateParams"]
8
11
 
@@ -14,5 +17,28 @@ class VolumeUpdateParams(TypedDict, total=False):
14
17
  region_id: int
15
18
  """Region ID"""
16
19
 
17
- name: Required[str]
18
- """Name."""
20
+ name: str
21
+ """Name"""
22
+
23
+ tags: Optional[TagUpdateMapParam]
24
+ """Update key-value tags using JSON Merge Patch semantics (RFC 7386).
25
+
26
+ Provide key-value pairs to add or update tags. Set tag values to `null` to
27
+ remove tags. Unspecified tags remain unchanged. Read-only tags are always
28
+ preserved and cannot be modified. **Examples:**
29
+
30
+ - **Add/update tags:**
31
+ `{'tags': {'environment': 'production', 'team': 'backend'}}` adds new tags or
32
+ updates existing ones.
33
+ - **Delete tags:** `{'tags': {'`old_tag`': null}}` removes specific tags.
34
+ - **Remove all tags:** `{'tags': null}` removes all user-managed tags (read-only
35
+ tags are preserved).
36
+ - **Partial update:** `{'tags': {'environment': 'staging'}}` only updates
37
+ specified tags.
38
+ - **Mixed operations:**
39
+ `{'tags': {'environment': 'production', '`cost_center`': 'engineering', '`deprecated_tag`': null}}`
40
+ adds/updates 'environment' and '`cost_center`' while removing
41
+ '`deprecated_tag`', preserving other existing tags.
42
+ - **Replace all:** first delete existing tags with null values, then add new
43
+ ones in the same request.
44
+ """
@@ -0,0 +1,48 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .app import App as App
6
+ from .binary import Binary as Binary
7
+ from .client import Client as Client
8
+ from .secret import Secret as Secret
9
+ from .kv_store import KvStore as KvStore
10
+ from .template import Template as Template
11
+ from .app_param import AppParam as AppParam
12
+ from .app_short import AppShort as AppShort
13
+ from .call_status import CallStatus as CallStatus
14
+ from .binary_short import BinaryShort as BinaryShort
15
+ from .secret_short import SecretShort as SecretShort
16
+ from .duration_stats import DurationStats as DurationStats
17
+ from .kv_store_short import KvStoreShort as KvStoreShort
18
+ from .kv_store_stats import KvStoreStats as KvStoreStats
19
+ from .template_short import TemplateShort as TemplateShort
20
+ from .app_list_params import AppListParams as AppListParams
21
+ from .app_create_params import AppCreateParams as AppCreateParams
22
+ from .app_update_params import AppUpdateParams as AppUpdateParams
23
+ from .app_replace_params import AppReplaceParams as AppReplaceParams
24
+ from .secret_list_params import SecretListParams as SecretListParams
25
+ from .template_parameter import TemplateParameter as TemplateParameter
26
+ from .binary_list_response import BinaryListResponse as BinaryListResponse
27
+ from .kv_store_list_params import KvStoreListParams as KvStoreListParams
28
+ from .secret_create_params import SecretCreateParams as SecretCreateParams
29
+ from .secret_delete_params import SecretDeleteParams as SecretDeleteParams
30
+ from .secret_list_response import SecretListResponse as SecretListResponse
31
+ from .secret_update_params import SecretUpdateParams as SecretUpdateParams
32
+ from .template_list_params import TemplateListParams as TemplateListParams
33
+ from .kv_store_get_response import KvStoreGetResponse as KvStoreGetResponse
34
+ from .secret_replace_params import SecretReplaceParams as SecretReplaceParams
35
+ from .kv_store_create_params import KvStoreCreateParams as KvStoreCreateParams
36
+ from .kv_store_list_response import KvStoreListResponse as KvStoreListResponse
37
+ from .secret_create_response import SecretCreateResponse as SecretCreateResponse
38
+ from .template_create_params import TemplateCreateParams as TemplateCreateParams
39
+ from .template_delete_params import TemplateDeleteParams as TemplateDeleteParams
40
+ from .kv_store_replace_params import KvStoreReplaceParams as KvStoreReplaceParams
41
+ from .template_replace_params import TemplateReplaceParams as TemplateReplaceParams
42
+ from .template_parameter_param import TemplateParameterParam as TemplateParameterParam
43
+ from .statistic_get_call_series_params import StatisticGetCallSeriesParams as StatisticGetCallSeriesParams
44
+ from .statistic_get_call_series_response import StatisticGetCallSeriesResponse as StatisticGetCallSeriesResponse
45
+ from .statistic_get_duration_series_params import StatisticGetDurationSeriesParams as StatisticGetDurationSeriesParams
46
+ from .statistic_get_duration_series_response import (
47
+ StatisticGetDurationSeriesResponse as StatisticGetDurationSeriesResponse,
48
+ )
@@ -0,0 +1,81 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, List, Optional
4
+ from datetime import datetime
5
+ from typing_extensions import Literal
6
+
7
+ from ..._models import BaseModel
8
+
9
+ __all__ = ["App", "Secrets"]
10
+
11
+
12
+ class Secrets(BaseModel):
13
+ id: int
14
+ """The unique identifier of the secret."""
15
+
16
+ comment: Optional[str] = None
17
+ """A description or comment about the secret."""
18
+
19
+ name: Optional[str] = None
20
+ """The unique name of the secret."""
21
+
22
+
23
+ class App(BaseModel):
24
+ api_type: Optional[str] = None
25
+ """Wasm API type"""
26
+
27
+ binary: Optional[int] = None
28
+ """Binary ID"""
29
+
30
+ comment: Optional[str] = None
31
+ """App description"""
32
+
33
+ debug_until: Optional[datetime] = None
34
+ """When debugging finishes"""
35
+
36
+ env: Optional[Dict[str, str]] = None
37
+ """Environment variables"""
38
+
39
+ log: Optional[Literal["kafka", "none"]] = None
40
+ """Logging channel (by default - kafka, which allows exploring logs with API)"""
41
+
42
+ name: Optional[str] = None
43
+ """App name"""
44
+
45
+ networks: Optional[List[str]] = None
46
+ """Networks"""
47
+
48
+ plan: Optional[str] = None
49
+ """Plan name"""
50
+
51
+ plan_id: Optional[int] = None
52
+ """Plan ID"""
53
+
54
+ rsp_headers: Optional[Dict[str, str]] = None
55
+ """Extra headers to add to the response"""
56
+
57
+ secrets: Optional[Dict[str, Secrets]] = None
58
+ """Application secrets"""
59
+
60
+ status: Optional[int] = None
61
+ """
62
+ Status code:
63
+ 0 - draft (inactive)
64
+ 1 - enabled
65
+ 2 - disabled
66
+ 3 - hourly call limit exceeded
67
+ 4 - daily call limit exceeded
68
+ 5 - suspended
69
+ """
70
+
71
+ stores: Optional[Dict[str, int]] = None
72
+ """KV stores for the app"""
73
+
74
+ template: Optional[int] = None
75
+ """Template ID"""
76
+
77
+ template_name: Optional[str] = None
78
+ """Template name"""
79
+
80
+ url: Optional[str] = None
81
+ """App URL"""
@@ -0,0 +1,56 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict, Optional
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ __all__ = ["AppCreateParams", "Secrets"]
9
+
10
+
11
+ class AppCreateParams(TypedDict, total=False):
12
+ binary: int
13
+ """Binary ID"""
14
+
15
+ comment: str
16
+ """App description"""
17
+
18
+ debug: bool
19
+ """Switch on logging for 30 minutes (switched off by default)"""
20
+
21
+ env: Dict[str, str]
22
+ """Environment variables"""
23
+
24
+ log: Optional[Literal["kafka", "none"]]
25
+ """Logging channel (by default - kafka, which allows exploring logs with API)"""
26
+
27
+ name: str
28
+ """App name"""
29
+
30
+ rsp_headers: Dict[str, str]
31
+ """Extra headers to add to the response"""
32
+
33
+ secrets: Dict[str, Secrets]
34
+ """Application secrets"""
35
+
36
+ status: int
37
+ """
38
+ Status code:
39
+ 0 - draft (inactive)
40
+ 1 - enabled
41
+ 2 - disabled
42
+ 3 - hourly call limit exceeded
43
+ 4 - daily call limit exceeded
44
+ 5 - suspended
45
+ """
46
+
47
+ stores: Dict[str, int]
48
+ """KV stores for the app"""
49
+
50
+ template: int
51
+ """Template ID"""
52
+
53
+
54
+ class Secrets(TypedDict, total=False):
55
+ id: Required[int]
56
+ """The unique identifier of the secret."""
@@ -0,0 +1,50 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, TypedDict
6
+
7
+ __all__ = ["AppListParams"]
8
+
9
+
10
+ class AppListParams(TypedDict, total=False):
11
+ api_type: Literal["wasi-http", "proxy-wasm"]
12
+ """
13
+ API type:
14
+ wasi-http - WASI with HTTP entry point
15
+ proxy-wasm - Proxy-Wasm app, callable from CDN
16
+ """
17
+
18
+ binary: int
19
+ """Binary ID"""
20
+
21
+ limit: int
22
+ """Limit for pagination"""
23
+
24
+ name: str
25
+ """Name of the app"""
26
+
27
+ offset: int
28
+ """Offset for pagination"""
29
+
30
+ ordering: Literal[
31
+ "name", "-name", "status", "-status", "id", "-id", "template", "-template", "binary", "-binary", "plan", "-plan"
32
+ ]
33
+ """Ordering"""
34
+
35
+ plan: int
36
+ """Plan ID"""
37
+
38
+ status: int
39
+ """
40
+ Status code:
41
+ 0 - draft (inactive)
42
+ 1 - enabled
43
+ 2 - disabled
44
+ 3 - hourly call limit exceeded
45
+ 4 - daily call limit exceeded
46
+ 5 - suspended
47
+ """
48
+
49
+ template: int
50
+ """Template ID"""
@@ -0,0 +1,56 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict, Optional
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ __all__ = ["AppParam", "Secrets"]
9
+
10
+
11
+ class Secrets(TypedDict, total=False):
12
+ id: Required[int]
13
+ """The unique identifier of the secret."""
14
+
15
+
16
+ class AppParam(TypedDict, total=False):
17
+ binary: int
18
+ """Binary ID"""
19
+
20
+ comment: str
21
+ """App description"""
22
+
23
+ debug: bool
24
+ """Switch on logging for 30 minutes (switched off by default)"""
25
+
26
+ env: Dict[str, str]
27
+ """Environment variables"""
28
+
29
+ log: Optional[Literal["kafka", "none"]]
30
+ """Logging channel (by default - kafka, which allows exploring logs with API)"""
31
+
32
+ name: str
33
+ """App name"""
34
+
35
+ rsp_headers: Dict[str, str]
36
+ """Extra headers to add to the response"""
37
+
38
+ secrets: Dict[str, Secrets]
39
+ """Application secrets"""
40
+
41
+ status: int
42
+ """
43
+ Status code:
44
+ 0 - draft (inactive)
45
+ 1 - enabled
46
+ 2 - disabled
47
+ 3 - hourly call limit exceeded
48
+ 4 - daily call limit exceeded
49
+ 5 - suspended
50
+ """
51
+
52
+ stores: Dict[str, int]
53
+ """KV stores for the app"""
54
+
55
+ template: int
56
+ """Template ID"""
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ from .app_param import AppParam
8
+
9
+ __all__ = ["AppReplaceParams", "Body"]
10
+
11
+
12
+ class AppReplaceParams(TypedDict, total=False):
13
+ body: Body
14
+
15
+
16
+ class Body(AppParam, total=False):
17
+ pass