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,1052 @@
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 OptionalNullable, UNSET
7
+ from latitudesh_python_sdk.utils import get_security_from_env
8
+ from typing import Mapping, Optional, Union
9
+
10
+
11
+ class UserDataSDK(BaseSDK):
12
+ def list_project_user_data(
13
+ self,
14
+ *,
15
+ project_id: str,
16
+ extra_fields_user_data: Optional[str] = "decoded_content",
17
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
18
+ server_url: Optional[str] = None,
19
+ timeout_ms: Optional[int] = None,
20
+ http_headers: Optional[Mapping[str, str]] = None,
21
+ ) -> models.GetProjectUsersDataResponseBody:
22
+ r"""List all Project User Data
23
+
24
+ List all Users Data in the project. These scripts can be used to configure servers with user data.
25
+
26
+
27
+ :param project_id: Project ID or Slug
28
+ :param extra_fields_user_data: The `decoded_content` is provided as an extra attribute that shows content in decoded form.
29
+ :param retries: Override the default retry configuration for this method
30
+ :param server_url: Override the default server URL for this method
31
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
32
+ :param http_headers: Additional headers to set or replace on requests.
33
+ """
34
+ base_url = None
35
+ url_variables = None
36
+ if timeout_ms is None:
37
+ timeout_ms = self.sdk_configuration.timeout_ms
38
+
39
+ if server_url is not None:
40
+ base_url = server_url
41
+ else:
42
+ base_url = self._get_url(base_url, url_variables)
43
+
44
+ request = models.GetProjectUsersDataRequest(
45
+ project_id=project_id,
46
+ extra_fields_user_data=extra_fields_user_data,
47
+ )
48
+
49
+ req = self._build_request(
50
+ method="GET",
51
+ path="/projects/{project_id}/user_data",
52
+ base_url=base_url,
53
+ url_variables=url_variables,
54
+ request=request,
55
+ request_body_required=False,
56
+ request_has_path_params=True,
57
+ request_has_query_params=True,
58
+ user_agent_header="user-agent",
59
+ accept_header_value="application/vnd.api+json",
60
+ http_headers=http_headers,
61
+ security=self.sdk_configuration.security,
62
+ timeout_ms=timeout_ms,
63
+ )
64
+
65
+ if retries == UNSET:
66
+ if self.sdk_configuration.retry_config is not UNSET:
67
+ retries = self.sdk_configuration.retry_config
68
+
69
+ retry_config = None
70
+ if isinstance(retries, utils.RetryConfig):
71
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
72
+
73
+ http_res = self.do_request(
74
+ hook_ctx=HookContext(
75
+ base_url=base_url or "",
76
+ operation_id="get-project-users-data",
77
+ oauth2_scopes=[],
78
+ security_source=get_security_from_env(
79
+ self.sdk_configuration.security, models.Security
80
+ ),
81
+ ),
82
+ request=req,
83
+ error_status_codes=["404", "4XX", "5XX"],
84
+ retry_config=retry_config,
85
+ )
86
+
87
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
88
+ return utils.unmarshal_json(
89
+ http_res.text, models.GetProjectUsersDataResponseBody
90
+ )
91
+ if utils.match_response(http_res, ["404", "4XX"], "*"):
92
+ http_res_text = utils.stream_to_text(http_res)
93
+ raise models.APIError(
94
+ "API error occurred", http_res.status_code, http_res_text, http_res
95
+ )
96
+ if utils.match_response(http_res, "5XX", "*"):
97
+ http_res_text = utils.stream_to_text(http_res)
98
+ raise models.APIError(
99
+ "API error occurred", http_res.status_code, http_res_text, http_res
100
+ )
101
+
102
+ content_type = http_res.headers.get("Content-Type")
103
+ http_res_text = utils.stream_to_text(http_res)
104
+ raise models.APIError(
105
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
106
+ http_res.status_code,
107
+ http_res_text,
108
+ http_res,
109
+ )
110
+
111
+ async def list_project_user_data_async(
112
+ self,
113
+ *,
114
+ project_id: str,
115
+ extra_fields_user_data: Optional[str] = "decoded_content",
116
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
117
+ server_url: Optional[str] = None,
118
+ timeout_ms: Optional[int] = None,
119
+ http_headers: Optional[Mapping[str, str]] = None,
120
+ ) -> models.GetProjectUsersDataResponseBody:
121
+ r"""List all Project User Data
122
+
123
+ List all Users Data in the project. These scripts can be used to configure servers with user data.
124
+
125
+
126
+ :param project_id: Project ID or Slug
127
+ :param extra_fields_user_data: The `decoded_content` is provided as an extra attribute that shows content in decoded form.
128
+ :param retries: Override the default retry configuration for this method
129
+ :param server_url: Override the default server URL for this method
130
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
131
+ :param http_headers: Additional headers to set or replace on requests.
132
+ """
133
+ base_url = None
134
+ url_variables = None
135
+ if timeout_ms is None:
136
+ timeout_ms = self.sdk_configuration.timeout_ms
137
+
138
+ if server_url is not None:
139
+ base_url = server_url
140
+ else:
141
+ base_url = self._get_url(base_url, url_variables)
142
+
143
+ request = models.GetProjectUsersDataRequest(
144
+ project_id=project_id,
145
+ extra_fields_user_data=extra_fields_user_data,
146
+ )
147
+
148
+ req = self._build_request_async(
149
+ method="GET",
150
+ path="/projects/{project_id}/user_data",
151
+ base_url=base_url,
152
+ url_variables=url_variables,
153
+ request=request,
154
+ request_body_required=False,
155
+ request_has_path_params=True,
156
+ request_has_query_params=True,
157
+ user_agent_header="user-agent",
158
+ accept_header_value="application/vnd.api+json",
159
+ http_headers=http_headers,
160
+ security=self.sdk_configuration.security,
161
+ timeout_ms=timeout_ms,
162
+ )
163
+
164
+ if retries == UNSET:
165
+ if self.sdk_configuration.retry_config is not UNSET:
166
+ retries = self.sdk_configuration.retry_config
167
+
168
+ retry_config = None
169
+ if isinstance(retries, utils.RetryConfig):
170
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
171
+
172
+ http_res = await self.do_request_async(
173
+ hook_ctx=HookContext(
174
+ base_url=base_url or "",
175
+ operation_id="get-project-users-data",
176
+ oauth2_scopes=[],
177
+ security_source=get_security_from_env(
178
+ self.sdk_configuration.security, models.Security
179
+ ),
180
+ ),
181
+ request=req,
182
+ error_status_codes=["404", "4XX", "5XX"],
183
+ retry_config=retry_config,
184
+ )
185
+
186
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
187
+ return utils.unmarshal_json(
188
+ http_res.text, models.GetProjectUsersDataResponseBody
189
+ )
190
+ if utils.match_response(http_res, ["404", "4XX"], "*"):
191
+ http_res_text = await utils.stream_to_text_async(http_res)
192
+ raise models.APIError(
193
+ "API error occurred", http_res.status_code, http_res_text, http_res
194
+ )
195
+ if utils.match_response(http_res, "5XX", "*"):
196
+ http_res_text = await utils.stream_to_text_async(http_res)
197
+ raise models.APIError(
198
+ "API error occurred", http_res.status_code, http_res_text, http_res
199
+ )
200
+
201
+ content_type = http_res.headers.get("Content-Type")
202
+ http_res_text = await utils.stream_to_text_async(http_res)
203
+ raise models.APIError(
204
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
205
+ http_res.status_code,
206
+ http_res_text,
207
+ http_res,
208
+ )
209
+
210
+ def create(
211
+ self,
212
+ *,
213
+ project_id: str,
214
+ data: Union[
215
+ models.PostProjectUserDataUserDataData,
216
+ models.PostProjectUserDataUserDataDataTypedDict,
217
+ ],
218
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
219
+ server_url: Optional[str] = None,
220
+ timeout_ms: Optional[int] = None,
221
+ http_headers: Optional[Mapping[str, str]] = None,
222
+ ) -> models.UserData:
223
+ r"""Create a Project User Data
224
+
225
+ Allows you to create User Data in a project, which can be used to perform custom setup on your servers after deploy and reinstall.
226
+
227
+
228
+ :param project_id: Project ID or Slug
229
+ :param data:
230
+ :param retries: Override the default retry configuration for this method
231
+ :param server_url: Override the default server URL for this method
232
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
233
+ :param http_headers: Additional headers to set or replace on requests.
234
+ """
235
+ base_url = None
236
+ url_variables = None
237
+ if timeout_ms is None:
238
+ timeout_ms = self.sdk_configuration.timeout_ms
239
+
240
+ if server_url is not None:
241
+ base_url = server_url
242
+ else:
243
+ base_url = self._get_url(base_url, url_variables)
244
+
245
+ request = models.PostProjectUserDataRequest(
246
+ project_id=project_id,
247
+ request_body=models.PostProjectUserDataUserDataRequestBody(
248
+ data=utils.get_pydantic_model(
249
+ data, models.PostProjectUserDataUserDataData
250
+ ),
251
+ ),
252
+ )
253
+
254
+ req = self._build_request(
255
+ method="POST",
256
+ path="/projects/{project_id}/user_data",
257
+ base_url=base_url,
258
+ url_variables=url_variables,
259
+ request=request,
260
+ request_body_required=True,
261
+ request_has_path_params=True,
262
+ request_has_query_params=True,
263
+ user_agent_header="user-agent",
264
+ accept_header_value="application/vnd.api+json",
265
+ http_headers=http_headers,
266
+ security=self.sdk_configuration.security,
267
+ get_serialized_body=lambda: utils.serialize_request_body(
268
+ request.request_body,
269
+ False,
270
+ False,
271
+ "json",
272
+ models.PostProjectUserDataUserDataRequestBody,
273
+ ),
274
+ timeout_ms=timeout_ms,
275
+ )
276
+
277
+ if retries == UNSET:
278
+ if self.sdk_configuration.retry_config is not UNSET:
279
+ retries = self.sdk_configuration.retry_config
280
+
281
+ retry_config = None
282
+ if isinstance(retries, utils.RetryConfig):
283
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
284
+
285
+ http_res = self.do_request(
286
+ hook_ctx=HookContext(
287
+ base_url=base_url or "",
288
+ operation_id="post-project-user-data",
289
+ oauth2_scopes=[],
290
+ security_source=get_security_from_env(
291
+ self.sdk_configuration.security, models.Security
292
+ ),
293
+ ),
294
+ request=req,
295
+ error_status_codes=["400", "404", "422", "4XX", "5XX"],
296
+ retry_config=retry_config,
297
+ )
298
+
299
+ if utils.match_response(http_res, "201", "application/vnd.api+json"):
300
+ return utils.unmarshal_json(http_res.text, models.UserData)
301
+ if utils.match_response(http_res, ["400", "404", "422", "4XX"], "*"):
302
+ http_res_text = utils.stream_to_text(http_res)
303
+ raise models.APIError(
304
+ "API error occurred", http_res.status_code, http_res_text, http_res
305
+ )
306
+ if utils.match_response(http_res, "5XX", "*"):
307
+ http_res_text = utils.stream_to_text(http_res)
308
+ raise models.APIError(
309
+ "API error occurred", http_res.status_code, http_res_text, http_res
310
+ )
311
+
312
+ content_type = http_res.headers.get("Content-Type")
313
+ http_res_text = utils.stream_to_text(http_res)
314
+ raise models.APIError(
315
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
316
+ http_res.status_code,
317
+ http_res_text,
318
+ http_res,
319
+ )
320
+
321
+ async def create_async(
322
+ self,
323
+ *,
324
+ project_id: str,
325
+ data: Union[
326
+ models.PostProjectUserDataUserDataData,
327
+ models.PostProjectUserDataUserDataDataTypedDict,
328
+ ],
329
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
330
+ server_url: Optional[str] = None,
331
+ timeout_ms: Optional[int] = None,
332
+ http_headers: Optional[Mapping[str, str]] = None,
333
+ ) -> models.UserData:
334
+ r"""Create a Project User Data
335
+
336
+ Allows you to create User Data in a project, which can be used to perform custom setup on your servers after deploy and reinstall.
337
+
338
+
339
+ :param project_id: Project ID or Slug
340
+ :param data:
341
+ :param retries: Override the default retry configuration for this method
342
+ :param server_url: Override the default server URL for this method
343
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
344
+ :param http_headers: Additional headers to set or replace on requests.
345
+ """
346
+ base_url = None
347
+ url_variables = None
348
+ if timeout_ms is None:
349
+ timeout_ms = self.sdk_configuration.timeout_ms
350
+
351
+ if server_url is not None:
352
+ base_url = server_url
353
+ else:
354
+ base_url = self._get_url(base_url, url_variables)
355
+
356
+ request = models.PostProjectUserDataRequest(
357
+ project_id=project_id,
358
+ request_body=models.PostProjectUserDataUserDataRequestBody(
359
+ data=utils.get_pydantic_model(
360
+ data, models.PostProjectUserDataUserDataData
361
+ ),
362
+ ),
363
+ )
364
+
365
+ req = self._build_request_async(
366
+ method="POST",
367
+ path="/projects/{project_id}/user_data",
368
+ base_url=base_url,
369
+ url_variables=url_variables,
370
+ request=request,
371
+ request_body_required=True,
372
+ request_has_path_params=True,
373
+ request_has_query_params=True,
374
+ user_agent_header="user-agent",
375
+ accept_header_value="application/vnd.api+json",
376
+ http_headers=http_headers,
377
+ security=self.sdk_configuration.security,
378
+ get_serialized_body=lambda: utils.serialize_request_body(
379
+ request.request_body,
380
+ False,
381
+ False,
382
+ "json",
383
+ models.PostProjectUserDataUserDataRequestBody,
384
+ ),
385
+ timeout_ms=timeout_ms,
386
+ )
387
+
388
+ if retries == UNSET:
389
+ if self.sdk_configuration.retry_config is not UNSET:
390
+ retries = self.sdk_configuration.retry_config
391
+
392
+ retry_config = None
393
+ if isinstance(retries, utils.RetryConfig):
394
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
395
+
396
+ http_res = await self.do_request_async(
397
+ hook_ctx=HookContext(
398
+ base_url=base_url or "",
399
+ operation_id="post-project-user-data",
400
+ oauth2_scopes=[],
401
+ security_source=get_security_from_env(
402
+ self.sdk_configuration.security, models.Security
403
+ ),
404
+ ),
405
+ request=req,
406
+ error_status_codes=["400", "404", "422", "4XX", "5XX"],
407
+ retry_config=retry_config,
408
+ )
409
+
410
+ if utils.match_response(http_res, "201", "application/vnd.api+json"):
411
+ return utils.unmarshal_json(http_res.text, models.UserData)
412
+ if utils.match_response(http_res, ["400", "404", "422", "4XX"], "*"):
413
+ http_res_text = await utils.stream_to_text_async(http_res)
414
+ raise models.APIError(
415
+ "API error occurred", http_res.status_code, http_res_text, http_res
416
+ )
417
+ if utils.match_response(http_res, "5XX", "*"):
418
+ http_res_text = await utils.stream_to_text_async(http_res)
419
+ raise models.APIError(
420
+ "API error occurred", http_res.status_code, http_res_text, http_res
421
+ )
422
+
423
+ content_type = http_res.headers.get("Content-Type")
424
+ http_res_text = await utils.stream_to_text_async(http_res)
425
+ raise models.APIError(
426
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
427
+ http_res.status_code,
428
+ http_res_text,
429
+ http_res,
430
+ )
431
+
432
+ def get_project_user_data(
433
+ self,
434
+ *,
435
+ project_id: str,
436
+ user_data_id: str,
437
+ extra_fields_user_data: Optional[str] = "decoded_content",
438
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
439
+ server_url: Optional[str] = None,
440
+ timeout_ms: Optional[int] = None,
441
+ http_headers: Optional[Mapping[str, str]] = None,
442
+ ) -> models.UserData:
443
+ r"""Retrieve a Project User Data
444
+
445
+ Get User Data in the project. These scripts can be used to configure servers with user data.
446
+
447
+
448
+ :param project_id: Project ID or Slug
449
+ :param user_data_id:
450
+ :param extra_fields_user_data: The `decoded_content` is provided as an extra attribute that shows content in decoded form.
451
+ :param retries: Override the default retry configuration for this method
452
+ :param server_url: Override the default server URL for this method
453
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
454
+ :param http_headers: Additional headers to set or replace on requests.
455
+ """
456
+ base_url = None
457
+ url_variables = None
458
+ if timeout_ms is None:
459
+ timeout_ms = self.sdk_configuration.timeout_ms
460
+
461
+ if server_url is not None:
462
+ base_url = server_url
463
+ else:
464
+ base_url = self._get_url(base_url, url_variables)
465
+
466
+ request = models.GetProjectUserDataRequest(
467
+ project_id=project_id,
468
+ user_data_id=user_data_id,
469
+ extra_fields_user_data=extra_fields_user_data,
470
+ )
471
+
472
+ req = self._build_request(
473
+ method="GET",
474
+ path="/projects/{project_id}/user_data/{user_data_id}",
475
+ base_url=base_url,
476
+ url_variables=url_variables,
477
+ request=request,
478
+ request_body_required=False,
479
+ request_has_path_params=True,
480
+ request_has_query_params=True,
481
+ user_agent_header="user-agent",
482
+ accept_header_value="application/vnd.api+json",
483
+ http_headers=http_headers,
484
+ security=self.sdk_configuration.security,
485
+ timeout_ms=timeout_ms,
486
+ )
487
+
488
+ if retries == UNSET:
489
+ if self.sdk_configuration.retry_config is not UNSET:
490
+ retries = self.sdk_configuration.retry_config
491
+
492
+ retry_config = None
493
+ if isinstance(retries, utils.RetryConfig):
494
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
495
+
496
+ http_res = self.do_request(
497
+ hook_ctx=HookContext(
498
+ base_url=base_url or "",
499
+ operation_id="get-project-user-data",
500
+ oauth2_scopes=[],
501
+ security_source=get_security_from_env(
502
+ self.sdk_configuration.security, models.Security
503
+ ),
504
+ ),
505
+ request=req,
506
+ error_status_codes=["404", "4XX", "5XX"],
507
+ retry_config=retry_config,
508
+ )
509
+
510
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
511
+ return utils.unmarshal_json(http_res.text, models.UserData)
512
+ if utils.match_response(http_res, ["404", "4XX"], "*"):
513
+ http_res_text = utils.stream_to_text(http_res)
514
+ raise models.APIError(
515
+ "API error occurred", http_res.status_code, http_res_text, http_res
516
+ )
517
+ if utils.match_response(http_res, "5XX", "*"):
518
+ http_res_text = utils.stream_to_text(http_res)
519
+ raise models.APIError(
520
+ "API error occurred", http_res.status_code, http_res_text, http_res
521
+ )
522
+
523
+ content_type = http_res.headers.get("Content-Type")
524
+ http_res_text = utils.stream_to_text(http_res)
525
+ raise models.APIError(
526
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
527
+ http_res.status_code,
528
+ http_res_text,
529
+ http_res,
530
+ )
531
+
532
+ async def get_project_user_data_async(
533
+ self,
534
+ *,
535
+ project_id: str,
536
+ user_data_id: str,
537
+ extra_fields_user_data: Optional[str] = "decoded_content",
538
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
539
+ server_url: Optional[str] = None,
540
+ timeout_ms: Optional[int] = None,
541
+ http_headers: Optional[Mapping[str, str]] = None,
542
+ ) -> models.UserData:
543
+ r"""Retrieve a Project User Data
544
+
545
+ Get User Data in the project. These scripts can be used to configure servers with user data.
546
+
547
+
548
+ :param project_id: Project ID or Slug
549
+ :param user_data_id:
550
+ :param extra_fields_user_data: The `decoded_content` is provided as an extra attribute that shows content in decoded form.
551
+ :param retries: Override the default retry configuration for this method
552
+ :param server_url: Override the default server URL for this method
553
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
554
+ :param http_headers: Additional headers to set or replace on requests.
555
+ """
556
+ base_url = None
557
+ url_variables = None
558
+ if timeout_ms is None:
559
+ timeout_ms = self.sdk_configuration.timeout_ms
560
+
561
+ if server_url is not None:
562
+ base_url = server_url
563
+ else:
564
+ base_url = self._get_url(base_url, url_variables)
565
+
566
+ request = models.GetProjectUserDataRequest(
567
+ project_id=project_id,
568
+ user_data_id=user_data_id,
569
+ extra_fields_user_data=extra_fields_user_data,
570
+ )
571
+
572
+ req = self._build_request_async(
573
+ method="GET",
574
+ path="/projects/{project_id}/user_data/{user_data_id}",
575
+ base_url=base_url,
576
+ url_variables=url_variables,
577
+ request=request,
578
+ request_body_required=False,
579
+ request_has_path_params=True,
580
+ request_has_query_params=True,
581
+ user_agent_header="user-agent",
582
+ accept_header_value="application/vnd.api+json",
583
+ http_headers=http_headers,
584
+ security=self.sdk_configuration.security,
585
+ timeout_ms=timeout_ms,
586
+ )
587
+
588
+ if retries == UNSET:
589
+ if self.sdk_configuration.retry_config is not UNSET:
590
+ retries = self.sdk_configuration.retry_config
591
+
592
+ retry_config = None
593
+ if isinstance(retries, utils.RetryConfig):
594
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
595
+
596
+ http_res = await self.do_request_async(
597
+ hook_ctx=HookContext(
598
+ base_url=base_url or "",
599
+ operation_id="get-project-user-data",
600
+ oauth2_scopes=[],
601
+ security_source=get_security_from_env(
602
+ self.sdk_configuration.security, models.Security
603
+ ),
604
+ ),
605
+ request=req,
606
+ error_status_codes=["404", "4XX", "5XX"],
607
+ retry_config=retry_config,
608
+ )
609
+
610
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
611
+ return utils.unmarshal_json(http_res.text, models.UserData)
612
+ if utils.match_response(http_res, ["404", "4XX"], "*"):
613
+ http_res_text = await utils.stream_to_text_async(http_res)
614
+ raise models.APIError(
615
+ "API error occurred", http_res.status_code, http_res_text, http_res
616
+ )
617
+ if utils.match_response(http_res, "5XX", "*"):
618
+ http_res_text = await utils.stream_to_text_async(http_res)
619
+ raise models.APIError(
620
+ "API error occurred", http_res.status_code, http_res_text, http_res
621
+ )
622
+
623
+ content_type = http_res.headers.get("Content-Type")
624
+ http_res_text = await utils.stream_to_text_async(http_res)
625
+ raise models.APIError(
626
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
627
+ http_res.status_code,
628
+ http_res_text,
629
+ http_res,
630
+ )
631
+
632
+ def update(
633
+ self,
634
+ *,
635
+ project_id: str,
636
+ user_data_id: str,
637
+ data: Union[
638
+ models.PutProjectUserDataUserDataData,
639
+ models.PutProjectUserDataUserDataDataTypedDict,
640
+ ],
641
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
642
+ server_url: Optional[str] = None,
643
+ timeout_ms: Optional[int] = None,
644
+ http_headers: Optional[Mapping[str, str]] = None,
645
+ ) -> models.UserData:
646
+ r"""Update a Project User Data
647
+
648
+ Allow you update User Data in a project.
649
+
650
+
651
+ :param project_id: Project ID or Slug
652
+ :param user_data_id:
653
+ :param data:
654
+ :param retries: Override the default retry configuration for this method
655
+ :param server_url: Override the default server URL for this method
656
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
657
+ :param http_headers: Additional headers to set or replace on requests.
658
+ """
659
+ base_url = None
660
+ url_variables = None
661
+ if timeout_ms is None:
662
+ timeout_ms = self.sdk_configuration.timeout_ms
663
+
664
+ if server_url is not None:
665
+ base_url = server_url
666
+ else:
667
+ base_url = self._get_url(base_url, url_variables)
668
+
669
+ request = models.PutProjectUserDataRequest(
670
+ project_id=project_id,
671
+ user_data_id=user_data_id,
672
+ request_body=models.PutProjectUserDataUserDataRequestBody(
673
+ data=utils.get_pydantic_model(
674
+ data, models.PutProjectUserDataUserDataData
675
+ ),
676
+ ),
677
+ )
678
+
679
+ req = self._build_request(
680
+ method="PATCH",
681
+ path="/projects/{project_id}/user_data/{user_data_id}",
682
+ base_url=base_url,
683
+ url_variables=url_variables,
684
+ request=request,
685
+ request_body_required=False,
686
+ request_has_path_params=True,
687
+ request_has_query_params=True,
688
+ user_agent_header="user-agent",
689
+ accept_header_value="application/vnd.api+json",
690
+ http_headers=http_headers,
691
+ security=self.sdk_configuration.security,
692
+ get_serialized_body=lambda: utils.serialize_request_body(
693
+ request.request_body,
694
+ False,
695
+ True,
696
+ "json",
697
+ Optional[models.PutProjectUserDataUserDataRequestBody],
698
+ ),
699
+ timeout_ms=timeout_ms,
700
+ )
701
+
702
+ if retries == UNSET:
703
+ if self.sdk_configuration.retry_config is not UNSET:
704
+ retries = self.sdk_configuration.retry_config
705
+
706
+ retry_config = None
707
+ if isinstance(retries, utils.RetryConfig):
708
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
709
+
710
+ http_res = self.do_request(
711
+ hook_ctx=HookContext(
712
+ base_url=base_url or "",
713
+ operation_id="put-project-user-data",
714
+ oauth2_scopes=[],
715
+ security_source=get_security_from_env(
716
+ self.sdk_configuration.security, models.Security
717
+ ),
718
+ ),
719
+ request=req,
720
+ error_status_codes=["400", "404", "422", "4XX", "5XX"],
721
+ retry_config=retry_config,
722
+ )
723
+
724
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
725
+ return utils.unmarshal_json(http_res.text, models.UserData)
726
+ if utils.match_response(http_res, ["400", "404", "422", "4XX"], "*"):
727
+ http_res_text = utils.stream_to_text(http_res)
728
+ raise models.APIError(
729
+ "API error occurred", http_res.status_code, http_res_text, http_res
730
+ )
731
+ if utils.match_response(http_res, "5XX", "*"):
732
+ http_res_text = utils.stream_to_text(http_res)
733
+ raise models.APIError(
734
+ "API error occurred", http_res.status_code, http_res_text, http_res
735
+ )
736
+
737
+ content_type = http_res.headers.get("Content-Type")
738
+ http_res_text = utils.stream_to_text(http_res)
739
+ raise models.APIError(
740
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
741
+ http_res.status_code,
742
+ http_res_text,
743
+ http_res,
744
+ )
745
+
746
+ async def update_async(
747
+ self,
748
+ *,
749
+ project_id: str,
750
+ user_data_id: str,
751
+ data: Union[
752
+ models.PutProjectUserDataUserDataData,
753
+ models.PutProjectUserDataUserDataDataTypedDict,
754
+ ],
755
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
756
+ server_url: Optional[str] = None,
757
+ timeout_ms: Optional[int] = None,
758
+ http_headers: Optional[Mapping[str, str]] = None,
759
+ ) -> models.UserData:
760
+ r"""Update a Project User Data
761
+
762
+ Allow you update User Data in a project.
763
+
764
+
765
+ :param project_id: Project ID or Slug
766
+ :param user_data_id:
767
+ :param data:
768
+ :param retries: Override the default retry configuration for this method
769
+ :param server_url: Override the default server URL for this method
770
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
771
+ :param http_headers: Additional headers to set or replace on requests.
772
+ """
773
+ base_url = None
774
+ url_variables = None
775
+ if timeout_ms is None:
776
+ timeout_ms = self.sdk_configuration.timeout_ms
777
+
778
+ if server_url is not None:
779
+ base_url = server_url
780
+ else:
781
+ base_url = self._get_url(base_url, url_variables)
782
+
783
+ request = models.PutProjectUserDataRequest(
784
+ project_id=project_id,
785
+ user_data_id=user_data_id,
786
+ request_body=models.PutProjectUserDataUserDataRequestBody(
787
+ data=utils.get_pydantic_model(
788
+ data, models.PutProjectUserDataUserDataData
789
+ ),
790
+ ),
791
+ )
792
+
793
+ req = self._build_request_async(
794
+ method="PATCH",
795
+ path="/projects/{project_id}/user_data/{user_data_id}",
796
+ base_url=base_url,
797
+ url_variables=url_variables,
798
+ request=request,
799
+ request_body_required=False,
800
+ request_has_path_params=True,
801
+ request_has_query_params=True,
802
+ user_agent_header="user-agent",
803
+ accept_header_value="application/vnd.api+json",
804
+ http_headers=http_headers,
805
+ security=self.sdk_configuration.security,
806
+ get_serialized_body=lambda: utils.serialize_request_body(
807
+ request.request_body,
808
+ False,
809
+ True,
810
+ "json",
811
+ Optional[models.PutProjectUserDataUserDataRequestBody],
812
+ ),
813
+ timeout_ms=timeout_ms,
814
+ )
815
+
816
+ if retries == UNSET:
817
+ if self.sdk_configuration.retry_config is not UNSET:
818
+ retries = self.sdk_configuration.retry_config
819
+
820
+ retry_config = None
821
+ if isinstance(retries, utils.RetryConfig):
822
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
823
+
824
+ http_res = await self.do_request_async(
825
+ hook_ctx=HookContext(
826
+ base_url=base_url or "",
827
+ operation_id="put-project-user-data",
828
+ oauth2_scopes=[],
829
+ security_source=get_security_from_env(
830
+ self.sdk_configuration.security, models.Security
831
+ ),
832
+ ),
833
+ request=req,
834
+ error_status_codes=["400", "404", "422", "4XX", "5XX"],
835
+ retry_config=retry_config,
836
+ )
837
+
838
+ if utils.match_response(http_res, "200", "application/vnd.api+json"):
839
+ return utils.unmarshal_json(http_res.text, models.UserData)
840
+ if utils.match_response(http_res, ["400", "404", "422", "4XX"], "*"):
841
+ http_res_text = await utils.stream_to_text_async(http_res)
842
+ raise models.APIError(
843
+ "API error occurred", http_res.status_code, http_res_text, http_res
844
+ )
845
+ if utils.match_response(http_res, "5XX", "*"):
846
+ http_res_text = await utils.stream_to_text_async(http_res)
847
+ raise models.APIError(
848
+ "API error occurred", http_res.status_code, http_res_text, http_res
849
+ )
850
+
851
+ content_type = http_res.headers.get("Content-Type")
852
+ http_res_text = await utils.stream_to_text_async(http_res)
853
+ raise models.APIError(
854
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
855
+ http_res.status_code,
856
+ http_res_text,
857
+ http_res,
858
+ )
859
+
860
+ def delete(
861
+ self,
862
+ *,
863
+ project_id: str,
864
+ user_data_id: str,
865
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
866
+ server_url: Optional[str] = None,
867
+ timeout_ms: Optional[int] = None,
868
+ http_headers: Optional[Mapping[str, str]] = None,
869
+ ):
870
+ r"""Delete a Project User Data
871
+
872
+ Allow you remove User Data in a project.
873
+
874
+
875
+ :param project_id: Project ID or Slug
876
+ :param user_data_id:
877
+ :param retries: Override the default retry configuration for this method
878
+ :param server_url: Override the default server URL for this method
879
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
880
+ :param http_headers: Additional headers to set or replace on requests.
881
+ """
882
+ base_url = None
883
+ url_variables = None
884
+ if timeout_ms is None:
885
+ timeout_ms = self.sdk_configuration.timeout_ms
886
+
887
+ if server_url is not None:
888
+ base_url = server_url
889
+ else:
890
+ base_url = self._get_url(base_url, url_variables)
891
+
892
+ request = models.DeleteProjectUserDataRequest(
893
+ project_id=project_id,
894
+ user_data_id=user_data_id,
895
+ )
896
+
897
+ req = self._build_request(
898
+ method="DELETE",
899
+ path="/projects/{project_id}/user_data/{user_data_id}",
900
+ base_url=base_url,
901
+ url_variables=url_variables,
902
+ request=request,
903
+ request_body_required=False,
904
+ request_has_path_params=True,
905
+ request_has_query_params=True,
906
+ user_agent_header="user-agent",
907
+ accept_header_value="*/*",
908
+ http_headers=http_headers,
909
+ security=self.sdk_configuration.security,
910
+ timeout_ms=timeout_ms,
911
+ )
912
+
913
+ if retries == UNSET:
914
+ if self.sdk_configuration.retry_config is not UNSET:
915
+ retries = self.sdk_configuration.retry_config
916
+
917
+ retry_config = None
918
+ if isinstance(retries, utils.RetryConfig):
919
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
920
+
921
+ http_res = self.do_request(
922
+ hook_ctx=HookContext(
923
+ base_url=base_url or "",
924
+ operation_id="delete-project-user-data",
925
+ oauth2_scopes=[],
926
+ security_source=get_security_from_env(
927
+ self.sdk_configuration.security, models.Security
928
+ ),
929
+ ),
930
+ request=req,
931
+ error_status_codes=["404", "4XX", "5XX"],
932
+ retry_config=retry_config,
933
+ )
934
+
935
+ if utils.match_response(http_res, "204", "*"):
936
+ return
937
+ if utils.match_response(http_res, ["404", "4XX"], "*"):
938
+ http_res_text = utils.stream_to_text(http_res)
939
+ raise models.APIError(
940
+ "API error occurred", http_res.status_code, http_res_text, http_res
941
+ )
942
+ if utils.match_response(http_res, "5XX", "*"):
943
+ http_res_text = utils.stream_to_text(http_res)
944
+ raise models.APIError(
945
+ "API error occurred", http_res.status_code, http_res_text, http_res
946
+ )
947
+
948
+ content_type = http_res.headers.get("Content-Type")
949
+ http_res_text = utils.stream_to_text(http_res)
950
+ raise models.APIError(
951
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
952
+ http_res.status_code,
953
+ http_res_text,
954
+ http_res,
955
+ )
956
+
957
+ async def delete_async(
958
+ self,
959
+ *,
960
+ project_id: str,
961
+ user_data_id: str,
962
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
963
+ server_url: Optional[str] = None,
964
+ timeout_ms: Optional[int] = None,
965
+ http_headers: Optional[Mapping[str, str]] = None,
966
+ ):
967
+ r"""Delete a Project User Data
968
+
969
+ Allow you remove User Data in a project.
970
+
971
+
972
+ :param project_id: Project ID or Slug
973
+ :param user_data_id:
974
+ :param retries: Override the default retry configuration for this method
975
+ :param server_url: Override the default server URL for this method
976
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
977
+ :param http_headers: Additional headers to set or replace on requests.
978
+ """
979
+ base_url = None
980
+ url_variables = None
981
+ if timeout_ms is None:
982
+ timeout_ms = self.sdk_configuration.timeout_ms
983
+
984
+ if server_url is not None:
985
+ base_url = server_url
986
+ else:
987
+ base_url = self._get_url(base_url, url_variables)
988
+
989
+ request = models.DeleteProjectUserDataRequest(
990
+ project_id=project_id,
991
+ user_data_id=user_data_id,
992
+ )
993
+
994
+ req = self._build_request_async(
995
+ method="DELETE",
996
+ path="/projects/{project_id}/user_data/{user_data_id}",
997
+ base_url=base_url,
998
+ url_variables=url_variables,
999
+ request=request,
1000
+ request_body_required=False,
1001
+ request_has_path_params=True,
1002
+ request_has_query_params=True,
1003
+ user_agent_header="user-agent",
1004
+ accept_header_value="*/*",
1005
+ http_headers=http_headers,
1006
+ security=self.sdk_configuration.security,
1007
+ timeout_ms=timeout_ms,
1008
+ )
1009
+
1010
+ if retries == UNSET:
1011
+ if self.sdk_configuration.retry_config is not UNSET:
1012
+ retries = self.sdk_configuration.retry_config
1013
+
1014
+ retry_config = None
1015
+ if isinstance(retries, utils.RetryConfig):
1016
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1017
+
1018
+ http_res = await self.do_request_async(
1019
+ hook_ctx=HookContext(
1020
+ base_url=base_url or "",
1021
+ operation_id="delete-project-user-data",
1022
+ oauth2_scopes=[],
1023
+ security_source=get_security_from_env(
1024
+ self.sdk_configuration.security, models.Security
1025
+ ),
1026
+ ),
1027
+ request=req,
1028
+ error_status_codes=["404", "4XX", "5XX"],
1029
+ retry_config=retry_config,
1030
+ )
1031
+
1032
+ if utils.match_response(http_res, "204", "*"):
1033
+ return
1034
+ if utils.match_response(http_res, ["404", "4XX"], "*"):
1035
+ http_res_text = await utils.stream_to_text_async(http_res)
1036
+ raise models.APIError(
1037
+ "API error occurred", http_res.status_code, http_res_text, http_res
1038
+ )
1039
+ if utils.match_response(http_res, "5XX", "*"):
1040
+ http_res_text = await utils.stream_to_text_async(http_res)
1041
+ raise models.APIError(
1042
+ "API error occurred", http_res.status_code, http_res_text, http_res
1043
+ )
1044
+
1045
+ content_type = http_res.headers.get("Content-Type")
1046
+ http_res_text = await utils.stream_to_text_async(http_res)
1047
+ raise models.APIError(
1048
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1049
+ http_res.status_code,
1050
+ http_res_text,
1051
+ http_res,
1052
+ )