latitudesh-python-sdk 2.3.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.
Files changed (242) hide show
  1. latitudesh_python_sdk/__init__.py +18 -0
  2. latitudesh_python_sdk/_hooks/__init__.py +5 -0
  3. latitudesh_python_sdk/_hooks/registration.py +13 -0
  4. latitudesh_python_sdk/_hooks/sdkhooks.py +76 -0
  5. latitudesh_python_sdk/_hooks/types.py +113 -0
  6. latitudesh_python_sdk/_version.py +17 -0
  7. latitudesh_python_sdk/apikeys.py +703 -0
  8. latitudesh_python_sdk/basesdk.py +374 -0
  9. latitudesh_python_sdk/billing.py +197 -0
  10. latitudesh_python_sdk/events_sdk.py +298 -0
  11. latitudesh_python_sdk/firewalls_sdk.py +1786 -0
  12. latitudesh_python_sdk/httpclient.py +125 -0
  13. latitudesh_python_sdk/ipaddresses_sdk.py +470 -0
  14. latitudesh_python_sdk/models/__init__.py +3581 -0
  15. latitudesh_python_sdk/models/api_key.py +81 -0
  16. latitudesh_python_sdk/models/apierror.py +40 -0
  17. latitudesh_python_sdk/models/assign_server_virtual_networkop.py +43 -0
  18. latitudesh_python_sdk/models/bandwidth_packages.py +67 -0
  19. latitudesh_python_sdk/models/bandwidth_plan_data.py +72 -0
  20. latitudesh_python_sdk/models/bandwidth_plans.py +26 -0
  21. latitudesh_python_sdk/models/billing_usage.py +249 -0
  22. latitudesh_python_sdk/models/container_plan_data.py +163 -0
  23. latitudesh_python_sdk/models/create_api_key.py +40 -0
  24. latitudesh_python_sdk/models/create_firewall_assignmentop.py +61 -0
  25. latitudesh_python_sdk/models/create_firewallop.py +73 -0
  26. latitudesh_python_sdk/models/create_ipmi_sessionop.py +16 -0
  27. latitudesh_python_sdk/models/create_projectop.py +79 -0
  28. latitudesh_python_sdk/models/create_server_actionop.py +69 -0
  29. latitudesh_python_sdk/models/create_server_out_of_bandop.py +61 -0
  30. latitudesh_python_sdk/models/create_server_reinstallop.py +140 -0
  31. latitudesh_python_sdk/models/create_serverop.py +173 -0
  32. latitudesh_python_sdk/models/create_tagop.py +50 -0
  33. latitudesh_python_sdk/models/create_virtual_machine_actionop.py +63 -0
  34. latitudesh_python_sdk/models/create_virtual_networkop.py +72 -0
  35. latitudesh_python_sdk/models/custom_tag.py +26 -0
  36. latitudesh_python_sdk/models/custom_tag_data.py +54 -0
  37. latitudesh_python_sdk/models/custom_tags.py +26 -0
  38. latitudesh_python_sdk/models/delete_api_keyop.py +16 -0
  39. latitudesh_python_sdk/models/delete_firewall_assignmentop.py +25 -0
  40. latitudesh_python_sdk/models/delete_firewallop.py +18 -0
  41. latitudesh_python_sdk/models/delete_project_ssh_keyop.py +23 -0
  42. latitudesh_python_sdk/models/delete_project_user_dataop.py +23 -0
  43. latitudesh_python_sdk/models/delete_projectop.py +18 -0
  44. latitudesh_python_sdk/models/delete_ssh_keyop.py +16 -0
  45. latitudesh_python_sdk/models/delete_storage_filesystemsop.py +16 -0
  46. latitudesh_python_sdk/models/delete_storage_volumesop.py +16 -0
  47. latitudesh_python_sdk/models/delete_user_dataop.py +16 -0
  48. latitudesh_python_sdk/models/delete_virtual_networks_assignmentsop.py +16 -0
  49. latitudesh_python_sdk/models/delete_vpn_sessionop.py +16 -0
  50. latitudesh_python_sdk/models/deploy_config.py +62 -0
  51. latitudesh_python_sdk/models/destroy_serverop.py +31 -0
  52. latitudesh_python_sdk/models/destroy_tagop.py +16 -0
  53. latitudesh_python_sdk/models/destroy_team_memberop.py +18 -0
  54. latitudesh_python_sdk/models/destroy_virtual_machineop.py +16 -0
  55. latitudesh_python_sdk/models/destroy_virtual_networkop.py +18 -0
  56. latitudesh_python_sdk/models/event_data.py +98 -0
  57. latitudesh_python_sdk/models/events.py +26 -0
  58. latitudesh_python_sdk/models/filesystem_data.py +57 -0
  59. latitudesh_python_sdk/models/firewall.py +26 -0
  60. latitudesh_python_sdk/models/firewall_assignment_data.py +50 -0
  61. latitudesh_python_sdk/models/firewall_assignments.py +29 -0
  62. latitudesh_python_sdk/models/firewall_data.py +75 -0
  63. latitudesh_python_sdk/models/firewall_server.py +36 -0
  64. latitudesh_python_sdk/models/firewalls.py +26 -0
  65. latitudesh_python_sdk/models/get_all_firewall_assignmentsop.py +51 -0
  66. latitudesh_python_sdk/models/get_bandwidth_plansop.py +62 -0
  67. latitudesh_python_sdk/models/get_billing_usageop.py +46 -0
  68. latitudesh_python_sdk/models/get_containers_planop.py +18 -0
  69. latitudesh_python_sdk/models/get_eventsop.py +126 -0
  70. latitudesh_python_sdk/models/get_firewall_assignmentsop.py +53 -0
  71. latitudesh_python_sdk/models/get_firewallop.py +18 -0
  72. latitudesh_python_sdk/models/get_ipop.py +33 -0
  73. latitudesh_python_sdk/models/get_ipsop.py +120 -0
  74. latitudesh_python_sdk/models/get_planop.py +16 -0
  75. latitudesh_python_sdk/models/get_plans_operating_systemop.py +54 -0
  76. latitudesh_python_sdk/models/get_plansop.py +125 -0
  77. latitudesh_python_sdk/models/get_project_ssh_keyop.py +37 -0
  78. latitudesh_python_sdk/models/get_project_ssh_keysop.py +33 -0
  79. latitudesh_python_sdk/models/get_project_user_dataop.py +38 -0
  80. latitudesh_python_sdk/models/get_project_users_dataop.py +46 -0
  81. latitudesh_python_sdk/models/get_projectsop.py +105 -0
  82. latitudesh_python_sdk/models/get_regionop.py +18 -0
  83. latitudesh_python_sdk/models/get_regionsop.py +42 -0
  84. latitudesh_python_sdk/models/get_role_idop.py +16 -0
  85. latitudesh_python_sdk/models/get_rolesop.py +54 -0
  86. latitudesh_python_sdk/models/get_server_deploy_configop.py +18 -0
  87. latitudesh_python_sdk/models/get_server_out_of_bandop.py +18 -0
  88. latitudesh_python_sdk/models/get_serverop.py +33 -0
  89. latitudesh_python_sdk/models/get_serversop.py +185 -0
  90. latitudesh_python_sdk/models/get_ssh_keyop.py +30 -0
  91. latitudesh_python_sdk/models/get_ssh_keysop.py +31 -0
  92. latitudesh_python_sdk/models/get_storage_filesystemsop.py +22 -0
  93. latitudesh_python_sdk/models/get_storage_volumeop.py +32 -0
  94. latitudesh_python_sdk/models/get_storage_volumesop.py +35 -0
  95. latitudesh_python_sdk/models/get_team_membersop.py +42 -0
  96. latitudesh_python_sdk/models/get_traffic_consumptionop.py +49 -0
  97. latitudesh_python_sdk/models/get_traffic_quotaop.py +20 -0
  98. latitudesh_python_sdk/models/get_user_dataop.py +31 -0
  99. latitudesh_python_sdk/models/get_user_profileop.py +19 -0
  100. latitudesh_python_sdk/models/get_users_dataop.py +44 -0
  101. latitudesh_python_sdk/models/get_virtual_networkop.py +32 -0
  102. latitudesh_python_sdk/models/get_virtual_networks_assignmentsop.py +72 -0
  103. latitudesh_python_sdk/models/get_virtual_networksop.py +69 -0
  104. latitudesh_python_sdk/models/get_vpn_sessionsop.py +70 -0
  105. latitudesh_python_sdk/models/index_virtual_machineop.py +31 -0
  106. latitudesh_python_sdk/models/ip_address.py +122 -0
  107. latitudesh_python_sdk/models/ip_addresses.py +15 -0
  108. latitudesh_python_sdk/models/ipmi_session.py +53 -0
  109. latitudesh_python_sdk/models/latitudesherror.py +30 -0
  110. latitudesh_python_sdk/models/list_firewallsop.py +49 -0
  111. latitudesh_python_sdk/models/membership.py +63 -0
  112. latitudesh_python_sdk/models/no_response_error.py +17 -0
  113. latitudesh_python_sdk/models/operating_system_data.py +65 -0
  114. latitudesh_python_sdk/models/operating_systems.py +26 -0
  115. latitudesh_python_sdk/models/out_of_band_connection.py +88 -0
  116. latitudesh_python_sdk/models/patch_current_teamop.py +91 -0
  117. latitudesh_python_sdk/models/patch_storage_filesystemsop.py +79 -0
  118. latitudesh_python_sdk/models/patch_user_dataop.py +69 -0
  119. latitudesh_python_sdk/models/patch_user_profileop.py +88 -0
  120. latitudesh_python_sdk/models/plan.py +15 -0
  121. latitudesh_python_sdk/models/plan_data.py +210 -0
  122. latitudesh_python_sdk/models/post_api_keyop.py +19 -0
  123. latitudesh_python_sdk/models/post_project_ssh_keyop.py +81 -0
  124. latitudesh_python_sdk/models/post_project_user_dataop.py +68 -0
  125. latitudesh_python_sdk/models/post_ssh_keyop.py +63 -0
  126. latitudesh_python_sdk/models/post_storage_filesystemsop.py +63 -0
  127. latitudesh_python_sdk/models/post_storage_volumes_mountop.py +62 -0
  128. latitudesh_python_sdk/models/post_storage_volumesop.py +63 -0
  129. latitudesh_python_sdk/models/post_team_membersop.py +54 -0
  130. latitudesh_python_sdk/models/post_teamop.py +67 -0
  131. latitudesh_python_sdk/models/post_user_dataop.py +50 -0
  132. latitudesh_python_sdk/models/post_vpn_sessionop.py +63 -0
  133. latitudesh_python_sdk/models/project.py +131 -0
  134. latitudesh_python_sdk/models/project_include.py +75 -0
  135. latitudesh_python_sdk/models/projects.py +15 -0
  136. latitudesh_python_sdk/models/put_project_ssh_keyop.py +87 -0
  137. latitudesh_python_sdk/models/put_project_user_dataop.py +76 -0
  138. latitudesh_python_sdk/models/put_ssh_keyop.py +80 -0
  139. latitudesh_python_sdk/models/put_vpn_sessionop.py +16 -0
  140. latitudesh_python_sdk/models/region.py +50 -0
  141. latitudesh_python_sdk/models/region_resource_data.py +37 -0
  142. latitudesh_python_sdk/models/regions.py +50 -0
  143. latitudesh_python_sdk/models/responsevalidationerror.py +27 -0
  144. latitudesh_python_sdk/models/role.py +26 -0
  145. latitudesh_python_sdk/models/role_data.py +35 -0
  146. latitudesh_python_sdk/models/security.py +25 -0
  147. latitudesh_python_sdk/models/server.py +26 -0
  148. latitudesh_python_sdk/models/server_action.py +52 -0
  149. latitudesh_python_sdk/models/server_data.py +280 -0
  150. latitudesh_python_sdk/models/server_exit_rescue_modeop.py +16 -0
  151. latitudesh_python_sdk/models/server_lockop.py +16 -0
  152. latitudesh_python_sdk/models/server_region_resource_data.py +40 -0
  153. latitudesh_python_sdk/models/server_rescue.py +22 -0
  154. latitudesh_python_sdk/models/server_schedule_deletion.py +44 -0
  155. latitudesh_python_sdk/models/server_schedule_deletionop.py +16 -0
  156. latitudesh_python_sdk/models/server_start_rescue_modeop.py +16 -0
  157. latitudesh_python_sdk/models/server_unlockop.py +16 -0
  158. latitudesh_python_sdk/models/server_unschedule_deletionop.py +16 -0
  159. latitudesh_python_sdk/models/servers.py +26 -0
  160. latitudesh_python_sdk/models/show_virtual_machineop.py +16 -0
  161. latitudesh_python_sdk/models/ssh_key_data.py +55 -0
  162. latitudesh_python_sdk/models/ssh_keys.py +26 -0
  163. latitudesh_python_sdk/models/storage_plan_data.py +47 -0
  164. latitudesh_python_sdk/models/storage_plans.py +26 -0
  165. latitudesh_python_sdk/models/team.py +74 -0
  166. latitudesh_python_sdk/models/team_include.py +43 -0
  167. latitudesh_python_sdk/models/team_members.py +51 -0
  168. latitudesh_python_sdk/models/teams.py +26 -0
  169. latitudesh_python_sdk/models/traffic.py +133 -0
  170. latitudesh_python_sdk/models/traffic_quota.py +106 -0
  171. latitudesh_python_sdk/models/update_api_key.py +48 -0
  172. latitudesh_python_sdk/models/update_api_keyop.py +41 -0
  173. latitudesh_python_sdk/models/update_firewallop.py +89 -0
  174. latitudesh_python_sdk/models/update_plans_bandwidthop.py +50 -0
  175. latitudesh_python_sdk/models/update_projectop.py +95 -0
  176. latitudesh_python_sdk/models/update_server_deploy_configop.py +122 -0
  177. latitudesh_python_sdk/models/update_serverop.py +85 -0
  178. latitudesh_python_sdk/models/update_tagop.py +74 -0
  179. latitudesh_python_sdk/models/update_virtual_networkop.py +67 -0
  180. latitudesh_python_sdk/models/user.py +59 -0
  181. latitudesh_python_sdk/models/user_data.py +26 -0
  182. latitudesh_python_sdk/models/user_data_properties.py +46 -0
  183. latitudesh_python_sdk/models/user_include.py +52 -0
  184. latitudesh_python_sdk/models/user_team.py +61 -0
  185. latitudesh_python_sdk/models/user_teams.py +26 -0
  186. latitudesh_python_sdk/models/user_update.py +37 -0
  187. latitudesh_python_sdk/models/virtual_machine.py +29 -0
  188. latitudesh_python_sdk/models/virtual_machine_attributes.py +115 -0
  189. latitudesh_python_sdk/models/virtual_machine_payload.py +47 -0
  190. latitudesh_python_sdk/models/virtual_machine_plans.py +181 -0
  191. latitudesh_python_sdk/models/virtual_network.py +26 -0
  192. latitudesh_python_sdk/models/virtual_network_assignment.py +29 -0
  193. latitudesh_python_sdk/models/virtual_network_assignment_data.py +65 -0
  194. latitudesh_python_sdk/models/virtual_network_assignments.py +29 -0
  195. latitudesh_python_sdk/models/virtual_network_data.py +114 -0
  196. latitudesh_python_sdk/models/virtual_networks.py +26 -0
  197. latitudesh_python_sdk/models/volume_data.py +111 -0
  198. latitudesh_python_sdk/models/vpn_session_data_with_password.py +77 -0
  199. latitudesh_python_sdk/models/vpn_session_with_password.py +18 -0
  200. latitudesh_python_sdk/operatingsystems_sdk.py +238 -0
  201. latitudesh_python_sdk/plans.py +1304 -0
  202. latitudesh_python_sdk/privatenetworks.py +1612 -0
  203. latitudesh_python_sdk/projects_sdk.py +830 -0
  204. latitudesh_python_sdk/py.typed +1 -0
  205. latitudesh_python_sdk/regions_sdk.py +398 -0
  206. latitudesh_python_sdk/roles.py +398 -0
  207. latitudesh_python_sdk/sdk.py +264 -0
  208. latitudesh_python_sdk/sdkconfiguration.py +50 -0
  209. latitudesh_python_sdk/servers_sdk.py +3414 -0
  210. latitudesh_python_sdk/sshkeys_sdk.py +1882 -0
  211. latitudesh_python_sdk/storage.py +1651 -0
  212. latitudesh_python_sdk/tags.py +715 -0
  213. latitudesh_python_sdk/teams_sdk.py +527 -0
  214. latitudesh_python_sdk/teamsmembers.py +576 -0
  215. latitudesh_python_sdk/traffic_sdk.py +357 -0
  216. latitudesh_python_sdk/types/__init__.py +21 -0
  217. latitudesh_python_sdk/types/basemodel.py +39 -0
  218. latitudesh_python_sdk/userdata_sdk.py +1888 -0
  219. latitudesh_python_sdk/userprofile.py +531 -0
  220. latitudesh_python_sdk/utils/__init__.py +200 -0
  221. latitudesh_python_sdk/utils/annotations.py +79 -0
  222. latitudesh_python_sdk/utils/datetimes.py +23 -0
  223. latitudesh_python_sdk/utils/enums.py +74 -0
  224. latitudesh_python_sdk/utils/eventstreaming.py +248 -0
  225. latitudesh_python_sdk/utils/forms.py +234 -0
  226. latitudesh_python_sdk/utils/headers.py +136 -0
  227. latitudesh_python_sdk/utils/logger.py +27 -0
  228. latitudesh_python_sdk/utils/metadata.py +118 -0
  229. latitudesh_python_sdk/utils/queryparams.py +217 -0
  230. latitudesh_python_sdk/utils/requestbodies.py +66 -0
  231. latitudesh_python_sdk/utils/retries.py +281 -0
  232. latitudesh_python_sdk/utils/security.py +192 -0
  233. latitudesh_python_sdk/utils/serializers.py +249 -0
  234. latitudesh_python_sdk/utils/unmarshal_json_response.py +38 -0
  235. latitudesh_python_sdk/utils/url.py +155 -0
  236. latitudesh_python_sdk/utils/values.py +137 -0
  237. latitudesh_python_sdk/virtualmachines.py +941 -0
  238. latitudesh_python_sdk/vpnsessions.py +715 -0
  239. latitudesh_python_sdk-2.3.0.dist-info/METADATA +787 -0
  240. latitudesh_python_sdk-2.3.0.dist-info/RECORD +242 -0
  241. latitudesh_python_sdk-2.3.0.dist-info/WHEEL +4 -0
  242. latitudesh_python_sdk-2.3.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1 @@
1
+ # Marker file for PEP 561. The package enables type hints.
@@ -0,0 +1,398 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from jsonpath import JSONPath
5
+ from latitudesh_python_sdk import models, utils
6
+ from latitudesh_python_sdk._hooks import HookContext
7
+ from latitudesh_python_sdk.types import OptionalNullable, UNSET
8
+ from latitudesh_python_sdk.utils import get_security_from_env
9
+ from latitudesh_python_sdk.utils.unmarshal_json_response import unmarshal_json_response
10
+ from typing import Any, Dict, List, Mapping, Optional, Union
11
+
12
+
13
+ class RegionsSDK(BaseSDK):
14
+ def list(
15
+ self,
16
+ *,
17
+ page_size: Optional[int] = 20,
18
+ page_number: Optional[int] = 1,
19
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
20
+ server_url: Optional[str] = None,
21
+ timeout_ms: Optional[int] = None,
22
+ http_headers: Optional[Mapping[str, str]] = None,
23
+ ) -> Optional[models.GetRegionsResponse]:
24
+ r"""List all Regions
25
+
26
+ Lists all [available locations](https://latitude.sh/locations). For server availability by location, please see the [Plans API](/reference/get-plans).
27
+
28
+
29
+
30
+ :param page_size: Number of items to return per page
31
+ :param page_number: Page number to return (starts at 1)
32
+ :param retries: Override the default retry configuration for this method
33
+ :param server_url: Override the default server URL for this method
34
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
35
+ :param http_headers: Additional headers to set or replace on requests.
36
+ """
37
+ base_url = None
38
+ url_variables = None
39
+ if timeout_ms is None:
40
+ timeout_ms = self.sdk_configuration.timeout_ms
41
+
42
+ if server_url is not None:
43
+ base_url = server_url
44
+ else:
45
+ base_url = self._get_url(base_url, url_variables)
46
+
47
+ request = models.GetRegionsRequest(
48
+ page_size=page_size,
49
+ page_number=page_number,
50
+ )
51
+
52
+ req = self._build_request(
53
+ method="GET",
54
+ path="/regions",
55
+ base_url=base_url,
56
+ url_variables=url_variables,
57
+ request=request,
58
+ request_body_required=False,
59
+ request_has_path_params=False,
60
+ request_has_query_params=True,
61
+ user_agent_header="user-agent",
62
+ accept_header_value="application/vnd.api+json",
63
+ http_headers=http_headers,
64
+ security=self.sdk_configuration.security,
65
+ allow_empty_value=None,
66
+ timeout_ms=timeout_ms,
67
+ )
68
+
69
+ if retries == UNSET:
70
+ if self.sdk_configuration.retry_config is not UNSET:
71
+ retries = self.sdk_configuration.retry_config
72
+
73
+ retry_config = None
74
+ if isinstance(retries, utils.RetryConfig):
75
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
76
+
77
+ http_res = self.do_request(
78
+ hook_ctx=HookContext(
79
+ config=self.sdk_configuration,
80
+ base_url=base_url or "",
81
+ operation_id="get-regions",
82
+ oauth2_scopes=None,
83
+ security_source=get_security_from_env(
84
+ self.sdk_configuration.security, models.Security
85
+ ),
86
+ ),
87
+ request=req,
88
+ error_status_codes=["4XX", "5XX"],
89
+ retry_config=retry_config,
90
+ )
91
+
92
+ def next_func() -> Optional[models.GetRegionsResponse]:
93
+ body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
94
+ page = request.page_number if not request.page_number is None else 1
95
+ next_page = page + 1
96
+
97
+ if not http_res.text:
98
+ return None
99
+ results = JSONPath("$.data").parse(body)
100
+ if len(results) == 0 or len(results[0]) == 0:
101
+ return None
102
+ limit = request.page_size if not request.page_size is None else 20
103
+ if len(results[0]) < limit:
104
+ return None
105
+
106
+ return self.list(
107
+ page_size=page_size,
108
+ page_number=next_page,
109
+ retries=retries,
110
+ )
111
+
112
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
113
+ return models.GetRegionsResponse(
114
+ result=unmarshal_json_response(models.Regions, http_res), next=next_func
115
+ )
116
+ if utils.match_response(http_res, "4XX", "*"):
117
+ http_res_text = utils.stream_to_text(http_res)
118
+ raise models.APIError("API error occurred", http_res, http_res_text)
119
+ if utils.match_response(http_res, "5XX", "*"):
120
+ http_res_text = utils.stream_to_text(http_res)
121
+ raise models.APIError("API error occurred", http_res, http_res_text)
122
+
123
+ raise models.APIError("Unexpected response received", http_res)
124
+
125
+ async def list_async(
126
+ self,
127
+ *,
128
+ page_size: Optional[int] = 20,
129
+ page_number: Optional[int] = 1,
130
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
131
+ server_url: Optional[str] = None,
132
+ timeout_ms: Optional[int] = None,
133
+ http_headers: Optional[Mapping[str, str]] = None,
134
+ ) -> Optional[models.GetRegionsResponse]:
135
+ r"""List all Regions
136
+
137
+ Lists all [available locations](https://latitude.sh/locations). For server availability by location, please see the [Plans API](/reference/get-plans).
138
+
139
+
140
+
141
+ :param page_size: Number of items to return per page
142
+ :param page_number: Page number to return (starts at 1)
143
+ :param retries: Override the default retry configuration for this method
144
+ :param server_url: Override the default server URL for this method
145
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
146
+ :param http_headers: Additional headers to set or replace on requests.
147
+ """
148
+ base_url = None
149
+ url_variables = None
150
+ if timeout_ms is None:
151
+ timeout_ms = self.sdk_configuration.timeout_ms
152
+
153
+ if server_url is not None:
154
+ base_url = server_url
155
+ else:
156
+ base_url = self._get_url(base_url, url_variables)
157
+
158
+ request = models.GetRegionsRequest(
159
+ page_size=page_size,
160
+ page_number=page_number,
161
+ )
162
+
163
+ req = self._build_request_async(
164
+ method="GET",
165
+ path="/regions",
166
+ base_url=base_url,
167
+ url_variables=url_variables,
168
+ request=request,
169
+ request_body_required=False,
170
+ request_has_path_params=False,
171
+ request_has_query_params=True,
172
+ user_agent_header="user-agent",
173
+ accept_header_value="application/vnd.api+json",
174
+ http_headers=http_headers,
175
+ security=self.sdk_configuration.security,
176
+ allow_empty_value=None,
177
+ timeout_ms=timeout_ms,
178
+ )
179
+
180
+ if retries == UNSET:
181
+ if self.sdk_configuration.retry_config is not UNSET:
182
+ retries = self.sdk_configuration.retry_config
183
+
184
+ retry_config = None
185
+ if isinstance(retries, utils.RetryConfig):
186
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
187
+
188
+ http_res = await self.do_request_async(
189
+ hook_ctx=HookContext(
190
+ config=self.sdk_configuration,
191
+ base_url=base_url or "",
192
+ operation_id="get-regions",
193
+ oauth2_scopes=None,
194
+ security_source=get_security_from_env(
195
+ self.sdk_configuration.security, models.Security
196
+ ),
197
+ ),
198
+ request=req,
199
+ error_status_codes=["4XX", "5XX"],
200
+ retry_config=retry_config,
201
+ )
202
+
203
+ def next_func() -> Optional[models.GetRegionsResponse]:
204
+ body = utils.unmarshal_json(http_res.text, Union[Dict[Any, Any], List[Any]])
205
+ page = request.page_number if not request.page_number is None else 1
206
+ next_page = page + 1
207
+
208
+ if not http_res.text:
209
+ return None
210
+ results = JSONPath("$.data").parse(body)
211
+ if len(results) == 0 or len(results[0]) == 0:
212
+ return None
213
+ limit = request.page_size if not request.page_size is None else 20
214
+ if len(results[0]) < limit:
215
+ return None
216
+
217
+ return self.list(
218
+ page_size=page_size,
219
+ page_number=next_page,
220
+ retries=retries,
221
+ )
222
+
223
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
224
+ return models.GetRegionsResponse(
225
+ result=unmarshal_json_response(models.Regions, http_res), next=next_func
226
+ )
227
+ if utils.match_response(http_res, "4XX", "*"):
228
+ http_res_text = await utils.stream_to_text_async(http_res)
229
+ raise models.APIError("API error occurred", http_res, http_res_text)
230
+ if utils.match_response(http_res, "5XX", "*"):
231
+ http_res_text = await utils.stream_to_text_async(http_res)
232
+ raise models.APIError("API error occurred", http_res, http_res_text)
233
+
234
+ raise models.APIError("Unexpected response received", http_res)
235
+
236
+ def get(
237
+ self,
238
+ *,
239
+ region_id: str,
240
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
241
+ server_url: Optional[str] = None,
242
+ timeout_ms: Optional[int] = None,
243
+ http_headers: Optional[Mapping[str, str]] = None,
244
+ ) -> models.Region:
245
+ r"""Retrieve a Region
246
+
247
+ :param region_id: The region region_ID
248
+ :param retries: Override the default retry configuration for this method
249
+ :param server_url: Override the default server URL for this method
250
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
251
+ :param http_headers: Additional headers to set or replace on requests.
252
+ """
253
+ base_url = None
254
+ url_variables = None
255
+ if timeout_ms is None:
256
+ timeout_ms = self.sdk_configuration.timeout_ms
257
+
258
+ if server_url is not None:
259
+ base_url = server_url
260
+ else:
261
+ base_url = self._get_url(base_url, url_variables)
262
+
263
+ request = models.GetRegionRequest(
264
+ region_id=region_id,
265
+ )
266
+
267
+ req = self._build_request(
268
+ method="GET",
269
+ path="/regions/{region_id}",
270
+ base_url=base_url,
271
+ url_variables=url_variables,
272
+ request=request,
273
+ request_body_required=False,
274
+ request_has_path_params=True,
275
+ request_has_query_params=True,
276
+ user_agent_header="user-agent",
277
+ accept_header_value="application/vnd.api+json",
278
+ http_headers=http_headers,
279
+ security=self.sdk_configuration.security,
280
+ allow_empty_value=None,
281
+ timeout_ms=timeout_ms,
282
+ )
283
+
284
+ if retries == UNSET:
285
+ if self.sdk_configuration.retry_config is not UNSET:
286
+ retries = self.sdk_configuration.retry_config
287
+
288
+ retry_config = None
289
+ if isinstance(retries, utils.RetryConfig):
290
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
291
+
292
+ http_res = self.do_request(
293
+ hook_ctx=HookContext(
294
+ config=self.sdk_configuration,
295
+ base_url=base_url or "",
296
+ operation_id="get-region",
297
+ oauth2_scopes=None,
298
+ security_source=get_security_from_env(
299
+ self.sdk_configuration.security, models.Security
300
+ ),
301
+ ),
302
+ request=req,
303
+ error_status_codes=["4XX", "5XX"],
304
+ retry_config=retry_config,
305
+ )
306
+
307
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
308
+ return unmarshal_json_response(models.Region, http_res)
309
+ if utils.match_response(http_res, "4XX", "*"):
310
+ http_res_text = utils.stream_to_text(http_res)
311
+ raise models.APIError("API error occurred", http_res, http_res_text)
312
+ if utils.match_response(http_res, "5XX", "*"):
313
+ http_res_text = utils.stream_to_text(http_res)
314
+ raise models.APIError("API error occurred", http_res, http_res_text)
315
+
316
+ raise models.APIError("Unexpected response received", http_res)
317
+
318
+ async def get_async(
319
+ self,
320
+ *,
321
+ region_id: str,
322
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
323
+ server_url: Optional[str] = None,
324
+ timeout_ms: Optional[int] = None,
325
+ http_headers: Optional[Mapping[str, str]] = None,
326
+ ) -> models.Region:
327
+ r"""Retrieve a Region
328
+
329
+ :param region_id: The region region_ID
330
+ :param retries: Override the default retry configuration for this method
331
+ :param server_url: Override the default server URL for this method
332
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
333
+ :param http_headers: Additional headers to set or replace on requests.
334
+ """
335
+ base_url = None
336
+ url_variables = None
337
+ if timeout_ms is None:
338
+ timeout_ms = self.sdk_configuration.timeout_ms
339
+
340
+ if server_url is not None:
341
+ base_url = server_url
342
+ else:
343
+ base_url = self._get_url(base_url, url_variables)
344
+
345
+ request = models.GetRegionRequest(
346
+ region_id=region_id,
347
+ )
348
+
349
+ req = self._build_request_async(
350
+ method="GET",
351
+ path="/regions/{region_id}",
352
+ base_url=base_url,
353
+ url_variables=url_variables,
354
+ request=request,
355
+ request_body_required=False,
356
+ request_has_path_params=True,
357
+ request_has_query_params=True,
358
+ user_agent_header="user-agent",
359
+ accept_header_value="application/vnd.api+json",
360
+ http_headers=http_headers,
361
+ security=self.sdk_configuration.security,
362
+ allow_empty_value=None,
363
+ timeout_ms=timeout_ms,
364
+ )
365
+
366
+ if retries == UNSET:
367
+ if self.sdk_configuration.retry_config is not UNSET:
368
+ retries = self.sdk_configuration.retry_config
369
+
370
+ retry_config = None
371
+ if isinstance(retries, utils.RetryConfig):
372
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
373
+
374
+ http_res = await self.do_request_async(
375
+ hook_ctx=HookContext(
376
+ config=self.sdk_configuration,
377
+ base_url=base_url or "",
378
+ operation_id="get-region",
379
+ oauth2_scopes=None,
380
+ security_source=get_security_from_env(
381
+ self.sdk_configuration.security, models.Security
382
+ ),
383
+ ),
384
+ request=req,
385
+ error_status_codes=["4XX", "5XX"],
386
+ retry_config=retry_config,
387
+ )
388
+
389
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
390
+ return unmarshal_json_response(models.Region, http_res)
391
+ if utils.match_response(http_res, "4XX", "*"):
392
+ http_res_text = await utils.stream_to_text_async(http_res)
393
+ raise models.APIError("API error occurred", http_res, http_res_text)
394
+ if utils.match_response(http_res, "5XX", "*"):
395
+ http_res_text = await utils.stream_to_text_async(http_res)
396
+ raise models.APIError("API error occurred", http_res, http_res_text)
397
+
398
+ raise models.APIError("Unexpected response received", http_res)