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, List
3
3
 
4
+ from cyberfusion.CoreApiClient.http import DtoResponse
4
5
  from cyberfusion.CoreApiClient.interfaces import Resource
5
6
 
6
7
 
@@ -8,14 +9,16 @@ class DatabaseUserGrants(Resource):
8
9
  def create_database_user_grant(
9
10
  self,
10
11
  request: models.DatabaseUserGrantCreateRequest,
11
- ) -> models.DatabaseUserGrantResource:
12
- return models.DatabaseUserGrantResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/database-user-grants",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.DatabaseUserGrantResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/database-user-grants",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
18
+ )
19
+
20
+ return DtoResponse.from_response(
21
+ local_response, models.DatabaseUserGrantResource
19
22
  )
20
23
 
21
24
  def list_database_user_grants(
@@ -25,55 +28,32 @@ class DatabaseUserGrants(Resource):
25
28
  limit: Optional[int] = None,
26
29
  filter_: Optional[List[str]] = None,
27
30
  sort: Optional[List[str]] = None,
28
- ) -> list[models.DatabaseUserGrantResource]:
29
- return [
30
- models.DatabaseUserGrantResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/database-user-grants",
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.DatabaseUserGrantResource]]:
32
+ local_response = self.api_connector.send_or_fail(
33
+ "GET",
34
+ "/api/v1/database-user-grants",
35
+ data=None,
36
+ query_parameters={
37
+ "skip": skip,
38
+ "limit": limit,
39
+ "filter": filter_,
40
+ "sort": sort,
41
+ },
42
+ )
43
43
 
44
- def list_database_user_grants_for_database_users(
45
- self,
46
- *,
47
- database_user_id: int,
48
- skip: Optional[int] = None,
49
- limit: Optional[int] = None,
50
- filter_: Optional[List[str]] = None,
51
- sort: Optional[List[str]] = None,
52
- ) -> list[models.DatabaseUserGrantResource]:
53
- return [
54
- models.DatabaseUserGrantResource.parse_obj(model)
55
- for model in self.api_connector.send_or_fail(
56
- "GET",
57
- f"/api/v1/database-user-grants/{database_user_id}",
58
- data=None,
59
- query_parameters={
60
- "skip": skip,
61
- "limit": limit,
62
- "filter": filter_,
63
- "sort": sort,
64
- },
65
- ).json
66
- ]
44
+ return DtoResponse.from_response(
45
+ local_response, models.DatabaseUserGrantResource
46
+ )
67
47
 
68
48
  def delete_database_user_grant(
69
49
  self,
70
50
  *,
71
51
  id_: int,
72
- ) -> models.DetailMessage:
73
- return models.DetailMessage.parse_obj(
74
- self.api_connector.send_or_fail(
75
- "DELETE",
76
- f"/api/v1/database-user-grants/{id_}",
77
- data=None,
78
- ).json
52
+ ) -> DtoResponse[models.DetailMessage]:
53
+ local_response = self.api_connector.send_or_fail(
54
+ "DELETE",
55
+ f"/api/v1/database-user-grants/{id_}",
56
+ data=None,
79
57
  )
58
+
59
+ return DtoResponse.from_response(local_response, models.DetailMessage)
@@ -1,6 +1,7 @@
1
- from cyberfusion.CoreApiClient import models
2
1
  from typing import Optional, List
3
2
 
3
+ from cyberfusion.CoreApiClient import models
4
+ from cyberfusion.CoreApiClient.http import DtoResponse
4
5
  from cyberfusion.CoreApiClient.interfaces import Resource
5
6
 
6
7
 
@@ -8,16 +9,16 @@ class DatabaseUsers(Resource):
8
9
  def create_database_user(
9
10
  self,
10
11
  request: models.DatabaseUserCreateRequest,
11
- ) -> models.DatabaseUserResource:
12
- return models.DatabaseUserResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/database-users",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.DatabaseUserResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/database-users",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.DatabaseUserResource)
21
+
21
22
  def list_database_users(
22
23
  self,
23
24
  *,
@@ -25,58 +26,57 @@ class DatabaseUsers(Resource):
25
26
  limit: Optional[int] = None,
26
27
  filter_: Optional[List[str]] = None,
27
28
  sort: Optional[List[str]] = None,
28
- ) -> list[models.DatabaseUserResource]:
29
- return [
30
- models.DatabaseUserResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/database-users",
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.DatabaseUserResource]]:
30
+ local_response = self.api_connector.send_or_fail(
31
+ "GET",
32
+ "/api/v1/database-users",
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.DatabaseUserResource)
43
43
 
44
44
  def read_database_user(
45
45
  self,
46
46
  *,
47
47
  id_: int,
48
- ) -> models.DatabaseUserResource:
49
- return models.DatabaseUserResource.parse_obj(
50
- self.api_connector.send_or_fail(
51
- "GET", f"/api/v1/database-users/{id_}", data=None, query_parameters={}
52
- ).json
48
+ ) -> DtoResponse[models.DatabaseUserResource]:
49
+ local_response = self.api_connector.send_or_fail(
50
+ "GET", f"/api/v1/database-users/{id_}", data=None, query_parameters={}
53
51
  )
54
52
 
53
+ return DtoResponse.from_response(local_response, models.DatabaseUserResource)
54
+
55
55
  def update_database_user(
56
56
  self,
57
57
  request: models.DatabaseUserUpdateRequest,
58
58
  *,
59
59
  id_: int,
60
- ) -> models.DatabaseUserResource:
61
- return models.DatabaseUserResource.parse_obj(
62
- self.api_connector.send_or_fail(
63
- "PATCH",
64
- f"/api/v1/database-users/{id_}",
65
- data=request.dict(exclude_unset=True),
66
- query_parameters={},
67
- ).json
60
+ ) -> DtoResponse[models.DatabaseUserResource]:
61
+ local_response = self.api_connector.send_or_fail(
62
+ "PATCH",
63
+ f"/api/v1/database-users/{id_}",
64
+ data=request.dict(exclude_unset=True),
65
+ query_parameters={},
68
66
  )
69
67
 
68
+ return DtoResponse.from_response(local_response, models.DatabaseUserResource)
69
+
70
70
  def delete_database_user(
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",
78
- f"/api/v1/database-users/{id_}",
79
- data=None,
80
- query_parameters={},
81
- ).json
74
+ ) -> DtoResponse[models.DetailMessage]:
75
+ local_response = self.api_connector.send_or_fail(
76
+ "DELETE",
77
+ f"/api/v1/database-users/{id_}",
78
+ data=None,
79
+ query_parameters={},
82
80
  )
81
+
82
+ return DtoResponse.from_response(local_response, models.DetailMessage)
@@ -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 Databases(Resource):
8
9
  def create_database(
9
10
  self,
10
11
  request: models.DatabaseCreateRequest,
11
- ) -> models.DatabaseResource:
12
- return models.DatabaseResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/databases",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.DatabaseResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/databases",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.DatabaseResource)
21
+
21
22
  def list_databases(
22
23
  self,
23
24
  *,
@@ -25,82 +26,81 @@ class Databases(Resource):
25
26
  limit: Optional[int] = None,
26
27
  filter_: Optional[List[str]] = None,
27
28
  sort: Optional[List[str]] = None,
28
- ) -> list[models.DatabaseResource]:
29
- return [
30
- models.DatabaseResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/databases",
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.DatabaseResource]]:
30
+ local_response = self.api_connector.send_or_fail(
31
+ "GET",
32
+ "/api/v1/databases",
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.DatabaseResource)
43
43
 
44
44
  def read_database(
45
45
  self,
46
46
  *,
47
47
  id_: int,
48
- ) -> models.DatabaseResource:
49
- return models.DatabaseResource.parse_obj(
50
- self.api_connector.send_or_fail(
51
- "GET", f"/api/v1/databases/{id_}", data=None, query_parameters={}
52
- ).json
48
+ ) -> DtoResponse[models.DatabaseResource]:
49
+ local_response = self.api_connector.send_or_fail(
50
+ "GET", f"/api/v1/databases/{id_}", data=None, query_parameters={}
53
51
  )
54
52
 
53
+ return DtoResponse.from_response(local_response, models.DatabaseResource)
54
+
55
55
  def update_database(
56
56
  self,
57
57
  request: models.DatabaseUpdateRequest,
58
58
  *,
59
59
  id_: int,
60
- ) -> models.DatabaseResource:
61
- return models.DatabaseResource.parse_obj(
62
- self.api_connector.send_or_fail(
63
- "PATCH",
64
- f"/api/v1/databases/{id_}",
65
- data=request.dict(exclude_unset=True),
66
- query_parameters={},
67
- ).json
60
+ ) -> DtoResponse[models.DatabaseResource]:
61
+ local_response = self.api_connector.send_or_fail(
62
+ "PATCH",
63
+ f"/api/v1/databases/{id_}",
64
+ data=request.dict(exclude_unset=True),
65
+ query_parameters={},
68
66
  )
69
67
 
68
+ return DtoResponse.from_response(local_response, models.DatabaseResource)
69
+
70
70
  def delete_database(
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/databases/{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/databases/{id_}",
79
+ data=None,
80
+ query_parameters={
81
+ "delete_on_cluster": delete_on_cluster,
82
+ },
85
83
  )
86
84
 
85
+ return DtoResponse.from_response(local_response, models.DetailMessage)
86
+
87
87
  def compare_databases(
88
88
  self,
89
89
  *,
90
90
  left_database_id: int,
91
91
  right_database_id: int,
92
- ) -> models.DatabaseComparison:
93
- return models.DatabaseComparison.parse_obj(
94
- self.api_connector.send_or_fail(
95
- "GET",
96
- f"/api/v1/databases/{left_database_id}/comparison",
97
- data=None,
98
- query_parameters={
99
- "right_database_id": right_database_id,
100
- },
101
- ).json
92
+ ) -> DtoResponse[models.DatabaseComparison]:
93
+ local_response = self.api_connector.send_or_fail(
94
+ "GET",
95
+ f"/api/v1/databases/{left_database_id}/comparison",
96
+ data=None,
97
+ query_parameters={
98
+ "right_database_id": right_database_id,
99
+ },
102
100
  )
103
101
 
102
+ return DtoResponse.from_response(local_response, models.DatabaseComparison)
103
+
104
104
  def sync_databases(
105
105
  self,
106
106
  *,
@@ -108,36 +108,35 @@ class Databases(Resource):
108
108
  right_database_id: int,
109
109
  callback_url: Optional[str] = None,
110
110
  exclude_tables_names: Optional[List[str]] = None,
111
- ) -> models.TaskCollectionResource:
112
- return models.TaskCollectionResource.parse_obj(
113
- self.api_connector.send_or_fail(
114
- "POST",
115
- f"/api/v1/databases/{left_database_id}/sync",
116
- data=None,
117
- query_parameters={
118
- "callback_url": callback_url,
119
- "right_database_id": right_database_id,
120
- "exclude_tables_names": exclude_tables_names,
121
- },
122
- ).json
111
+ ) -> DtoResponse[models.TaskCollectionResource]:
112
+ local_response = self.api_connector.send_or_fail(
113
+ "POST",
114
+ f"/api/v1/databases/{left_database_id}/sync",
115
+ data=None,
116
+ query_parameters={
117
+ "callback_url": callback_url,
118
+ "right_database_id": right_database_id,
119
+ "exclude_tables_names": exclude_tables_names,
120
+ },
123
121
  )
124
122
 
123
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
124
+
125
125
  def list_database_usages(
126
126
  self,
127
127
  *,
128
128
  database_id: int,
129
129
  timestamp: str,
130
130
  time_unit: Optional[models.DatabaseUsageResource] = None,
131
- ) -> list[models.DatabaseUsageResource]:
132
- return [
133
- models.DatabaseUsageResource.parse_obj(model)
134
- for model in self.api_connector.send_or_fail(
135
- "GET",
136
- f"/api/v1/databases/usages/{database_id}",
137
- data=None,
138
- query_parameters={
139
- "timestamp": timestamp,
140
- "time_unit": time_unit,
141
- },
142
- ).json
143
- ]
131
+ ) -> DtoResponse[list[models.DatabaseUsageResource]]:
132
+ local_response = self.api_connector.send_or_fail(
133
+ "GET",
134
+ f"/api/v1/databases/usages/{database_id}",
135
+ data=None,
136
+ query_parameters={
137
+ "timestamp": timestamp,
138
+ "time_unit": time_unit,
139
+ },
140
+ )
141
+
142
+ return DtoResponse.from_response(local_response, models.DatabaseUsageResource)
@@ -1,6 +1,7 @@
1
1
  from cyberfusion.CoreApiClient import models
2
2
  from typing import Optional, List
3
3
  from cyberfusion.CoreApiClient.interfaces import Resource
4
+ from cyberfusion.CoreApiClient.http import DtoResponse
4
5
 
5
6
 
6
7
  class DomainRouters(Resource):
@@ -11,33 +12,32 @@ class DomainRouters(Resource):
11
12
  limit: Optional[int] = None,
12
13
  filter_: Optional[List[str]] = None,
13
14
  sort: Optional[List[str]] = None,
14
- ) -> list[models.DomainRouterResource]:
15
- return [
16
- models.DomainRouterResource.parse_obj(model)
17
- for model in self.api_connector.send_or_fail(
18
- "GET",
19
- "/api/v1/domain-routers",
20
- data=None,
21
- query_parameters={
22
- "skip": skip,
23
- "limit": limit,
24
- "filter": filter_,
25
- "sort": sort,
26
- },
27
- ).json
28
- ]
15
+ ) -> DtoResponse[list[models.DomainRouterResource]]:
16
+ local_response = self.api_connector.send_or_fail(
17
+ "GET",
18
+ "/api/v1/domain-routers",
19
+ data=None,
20
+ query_parameters={
21
+ "skip": skip,
22
+ "limit": limit,
23
+ "filter": filter_,
24
+ "sort": sort,
25
+ },
26
+ )
27
+
28
+ return DtoResponse.from_response(local_response, models.DomainRouterResource)
29
29
 
30
30
  def update_domain_router(
31
31
  self,
32
32
  request: models.DomainRouterUpdateRequest,
33
33
  *,
34
34
  id_: int,
35
- ) -> models.DomainRouterResource:
36
- return models.DomainRouterResource.parse_obj(
37
- self.api_connector.send_or_fail(
38
- "PATCH",
39
- f"/api/v1/domain-routers/{id_}",
40
- data=request.dict(exclude_unset=True),
41
- query_parameters={},
42
- ).json
35
+ ) -> DtoResponse[models.DomainRouterResource]:
36
+ local_response = self.api_connector.send_or_fail(
37
+ "PATCH",
38
+ f"/api/v1/domain-routers/{id_}",
39
+ data=request.dict(exclude_unset=True),
40
+ query_parameters={},
43
41
  )
42
+
43
+ return DtoResponse.from_response(local_response, models.DomainRouterResource)
@@ -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 FirewallGroups(Resource):
8
9
  def create_firewall_group(
9
10
  self,
10
11
  request: models.FirewallGroupCreateRequest,
11
- ) -> models.FirewallGroupResource:
12
- return models.FirewallGroupResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/firewall-groups",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.FirewallGroupResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/firewall-groups",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.FirewallGroupResource)
21
+
21
22
  def list_firewall_groups(
22
23
  self,
23
24
  *,
@@ -25,58 +26,57 @@ class FirewallGroups(Resource):
25
26
  limit: Optional[int] = None,
26
27
  filter_: Optional[List[str]] = None,
27
28
  sort: Optional[List[str]] = None,
28
- ) -> list[models.FirewallGroupResource]:
29
- return [
30
- models.FirewallGroupResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/firewall-groups",
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.FirewallGroupResource]]:
30
+ local_response = self.api_connector.send_or_fail(
31
+ "GET",
32
+ "/api/v1/firewall-groups",
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.FirewallGroupResource)
43
43
 
44
44
  def read_firewall_group(
45
45
  self,
46
46
  *,
47
47
  id_: int,
48
- ) -> models.FirewallGroupResource:
49
- return models.FirewallGroupResource.parse_obj(
50
- self.api_connector.send_or_fail(
51
- "GET", f"/api/v1/firewall-groups/{id_}", data=None, query_parameters={}
52
- ).json
48
+ ) -> DtoResponse[models.FirewallGroupResource]:
49
+ local_response = self.api_connector.send_or_fail(
50
+ "GET", f"/api/v1/firewall-groups/{id_}", data=None, query_parameters={}
53
51
  )
54
52
 
53
+ return DtoResponse.from_response(local_response, models.FirewallGroupResource)
54
+
55
55
  def update_firewall_group(
56
56
  self,
57
57
  request: models.FirewallGroupUpdateRequest,
58
58
  *,
59
59
  id_: int,
60
- ) -> models.FirewallGroupResource:
61
- return models.FirewallGroupResource.parse_obj(
62
- self.api_connector.send_or_fail(
63
- "PATCH",
64
- f"/api/v1/firewall-groups/{id_}",
65
- data=request.dict(exclude_unset=True),
66
- query_parameters={},
67
- ).json
60
+ ) -> DtoResponse[models.FirewallGroupResource]:
61
+ local_response = self.api_connector.send_or_fail(
62
+ "PATCH",
63
+ f"/api/v1/firewall-groups/{id_}",
64
+ data=request.dict(exclude_unset=True),
65
+ query_parameters={},
68
66
  )
69
67
 
68
+ return DtoResponse.from_response(local_response, models.FirewallGroupResource)
69
+
70
70
  def delete_firewall_group(
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",
78
- f"/api/v1/firewall-groups/{id_}",
79
- data=None,
80
- query_parameters={},
81
- ).json
74
+ ) -> DtoResponse[models.DetailMessage]:
75
+ local_response = self.api_connector.send_or_fail(
76
+ "DELETE",
77
+ f"/api/v1/firewall-groups/{id_}",
78
+ data=None,
79
+ query_parameters={},
82
80
  )
81
+
82
+ return DtoResponse.from_response(local_response, models.DetailMessage)