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