latitudesh-python-sdk 0.0.6__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 latitudesh-python-sdk might be problematic. Click here for more details.

Files changed (206) 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 +106 -0
  6. latitudesh_python_sdk/_version.py +15 -0
  7. latitudesh_python_sdk/apikeys.py +802 -0
  8. latitudesh_python_sdk/basesdk.py +366 -0
  9. latitudesh_python_sdk/billing.py +210 -0
  10. latitudesh_python_sdk/events_sdk.py +240 -0
  11. latitudesh_python_sdk/firewalls_sdk.py +1640 -0
  12. latitudesh_python_sdk/httpclient.py +136 -0
  13. latitudesh_python_sdk/ipaddresses_sdk.py +448 -0
  14. latitudesh_python_sdk/models/__init__.py +1927 -0
  15. latitudesh_python_sdk/models/api_key.py +81 -0
  16. latitudesh_python_sdk/models/apierror.py +22 -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.py +72 -0
  20. latitudesh_python_sdk/models/bandwidth_plans.py +15 -0
  21. latitudesh_python_sdk/models/billing_usage.py +158 -0
  22. latitudesh_python_sdk/models/create_api_key.py +40 -0
  23. latitudesh_python_sdk/models/create_firewall_assignmentop.py +61 -0
  24. latitudesh_python_sdk/models/create_firewallop.py +69 -0
  25. latitudesh_python_sdk/models/create_ipmi_sessionop.py +16 -0
  26. latitudesh_python_sdk/models/create_projectop.py +79 -0
  27. latitudesh_python_sdk/models/create_server_actionop.py +69 -0
  28. latitudesh_python_sdk/models/create_server_out_of_bandop.py +61 -0
  29. latitudesh_python_sdk/models/create_server_reinstallop.py +140 -0
  30. latitudesh_python_sdk/models/create_serverop.py +173 -0
  31. latitudesh_python_sdk/models/create_tagop.py +50 -0
  32. latitudesh_python_sdk/models/create_virtual_networkop.py +72 -0
  33. latitudesh_python_sdk/models/custom_tag.py +54 -0
  34. latitudesh_python_sdk/models/delete_api_keyop.py +16 -0
  35. latitudesh_python_sdk/models/delete_firewall_assignmentop.py +25 -0
  36. latitudesh_python_sdk/models/delete_firewallop.py +18 -0
  37. latitudesh_python_sdk/models/delete_project_ssh_keyop.py +23 -0
  38. latitudesh_python_sdk/models/delete_project_user_dataop.py +23 -0
  39. latitudesh_python_sdk/models/delete_projectop.py +18 -0
  40. latitudesh_python_sdk/models/delete_storage_filesystemsop.py +16 -0
  41. latitudesh_python_sdk/models/delete_virtual_networks_assignmentsop.py +16 -0
  42. latitudesh_python_sdk/models/delete_vpn_sessionop.py +16 -0
  43. latitudesh_python_sdk/models/deploy_config.py +74 -0
  44. latitudesh_python_sdk/models/destroy_serverop.py +31 -0
  45. latitudesh_python_sdk/models/destroy_tagop.py +16 -0
  46. latitudesh_python_sdk/models/destroy_team_memberop.py +18 -0
  47. latitudesh_python_sdk/models/destroy_virtual_machineop.py +16 -0
  48. latitudesh_python_sdk/models/destroy_virtual_networkop.py +18 -0
  49. latitudesh_python_sdk/models/error_object.py +49 -0
  50. latitudesh_python_sdk/models/events.py +90 -0
  51. latitudesh_python_sdk/models/filesystem_data.py +53 -0
  52. latitudesh_python_sdk/models/firewall.py +71 -0
  53. latitudesh_python_sdk/models/firewall_server.py +50 -0
  54. latitudesh_python_sdk/models/firewalls.py +26 -0
  55. latitudesh_python_sdk/models/get_bandwidth_plansop.py +33 -0
  56. latitudesh_python_sdk/models/get_billing_usageop.py +46 -0
  57. latitudesh_python_sdk/models/get_eventsop.py +98 -0
  58. latitudesh_python_sdk/models/get_firewall_assignmentsop.py +18 -0
  59. latitudesh_python_sdk/models/get_firewallop.py +18 -0
  60. latitudesh_python_sdk/models/get_ipop.py +33 -0
  61. latitudesh_python_sdk/models/get_ipsop.py +91 -0
  62. latitudesh_python_sdk/models/get_planop.py +16 -0
  63. latitudesh_python_sdk/models/get_plans_operating_systemop.py +19 -0
  64. latitudesh_python_sdk/models/get_plansop.py +125 -0
  65. latitudesh_python_sdk/models/get_project_ssh_keyop.py +37 -0
  66. latitudesh_python_sdk/models/get_project_ssh_keysop.py +33 -0
  67. latitudesh_python_sdk/models/get_project_user_dataop.py +38 -0
  68. latitudesh_python_sdk/models/get_project_users_dataop.py +46 -0
  69. latitudesh_python_sdk/models/get_projectsop.py +76 -0
  70. latitudesh_python_sdk/models/get_regionop.py +18 -0
  71. latitudesh_python_sdk/models/get_role_idop.py +16 -0
  72. latitudesh_python_sdk/models/get_rolesop.py +19 -0
  73. latitudesh_python_sdk/models/get_server_deploy_configop.py +18 -0
  74. latitudesh_python_sdk/models/get_server_out_of_bandop.py +18 -0
  75. latitudesh_python_sdk/models/get_serverop.py +33 -0
  76. latitudesh_python_sdk/models/get_serversop.py +156 -0
  77. latitudesh_python_sdk/models/get_storage_filesystemsop.py +22 -0
  78. latitudesh_python_sdk/models/get_traffic_consumptionop.py +45 -0
  79. latitudesh_python_sdk/models/get_traffic_quotaop.py +20 -0
  80. latitudesh_python_sdk/models/get_user_profileop.py +19 -0
  81. latitudesh_python_sdk/models/get_virtual_networkop.py +32 -0
  82. latitudesh_python_sdk/models/get_virtual_networks_assignmentsop.py +40 -0
  83. latitudesh_python_sdk/models/get_virtual_networksop.py +40 -0
  84. latitudesh_python_sdk/models/get_vpn_sessionsop.py +70 -0
  85. latitudesh_python_sdk/models/index_virtual_machineop.py +22 -0
  86. latitudesh_python_sdk/models/ip_address.py +122 -0
  87. latitudesh_python_sdk/models/ip_addresses.py +15 -0
  88. latitudesh_python_sdk/models/ipmi_session.py +53 -0
  89. latitudesh_python_sdk/models/list_firewallsop.py +20 -0
  90. latitudesh_python_sdk/models/membership.py +63 -0
  91. latitudesh_python_sdk/models/operating_systems.py +57 -0
  92. latitudesh_python_sdk/models/out_of_band_connection.py +88 -0
  93. latitudesh_python_sdk/models/patch_current_teamop.py +91 -0
  94. latitudesh_python_sdk/models/patch_storage_filesystemsop.py +79 -0
  95. latitudesh_python_sdk/models/patch_user_profileop.py +88 -0
  96. latitudesh_python_sdk/models/plan.py +15 -0
  97. latitudesh_python_sdk/models/plan_data.py +206 -0
  98. latitudesh_python_sdk/models/post_api_keyop.py +19 -0
  99. latitudesh_python_sdk/models/post_project_ssh_keyop.py +81 -0
  100. latitudesh_python_sdk/models/post_project_user_dataop.py +68 -0
  101. latitudesh_python_sdk/models/post_storage_filesystemsop.py +63 -0
  102. latitudesh_python_sdk/models/post_team_membersop.py +54 -0
  103. latitudesh_python_sdk/models/post_teamop.py +67 -0
  104. latitudesh_python_sdk/models/post_vpn_sessionop.py +63 -0
  105. latitudesh_python_sdk/models/project.py +130 -0
  106. latitudesh_python_sdk/models/project_include.py +72 -0
  107. latitudesh_python_sdk/models/projects.py +15 -0
  108. latitudesh_python_sdk/models/put_project_ssh_keyop.py +87 -0
  109. latitudesh_python_sdk/models/put_project_user_dataop.py +76 -0
  110. latitudesh_python_sdk/models/put_vpn_sessionop.py +16 -0
  111. latitudesh_python_sdk/models/region.py +50 -0
  112. latitudesh_python_sdk/models/region_resource_data.py +37 -0
  113. latitudesh_python_sdk/models/regions.py +50 -0
  114. latitudesh_python_sdk/models/role.py +15 -0
  115. latitudesh_python_sdk/models/role_data.py +35 -0
  116. latitudesh_python_sdk/models/security.py +25 -0
  117. latitudesh_python_sdk/models/server.py +54 -0
  118. latitudesh_python_sdk/models/server_action.py +52 -0
  119. latitudesh_python_sdk/models/server_data.py +219 -0
  120. latitudesh_python_sdk/models/server_exit_rescue_modeop.py +16 -0
  121. latitudesh_python_sdk/models/server_lockop.py +16 -0
  122. latitudesh_python_sdk/models/server_rescue.py +22 -0
  123. latitudesh_python_sdk/models/server_schedule_deletion.py +44 -0
  124. latitudesh_python_sdk/models/server_schedule_deletionop.py +16 -0
  125. latitudesh_python_sdk/models/server_start_rescue_modeop.py +16 -0
  126. latitudesh_python_sdk/models/server_unlockop.py +16 -0
  127. latitudesh_python_sdk/models/server_unschedule_deletionop.py +16 -0
  128. latitudesh_python_sdk/models/servers.py +26 -0
  129. latitudesh_python_sdk/models/show_virtual_machineop.py +16 -0
  130. latitudesh_python_sdk/models/ssh_key.py +15 -0
  131. latitudesh_python_sdk/models/ssh_key_data.py +55 -0
  132. latitudesh_python_sdk/models/storage_plan.py +36 -0
  133. latitudesh_python_sdk/models/storage_plans.py +15 -0
  134. latitudesh_python_sdk/models/team.py +74 -0
  135. latitudesh_python_sdk/models/team_include.py +43 -0
  136. latitudesh_python_sdk/models/team_members.py +51 -0
  137. latitudesh_python_sdk/models/teams.py +26 -0
  138. latitudesh_python_sdk/models/traffic.py +133 -0
  139. latitudesh_python_sdk/models/traffic_quota.py +106 -0
  140. latitudesh_python_sdk/models/update_api_key.py +48 -0
  141. latitudesh_python_sdk/models/update_api_keyop.py +41 -0
  142. latitudesh_python_sdk/models/update_firewallop.py +89 -0
  143. latitudesh_python_sdk/models/update_plans_bandwidthop.py +50 -0
  144. latitudesh_python_sdk/models/update_projectop.py +95 -0
  145. latitudesh_python_sdk/models/update_server_deploy_configop.py +122 -0
  146. latitudesh_python_sdk/models/update_serverop.py +69 -0
  147. latitudesh_python_sdk/models/update_tagop.py +74 -0
  148. latitudesh_python_sdk/models/update_virtual_networkop.py +67 -0
  149. latitudesh_python_sdk/models/user.py +59 -0
  150. latitudesh_python_sdk/models/user_data.py +15 -0
  151. latitudesh_python_sdk/models/user_data_properties.py +46 -0
  152. latitudesh_python_sdk/models/user_include.py +52 -0
  153. latitudesh_python_sdk/models/user_team.py +61 -0
  154. latitudesh_python_sdk/models/user_teams.py +26 -0
  155. latitudesh_python_sdk/models/user_update.py +37 -0
  156. latitudesh_python_sdk/models/virtual_machine.py +25 -0
  157. latitudesh_python_sdk/models/virtual_machine_payload.py +41 -0
  158. latitudesh_python_sdk/models/virtual_machine_plans.py +180 -0
  159. latitudesh_python_sdk/models/virtual_network.py +103 -0
  160. latitudesh_python_sdk/models/virtual_network1.py +84 -0
  161. latitudesh_python_sdk/models/virtual_network_assignment.py +37 -0
  162. latitudesh_python_sdk/models/virtual_network_assignments.py +29 -0
  163. latitudesh_python_sdk/models/virtual_networks.py +26 -0
  164. latitudesh_python_sdk/models/vpn_session_data_with_password.py +77 -0
  165. latitudesh_python_sdk/models/vpn_session_with_password.py +18 -0
  166. latitudesh_python_sdk/operatingsystems_sdk.py +188 -0
  167. latitudesh_python_sdk/plans.py +1178 -0
  168. latitudesh_python_sdk/privatenetworks.py +1672 -0
  169. latitudesh_python_sdk/projects_sdk.py +864 -0
  170. latitudesh_python_sdk/py.typed +1 -0
  171. latitudesh_python_sdk/regions_sdk.py +376 -0
  172. latitudesh_python_sdk/roles.py +374 -0
  173. latitudesh_python_sdk/sdk.py +214 -0
  174. latitudesh_python_sdk/sdkconfiguration.py +57 -0
  175. latitudesh_python_sdk/servers_sdk.py +3810 -0
  176. latitudesh_python_sdk/sshkeys.py +1050 -0
  177. latitudesh_python_sdk/storage.py +820 -0
  178. latitudesh_python_sdk/tags.py +786 -0
  179. latitudesh_python_sdk/teams_sdk.py +596 -0
  180. latitudesh_python_sdk/teamsmembers.py +578 -0
  181. latitudesh_python_sdk/traffic_sdk.py +400 -0
  182. latitudesh_python_sdk/types/__init__.py +21 -0
  183. latitudesh_python_sdk/types/basemodel.py +39 -0
  184. latitudesh_python_sdk/userdata_sdk.py +1052 -0
  185. latitudesh_python_sdk/userprofile.py +596 -0
  186. latitudesh_python_sdk/utils/__init__.py +101 -0
  187. latitudesh_python_sdk/utils/annotations.py +55 -0
  188. latitudesh_python_sdk/utils/enums.py +34 -0
  189. latitudesh_python_sdk/utils/eventstreaming.py +238 -0
  190. latitudesh_python_sdk/utils/forms.py +202 -0
  191. latitudesh_python_sdk/utils/headers.py +136 -0
  192. latitudesh_python_sdk/utils/logger.py +27 -0
  193. latitudesh_python_sdk/utils/metadata.py +118 -0
  194. latitudesh_python_sdk/utils/queryparams.py +205 -0
  195. latitudesh_python_sdk/utils/requestbodies.py +66 -0
  196. latitudesh_python_sdk/utils/retries.py +217 -0
  197. latitudesh_python_sdk/utils/security.py +192 -0
  198. latitudesh_python_sdk/utils/serializers.py +219 -0
  199. latitudesh_python_sdk/utils/url.py +155 -0
  200. latitudesh_python_sdk/utils/values.py +137 -0
  201. latitudesh_python_sdk/virtualmachines.py +772 -0
  202. latitudesh_python_sdk/vpnsessions.py +818 -0
  203. latitudesh_python_sdk-0.0.6.dist-info/LICENSE +21 -0
  204. latitudesh_python_sdk-0.0.6.dist-info/METADATA +730 -0
  205. latitudesh_python_sdk-0.0.6.dist-info/RECORD +206 -0
  206. latitudesh_python_sdk-0.0.6.dist-info/WHEEL +4 -0
@@ -0,0 +1,786 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from latitudesh_python_sdk import models, utils
5
+ from latitudesh_python_sdk._hooks import HookContext
6
+ from latitudesh_python_sdk.types import BaseModel, OptionalNullable, UNSET
7
+ from latitudesh_python_sdk.utils import get_security_from_env
8
+ from typing import Mapping, Optional, Union, cast
9
+
10
+
11
+ class Tags(BaseSDK):
12
+ def list(
13
+ self,
14
+ *,
15
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
16
+ server_url: Optional[str] = None,
17
+ timeout_ms: Optional[int] = None,
18
+ http_headers: Optional[Mapping[str, str]] = None,
19
+ ) -> models.CustomTag:
20
+ r"""List all Tags
21
+
22
+ List all Tags in the team.
23
+
24
+
25
+ :param retries: Override the default retry configuration for this method
26
+ :param server_url: Override the default server URL for this method
27
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
28
+ :param http_headers: Additional headers to set or replace on requests.
29
+ """
30
+ base_url = None
31
+ url_variables = None
32
+ if timeout_ms is None:
33
+ timeout_ms = self.sdk_configuration.timeout_ms
34
+
35
+ if server_url is not None:
36
+ base_url = server_url
37
+ else:
38
+ base_url = self._get_url(base_url, url_variables)
39
+ req = self._build_request(
40
+ method="GET",
41
+ path="/tags",
42
+ base_url=base_url,
43
+ url_variables=url_variables,
44
+ request=None,
45
+ request_body_required=False,
46
+ request_has_path_params=False,
47
+ request_has_query_params=True,
48
+ user_agent_header="user-agent",
49
+ accept_header_value="application/vnd.api+json",
50
+ http_headers=http_headers,
51
+ security=self.sdk_configuration.security,
52
+ timeout_ms=timeout_ms,
53
+ )
54
+
55
+ if retries == UNSET:
56
+ if self.sdk_configuration.retry_config is not UNSET:
57
+ retries = self.sdk_configuration.retry_config
58
+
59
+ retry_config = None
60
+ if isinstance(retries, utils.RetryConfig):
61
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
62
+
63
+ http_res = self.do_request(
64
+ hook_ctx=HookContext(
65
+ base_url=base_url or "",
66
+ operation_id="get-tags",
67
+ oauth2_scopes=[],
68
+ security_source=get_security_from_env(
69
+ self.sdk_configuration.security, models.Security
70
+ ),
71
+ ),
72
+ request=req,
73
+ error_status_codes=["4XX", "5XX"],
74
+ retry_config=retry_config,
75
+ )
76
+
77
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
78
+ return utils.unmarshal_json(http_res.text, models.CustomTag)
79
+ if utils.match_response(http_res, "4XX", "*"):
80
+ http_res_text = utils.stream_to_text(http_res)
81
+ raise models.APIError(
82
+ "API error occurred", http_res.status_code, http_res_text, http_res
83
+ )
84
+ if utils.match_response(http_res, "5XX", "*"):
85
+ http_res_text = utils.stream_to_text(http_res)
86
+ raise models.APIError(
87
+ "API error occurred", http_res.status_code, http_res_text, http_res
88
+ )
89
+
90
+ content_type = http_res.headers.get("Content-Type")
91
+ http_res_text = utils.stream_to_text(http_res)
92
+ raise models.APIError(
93
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
94
+ http_res.status_code,
95
+ http_res_text,
96
+ http_res,
97
+ )
98
+
99
+ async def list_async(
100
+ self,
101
+ *,
102
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
103
+ server_url: Optional[str] = None,
104
+ timeout_ms: Optional[int] = None,
105
+ http_headers: Optional[Mapping[str, str]] = None,
106
+ ) -> models.CustomTag:
107
+ r"""List all Tags
108
+
109
+ List all Tags in the team.
110
+
111
+
112
+ :param retries: Override the default retry configuration for this method
113
+ :param server_url: Override the default server URL for this method
114
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
115
+ :param http_headers: Additional headers to set or replace on requests.
116
+ """
117
+ base_url = None
118
+ url_variables = None
119
+ if timeout_ms is None:
120
+ timeout_ms = self.sdk_configuration.timeout_ms
121
+
122
+ if server_url is not None:
123
+ base_url = server_url
124
+ else:
125
+ base_url = self._get_url(base_url, url_variables)
126
+ req = self._build_request_async(
127
+ method="GET",
128
+ path="/tags",
129
+ base_url=base_url,
130
+ url_variables=url_variables,
131
+ request=None,
132
+ request_body_required=False,
133
+ request_has_path_params=False,
134
+ request_has_query_params=True,
135
+ user_agent_header="user-agent",
136
+ accept_header_value="application/vnd.api+json",
137
+ http_headers=http_headers,
138
+ security=self.sdk_configuration.security,
139
+ timeout_ms=timeout_ms,
140
+ )
141
+
142
+ if retries == UNSET:
143
+ if self.sdk_configuration.retry_config is not UNSET:
144
+ retries = self.sdk_configuration.retry_config
145
+
146
+ retry_config = None
147
+ if isinstance(retries, utils.RetryConfig):
148
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
149
+
150
+ http_res = await self.do_request_async(
151
+ hook_ctx=HookContext(
152
+ base_url=base_url or "",
153
+ operation_id="get-tags",
154
+ oauth2_scopes=[],
155
+ security_source=get_security_from_env(
156
+ self.sdk_configuration.security, models.Security
157
+ ),
158
+ ),
159
+ request=req,
160
+ error_status_codes=["4XX", "5XX"],
161
+ retry_config=retry_config,
162
+ )
163
+
164
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
165
+ return utils.unmarshal_json(http_res.text, models.CustomTag)
166
+ if utils.match_response(http_res, "4XX", "*"):
167
+ http_res_text = await utils.stream_to_text_async(http_res)
168
+ raise models.APIError(
169
+ "API error occurred", http_res.status_code, http_res_text, http_res
170
+ )
171
+ if utils.match_response(http_res, "5XX", "*"):
172
+ http_res_text = await utils.stream_to_text_async(http_res)
173
+ raise models.APIError(
174
+ "API error occurred", http_res.status_code, http_res_text, http_res
175
+ )
176
+
177
+ content_type = http_res.headers.get("Content-Type")
178
+ http_res_text = await utils.stream_to_text_async(http_res)
179
+ raise models.APIError(
180
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
181
+ http_res.status_code,
182
+ http_res_text,
183
+ http_res,
184
+ )
185
+
186
+ def create(
187
+ self,
188
+ *,
189
+ request: Union[
190
+ models.CreateTagTagsRequestBody, models.CreateTagTagsRequestBodyTypedDict
191
+ ] = models.CreateTagTagsRequestBody(),
192
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
193
+ server_url: Optional[str] = None,
194
+ timeout_ms: Optional[int] = None,
195
+ http_headers: Optional[Mapping[str, str]] = None,
196
+ ) -> models.CustomTag:
197
+ r"""Create a Tag
198
+
199
+ Create a Tag in the team.
200
+
201
+
202
+ :param request: The request object to send.
203
+ :param retries: Override the default retry configuration for this method
204
+ :param server_url: Override the default server URL for this method
205
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
206
+ :param http_headers: Additional headers to set or replace on requests.
207
+ """
208
+ base_url = None
209
+ url_variables = None
210
+ if timeout_ms is None:
211
+ timeout_ms = self.sdk_configuration.timeout_ms
212
+
213
+ if server_url is not None:
214
+ base_url = server_url
215
+ else:
216
+ base_url = self._get_url(base_url, url_variables)
217
+
218
+ if not isinstance(request, BaseModel):
219
+ request = utils.unmarshal(request, models.CreateTagTagsRequestBody)
220
+ request = cast(models.CreateTagTagsRequestBody, request)
221
+
222
+ req = self._build_request(
223
+ method="POST",
224
+ path="/tags",
225
+ base_url=base_url,
226
+ url_variables=url_variables,
227
+ request=request,
228
+ request_body_required=True,
229
+ request_has_path_params=False,
230
+ request_has_query_params=True,
231
+ user_agent_header="user-agent",
232
+ accept_header_value="application/vnd.api+json",
233
+ http_headers=http_headers,
234
+ security=self.sdk_configuration.security,
235
+ get_serialized_body=lambda: utils.serialize_request_body(
236
+ request, False, True, "json", Optional[models.CreateTagTagsRequestBody]
237
+ ),
238
+ timeout_ms=timeout_ms,
239
+ )
240
+
241
+ if retries == UNSET:
242
+ if self.sdk_configuration.retry_config is not UNSET:
243
+ retries = self.sdk_configuration.retry_config
244
+
245
+ retry_config = None
246
+ if isinstance(retries, utils.RetryConfig):
247
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
248
+
249
+ http_res = self.do_request(
250
+ hook_ctx=HookContext(
251
+ base_url=base_url or "",
252
+ operation_id="create-tag",
253
+ oauth2_scopes=[],
254
+ security_source=get_security_from_env(
255
+ self.sdk_configuration.security, models.Security
256
+ ),
257
+ ),
258
+ request=req,
259
+ error_status_codes=["422", "4XX", "5XX"],
260
+ retry_config=retry_config,
261
+ )
262
+
263
+ if utils.match_response(http_res, "201", "application/vnd.api+json"):
264
+ return utils.unmarshal_json(http_res.text, models.CustomTag)
265
+ if utils.match_response(http_res, ["422", "4XX"], "*"):
266
+ http_res_text = utils.stream_to_text(http_res)
267
+ raise models.APIError(
268
+ "API error occurred", http_res.status_code, http_res_text, http_res
269
+ )
270
+ if utils.match_response(http_res, "5XX", "*"):
271
+ http_res_text = utils.stream_to_text(http_res)
272
+ raise models.APIError(
273
+ "API error occurred", http_res.status_code, http_res_text, http_res
274
+ )
275
+
276
+ content_type = http_res.headers.get("Content-Type")
277
+ http_res_text = utils.stream_to_text(http_res)
278
+ raise models.APIError(
279
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
280
+ http_res.status_code,
281
+ http_res_text,
282
+ http_res,
283
+ )
284
+
285
+ async def create_async(
286
+ self,
287
+ *,
288
+ request: Union[
289
+ models.CreateTagTagsRequestBody, models.CreateTagTagsRequestBodyTypedDict
290
+ ] = models.CreateTagTagsRequestBody(),
291
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
292
+ server_url: Optional[str] = None,
293
+ timeout_ms: Optional[int] = None,
294
+ http_headers: Optional[Mapping[str, str]] = None,
295
+ ) -> models.CustomTag:
296
+ r"""Create a Tag
297
+
298
+ Create a Tag in the team.
299
+
300
+
301
+ :param request: The request object to send.
302
+ :param retries: Override the default retry configuration for this method
303
+ :param server_url: Override the default server URL for this method
304
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
305
+ :param http_headers: Additional headers to set or replace on requests.
306
+ """
307
+ base_url = None
308
+ url_variables = None
309
+ if timeout_ms is None:
310
+ timeout_ms = self.sdk_configuration.timeout_ms
311
+
312
+ if server_url is not None:
313
+ base_url = server_url
314
+ else:
315
+ base_url = self._get_url(base_url, url_variables)
316
+
317
+ if not isinstance(request, BaseModel):
318
+ request = utils.unmarshal(request, models.CreateTagTagsRequestBody)
319
+ request = cast(models.CreateTagTagsRequestBody, request)
320
+
321
+ req = self._build_request_async(
322
+ method="POST",
323
+ path="/tags",
324
+ base_url=base_url,
325
+ url_variables=url_variables,
326
+ request=request,
327
+ request_body_required=True,
328
+ request_has_path_params=False,
329
+ request_has_query_params=True,
330
+ user_agent_header="user-agent",
331
+ accept_header_value="application/vnd.api+json",
332
+ http_headers=http_headers,
333
+ security=self.sdk_configuration.security,
334
+ get_serialized_body=lambda: utils.serialize_request_body(
335
+ request, False, True, "json", Optional[models.CreateTagTagsRequestBody]
336
+ ),
337
+ timeout_ms=timeout_ms,
338
+ )
339
+
340
+ if retries == UNSET:
341
+ if self.sdk_configuration.retry_config is not UNSET:
342
+ retries = self.sdk_configuration.retry_config
343
+
344
+ retry_config = None
345
+ if isinstance(retries, utils.RetryConfig):
346
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
347
+
348
+ http_res = await self.do_request_async(
349
+ hook_ctx=HookContext(
350
+ base_url=base_url or "",
351
+ operation_id="create-tag",
352
+ oauth2_scopes=[],
353
+ security_source=get_security_from_env(
354
+ self.sdk_configuration.security, models.Security
355
+ ),
356
+ ),
357
+ request=req,
358
+ error_status_codes=["422", "4XX", "5XX"],
359
+ retry_config=retry_config,
360
+ )
361
+
362
+ if utils.match_response(http_res, "201", "application/vnd.api+json"):
363
+ return utils.unmarshal_json(http_res.text, models.CustomTag)
364
+ if utils.match_response(http_res, ["422", "4XX"], "*"):
365
+ http_res_text = await utils.stream_to_text_async(http_res)
366
+ raise models.APIError(
367
+ "API error occurred", http_res.status_code, http_res_text, http_res
368
+ )
369
+ if utils.match_response(http_res, "5XX", "*"):
370
+ http_res_text = await utils.stream_to_text_async(http_res)
371
+ raise models.APIError(
372
+ "API error occurred", http_res.status_code, http_res_text, http_res
373
+ )
374
+
375
+ content_type = http_res.headers.get("Content-Type")
376
+ http_res_text = await utils.stream_to_text_async(http_res)
377
+ raise models.APIError(
378
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
379
+ http_res.status_code,
380
+ http_res_text,
381
+ http_res,
382
+ )
383
+
384
+ def update(
385
+ self,
386
+ *,
387
+ tag_id: str,
388
+ data: Optional[
389
+ Union[models.UpdateTagTagsData, models.UpdateTagTagsDataTypedDict]
390
+ ] = None,
391
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
392
+ server_url: Optional[str] = None,
393
+ timeout_ms: Optional[int] = None,
394
+ http_headers: Optional[Mapping[str, str]] = None,
395
+ ) -> models.CustomTag:
396
+ r"""Update Tag
397
+
398
+ Update a Tag in the team.
399
+
400
+
401
+ :param tag_id:
402
+ :param data:
403
+ :param retries: Override the default retry configuration for this method
404
+ :param server_url: Override the default server URL for this method
405
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
406
+ :param http_headers: Additional headers to set or replace on requests.
407
+ """
408
+ base_url = None
409
+ url_variables = None
410
+ if timeout_ms is None:
411
+ timeout_ms = self.sdk_configuration.timeout_ms
412
+
413
+ if server_url is not None:
414
+ base_url = server_url
415
+ else:
416
+ base_url = self._get_url(base_url, url_variables)
417
+
418
+ request = models.UpdateTagRequest(
419
+ tag_id=tag_id,
420
+ request_body=models.UpdateTagTagsRequestBody(
421
+ data=utils.get_pydantic_model(data, Optional[models.UpdateTagTagsData]),
422
+ ),
423
+ )
424
+
425
+ req = self._build_request(
426
+ method="PATCH",
427
+ path="/tags/{tag_id}",
428
+ base_url=base_url,
429
+ url_variables=url_variables,
430
+ request=request,
431
+ request_body_required=True,
432
+ request_has_path_params=True,
433
+ request_has_query_params=True,
434
+ user_agent_header="user-agent",
435
+ accept_header_value="application/vnd.api+json",
436
+ http_headers=http_headers,
437
+ security=self.sdk_configuration.security,
438
+ get_serialized_body=lambda: utils.serialize_request_body(
439
+ request.request_body,
440
+ False,
441
+ False,
442
+ "json",
443
+ models.UpdateTagTagsRequestBody,
444
+ ),
445
+ timeout_ms=timeout_ms,
446
+ )
447
+
448
+ if retries == UNSET:
449
+ if self.sdk_configuration.retry_config is not UNSET:
450
+ retries = self.sdk_configuration.retry_config
451
+
452
+ retry_config = None
453
+ if isinstance(retries, utils.RetryConfig):
454
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
455
+
456
+ http_res = self.do_request(
457
+ hook_ctx=HookContext(
458
+ base_url=base_url or "",
459
+ operation_id="update-tag",
460
+ oauth2_scopes=[],
461
+ security_source=get_security_from_env(
462
+ self.sdk_configuration.security, models.Security
463
+ ),
464
+ ),
465
+ request=req,
466
+ error_status_codes=["404", "422", "4XX", "5XX"],
467
+ retry_config=retry_config,
468
+ )
469
+
470
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
471
+ return utils.unmarshal_json(http_res.text, models.CustomTag)
472
+ if utils.match_response(http_res, ["404", "422", "4XX"], "*"):
473
+ http_res_text = utils.stream_to_text(http_res)
474
+ raise models.APIError(
475
+ "API error occurred", http_res.status_code, http_res_text, http_res
476
+ )
477
+ if utils.match_response(http_res, "5XX", "*"):
478
+ http_res_text = utils.stream_to_text(http_res)
479
+ raise models.APIError(
480
+ "API error occurred", http_res.status_code, http_res_text, http_res
481
+ )
482
+
483
+ content_type = http_res.headers.get("Content-Type")
484
+ http_res_text = utils.stream_to_text(http_res)
485
+ raise models.APIError(
486
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
487
+ http_res.status_code,
488
+ http_res_text,
489
+ http_res,
490
+ )
491
+
492
+ async def update_async(
493
+ self,
494
+ *,
495
+ tag_id: str,
496
+ data: Optional[
497
+ Union[models.UpdateTagTagsData, models.UpdateTagTagsDataTypedDict]
498
+ ] = None,
499
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
500
+ server_url: Optional[str] = None,
501
+ timeout_ms: Optional[int] = None,
502
+ http_headers: Optional[Mapping[str, str]] = None,
503
+ ) -> models.CustomTag:
504
+ r"""Update Tag
505
+
506
+ Update a Tag in the team.
507
+
508
+
509
+ :param tag_id:
510
+ :param data:
511
+ :param retries: Override the default retry configuration for this method
512
+ :param server_url: Override the default server URL for this method
513
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
514
+ :param http_headers: Additional headers to set or replace on requests.
515
+ """
516
+ base_url = None
517
+ url_variables = None
518
+ if timeout_ms is None:
519
+ timeout_ms = self.sdk_configuration.timeout_ms
520
+
521
+ if server_url is not None:
522
+ base_url = server_url
523
+ else:
524
+ base_url = self._get_url(base_url, url_variables)
525
+
526
+ request = models.UpdateTagRequest(
527
+ tag_id=tag_id,
528
+ request_body=models.UpdateTagTagsRequestBody(
529
+ data=utils.get_pydantic_model(data, Optional[models.UpdateTagTagsData]),
530
+ ),
531
+ )
532
+
533
+ req = self._build_request_async(
534
+ method="PATCH",
535
+ path="/tags/{tag_id}",
536
+ base_url=base_url,
537
+ url_variables=url_variables,
538
+ request=request,
539
+ request_body_required=True,
540
+ request_has_path_params=True,
541
+ request_has_query_params=True,
542
+ user_agent_header="user-agent",
543
+ accept_header_value="application/vnd.api+json",
544
+ http_headers=http_headers,
545
+ security=self.sdk_configuration.security,
546
+ get_serialized_body=lambda: utils.serialize_request_body(
547
+ request.request_body,
548
+ False,
549
+ False,
550
+ "json",
551
+ models.UpdateTagTagsRequestBody,
552
+ ),
553
+ timeout_ms=timeout_ms,
554
+ )
555
+
556
+ if retries == UNSET:
557
+ if self.sdk_configuration.retry_config is not UNSET:
558
+ retries = self.sdk_configuration.retry_config
559
+
560
+ retry_config = None
561
+ if isinstance(retries, utils.RetryConfig):
562
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
563
+
564
+ http_res = await self.do_request_async(
565
+ hook_ctx=HookContext(
566
+ base_url=base_url or "",
567
+ operation_id="update-tag",
568
+ oauth2_scopes=[],
569
+ security_source=get_security_from_env(
570
+ self.sdk_configuration.security, models.Security
571
+ ),
572
+ ),
573
+ request=req,
574
+ error_status_codes=["404", "422", "4XX", "5XX"],
575
+ retry_config=retry_config,
576
+ )
577
+
578
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
579
+ return utils.unmarshal_json(http_res.text, models.CustomTag)
580
+ if utils.match_response(http_res, ["404", "422", "4XX"], "*"):
581
+ http_res_text = await utils.stream_to_text_async(http_res)
582
+ raise models.APIError(
583
+ "API error occurred", http_res.status_code, http_res_text, http_res
584
+ )
585
+ if utils.match_response(http_res, "5XX", "*"):
586
+ http_res_text = await utils.stream_to_text_async(http_res)
587
+ raise models.APIError(
588
+ "API error occurred", http_res.status_code, http_res_text, http_res
589
+ )
590
+
591
+ content_type = http_res.headers.get("Content-Type")
592
+ http_res_text = await utils.stream_to_text_async(http_res)
593
+ raise models.APIError(
594
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
595
+ http_res.status_code,
596
+ http_res_text,
597
+ http_res,
598
+ )
599
+
600
+ def delete(
601
+ self,
602
+ *,
603
+ tag_id: str,
604
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
605
+ server_url: Optional[str] = None,
606
+ timeout_ms: Optional[int] = None,
607
+ http_headers: Optional[Mapping[str, str]] = None,
608
+ ):
609
+ r"""Delete Tag
610
+
611
+ Update a Tag in the team.
612
+
613
+
614
+ :param tag_id:
615
+ :param retries: Override the default retry configuration for this method
616
+ :param server_url: Override the default server URL for this method
617
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
618
+ :param http_headers: Additional headers to set or replace on requests.
619
+ """
620
+ base_url = None
621
+ url_variables = None
622
+ if timeout_ms is None:
623
+ timeout_ms = self.sdk_configuration.timeout_ms
624
+
625
+ if server_url is not None:
626
+ base_url = server_url
627
+ else:
628
+ base_url = self._get_url(base_url, url_variables)
629
+
630
+ request = models.DestroyTagRequest(
631
+ tag_id=tag_id,
632
+ )
633
+
634
+ req = self._build_request(
635
+ method="DELETE",
636
+ path="/tags/{tag_id}",
637
+ base_url=base_url,
638
+ url_variables=url_variables,
639
+ request=request,
640
+ request_body_required=False,
641
+ request_has_path_params=True,
642
+ request_has_query_params=True,
643
+ user_agent_header="user-agent",
644
+ accept_header_value="*/*",
645
+ http_headers=http_headers,
646
+ security=self.sdk_configuration.security,
647
+ timeout_ms=timeout_ms,
648
+ )
649
+
650
+ if retries == UNSET:
651
+ if self.sdk_configuration.retry_config is not UNSET:
652
+ retries = self.sdk_configuration.retry_config
653
+
654
+ retry_config = None
655
+ if isinstance(retries, utils.RetryConfig):
656
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
657
+
658
+ http_res = self.do_request(
659
+ hook_ctx=HookContext(
660
+ base_url=base_url or "",
661
+ operation_id="destroy-tag",
662
+ oauth2_scopes=[],
663
+ security_source=get_security_from_env(
664
+ self.sdk_configuration.security, models.Security
665
+ ),
666
+ ),
667
+ request=req,
668
+ error_status_codes=["404", "4XX", "5XX"],
669
+ retry_config=retry_config,
670
+ )
671
+
672
+ if utils.match_response(http_res, "204", "*"):
673
+ return
674
+ if utils.match_response(http_res, ["404", "4XX"], "*"):
675
+ http_res_text = utils.stream_to_text(http_res)
676
+ raise models.APIError(
677
+ "API error occurred", http_res.status_code, http_res_text, http_res
678
+ )
679
+ if utils.match_response(http_res, "5XX", "*"):
680
+ http_res_text = utils.stream_to_text(http_res)
681
+ raise models.APIError(
682
+ "API error occurred", http_res.status_code, http_res_text, http_res
683
+ )
684
+
685
+ content_type = http_res.headers.get("Content-Type")
686
+ http_res_text = utils.stream_to_text(http_res)
687
+ raise models.APIError(
688
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
689
+ http_res.status_code,
690
+ http_res_text,
691
+ http_res,
692
+ )
693
+
694
+ async def delete_async(
695
+ self,
696
+ *,
697
+ tag_id: str,
698
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
699
+ server_url: Optional[str] = None,
700
+ timeout_ms: Optional[int] = None,
701
+ http_headers: Optional[Mapping[str, str]] = None,
702
+ ):
703
+ r"""Delete Tag
704
+
705
+ Update a Tag in the team.
706
+
707
+
708
+ :param tag_id:
709
+ :param retries: Override the default retry configuration for this method
710
+ :param server_url: Override the default server URL for this method
711
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
712
+ :param http_headers: Additional headers to set or replace on requests.
713
+ """
714
+ base_url = None
715
+ url_variables = None
716
+ if timeout_ms is None:
717
+ timeout_ms = self.sdk_configuration.timeout_ms
718
+
719
+ if server_url is not None:
720
+ base_url = server_url
721
+ else:
722
+ base_url = self._get_url(base_url, url_variables)
723
+
724
+ request = models.DestroyTagRequest(
725
+ tag_id=tag_id,
726
+ )
727
+
728
+ req = self._build_request_async(
729
+ method="DELETE",
730
+ path="/tags/{tag_id}",
731
+ base_url=base_url,
732
+ url_variables=url_variables,
733
+ request=request,
734
+ request_body_required=False,
735
+ request_has_path_params=True,
736
+ request_has_query_params=True,
737
+ user_agent_header="user-agent",
738
+ accept_header_value="*/*",
739
+ http_headers=http_headers,
740
+ security=self.sdk_configuration.security,
741
+ timeout_ms=timeout_ms,
742
+ )
743
+
744
+ if retries == UNSET:
745
+ if self.sdk_configuration.retry_config is not UNSET:
746
+ retries = self.sdk_configuration.retry_config
747
+
748
+ retry_config = None
749
+ if isinstance(retries, utils.RetryConfig):
750
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
751
+
752
+ http_res = await self.do_request_async(
753
+ hook_ctx=HookContext(
754
+ base_url=base_url or "",
755
+ operation_id="destroy-tag",
756
+ oauth2_scopes=[],
757
+ security_source=get_security_from_env(
758
+ self.sdk_configuration.security, models.Security
759
+ ),
760
+ ),
761
+ request=req,
762
+ error_status_codes=["404", "4XX", "5XX"],
763
+ retry_config=retry_config,
764
+ )
765
+
766
+ if utils.match_response(http_res, "204", "*"):
767
+ return
768
+ if utils.match_response(http_res, ["404", "4XX"], "*"):
769
+ http_res_text = await utils.stream_to_text_async(http_res)
770
+ raise models.APIError(
771
+ "API error occurred", http_res.status_code, http_res_text, http_res
772
+ )
773
+ if utils.match_response(http_res, "5XX", "*"):
774
+ http_res_text = await utils.stream_to_text_async(http_res)
775
+ raise models.APIError(
776
+ "API error occurred", http_res.status_code, http_res_text, http_res
777
+ )
778
+
779
+ content_type = http_res.headers.get("Content-Type")
780
+ http_res_text = await utils.stream_to_text_async(http_res)
781
+ raise models.APIError(
782
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
783
+ http_res.status_code,
784
+ http_res_text,
785
+ http_res,
786
+ )