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,22 +1,23 @@
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 HostsEntries(Resource):
7
8
  def create_hosts_entry(
8
9
  self,
9
10
  request: models.HostsEntryCreateRequest,
10
- ) -> models.HostsEntryResource:
11
- return models.HostsEntryResource.parse_obj(
12
- self.api_connector.send_or_fail(
13
- "POST",
14
- "/api/v1/hosts-entries",
15
- data=request.dict(exclude_unset=True),
16
- query_parameters={},
17
- ).json
11
+ ) -> DtoResponse[models.HostsEntryResource]:
12
+ local_response = self.api_connector.send_or_fail(
13
+ "POST",
14
+ "/api/v1/hosts-entries",
15
+ data=request.dict(exclude_unset=True),
16
+ query_parameters={},
18
17
  )
19
18
 
19
+ return DtoResponse.from_response(local_response, models.HostsEntryResource)
20
+
20
21
  def list_hosts_entries(
21
22
  self,
22
23
  *,
@@ -24,40 +25,39 @@ class HostsEntries(Resource):
24
25
  limit: Optional[int] = None,
25
26
  filter_: Optional[List[str]] = None,
26
27
  sort: Optional[List[str]] = None,
27
- ) -> list[models.HostsEntryResource]:
28
- return [
29
- models.HostsEntryResource.parse_obj(model)
30
- for model in self.api_connector.send_or_fail(
31
- "GET",
32
- "/api/v1/hosts-entries",
33
- data=None,
34
- query_parameters={
35
- "skip": skip,
36
- "limit": limit,
37
- "filter": filter_,
38
- "sort": sort,
39
- },
40
- ).json
41
- ]
28
+ ) -> DtoResponse[list[models.HostsEntryResource]]:
29
+ local_response = self.api_connector.send_or_fail(
30
+ "GET",
31
+ "/api/v1/hosts-entries",
32
+ data=None,
33
+ query_parameters={
34
+ "skip": skip,
35
+ "limit": limit,
36
+ "filter": filter_,
37
+ "sort": sort,
38
+ },
39
+ )
40
+
41
+ return DtoResponse.from_response(local_response, models.HostsEntryResource)
42
42
 
43
43
  def read_hosts_entry(
44
44
  self,
45
45
  *,
46
46
  id_: int,
47
- ) -> models.HostsEntryResource:
48
- return models.HostsEntryResource.parse_obj(
49
- self.api_connector.send_or_fail(
50
- "GET", f"/api/v1/hosts-entries/{id_}", data=None, query_parameters={}
51
- ).json
47
+ ) -> DtoResponse[models.HostsEntryResource]:
48
+ local_response = self.api_connector.send_or_fail(
49
+ "GET", f"/api/v1/hosts-entries/{id_}", data=None, query_parameters={}
52
50
  )
53
51
 
52
+ return DtoResponse.from_response(local_response, models.HostsEntryResource)
53
+
54
54
  def delete_hosts_entry(
55
55
  self,
56
56
  *,
57
57
  id_: int,
58
- ) -> models.DetailMessage:
59
- return models.DetailMessage.parse_obj(
60
- self.api_connector.send_or_fail(
61
- "DELETE", f"/api/v1/hosts-entries/{id_}", data=None, query_parameters={}
62
- ).json
58
+ ) -> DtoResponse[models.DetailMessage]:
59
+ local_response = self.api_connector.send_or_fail(
60
+ "DELETE", f"/api/v1/hosts-entries/{id_}", data=None, query_parameters={}
63
61
  )
62
+
63
+ 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 HtpasswdFiles(Resource):
8
9
  def create_htpasswd_file(
9
10
  self,
10
11
  request: models.HtpasswdFileCreateRequest,
11
- ) -> models.HtpasswdFileResource:
12
- return models.HtpasswdFileResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/htpasswd-files",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.HtpasswdFileResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/htpasswd-files",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.HtpasswdFileResource)
21
+
21
22
  def list_htpasswd_files(
22
23
  self,
23
24
  *,
@@ -25,43 +26,42 @@ class HtpasswdFiles(Resource):
25
26
  limit: Optional[int] = None,
26
27
  filter_: Optional[List[str]] = None,
27
28
  sort: Optional[List[str]] = None,
28
- ) -> list[models.HtpasswdFileResource]:
29
- return [
30
- models.HtpasswdFileResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/htpasswd-files",
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.HtpasswdFileResource]]:
30
+ local_response = self.api_connector.send_or_fail(
31
+ "GET",
32
+ "/api/v1/htpasswd-files",
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.HtpasswdFileResource)
43
43
 
44
44
  def read_htpasswd_file(
45
45
  self,
46
46
  *,
47
47
  id_: int,
48
- ) -> models.HtpasswdFileResource:
49
- return models.HtpasswdFileResource.parse_obj(
50
- self.api_connector.send_or_fail(
51
- "GET", f"/api/v1/htpasswd-files/{id_}", data=None, query_parameters={}
52
- ).json
48
+ ) -> DtoResponse[models.HtpasswdFileResource]:
49
+ local_response = self.api_connector.send_or_fail(
50
+ "GET", f"/api/v1/htpasswd-files/{id_}", data=None, query_parameters={}
53
51
  )
54
52
 
53
+ return DtoResponse.from_response(local_response, models.HtpasswdFileResource)
54
+
55
55
  def delete_htpasswd_file(
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",
63
- f"/api/v1/htpasswd-files/{id_}",
64
- data=None,
65
- query_parameters={},
66
- ).json
59
+ ) -> DtoResponse[models.DetailMessage]:
60
+ local_response = self.api_connector.send_or_fail(
61
+ "DELETE",
62
+ f"/api/v1/htpasswd-files/{id_}",
63
+ data=None,
64
+ query_parameters={},
67
65
  )
66
+
67
+ 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 HtpasswdUsers(Resource):
8
9
  def create_htpasswd_user(
9
10
  self,
10
11
  request: models.HtpasswdUserCreateRequest,
11
- ) -> models.HtpasswdUserResource:
12
- return models.HtpasswdUserResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/htpasswd-users",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.HtpasswdUserResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/htpasswd-users",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.HtpasswdUserResource)
21
+
21
22
  def list_htpasswd_users(
22
23
  self,
23
24
  *,
@@ -25,58 +26,57 @@ class HtpasswdUsers(Resource):
25
26
  limit: Optional[int] = None,
26
27
  filter_: Optional[List[str]] = None,
27
28
  sort: Optional[List[str]] = None,
28
- ) -> list[models.HtpasswdUserResource]:
29
- return [
30
- models.HtpasswdUserResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/htpasswd-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.HtpasswdUserResource]]:
30
+ local_response = self.api_connector.send_or_fail(
31
+ "GET",
32
+ "/api/v1/htpasswd-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.HtpasswdUserResource)
43
43
 
44
44
  def read_htpasswd_user(
45
45
  self,
46
46
  *,
47
47
  id_: int,
48
- ) -> models.HtpasswdUserResource:
49
- return models.HtpasswdUserResource.parse_obj(
50
- self.api_connector.send_or_fail(
51
- "GET", f"/api/v1/htpasswd-users/{id_}", data=None, query_parameters={}
52
- ).json
48
+ ) -> DtoResponse[models.HtpasswdUserResource]:
49
+ local_response = self.api_connector.send_or_fail(
50
+ "GET", f"/api/v1/htpasswd-users/{id_}", data=None, query_parameters={}
53
51
  )
54
52
 
53
+ return DtoResponse.from_response(local_response, models.HtpasswdUserResource)
54
+
55
55
  def update_htpasswd_user(
56
56
  self,
57
57
  request: models.HtpasswdUserUpdateRequest,
58
58
  *,
59
59
  id_: int,
60
- ) -> models.HtpasswdUserResource:
61
- return models.HtpasswdUserResource.parse_obj(
62
- self.api_connector.send_or_fail(
63
- "PATCH",
64
- f"/api/v1/htpasswd-users/{id_}",
65
- data=request.dict(exclude_unset=True),
66
- query_parameters={},
67
- ).json
60
+ ) -> DtoResponse[models.HtpasswdUserResource]:
61
+ local_response = self.api_connector.send_or_fail(
62
+ "PATCH",
63
+ f"/api/v1/htpasswd-users/{id_}",
64
+ data=request.dict(exclude_unset=True),
65
+ query_parameters={},
68
66
  )
69
67
 
68
+ return DtoResponse.from_response(local_response, models.HtpasswdUserResource)
69
+
70
70
  def delete_htpasswd_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/htpasswd-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/htpasswd-users/{id_}",
78
+ data=None,
79
+ query_parameters={},
82
80
  )
81
+
82
+ return DtoResponse.from_response(local_response, models.DetailMessage)
@@ -1,28 +1,29 @@
1
1
  from cyberfusion.CoreApiClient import models
2
2
 
3
3
  from cyberfusion.CoreApiClient.interfaces import Resource
4
+ from cyberfusion.CoreApiClient.http import DtoResponse
4
5
 
5
6
 
6
7
  class Login(Resource):
7
8
  def request_access_token(
8
9
  self,
9
10
  request: models.BodyLoginAccessToken,
10
- ) -> models.TokenResource:
11
- return models.TokenResource.parse_obj(
12
- self.api_connector.send_or_fail(
13
- "POST",
14
- "/api/v1/login/access-token",
15
- data=request.dict(exclude_unset=True),
16
- query_parameters={},
17
- content_type="application/x-www-form-urlencoded",
18
- ).json
11
+ ) -> DtoResponse[models.TokenResource]:
12
+ local_response = self.api_connector.send_or_fail(
13
+ "POST",
14
+ "/api/v1/login/access-token",
15
+ data=request.dict(exclude_unset=True),
16
+ query_parameters={},
17
+ content_type="application/x-www-form-urlencoded",
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.TokenResource)
21
+
21
22
  def test_access_token(
22
23
  self,
23
- ) -> models.APIUserInfo:
24
- return models.APIUserInfo.parse_obj(
25
- self.api_connector.send_or_fail(
26
- "POST", "/api/v1/login/test-token", data=None, query_parameters={}
27
- ).json
24
+ ) -> DtoResponse[models.APIUserInfo]:
25
+ local_response = self.api_connector.send_or_fail(
26
+ "POST", "/api/v1/login/test-token", data=None, query_parameters={}
28
27
  )
28
+
29
+ return DtoResponse.from_response(local_response, models.APIUserInfo)
@@ -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
 
@@ -12,20 +13,21 @@ class Logs(Resource):
12
13
  timestamp: Optional[str] = None,
13
14
  sort: Optional[str] = None,
14
15
  limit: Optional[int] = None,
15
- ) -> list[models.WebServerLogAccessResource]:
16
- return [
17
- models.WebServerLogAccessResource.parse_obj(model)
18
- for model in self.api_connector.send_or_fail(
19
- "GET",
20
- f"/api/v1/logs/access/{virtual_host_id}",
21
- data=None,
22
- query_parameters={
23
- "timestamp": timestamp,
24
- "sort": sort,
25
- "limit": limit,
26
- },
27
- ).json
28
- ]
16
+ ) -> DtoResponse[list[models.WebServerLogAccessResource]]:
17
+ local_response = self.api_connector.send_or_fail(
18
+ "GET",
19
+ f"/api/v1/logs/access/{virtual_host_id}",
20
+ data=None,
21
+ query_parameters={
22
+ "timestamp": timestamp,
23
+ "sort": sort,
24
+ "limit": limit,
25
+ },
26
+ )
27
+
28
+ return DtoResponse.from_response(
29
+ local_response, models.WebServerLogAccessResource
30
+ )
29
31
 
30
32
  def list_error_logs(
31
33
  self,
@@ -34,20 +36,21 @@ class Logs(Resource):
34
36
  timestamp: Optional[str] = None,
35
37
  sort: Optional[str] = None,
36
38
  limit: Optional[int] = None,
37
- ) -> list[models.WebServerLogErrorResource]:
38
- return [
39
- models.WebServerLogErrorResource.parse_obj(model)
40
- for model in self.api_connector.send_or_fail(
41
- "GET",
42
- f"/api/v1/logs/error/{virtual_host_id}",
43
- data=None,
44
- query_parameters={
45
- "timestamp": timestamp,
46
- "sort": sort,
47
- "limit": limit,
48
- },
49
- ).json
50
- ]
39
+ ) -> DtoResponse[list[models.WebServerLogErrorResource]]:
40
+ local_response = self.api_connector.send_or_fail(
41
+ "GET",
42
+ f"/api/v1/logs/error/{virtual_host_id}",
43
+ data=None,
44
+ query_parameters={
45
+ "timestamp": timestamp,
46
+ "sort": sort,
47
+ "limit": limit,
48
+ },
49
+ )
50
+
51
+ return DtoResponse.from_response(
52
+ local_response, models.WebServerLogErrorResource
53
+ )
51
54
 
52
55
  def list_object_logs(
53
56
  self,
@@ -56,21 +59,20 @@ class Logs(Resource):
56
59
  limit: Optional[int] = None,
57
60
  filter_: Optional[List[str]] = None,
58
61
  sort: Optional[List[str]] = None,
59
- ) -> list[models.ObjectLogResource]:
60
- return [
61
- models.ObjectLogResource.parse_obj(model)
62
- for model in self.api_connector.send_or_fail(
63
- "GET",
64
- "/api/v1/object-logs",
65
- data=None,
66
- query_parameters={
67
- "skip": skip,
68
- "limit": limit,
69
- "filter": filter_,
70
- "sort": sort,
71
- },
72
- ).json
73
- ]
62
+ ) -> DtoResponse[list[models.ObjectLogResource]]:
63
+ local_response = self.api_connector.send_or_fail(
64
+ "GET",
65
+ "/api/v1/object-logs",
66
+ data=None,
67
+ query_parameters={
68
+ "skip": skip,
69
+ "limit": limit,
70
+ "filter": filter_,
71
+ "sort": sort,
72
+ },
73
+ )
74
+
75
+ return DtoResponse.from_response(local_response, models.ObjectLogResource)
74
76
 
75
77
  def list_request_logs(
76
78
  self,
@@ -79,18 +81,17 @@ class Logs(Resource):
79
81
  limit: Optional[int] = None,
80
82
  filter_: Optional[List[str]] = None,
81
83
  sort: Optional[List[str]] = None,
82
- ) -> list[models.RequestLogResource]:
83
- return [
84
- models.RequestLogResource.parse_obj(model)
85
- for model in self.api_connector.send_or_fail(
86
- "GET",
87
- "/api/v1/request-logs",
88
- data=None,
89
- query_parameters={
90
- "skip": skip,
91
- "limit": limit,
92
- "filter": filter_,
93
- "sort": sort,
94
- },
95
- ).json
96
- ]
84
+ ) -> DtoResponse[list[models.RequestLogResource]]:
85
+ local_response = self.api_connector.send_or_fail(
86
+ "GET",
87
+ "/api/v1/request-logs",
88
+ data=None,
89
+ query_parameters={
90
+ "skip": skip,
91
+ "limit": limit,
92
+ "filter": filter_,
93
+ "sort": sort,
94
+ },
95
+ )
96
+
97
+ return DtoResponse.from_response(local_response, models.RequestLogResource)