python3-core-api-client 1.2__py3-none-any.whl → 2.1.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 (55) hide show
  1. cyberfusion/CoreApiClient/connector.py +1 -0
  2. cyberfusion/CoreApiClient/http.py +30 -1
  3. cyberfusion/CoreApiClient/models.py +1642 -4140
  4. cyberfusion/CoreApiClient/resources/basic_authentication_realms.py +56 -47
  5. cyberfusion/CoreApiClient/resources/borg_archives.py +81 -82
  6. cyberfusion/CoreApiClient/resources/borg_repositories.py +76 -77
  7. cyberfusion/CoreApiClient/resources/certificate_managers.py +63 -55
  8. cyberfusion/CoreApiClient/resources/certificates.py +34 -33
  9. cyberfusion/CoreApiClient/resources/clusters.py +1486 -153
  10. cyberfusion/CoreApiClient/resources/cmses.py +157 -156
  11. cyberfusion/CoreApiClient/resources/crons.py +41 -41
  12. cyberfusion/CoreApiClient/resources/custom_config_snippets.py +55 -47
  13. cyberfusion/CoreApiClient/resources/custom_configs.py +44 -44
  14. cyberfusion/CoreApiClient/resources/customers.py +53 -54
  15. cyberfusion/CoreApiClient/resources/daemons.py +54 -55
  16. cyberfusion/CoreApiClient/resources/database_user_grants.py +33 -53
  17. cyberfusion/CoreApiClient/resources/database_users.py +45 -45
  18. cyberfusion/CoreApiClient/resources/databases.py +80 -81
  19. cyberfusion/CoreApiClient/resources/domain_routers.py +23 -23
  20. cyberfusion/CoreApiClient/resources/firewall_groups.py +44 -44
  21. cyberfusion/CoreApiClient/resources/firewall_rules.py +36 -36
  22. cyberfusion/CoreApiClient/resources/fpm_pools.py +61 -61
  23. cyberfusion/CoreApiClient/resources/ftp_users.py +51 -49
  24. cyberfusion/CoreApiClient/resources/haproxy_listens.py +36 -36
  25. cyberfusion/CoreApiClient/resources/haproxy_listens_to_nodes.py +45 -39
  26. cyberfusion/CoreApiClient/resources/health.py +6 -5
  27. cyberfusion/CoreApiClient/resources/hosts_entries.py +33 -33
  28. cyberfusion/CoreApiClient/resources/htpasswd_files.py +36 -36
  29. cyberfusion/CoreApiClient/resources/htpasswd_users.py +44 -44
  30. cyberfusion/CoreApiClient/resources/login.py +15 -14
  31. cyberfusion/CoreApiClient/resources/logs.py +59 -58
  32. cyberfusion/CoreApiClient/resources/mail_accounts.py +60 -59
  33. cyberfusion/CoreApiClient/resources/mail_aliases.py +41 -41
  34. cyberfusion/CoreApiClient/resources/mail_domains.py +41 -41
  35. cyberfusion/CoreApiClient/resources/mail_hostnames.py +44 -44
  36. cyberfusion/CoreApiClient/resources/malwares.py +14 -38
  37. cyberfusion/CoreApiClient/resources/mariadb_encryption_keys.py +37 -31
  38. cyberfusion/CoreApiClient/resources/node_add_ons.py +39 -40
  39. cyberfusion/CoreApiClient/resources/nodes.py +60 -61
  40. cyberfusion/CoreApiClient/resources/passenger_apps.py +54 -54
  41. cyberfusion/CoreApiClient/resources/redis_instances.py +46 -46
  42. cyberfusion/CoreApiClient/resources/root_ssh_keys.py +41 -41
  43. cyberfusion/CoreApiClient/resources/security_txt_policies.py +56 -48
  44. cyberfusion/CoreApiClient/resources/sites.py +15 -15
  45. cyberfusion/CoreApiClient/resources/ssh_keys.py +41 -41
  46. cyberfusion/CoreApiClient/resources/task_collections.py +20 -20
  47. cyberfusion/CoreApiClient/resources/tombstones.py +15 -15
  48. cyberfusion/CoreApiClient/resources/unix_users.py +68 -69
  49. cyberfusion/CoreApiClient/resources/url_redirects.py +42 -42
  50. cyberfusion/CoreApiClient/resources/virtual_hosts.py +66 -66
  51. {python3_core_api_client-1.2.dist-info → python3_core_api_client-2.1.0.dist-info}/METADATA +44 -11
  52. python3_core_api_client-2.1.0.dist-info/RECORD +59 -0
  53. python3_core_api_client-1.2.dist-info/RECORD +0 -59
  54. {python3_core_api_client-1.2.dist-info → python3_core_api_client-2.1.0.dist-info}/WHEEL +0 -0
  55. {python3_core_api_client-1.2.dist-info → python3_core_api_client-2.1.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,7 @@
1
1
  from cyberfusion.CoreApiClient import models
2
2
  from typing import Optional, Union, List
3
3
 
4
+ from cyberfusion.CoreApiClient.http import DtoResponse
4
5
  from cyberfusion.CoreApiClient.interfaces import Resource
5
6
 
6
7
 
@@ -8,16 +9,16 @@ class CMSes(Resource):
8
9
  def create_cms(
9
10
  self,
10
11
  request: models.CMSCreateRequest,
11
- ) -> models.CMSResource:
12
- return models.CMSResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/cmses",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.CMSResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/cmses",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.CMSResource)
21
+
21
22
  def list_cmses(
22
23
  self,
23
24
  *,
@@ -25,105 +26,103 @@ class CMSes(Resource):
25
26
  limit: Optional[int] = None,
26
27
  filter_: Optional[List[str]] = None,
27
28
  sort: Optional[List[str]] = None,
28
- ) -> list[models.CMSResource]:
29
- return [
30
- models.CMSResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/cmses",
34
- data=None,
35
- query_parameters={
36
- "skip": skip,
37
- "limit": limit,
38
- "filter": filter_,
39
- "sort": sort,
40
- },
41
- ).json
42
- ]
29
+ ) -> DtoResponse[list[models.CMSResource]]:
30
+ local_response = self.api_connector.send_or_fail(
31
+ "GET",
32
+ "/api/v1/cmses",
33
+ data=None,
34
+ query_parameters={
35
+ "skip": skip,
36
+ "limit": limit,
37
+ "filter": filter_,
38
+ "sort": sort,
39
+ },
40
+ )
41
+
42
+ return DtoResponse.from_response(local_response, models.CMSResource)
43
43
 
44
44
  def read_cms(
45
45
  self,
46
46
  *,
47
47
  id_: int,
48
- ) -> models.CMSResource:
49
- return models.CMSResource.parse_obj(
50
- self.api_connector.send_or_fail(
51
- "GET", f"/api/v1/cmses/{id_}", data=None, query_parameters={}
52
- ).json
48
+ ) -> DtoResponse[models.CMSResource]:
49
+ local_response = self.api_connector.send_or_fail(
50
+ "GET", f"/api/v1/cmses/{id_}", data=None, query_parameters={}
53
51
  )
54
52
 
53
+ return DtoResponse.from_response(local_response, models.CMSResource)
54
+
55
55
  def delete_cms(
56
56
  self,
57
57
  *,
58
58
  id_: int,
59
- ) -> models.DetailMessage:
60
- return models.DetailMessage.parse_obj(
61
- self.api_connector.send_or_fail(
62
- "DELETE", f"/api/v1/cmses/{id_}", data=None, query_parameters={}
63
- ).json
59
+ ) -> DtoResponse[models.DetailMessage]:
60
+ local_response = self.api_connector.send_or_fail(
61
+ "DELETE", f"/api/v1/cmses/{id_}", data=None, query_parameters={}
64
62
  )
65
63
 
64
+ return DtoResponse.from_response(local_response, models.DetailMessage)
65
+
66
66
  def install_wordpress(
67
67
  self,
68
68
  request: models.CMSInstallWordPressRequest,
69
69
  *,
70
70
  id_: int,
71
71
  callback_url: Optional[str] = None,
72
- ) -> models.TaskCollectionResource:
73
- return models.TaskCollectionResource.parse_obj(
74
- self.api_connector.send_or_fail(
75
- "POST",
76
- f"/api/v1/cmses/{id_}/install/wordpress",
77
- data=request.dict(exclude_unset=True),
78
- query_parameters={
79
- "callback_url": callback_url,
80
- },
81
- ).json
72
+ ) -> DtoResponse[models.TaskCollectionResource]:
73
+ local_response = self.api_connector.send_or_fail(
74
+ "POST",
75
+ f"/api/v1/cmses/{id_}/install/wordpress",
76
+ data=request.dict(exclude_unset=True),
77
+ query_parameters={
78
+ "callback_url": callback_url,
79
+ },
82
80
  )
83
81
 
82
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
83
+
84
84
  def install_nextcloud(
85
85
  self,
86
86
  request: models.CMSInstallNextCloudRequest,
87
87
  *,
88
88
  id_: int,
89
89
  callback_url: Optional[str] = None,
90
- ) -> models.TaskCollectionResource:
91
- return models.TaskCollectionResource.parse_obj(
92
- self.api_connector.send_or_fail(
93
- "POST",
94
- f"/api/v1/cmses/{id_}/install/nextcloud",
95
- data=request.dict(exclude_unset=True),
96
- query_parameters={
97
- "callback_url": callback_url,
98
- },
99
- ).json
90
+ ) -> DtoResponse[models.TaskCollectionResource]:
91
+ local_response = self.api_connector.send_or_fail(
92
+ "POST",
93
+ f"/api/v1/cmses/{id_}/install/nextcloud",
94
+ data=request.dict(exclude_unset=True),
95
+ query_parameters={
96
+ "callback_url": callback_url,
97
+ },
100
98
  )
101
99
 
100
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
101
+
102
102
  def get_cms_one_time_login(
103
103
  self,
104
104
  *,
105
105
  id_: int,
106
- ) -> models.CMSOneTimeLogin:
107
- return models.CMSOneTimeLogin.parse_obj(
108
- self.api_connector.send_or_fail(
109
- "GET",
110
- f"/api/v1/cmses/{id_}/one-time-login",
111
- data=None,
112
- query_parameters={},
113
- ).json
106
+ ) -> DtoResponse[models.CMSOneTimeLogin]:
107
+ local_response = self.api_connector.send_or_fail(
108
+ "GET",
109
+ f"/api/v1/cmses/{id_}/one-time-login",
110
+ data=None,
111
+ query_parameters={},
114
112
  )
115
113
 
114
+ return DtoResponse.from_response(local_response, models.CMSOneTimeLogin)
115
+
116
116
  def get_cms_plugins(
117
117
  self,
118
118
  *,
119
119
  id_: int,
120
- ) -> list[models.CMSPlugin]:
121
- return [
122
- models.CMSPlugin.parse_obj(model)
123
- for model in self.api_connector.send_or_fail(
124
- "GET", f"/api/v1/cmses/{id_}/plugins", data=None, query_parameters={}
125
- ).json
126
- ]
120
+ ) -> DtoResponse[list[models.CMSPlugin]]:
121
+ local_response = self.api_connector.send_or_fail(
122
+ "GET", f"/api/v1/cmses/{id_}/plugins", data=None, query_parameters={}
123
+ )
124
+
125
+ return DtoResponse.from_response(local_response, models.CMSPlugin)
127
126
 
128
127
  def update_cms_option(
129
128
  self,
@@ -131,30 +130,32 @@ class CMSes(Resource):
131
130
  *,
132
131
  id_: int,
133
132
  name: models.CMSOptionNameEnum,
134
- ) -> models.CMSOption:
135
- return models.CMSOption.parse_obj(
136
- self.api_connector.send_or_fail(
137
- "PATCH",
138
- f"/api/v1/cmses/{id_}/options/{name}",
139
- data=request.dict(exclude_unset=True),
140
- query_parameters={},
141
- ).json
133
+ ) -> DtoResponse[models.CMSOption]:
134
+ local_response = self.api_connector.send_or_fail(
135
+ "PATCH",
136
+ f"/api/v1/cmses/{id_}/options/{name}",
137
+ data=request.dict(exclude_unset=True),
138
+ query_parameters={},
142
139
  )
143
140
 
141
+ return DtoResponse.from_response(local_response, models.CMSOption)
142
+
144
143
  def update_cms_configuration_constant(
145
144
  self,
146
145
  request: models.CMSConfigurationConstantUpdateRequest,
147
146
  *,
148
147
  id_: int,
149
148
  name: str,
150
- ) -> models.CMSConfigurationConstant:
151
- return models.CMSConfigurationConstant.parse_obj(
152
- self.api_connector.send_or_fail(
153
- "PATCH",
154
- f"/api/v1/cmses/{id_}/configuration-constants/{name}",
155
- data=request.dict(exclude_unset=True),
156
- query_parameters={},
157
- ).json
149
+ ) -> DtoResponse[models.CMSConfigurationConstant]:
150
+ local_response = self.api_connector.send_or_fail(
151
+ "PATCH",
152
+ f"/api/v1/cmses/{id_}/configuration-constants/{name}",
153
+ data=request.dict(exclude_unset=True),
154
+ query_parameters={},
155
+ )
156
+
157
+ return DtoResponse.from_response(
158
+ local_response, models.CMSConfigurationConstant
158
159
  )
159
160
 
160
161
  def update_cms_user_credentials(
@@ -163,51 +164,51 @@ class CMSes(Resource):
163
164
  *,
164
165
  id_: int,
165
166
  user_id: int,
166
- ) -> models.DetailMessage:
167
- return models.DetailMessage.parse_obj(
168
- self.api_connector.send_or_fail(
169
- "PATCH",
170
- f"/api/v1/cmses/{id_}/users/{user_id}/credentials",
171
- data=request.dict(exclude_unset=True),
172
- query_parameters={},
173
- ).json
167
+ ) -> DtoResponse[models.DetailMessage]:
168
+ local_response = self.api_connector.send_or_fail(
169
+ "PATCH",
170
+ f"/api/v1/cmses/{id_}/users/{user_id}/credentials",
171
+ data=request.dict(exclude_unset=True),
172
+ query_parameters={},
174
173
  )
175
174
 
175
+ return DtoResponse.from_response(local_response, models.DetailMessage)
176
+
176
177
  def update_cms_core(
177
178
  self,
178
179
  *,
179
180
  id_: int,
180
181
  callback_url: Optional[str] = None,
181
- ) -> models.TaskCollectionResource:
182
- return models.TaskCollectionResource.parse_obj(
183
- self.api_connector.send_or_fail(
184
- "POST",
185
- f"/api/v1/cmses/{id_}/core/update",
186
- data=None,
187
- query_parameters={
188
- "callback_url": callback_url,
189
- },
190
- ).json
182
+ ) -> DtoResponse[models.TaskCollectionResource]:
183
+ local_response = self.api_connector.send_or_fail(
184
+ "POST",
185
+ f"/api/v1/cmses/{id_}/core/update",
186
+ data=None,
187
+ query_parameters={
188
+ "callback_url": callback_url,
189
+ },
191
190
  )
192
191
 
192
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
193
+
193
194
  def update_cms_plugin(
194
195
  self,
195
196
  *,
196
197
  id_: int,
197
198
  name: str,
198
199
  callback_url: Optional[str] = None,
199
- ) -> models.TaskCollectionResource:
200
- return models.TaskCollectionResource.parse_obj(
201
- self.api_connector.send_or_fail(
202
- "POST",
203
- f"/api/v1/cmses/{id_}/plugins/{name}/update",
204
- data=None,
205
- query_parameters={
206
- "callback_url": callback_url,
207
- },
208
- ).json
200
+ ) -> DtoResponse[models.TaskCollectionResource]:
201
+ local_response = self.api_connector.send_or_fail(
202
+ "POST",
203
+ f"/api/v1/cmses/{id_}/plugins/{name}/update",
204
+ data=None,
205
+ query_parameters={
206
+ "callback_url": callback_url,
207
+ },
209
208
  )
210
209
 
210
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
211
+
211
212
  def search_replace_in_cms_database(
212
213
  self,
213
214
  *,
@@ -215,64 +216,64 @@ class CMSes(Resource):
215
216
  search_string: str,
216
217
  replace_string: str,
217
218
  callback_url: Optional[str] = None,
218
- ) -> models.TaskCollectionResource:
219
- return models.TaskCollectionResource.parse_obj(
220
- self.api_connector.send_or_fail(
221
- "POST",
222
- f"/api/v1/cmses/{id_}/search-replace",
223
- data=None,
224
- query_parameters={
225
- "callback_url": callback_url,
226
- "search_string": search_string,
227
- "replace_string": replace_string,
228
- },
229
- ).json
219
+ ) -> DtoResponse[models.TaskCollectionResource]:
220
+ local_response = self.api_connector.send_or_fail(
221
+ "POST",
222
+ f"/api/v1/cmses/{id_}/search-replace",
223
+ data=None,
224
+ query_parameters={
225
+ "callback_url": callback_url,
226
+ "search_string": search_string,
227
+ "replace_string": replace_string,
228
+ },
230
229
  )
231
230
 
231
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
232
+
232
233
  def enable_cms_plugin(
233
234
  self,
234
235
  *,
235
236
  id_: int,
236
237
  name: str,
237
- ) -> models.DetailMessage:
238
- return models.DetailMessage.parse_obj(
239
- self.api_connector.send_or_fail(
240
- "POST",
241
- f"/api/v1/cmses/{id_}/plugins/{name}/enable",
242
- data=None,
243
- query_parameters={},
244
- ).json
238
+ ) -> DtoResponse[models.DetailMessage]:
239
+ local_response = self.api_connector.send_or_fail(
240
+ "POST",
241
+ f"/api/v1/cmses/{id_}/plugins/{name}/enable",
242
+ data=None,
243
+ query_parameters={},
245
244
  )
246
245
 
246
+ return DtoResponse.from_response(local_response, models.DetailMessage)
247
+
247
248
  def disable_cms_plugin(
248
249
  self,
249
250
  *,
250
251
  id_: int,
251
252
  name: str,
252
- ) -> models.DetailMessage:
253
- return models.DetailMessage.parse_obj(
254
- self.api_connector.send_or_fail(
255
- "POST",
256
- f"/api/v1/cmses/{id_}/plugins/{name}/disable",
257
- data=None,
258
- query_parameters={},
259
- ).json
253
+ ) -> DtoResponse[models.DetailMessage]:
254
+ local_response = self.api_connector.send_or_fail(
255
+ "POST",
256
+ f"/api/v1/cmses/{id_}/plugins/{name}/disable",
257
+ data=None,
258
+ query_parameters={},
260
259
  )
261
260
 
261
+ return DtoResponse.from_response(local_response, models.DetailMessage)
262
+
262
263
  def regenerate_cms_salts(
263
264
  self,
264
265
  *,
265
266
  id_: int,
266
- ) -> models.DetailMessage:
267
- return models.DetailMessage.parse_obj(
268
- self.api_connector.send_or_fail(
269
- "POST",
270
- f"/api/v1/cmses/{id_}/regenerate-salts",
271
- data=None,
272
- query_parameters={},
273
- ).json
267
+ ) -> DtoResponse[models.DetailMessage]:
268
+ local_response = self.api_connector.send_or_fail(
269
+ "POST",
270
+ f"/api/v1/cmses/{id_}/regenerate-salts",
271
+ data=None,
272
+ query_parameters={},
274
273
  )
275
274
 
275
+ return DtoResponse.from_response(local_response, models.DetailMessage)
276
+
276
277
  def install_cms_theme(
277
278
  self,
278
279
  request: Union[
@@ -281,12 +282,12 @@ class CMSes(Resource):
281
282
  ],
282
283
  *,
283
284
  id_: int,
284
- ) -> models.DetailMessage:
285
- return models.DetailMessage.parse_obj(
286
- self.api_connector.send_or_fail(
287
- "POST",
288
- f"/api/v1/cmses/{id_}/themes",
289
- data=request.dict(exclude_unset=True),
290
- query_parameters={},
291
- ).json
285
+ ) -> DtoResponse[models.DetailMessage]:
286
+ local_response = self.api_connector.send_or_fail(
287
+ "POST",
288
+ f"/api/v1/cmses/{id_}/themes",
289
+ data=request.dict(exclude_unset=True),
290
+ query_parameters={},
292
291
  )
292
+
293
+ return DtoResponse.from_response(local_response, models.DetailMessage)
@@ -1,6 +1,7 @@
1
1
  from cyberfusion.CoreApiClient import models
2
2
  from typing import Optional, List
3
3
 
4
+ from cyberfusion.CoreApiClient.http import DtoResponse
4
5
  from cyberfusion.CoreApiClient.interfaces import Resource
5
6
 
6
7
 
@@ -8,16 +9,16 @@ class Crons(Resource):
8
9
  def create_cron(
9
10
  self,
10
11
  request: models.CronCreateRequest,
11
- ) -> models.CronResource:
12
- return models.CronResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/crons",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.CronResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/crons",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.CronResource)
21
+
21
22
  def list_crons(
22
23
  self,
23
24
  *,
@@ -25,55 +26,54 @@ class Crons(Resource):
25
26
  limit: Optional[int] = None,
26
27
  filter_: Optional[List[str]] = None,
27
28
  sort: Optional[List[str]] = None,
28
- ) -> list[models.CronResource]:
29
- return [
30
- models.CronResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/crons",
34
- data=None,
35
- query_parameters={
36
- "skip": skip,
37
- "limit": limit,
38
- "filter": filter_,
39
- "sort": sort,
40
- },
41
- ).json
42
- ]
29
+ ) -> DtoResponse[list[models.CronResource]]:
30
+ local_response = self.api_connector.send_or_fail(
31
+ "GET",
32
+ "/api/v1/crons",
33
+ data=None,
34
+ query_parameters={
35
+ "skip": skip,
36
+ "limit": limit,
37
+ "filter": filter_,
38
+ "sort": sort,
39
+ },
40
+ )
41
+
42
+ return DtoResponse.from_response(local_response, models.CronResource)
43
43
 
44
44
  def read_cron(
45
45
  self,
46
46
  *,
47
47
  id_: int,
48
- ) -> models.CronResource:
49
- return models.CronResource.parse_obj(
50
- self.api_connector.send_or_fail(
51
- "GET", f"/api/v1/crons/{id_}", data=None, query_parameters={}
52
- ).json
48
+ ) -> DtoResponse[models.CronResource]:
49
+ local_response = self.api_connector.send_or_fail(
50
+ "GET", f"/api/v1/crons/{id_}", data=None, query_parameters={}
53
51
  )
54
52
 
53
+ return DtoResponse.from_response(local_response, models.CronResource)
54
+
55
55
  def update_cron(
56
56
  self,
57
57
  request: models.CronUpdateRequest,
58
58
  *,
59
59
  id_: int,
60
- ) -> models.CronResource:
61
- return models.CronResource.parse_obj(
62
- self.api_connector.send_or_fail(
63
- "PATCH",
64
- f"/api/v1/crons/{id_}",
65
- data=request.dict(exclude_unset=True),
66
- query_parameters={},
67
- ).json
60
+ ) -> DtoResponse[models.CronResource]:
61
+ local_response = self.api_connector.send_or_fail(
62
+ "PATCH",
63
+ f"/api/v1/crons/{id_}",
64
+ data=request.dict(exclude_unset=True),
65
+ query_parameters={},
68
66
  )
69
67
 
68
+ return DtoResponse.from_response(local_response, models.CronResource)
69
+
70
70
  def delete_cron(
71
71
  self,
72
72
  *,
73
73
  id_: int,
74
- ) -> models.DetailMessage:
75
- return models.DetailMessage.parse_obj(
76
- self.api_connector.send_or_fail(
77
- "DELETE", f"/api/v1/crons/{id_}", data=None, query_parameters={}
78
- ).json
74
+ ) -> DtoResponse[models.DetailMessage]:
75
+ local_response = self.api_connector.send_or_fail(
76
+ "DELETE", f"/api/v1/crons/{id_}", data=None, query_parameters={}
79
77
  )
78
+
79
+ return DtoResponse.from_response(local_response, models.DetailMessage)