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,35 +2,36 @@ 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 RootSSHKeys(Resource):
8
9
  def create_public_root_ssh_key(
9
10
  self,
10
11
  request: models.RootSSHKeyCreatePublicRequest,
11
- ) -> models.RootSSHKeyResource:
12
- return models.RootSSHKeyResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/root-ssh-keys/public",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.RootSSHKeyResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/root-ssh-keys/public",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.RootSSHKeyResource)
21
+
21
22
  def create_private_root_ssh_key(
22
23
  self,
23
24
  request: models.RootSSHKeyCreatePrivateRequest,
24
- ) -> models.RootSSHKeyResource:
25
- return models.RootSSHKeyResource.parse_obj(
26
- self.api_connector.send_or_fail(
27
- "POST",
28
- "/api/v1/root-ssh-keys/private",
29
- data=request.dict(exclude_unset=True),
30
- query_parameters={},
31
- ).json
25
+ ) -> DtoResponse[models.RootSSHKeyResource]:
26
+ local_response = self.api_connector.send_or_fail(
27
+ "POST",
28
+ "/api/v1/root-ssh-keys/private",
29
+ data=request.dict(exclude_unset=True),
30
+ query_parameters={},
32
31
  )
33
32
 
33
+ return DtoResponse.from_response(local_response, models.RootSSHKeyResource)
34
+
34
35
  def list_root_ssh_keys(
35
36
  self,
36
37
  *,
@@ -38,40 +39,39 @@ class RootSSHKeys(Resource):
38
39
  limit: Optional[int] = None,
39
40
  filter_: Optional[List[str]] = None,
40
41
  sort: Optional[List[str]] = None,
41
- ) -> list[models.RootSSHKeyResource]:
42
- return [
43
- models.RootSSHKeyResource.parse_obj(model)
44
- for model in self.api_connector.send_or_fail(
45
- "GET",
46
- "/api/v1/root-ssh-keys",
47
- data=None,
48
- query_parameters={
49
- "skip": skip,
50
- "limit": limit,
51
- "filter": filter_,
52
- "sort": sort,
53
- },
54
- ).json
55
- ]
42
+ ) -> DtoResponse[list[models.RootSSHKeyResource]]:
43
+ local_response = self.api_connector.send_or_fail(
44
+ "GET",
45
+ "/api/v1/root-ssh-keys",
46
+ data=None,
47
+ query_parameters={
48
+ "skip": skip,
49
+ "limit": limit,
50
+ "filter": filter_,
51
+ "sort": sort,
52
+ },
53
+ )
54
+
55
+ return DtoResponse.from_response(local_response, models.RootSSHKeyResource)
56
56
 
57
57
  def read_root_ssh_key(
58
58
  self,
59
59
  *,
60
60
  id_: int,
61
- ) -> models.RootSSHKeyResource:
62
- return models.RootSSHKeyResource.parse_obj(
63
- self.api_connector.send_or_fail(
64
- "GET", f"/api/v1/root-ssh-keys/{id_}", data=None, query_parameters={}
65
- ).json
61
+ ) -> DtoResponse[models.RootSSHKeyResource]:
62
+ local_response = self.api_connector.send_or_fail(
63
+ "GET", f"/api/v1/root-ssh-keys/{id_}", data=None, query_parameters={}
66
64
  )
67
65
 
66
+ return DtoResponse.from_response(local_response, models.RootSSHKeyResource)
67
+
68
68
  def delete_root_ssh_key(
69
69
  self,
70
70
  *,
71
71
  id_: int,
72
- ) -> models.DetailMessage:
73
- return models.DetailMessage.parse_obj(
74
- self.api_connector.send_or_fail(
75
- "DELETE", f"/api/v1/root-ssh-keys/{id_}", data=None, query_parameters={}
76
- ).json
72
+ ) -> DtoResponse[models.DetailMessage]:
73
+ local_response = self.api_connector.send_or_fail(
74
+ "DELETE", f"/api/v1/root-ssh-keys/{id_}", data=None, query_parameters={}
77
75
  )
76
+
77
+ return DtoResponse.from_response(local_response, models.DetailMessage)
@@ -1,21 +1,24 @@
1
- from cyberfusion.CoreApiClient import models
2
1
  from typing import Optional, List
3
2
 
3
+ from cyberfusion.CoreApiClient import models
4
4
  from cyberfusion.CoreApiClient.interfaces import Resource
5
+ from cyberfusion.CoreApiClient.http import DtoResponse
5
6
 
6
7
 
7
8
  class SecurityTXTPolicies(Resource):
8
9
  def create_security_txt_policy(
9
10
  self,
10
11
  request: models.SecurityTXTPolicyCreateRequest,
11
- ) -> models.SecurityTXTPolicyResource:
12
- return models.SecurityTXTPolicyResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/security-txt-policies",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.SecurityTXTPolicyResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/security-txt-policies",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
18
+ )
19
+
20
+ return DtoResponse.from_response(
21
+ local_response, models.SecurityTXTPolicyResource
19
22
  )
20
23
 
21
24
  def list_security_txt_policies(
@@ -25,34 +28,37 @@ class SecurityTXTPolicies(Resource):
25
28
  limit: Optional[int] = None,
26
29
  filter_: Optional[List[str]] = None,
27
30
  sort: Optional[List[str]] = None,
28
- ) -> list[models.SecurityTXTPolicyResource]:
29
- return [
30
- models.SecurityTXTPolicyResource.parse_obj(model)
31
- for model in self.api_connector.send_or_fail(
32
- "GET",
33
- "/api/v1/security-txt-policies",
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.SecurityTXTPolicyResource]]:
32
+ local_response = self.api_connector.send_or_fail(
33
+ "GET",
34
+ "/api/v1/security-txt-policies",
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.SecurityTXTPolicyResource
46
+ )
43
47
 
44
48
  def read_security_txt_policy(
45
49
  self,
46
50
  *,
47
51
  id_: int,
48
- ) -> models.SecurityTXTPolicyResource:
49
- return models.SecurityTXTPolicyResource.parse_obj(
50
- self.api_connector.send_or_fail(
51
- "GET",
52
- f"/api/v1/security-txt-policies/{id_}",
53
- data=None,
54
- query_parameters={},
55
- ).json
52
+ ) -> DtoResponse[models.SecurityTXTPolicyResource]:
53
+ local_response = self.api_connector.send_or_fail(
54
+ "GET",
55
+ f"/api/v1/security-txt-policies/{id_}",
56
+ data=None,
57
+ query_parameters={},
58
+ )
59
+
60
+ return DtoResponse.from_response(
61
+ local_response, models.SecurityTXTPolicyResource
56
62
  )
57
63
 
58
64
  def update_security_txt_policy(
@@ -60,26 +66,28 @@ class SecurityTXTPolicies(Resource):
60
66
  request: models.SecurityTXTPolicyUpdateRequest,
61
67
  *,
62
68
  id_: int,
63
- ) -> models.SecurityTXTPolicyResource:
64
- return models.SecurityTXTPolicyResource.parse_obj(
65
- self.api_connector.send_or_fail(
66
- "PATCH",
67
- f"/api/v1/security-txt-policies/{id_}",
68
- data=request.dict(exclude_unset=True),
69
- query_parameters={},
70
- ).json
69
+ ) -> DtoResponse[models.SecurityTXTPolicyResource]:
70
+ local_response = self.api_connector.send_or_fail(
71
+ "PATCH",
72
+ f"/api/v1/security-txt-policies/{id_}",
73
+ data=request.dict(exclude_unset=True),
74
+ query_parameters={},
75
+ )
76
+
77
+ return DtoResponse.from_response(
78
+ local_response, models.SecurityTXTPolicyResource
71
79
  )
72
80
 
73
81
  def delete_security_txt_policy(
74
82
  self,
75
83
  *,
76
84
  id_: int,
77
- ) -> models.DetailMessage:
78
- return models.DetailMessage.parse_obj(
79
- self.api_connector.send_or_fail(
80
- "DELETE",
81
- f"/api/v1/security-txt-policies/{id_}",
82
- data=None,
83
- query_parameters={},
84
- ).json
85
+ ) -> DtoResponse[models.DetailMessage]:
86
+ local_response = self.api_connector.send_or_fail(
87
+ "DELETE",
88
+ f"/api/v1/security-txt-policies/{id_}",
89
+ data=None,
90
+ query_parameters={},
85
91
  )
92
+
93
+ 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
 
@@ -12,18 +13,17 @@ class Sites(Resource):
12
13
  limit: Optional[int] = None,
13
14
  filter_: Optional[List[str]] = None,
14
15
  sort: Optional[List[str]] = None,
15
- ) -> list[models.SiteResource]:
16
- return [
17
- models.SiteResource.parse_obj(model)
18
- for model in self.api_connector.send_or_fail(
19
- "GET",
20
- "/api/v1/sites",
21
- data=None,
22
- query_parameters={
23
- "skip": skip,
24
- "limit": limit,
25
- "filter": filter_,
26
- "sort": sort,
27
- },
28
- ).json
29
- ]
16
+ ) -> DtoResponse[list[models.SiteResource]]:
17
+ local_response = self.api_connector.send_or_fail(
18
+ "GET",
19
+ "/api/v1/sites",
20
+ data=None,
21
+ query_parameters={
22
+ "skip": skip,
23
+ "limit": limit,
24
+ "filter": filter_,
25
+ "sort": sort,
26
+ },
27
+ )
28
+
29
+ return DtoResponse.from_response(local_response, models.SiteResource)
@@ -2,35 +2,36 @@ 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 SSHKeys(Resource):
8
9
  def create_public_ssh_key(
9
10
  self,
10
11
  request: models.SSHKeyCreatePublicRequest,
11
- ) -> models.SSHKeyResource:
12
- return models.SSHKeyResource.parse_obj(
13
- self.api_connector.send_or_fail(
14
- "POST",
15
- "/api/v1/ssh-keys/public",
16
- data=request.dict(exclude_unset=True),
17
- query_parameters={},
18
- ).json
12
+ ) -> DtoResponse[models.SSHKeyResource]:
13
+ local_response = self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/ssh-keys/public",
16
+ data=request.dict(exclude_unset=True),
17
+ query_parameters={},
19
18
  )
20
19
 
20
+ return DtoResponse.from_response(local_response, models.SSHKeyResource)
21
+
21
22
  def create_private_ssh_key(
22
23
  self,
23
24
  request: models.SSHKeyCreatePrivateRequest,
24
- ) -> models.SSHKeyResource:
25
- return models.SSHKeyResource.parse_obj(
26
- self.api_connector.send_or_fail(
27
- "POST",
28
- "/api/v1/ssh-keys/private",
29
- data=request.dict(exclude_unset=True),
30
- query_parameters={},
31
- ).json
25
+ ) -> DtoResponse[models.SSHKeyResource]:
26
+ local_response = self.api_connector.send_or_fail(
27
+ "POST",
28
+ "/api/v1/ssh-keys/private",
29
+ data=request.dict(exclude_unset=True),
30
+ query_parameters={},
32
31
  )
33
32
 
33
+ return DtoResponse.from_response(local_response, models.SSHKeyResource)
34
+
34
35
  def list_ssh_keys(
35
36
  self,
36
37
  *,
@@ -38,40 +39,39 @@ class SSHKeys(Resource):
38
39
  limit: Optional[int] = None,
39
40
  filter_: Optional[List[str]] = None,
40
41
  sort: Optional[List[str]] = None,
41
- ) -> list[models.SSHKeyResource]:
42
- return [
43
- models.SSHKeyResource.parse_obj(model)
44
- for model in self.api_connector.send_or_fail(
45
- "GET",
46
- "/api/v1/ssh-keys",
47
- data=None,
48
- query_parameters={
49
- "skip": skip,
50
- "limit": limit,
51
- "filter": filter_,
52
- "sort": sort,
53
- },
54
- ).json
55
- ]
42
+ ) -> DtoResponse[list[models.SSHKeyResource]]:
43
+ local_response = self.api_connector.send_or_fail(
44
+ "GET",
45
+ "/api/v1/ssh-keys",
46
+ data=None,
47
+ query_parameters={
48
+ "skip": skip,
49
+ "limit": limit,
50
+ "filter": filter_,
51
+ "sort": sort,
52
+ },
53
+ )
54
+
55
+ return DtoResponse.from_response(local_response, models.SSHKeyResource)
56
56
 
57
57
  def read_ssh_key(
58
58
  self,
59
59
  *,
60
60
  id_: int,
61
- ) -> models.SSHKeyResource:
62
- return models.SSHKeyResource.parse_obj(
63
- self.api_connector.send_or_fail(
64
- "GET", f"/api/v1/ssh-keys/{id_}", data=None, query_parameters={}
65
- ).json
61
+ ) -> DtoResponse[models.SSHKeyResource]:
62
+ local_response = self.api_connector.send_or_fail(
63
+ "GET", f"/api/v1/ssh-keys/{id_}", data=None, query_parameters={}
66
64
  )
67
65
 
66
+ return DtoResponse.from_response(local_response, models.SSHKeyResource)
67
+
68
68
  def delete_ssh_key(
69
69
  self,
70
70
  *,
71
71
  id_: int,
72
- ) -> models.DetailMessage:
73
- return models.DetailMessage.parse_obj(
74
- self.api_connector.send_or_fail(
75
- "DELETE", f"/api/v1/ssh-keys/{id_}", data=None, query_parameters={}
76
- ).json
72
+ ) -> DtoResponse[models.DetailMessage]:
73
+ local_response = self.api_connector.send_or_fail(
74
+ "DELETE", f"/api/v1/ssh-keys/{id_}", data=None, query_parameters={}
77
75
  )
76
+
77
+ return DtoResponse.from_response(local_response, models.DetailMessage)
@@ -2,6 +2,7 @@ from cyberfusion.CoreApiClient import models
2
2
  from typing import Optional
3
3
 
4
4
  from cyberfusion.CoreApiClient.interfaces import Resource
5
+ from cyberfusion.CoreApiClient.http import DtoResponse
5
6
 
6
7
 
7
8
  class TaskCollections(Resource):
@@ -9,30 +10,29 @@ class TaskCollections(Resource):
9
10
  self,
10
11
  *,
11
12
  uuid: str,
12
- ) -> list[models.TaskResult]:
13
- return [
14
- models.TaskResult.parse_obj(model)
15
- for model in self.api_connector.send_or_fail(
16
- "GET",
17
- f"/api/v1/task-collections/{uuid}/results",
18
- data=None,
19
- query_parameters={},
20
- ).json
21
- ]
13
+ ) -> DtoResponse[list[models.TaskResult]]:
14
+ local_response = self.api_connector.send_or_fail(
15
+ "GET",
16
+ f"/api/v1/task-collections/{uuid}/results",
17
+ data=None,
18
+ query_parameters={},
19
+ )
20
+
21
+ return DtoResponse.from_response(local_response, models.TaskResult)
22
22
 
23
23
  def retry_task_collection(
24
24
  self,
25
25
  *,
26
26
  uuid: str,
27
27
  callback_url: Optional[str] = None,
28
- ) -> models.TaskCollectionResource:
29
- return models.TaskCollectionResource.parse_obj(
30
- self.api_connector.send_or_fail(
31
- "POST",
32
- f"/api/v1/task-collections/{uuid}/retry",
33
- data=None,
34
- query_parameters={
35
- "callback_url": callback_url,
36
- },
37
- ).json
28
+ ) -> DtoResponse[models.TaskCollectionResource]:
29
+ local_response = self.api_connector.send_or_fail(
30
+ "POST",
31
+ f"/api/v1/task-collections/{uuid}/retry",
32
+ data=None,
33
+ query_parameters={
34
+ "callback_url": callback_url,
35
+ },
38
36
  )
37
+
38
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
@@ -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,18 +13,17 @@ class Tombstones(Resource):
12
13
  limit: Optional[int] = None,
13
14
  filter_: Optional[List[str]] = None,
14
15
  sort: Optional[List[str]] = None,
15
- ) -> list[models.TombstoneResource]:
16
- return [
17
- models.TombstoneResource.parse_obj(model)
18
- for model in self.api_connector.send_or_fail(
19
- "GET",
20
- "/api/v1/tombstones",
21
- data=None,
22
- query_parameters={
23
- "skip": skip,
24
- "limit": limit,
25
- "filter": filter_,
26
- "sort": sort,
27
- },
28
- ).json
29
- ]
16
+ ) -> DtoResponse[list[models.TombstoneResource]]:
17
+ local_response = self.api_connector.send_or_fail(
18
+ "GET",
19
+ "/api/v1/tombstones",
20
+ data=None,
21
+ query_parameters={
22
+ "skip": skip,
23
+ "limit": limit,
24
+ "filter": filter_,
25
+ "sort": sort,
26
+ },
27
+ )
28
+
29
+ return DtoResponse.from_response(local_response, models.TombstoneResource)