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
@@ -2,20 +2,23 @@ from cyberfusion.CoreApiClient import models
2
2
  from typing import Optional, List
3
3
 
4
4
  from cyberfusion.CoreApiClient.interfaces import Resource
5
+ from cyberfusion.CoreApiClient.http import DtoResponse
5
6
 
6
7
 
7
8
  class MariaDBEncryptionKeys(Resource):
8
9
  def create_mariadb_encryption_key(
9
10
  self,
10
11
  request: models.MariaDBEncryptionKeyCreateRequest,
11
- ) -> models.MariaDBEncryptionKeyResource:
12
- return models.MariaDBEncryptionKeyResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/mariadb-encryption-keys",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.MariaDBEncryptionKeyResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/mariadb-encryption-keys",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
18
+ )
19
+
20
+ return DtoResponse.from_response(
21
+ local_response, models.MariaDBEncryptionKeyResource
19
22
  )
20
23
 
21
24
  def list_mariadb_encryption_keys(
@@ -25,32 +28,35 @@ class MariaDBEncryptionKeys(Resource):
25
28
  limit: Optional[int] = None,
26
29
  filter_: Optional[List[str]] = None,
27
30
  sort: Optional[List[str]] = None,
28
- ) -> list[models.MariaDBEncryptionKeyResource]:
29
- return [
30
- models.MariaDBEncryptionKeyResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/mariadb-encryption-keys",
34
- data=None,
35
- query_parameters={
36
- "skip": skip,
37
- "limit": limit,
38
- "filter": filter_,
39
- "sort": sort,
40
- },
41
- ).json
42
- ]
31
+ ) -> DtoResponse[list[models.MariaDBEncryptionKeyResource]]:
32
+ local_response = self.api_connector.send_or_fail(
33
+ "GET",
34
+ "/api/v1/mariadb-encryption-keys",
35
+ data=None,
36
+ query_parameters={
37
+ "skip": skip,
38
+ "limit": limit,
39
+ "filter": filter_,
40
+ "sort": sort,
41
+ },
42
+ )
43
+
44
+ return DtoResponse.from_response(
45
+ local_response, models.MariaDBEncryptionKeyResource
46
+ )
43
47
 
44
48
  def read_mariadb_encryption_key(
45
49
  self,
46
50
  *,
47
51
  id_: int,
48
- ) -> models.MariaDBEncryptionKeyResource:
49
- return models.MariaDBEncryptionKeyResource.parse_obj(
50
- self.api_connector.send_or_fail(
51
- "GET",
52
- f"/api/v1/mariadb-encryption-keys/{id_}",
53
- data=None,
54
- query_parameters={},
55
- ).json
52
+ ) -> DtoResponse[models.MariaDBEncryptionKeyResource]:
53
+ local_response = self.api_connector.send_or_fail(
54
+ "GET",
55
+ f"/api/v1/mariadb-encryption-keys/{id_}",
56
+ data=None,
57
+ query_parameters={},
58
+ )
59
+
60
+ return DtoResponse.from_response(
61
+ local_response, models.MariaDBEncryptionKeyResource
56
62
  )
@@ -2,22 +2,23 @@ from cyberfusion.CoreApiClient import models
2
2
  from typing import Optional, List
3
3
 
4
4
  from cyberfusion.CoreApiClient.interfaces import Resource
5
+ from cyberfusion.CoreApiClient.http import DtoResponse
5
6
 
6
7
 
7
8
  class NodeAddOns(Resource):
8
9
  def create_node_add_on(
9
10
  self,
10
11
  request: models.NodeAddOnCreateRequest,
11
- ) -> models.TaskCollectionResource:
12
- return models.TaskCollectionResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/node-add-ons",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.TaskCollectionResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/node-add-ons",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
21
+
21
22
  def list_node_add_ons(
22
23
  self,
23
24
  *,
@@ -25,50 +26,48 @@ class NodeAddOns(Resource):
25
26
  limit: Optional[int] = None,
26
27
  filter_: Optional[List[str]] = None,
27
28
  sort: Optional[List[str]] = None,
28
- ) -> list[models.NodeAddOnResource]:
29
- return [
30
- models.NodeAddOnResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/node-add-ons",
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.NodeAddOnResource]]:
30
+ local_response = self.api_connector.send_or_fail(
31
+ "GET",
32
+ "/api/v1/node-add-ons",
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.NodeAddOnResource)
43
43
 
44
44
  def get_node_add_on_products(
45
45
  self,
46
- ) -> list[models.NodeAddOnProduct]:
47
- return [
48
- models.NodeAddOnProduct.parse_obj(model)
49
- for model in self.api_connector.send_or_fail(
50
- "GET", "/api/v1/node-add-ons/products", data=None, query_parameters={}
51
- ).json
52
- ]
46
+ ) -> DtoResponse[list[models.NodeAddOnProduct]]:
47
+ local_response = self.api_connector.send_or_fail(
48
+ "GET", "/api/v1/node-add-ons/products", data=None, query_parameters={}
49
+ )
50
+
51
+ return DtoResponse.from_response(local_response, models.NodeAddOnProduct)
53
52
 
54
53
  def read_node_add_on(
55
54
  self,
56
55
  *,
57
56
  id_: int,
58
- ) -> models.NodeAddOnResource:
59
- return models.NodeAddOnResource.parse_obj(
60
- self.api_connector.send_or_fail(
61
- "GET", f"/api/v1/node-add-ons/{id_}", data=None, query_parameters={}
62
- ).json
57
+ ) -> DtoResponse[models.NodeAddOnResource]:
58
+ local_response = self.api_connector.send_or_fail(
59
+ "GET", f"/api/v1/node-add-ons/{id_}", data=None, query_parameters={}
63
60
  )
64
61
 
62
+ return DtoResponse.from_response(local_response, models.NodeAddOnResource)
63
+
65
64
  def delete_node_add_on(
66
65
  self,
67
66
  *,
68
67
  id_: int,
69
- ) -> models.DetailMessage:
70
- return models.DetailMessage.parse_obj(
71
- self.api_connector.send_or_fail(
72
- "DELETE", f"/api/v1/node-add-ons/{id_}", data=None, query_parameters={}
73
- ).json
68
+ ) -> DtoResponse[models.DetailMessage]:
69
+ local_response = self.api_connector.send_or_fail(
70
+ "DELETE", f"/api/v1/node-add-ons/{id_}", data=None, query_parameters={}
74
71
  )
72
+
73
+ return DtoResponse.from_response(local_response, models.DetailMessage)
@@ -2,6 +2,7 @@ from cyberfusion.CoreApiClient import models
2
2
  from typing import Optional, List
3
3
 
4
4
  from cyberfusion.CoreApiClient.interfaces import Resource
5
+ from cyberfusion.CoreApiClient.http import DtoResponse
5
6
 
6
7
 
7
8
  class Nodes(Resource):
@@ -10,18 +11,18 @@ class Nodes(Resource):
10
11
  request: models.NodeCreateRequest,
11
12
  *,
12
13
  callback_url: Optional[str] = None,
13
- ) -> models.TaskCollectionResource:
14
- return models.TaskCollectionResource.parse_obj(
15
- self.api_connector.send_or_fail(
16
- "POST",
17
- "/api/v1/nodes",
18
- data=request.dict(exclude_unset=True),
19
- query_parameters={
20
- "callback_url": callback_url,
21
- },
22
- ).json
14
+ ) -> DtoResponse[models.TaskCollectionResource]:
15
+ local_response = self.api_connector.send_or_fail(
16
+ "POST",
17
+ "/api/v1/nodes",
18
+ data=request.dict(exclude_unset=True),
19
+ query_parameters={
20
+ "callback_url": callback_url,
21
+ },
23
22
  )
24
23
 
24
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
25
+
25
26
  def list_nodes(
26
27
  self,
27
28
  *,
@@ -29,84 +30,82 @@ class Nodes(Resource):
29
30
  limit: Optional[int] = None,
30
31
  filter_: Optional[List[str]] = None,
31
32
  sort: Optional[List[str]] = None,
32
- ) -> list[models.NodeResource]:
33
- return [
34
- models.NodeResource.parse_obj(model)
35
- for model in self.api_connector.send_or_fail(
36
- "GET",
37
- "/api/v1/nodes",
38
- data=None,
39
- query_parameters={
40
- "skip": skip,
41
- "limit": limit,
42
- "filter": filter_,
43
- "sort": sort,
44
- },
45
- ).json
46
- ]
33
+ ) -> DtoResponse[list[models.NodeResource]]:
34
+ local_response = self.api_connector.send_or_fail(
35
+ "GET",
36
+ "/api/v1/nodes",
37
+ data=None,
38
+ query_parameters={
39
+ "skip": skip,
40
+ "limit": limit,
41
+ "filter": filter_,
42
+ "sort": sort,
43
+ },
44
+ )
45
+
46
+ return DtoResponse.from_response(local_response, models.NodeResource)
47
47
 
48
48
  def get_node_products(
49
49
  self,
50
- ) -> list[models.NodeProduct]:
51
- return [
52
- models.NodeProduct.parse_obj(model)
53
- for model in self.api_connector.send_or_fail(
54
- "GET", "/api/v1/nodes/products", data=None, query_parameters={}
55
- ).json
56
- ]
50
+ ) -> DtoResponse[list[models.NodeProduct]]:
51
+ local_response = self.api_connector.send_or_fail(
52
+ "GET", "/api/v1/nodes/products", data=None, query_parameters={}
53
+ )
54
+
55
+ return DtoResponse.from_response(local_response, models.NodeProduct)
57
56
 
58
57
  def read_node(
59
58
  self,
60
59
  *,
61
60
  id_: int,
62
- ) -> models.NodeResource:
63
- return models.NodeResource.parse_obj(
64
- self.api_connector.send_or_fail(
65
- "GET", f"/api/v1/nodes/{id_}", data=None, query_parameters={}
66
- ).json
61
+ ) -> DtoResponse[models.NodeResource]:
62
+ local_response = self.api_connector.send_or_fail(
63
+ "GET", f"/api/v1/nodes/{id_}", data=None, query_parameters={}
67
64
  )
68
65
 
66
+ return DtoResponse.from_response(local_response, models.NodeResource)
67
+
69
68
  def update_node(
70
69
  self,
71
70
  request: models.NodeUpdateRequest,
72
71
  *,
73
72
  id_: int,
74
- ) -> models.NodeResource:
75
- return models.NodeResource.parse_obj(
76
- self.api_connector.send_or_fail(
77
- "PATCH",
78
- f"/api/v1/nodes/{id_}",
79
- data=request.dict(exclude_unset=True),
80
- query_parameters={},
81
- ).json
73
+ ) -> DtoResponse[models.NodeResource]:
74
+ local_response = self.api_connector.send_or_fail(
75
+ "PATCH",
76
+ f"/api/v1/nodes/{id_}",
77
+ data=request.dict(exclude_unset=True),
78
+ query_parameters={},
82
79
  )
83
80
 
81
+ return DtoResponse.from_response(local_response, models.NodeResource)
82
+
84
83
  def delete_node(
85
84
  self,
86
85
  *,
87
86
  id_: int,
88
- ) -> models.DetailMessage:
89
- return models.DetailMessage.parse_obj(
90
- self.api_connector.send_or_fail(
91
- "DELETE", f"/api/v1/nodes/{id_}", data=None, query_parameters={}
92
- ).json
87
+ ) -> DtoResponse[models.DetailMessage]:
88
+ local_response = self.api_connector.send_or_fail(
89
+ "DELETE", f"/api/v1/nodes/{id_}", data=None, query_parameters={}
93
90
  )
94
91
 
92
+ return DtoResponse.from_response(local_response, models.DetailMessage)
93
+
95
94
  def upgrade_downgrade_node(
96
95
  self,
97
96
  *,
98
97
  id_: int,
99
98
  callback_url: Optional[str] = None,
100
99
  product: str,
101
- ) -> models.TaskCollectionResource:
102
- return models.TaskCollectionResource.parse_obj(
103
- self.api_connector.send_or_fail(
104
- "POST",
105
- f"/api/v1/nodes/{id_}/xgrade",
106
- data=None,
107
- query_parameters={
108
- "callback_url": callback_url,
109
- "product": product,
110
- },
111
- ).json
100
+ ) -> DtoResponse[models.TaskCollectionResource]:
101
+ local_response = self.api_connector.send_or_fail(
102
+ "POST",
103
+ f"/api/v1/nodes/{id_}/xgrade",
104
+ data=None,
105
+ query_parameters={
106
+ "callback_url": callback_url,
107
+ "product": product,
108
+ },
112
109
  )
110
+
111
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
@@ -2,22 +2,23 @@ from cyberfusion.CoreApiClient import models
2
2
  from typing import Optional, List
3
3
 
4
4
  from cyberfusion.CoreApiClient.interfaces import Resource
5
+ from cyberfusion.CoreApiClient.http import DtoResponse
5
6
 
6
7
 
7
8
  class PassengerApps(Resource):
8
9
  def create_nodejs_passenger_app(
9
10
  self,
10
11
  request: models.PassengerAppCreateNodeJSRequest,
11
- ) -> models.PassengerAppResource:
12
- return models.PassengerAppResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/passenger-apps/nodejs",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.PassengerAppResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/passenger-apps/nodejs",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.PassengerAppResource)
21
+
21
22
  def list_passenger_apps(
22
23
  self,
23
24
  *,
@@ -25,76 +26,75 @@ class PassengerApps(Resource):
25
26
  limit: Optional[int] = None,
26
27
  filter_: Optional[List[str]] = None,
27
28
  sort: Optional[List[str]] = None,
28
- ) -> list[models.PassengerAppResource]:
29
- return [
30
- models.PassengerAppResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/passenger-apps",
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.PassengerAppResource]]:
30
+ local_response = self.api_connector.send_or_fail(
31
+ "GET",
32
+ "/api/v1/passenger-apps",
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.PassengerAppResource)
43
43
 
44
44
  def read_passenger_app(
45
45
  self,
46
46
  *,
47
47
  id_: int,
48
- ) -> models.PassengerAppResource:
49
- return models.PassengerAppResource.parse_obj(
50
- self.api_connector.send_or_fail(
51
- "GET", f"/api/v1/passenger-apps/{id_}", data=None, query_parameters={}
52
- ).json
48
+ ) -> DtoResponse[models.PassengerAppResource]:
49
+ local_response = self.api_connector.send_or_fail(
50
+ "GET", f"/api/v1/passenger-apps/{id_}", data=None, query_parameters={}
53
51
  )
54
52
 
53
+ return DtoResponse.from_response(local_response, models.PassengerAppResource)
54
+
55
55
  def update_passenger_app(
56
56
  self,
57
57
  request: models.PassengerAppUpdateRequest,
58
58
  *,
59
59
  id_: int,
60
- ) -> models.PassengerAppResource:
61
- return models.PassengerAppResource.parse_obj(
62
- self.api_connector.send_or_fail(
63
- "PATCH",
64
- f"/api/v1/passenger-apps/{id_}",
65
- data=request.dict(exclude_unset=True),
66
- query_parameters={},
67
- ).json
60
+ ) -> DtoResponse[models.PassengerAppResource]:
61
+ local_response = self.api_connector.send_or_fail(
62
+ "PATCH",
63
+ f"/api/v1/passenger-apps/{id_}",
64
+ data=request.dict(exclude_unset=True),
65
+ query_parameters={},
68
66
  )
69
67
 
68
+ return DtoResponse.from_response(local_response, models.PassengerAppResource)
69
+
70
70
  def delete_passenger_app(
71
71
  self,
72
72
  *,
73
73
  id_: int,
74
74
  delete_on_cluster: Optional[bool] = None,
75
- ) -> models.DetailMessage:
76
- return models.DetailMessage.parse_obj(
77
- self.api_connector.send_or_fail(
78
- "DELETE",
79
- f"/api/v1/passenger-apps/{id_}",
80
- data=None,
81
- query_parameters={"delete_on_cluster": delete_on_cluster},
82
- ).json
75
+ ) -> DtoResponse[models.DetailMessage]:
76
+ local_response = self.api_connector.send_or_fail(
77
+ "DELETE",
78
+ f"/api/v1/passenger-apps/{id_}",
79
+ data=None,
80
+ query_parameters={"delete_on_cluster": delete_on_cluster},
83
81
  )
84
82
 
83
+ return DtoResponse.from_response(local_response, models.DetailMessage)
84
+
85
85
  def restart_passenger_app(
86
86
  self,
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/passenger-apps/{id_}/restart",
95
- data=None,
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/passenger-apps/{id_}/restart",
94
+ data=None,
95
+ query_parameters={
96
+ "callback_url": callback_url,
97
+ },
100
98
  )
99
+
100
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
@@ -2,22 +2,23 @@ from cyberfusion.CoreApiClient import models
2
2
  from typing import Optional, List
3
3
 
4
4
  from cyberfusion.CoreApiClient.interfaces import Resource
5
+ from cyberfusion.CoreApiClient.http import DtoResponse
5
6
 
6
7
 
7
8
  class RedisInstances(Resource):
8
9
  def create_redis_instance(
9
10
  self,
10
11
  request: models.RedisInstanceCreateRequest,
11
- ) -> models.RedisInstanceResource:
12
- return models.RedisInstanceResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/redis-instances",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.RedisInstanceResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/redis-instances",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.RedisInstanceResource)
21
+
21
22
  def list_redis_instances(
22
23
  self,
23
24
  *,
@@ -25,61 +26,60 @@ class RedisInstances(Resource):
25
26
  limit: Optional[int] = None,
26
27
  filter_: Optional[List[str]] = None,
27
28
  sort: Optional[List[str]] = None,
28
- ) -> list[models.RedisInstanceResource]:
29
- return [
30
- models.RedisInstanceResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/redis-instances",
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.RedisInstanceResource]]:
30
+ local_response = self.api_connector.send_or_fail(
31
+ "GET",
32
+ "/api/v1/redis-instances",
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.RedisInstanceResource)
43
43
 
44
44
  def read_redis_instance(
45
45
  self,
46
46
  *,
47
47
  id_: int,
48
- ) -> models.RedisInstanceResource:
49
- return models.RedisInstanceResource.parse_obj(
50
- self.api_connector.send_or_fail(
51
- "GET", f"/api/v1/redis-instances/{id_}", data=None, query_parameters={}
52
- ).json
48
+ ) -> DtoResponse[models.RedisInstanceResource]:
49
+ local_response = self.api_connector.send_or_fail(
50
+ "GET", f"/api/v1/redis-instances/{id_}", data=None, query_parameters={}
53
51
  )
54
52
 
53
+ return DtoResponse.from_response(local_response, models.RedisInstanceResource)
54
+
55
55
  def update_redis_instance(
56
56
  self,
57
57
  request: models.RedisInstanceUpdateRequest,
58
58
  *,
59
59
  id_: int,
60
- ) -> models.RedisInstanceResource:
61
- return models.RedisInstanceResource.parse_obj(
62
- self.api_connector.send_or_fail(
63
- "PATCH",
64
- f"/api/v1/redis-instances/{id_}",
65
- data=request.dict(exclude_unset=True),
66
- query_parameters={},
67
- ).json
60
+ ) -> DtoResponse[models.RedisInstanceResource]:
61
+ local_response = self.api_connector.send_or_fail(
62
+ "PATCH",
63
+ f"/api/v1/redis-instances/{id_}",
64
+ data=request.dict(exclude_unset=True),
65
+ query_parameters={},
68
66
  )
69
67
 
68
+ return DtoResponse.from_response(local_response, models.RedisInstanceResource)
69
+
70
70
  def delete_redis_instance(
71
71
  self,
72
72
  *,
73
73
  id_: int,
74
74
  delete_on_cluster: Optional[bool] = None,
75
- ) -> models.DetailMessage:
76
- return models.DetailMessage.parse_obj(
77
- self.api_connector.send_or_fail(
78
- "DELETE",
79
- f"/api/v1/redis-instances/{id_}",
80
- data=None,
81
- query_parameters={
82
- "delete_on_cluster": delete_on_cluster,
83
- },
84
- ).json
75
+ ) -> DtoResponse[models.DetailMessage]:
76
+ local_response = self.api_connector.send_or_fail(
77
+ "DELETE",
78
+ f"/api/v1/redis-instances/{id_}",
79
+ data=None,
80
+ query_parameters={
81
+ "delete_on_cluster": delete_on_cluster,
82
+ },
85
83
  )
84
+
85
+ return DtoResponse.from_response(local_response, models.DetailMessage)