python3-core-api-client 2.3__py3-none-any.whl → 2.4.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 (53) hide show
  1. cyberfusion/CoreApiClient/connector.py +2 -2
  2. cyberfusion/CoreApiClient/models.py +510 -59
  3. cyberfusion/CoreApiClient/resources/__init__.py +2 -2
  4. cyberfusion/CoreApiClient/resources/basic_authentication_realms.py +9 -10
  5. cyberfusion/CoreApiClient/resources/borg_archives.py +13 -30
  6. cyberfusion/CoreApiClient/resources/borg_repositories.py +10 -10
  7. cyberfusion/CoreApiClient/resources/certificate_managers.py +9 -10
  8. cyberfusion/CoreApiClient/resources/certificates.py +9 -10
  9. cyberfusion/CoreApiClient/resources/clusters.py +192 -207
  10. cyberfusion/CoreApiClient/resources/cmses.py +10 -10
  11. cyberfusion/CoreApiClient/resources/crons.py +9 -10
  12. cyberfusion/CoreApiClient/resources/custom_config_snippets.py +10 -10
  13. cyberfusion/CoreApiClient/resources/custom_configs.py +9 -10
  14. cyberfusion/CoreApiClient/resources/customers.py +18 -12
  15. cyberfusion/CoreApiClient/resources/daemons.py +29 -13
  16. cyberfusion/CoreApiClient/resources/database_user_grants.py +9 -10
  17. cyberfusion/CoreApiClient/resources/database_users.py +9 -11
  18. cyberfusion/CoreApiClient/resources/databases.py +9 -9
  19. cyberfusion/CoreApiClient/resources/domain_routers.py +9 -10
  20. cyberfusion/CoreApiClient/resources/firewall_groups.py +9 -10
  21. cyberfusion/CoreApiClient/resources/firewall_rules.py +9 -10
  22. cyberfusion/CoreApiClient/resources/fpm_pools.py +42 -10
  23. cyberfusion/CoreApiClient/resources/ftp_users.py +9 -10
  24. cyberfusion/CoreApiClient/resources/haproxy_listens.py +9 -10
  25. cyberfusion/CoreApiClient/resources/haproxy_listens_to_nodes.py +9 -10
  26. cyberfusion/CoreApiClient/resources/hosts_entries.py +9 -10
  27. cyberfusion/CoreApiClient/resources/htpasswd_files.py +9 -10
  28. cyberfusion/CoreApiClient/resources/htpasswd_users.py +9 -10
  29. cyberfusion/CoreApiClient/resources/logs.py +23 -25
  30. cyberfusion/CoreApiClient/resources/mail_accounts.py +10 -10
  31. cyberfusion/CoreApiClient/resources/mail_aliases.py +9 -10
  32. cyberfusion/CoreApiClient/resources/mail_domains.py +9 -10
  33. cyberfusion/CoreApiClient/resources/mail_hostnames.py +9 -10
  34. cyberfusion/CoreApiClient/resources/malwares.py +9 -10
  35. cyberfusion/CoreApiClient/resources/mariadb_encryption_keys.py +9 -10
  36. cyberfusion/CoreApiClient/resources/node_add_ons.py +23 -14
  37. cyberfusion/CoreApiClient/resources/nodes.py +22 -17
  38. cyberfusion/CoreApiClient/resources/passenger_apps.py +10 -10
  39. cyberfusion/CoreApiClient/resources/redis_instances.py +10 -10
  40. cyberfusion/CoreApiClient/resources/regions.py +28 -0
  41. cyberfusion/CoreApiClient/resources/root_ssh_keys.py +9 -10
  42. cyberfusion/CoreApiClient/resources/security_txt_policies.py +9 -11
  43. cyberfusion/CoreApiClient/resources/ssh_keys.py +9 -10
  44. cyberfusion/CoreApiClient/resources/tombstones.py +9 -10
  45. cyberfusion/CoreApiClient/resources/unix_users.py +10 -10
  46. cyberfusion/CoreApiClient/resources/url_redirects.py +9 -11
  47. cyberfusion/CoreApiClient/resources/virtual_hosts.py +9 -9
  48. {python3_core_api_client-2.3.dist-info → python3_core_api_client-2.4.1.dist-info}/METADATA +1 -1
  49. python3_core_api_client-2.4.1.dist-info/RECORD +59 -0
  50. cyberfusion/CoreApiClient/resources/sites.py +0 -29
  51. python3_core_api_client-2.3.dist-info/RECORD +0 -59
  52. {python3_core_api_client-2.3.dist-info → python3_core_api_client-2.4.1.dist-info}/WHEEL +0 -0
  53. {python3_core_api_client-2.3.dist-info → python3_core_api_client-2.4.1.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  from cyberfusion.CoreApiClient import models
2
- from typing import Optional, Union, List
2
+ from typing import Optional, Union
3
3
 
4
4
  from cyberfusion.CoreApiClient.http import DtoResponse
5
5
  from cyberfusion.CoreApiClient.interfaces import Resource
@@ -22,21 +22,21 @@ class CMSes(Resource):
22
22
  def list_cmses(
23
23
  self,
24
24
  *,
25
- skip: Optional[int] = None,
26
- limit: Optional[int] = None,
27
- filter_: Optional[List[str]] = None,
28
- sort: Optional[List[str]] = None,
25
+ page: int = 1,
26
+ per_page: int = 0,
27
+ include_filters: models.CmsesSearchRequest | None = None,
29
28
  ) -> DtoResponse[list[models.CMSResource]]:
30
29
  local_response = self.api_connector.send_or_fail(
31
30
  "GET",
32
31
  "/api/v1/cmses",
33
32
  data=None,
34
33
  query_parameters={
35
- "skip": skip,
36
- "limit": limit,
37
- "filter": filter_,
38
- "sort": sort,
39
- },
34
+ "page": page,
35
+ "per_page": per_page,
36
+ }
37
+ | include_filters.dict(exclude_unset=True)
38
+ if include_filters
39
+ else None,
40
40
  )
41
41
 
42
42
  return DtoResponse.from_response(local_response, models.CMSResource)
@@ -1,5 +1,4 @@
1
1
  from cyberfusion.CoreApiClient import models
2
- from typing import Optional, List
3
2
 
4
3
  from cyberfusion.CoreApiClient.http import DtoResponse
5
4
  from cyberfusion.CoreApiClient.interfaces import Resource
@@ -22,21 +21,21 @@ class Crons(Resource):
22
21
  def list_crons(
23
22
  self,
24
23
  *,
25
- skip: Optional[int] = None,
26
- limit: Optional[int] = None,
27
- filter_: Optional[List[str]] = None,
28
- sort: Optional[List[str]] = None,
24
+ page: int = 1,
25
+ per_page: int = 0,
26
+ include_filters: models.CronsSearchRequest | None = None,
29
27
  ) -> DtoResponse[list[models.CronResource]]:
30
28
  local_response = self.api_connector.send_or_fail(
31
29
  "GET",
32
30
  "/api/v1/crons",
33
31
  data=None,
34
32
  query_parameters={
35
- "skip": skip,
36
- "limit": limit,
37
- "filter": filter_,
38
- "sort": sort,
39
- },
33
+ "page": page,
34
+ "per_page": per_page,
35
+ }
36
+ | include_filters.dict(exclude_unset=True)
37
+ if include_filters
38
+ else None,
40
39
  )
41
40
 
42
41
  return DtoResponse.from_response(local_response, models.CronResource)
@@ -1,5 +1,5 @@
1
1
  from cyberfusion.CoreApiClient import models
2
- from typing import Optional, Union, List
2
+ from typing import Union
3
3
 
4
4
  from cyberfusion.CoreApiClient.http import DtoResponse
5
5
  from cyberfusion.CoreApiClient.interfaces import Resource
@@ -27,21 +27,21 @@ class CustomConfigSnippets(Resource):
27
27
  def list_custom_config_snippets(
28
28
  self,
29
29
  *,
30
- skip: Optional[int] = None,
31
- limit: Optional[int] = None,
32
- filter_: Optional[List[str]] = None,
33
- sort: Optional[List[str]] = None,
30
+ page: int = 1,
31
+ per_page: int = 0,
32
+ include_filters: models.CustomConfigSnippetsSearchRequest | None = None,
34
33
  ) -> DtoResponse[list[models.CustomConfigSnippetResource]]:
35
34
  local_response = self.api_connector.send_or_fail(
36
35
  "GET",
37
36
  "/api/v1/custom-config-snippets",
38
37
  data=None,
39
38
  query_parameters={
40
- "skip": skip,
41
- "limit": limit,
42
- "filter": filter_,
43
- "sort": sort,
44
- },
39
+ "page": page,
40
+ "per_page": per_page,
41
+ }
42
+ | include_filters.dict(exclude_unset=True)
43
+ if include_filters
44
+ else None,
45
45
  )
46
46
 
47
47
  return DtoResponse.from_response(
@@ -1,5 +1,4 @@
1
1
  from cyberfusion.CoreApiClient import models
2
- from typing import Optional, List
3
2
 
4
3
  from cyberfusion.CoreApiClient.http import DtoResponse
5
4
  from cyberfusion.CoreApiClient.interfaces import Resource
@@ -22,21 +21,21 @@ class CustomConfigs(Resource):
22
21
  def list_custom_configs(
23
22
  self,
24
23
  *,
25
- skip: Optional[int] = None,
26
- limit: Optional[int] = None,
27
- filter_: Optional[List[str]] = None,
28
- sort: Optional[List[str]] = None,
24
+ page: int = 1,
25
+ per_page: int = 0,
26
+ include_filters: models.CustomConfigsSearchRequest | None = None,
29
27
  ) -> DtoResponse[list[models.CustomConfigResource]]:
30
28
  local_response = self.api_connector.send_or_fail(
31
29
  "GET",
32
30
  "/api/v1/custom-configs",
33
31
  data=None,
34
32
  query_parameters={
35
- "skip": skip,
36
- "limit": limit,
37
- "filter": filter_,
38
- "sort": sort,
39
- },
33
+ "page": page,
34
+ "per_page": per_page,
35
+ }
36
+ | include_filters.dict(exclude_unset=True)
37
+ if include_filters
38
+ else None,
40
39
  )
41
40
 
42
41
  return DtoResponse.from_response(local_response, models.CustomConfigResource)
@@ -1,5 +1,5 @@
1
1
  from cyberfusion.CoreApiClient import models
2
- from typing import Optional, List
2
+ from typing import Optional
3
3
 
4
4
  from cyberfusion.CoreApiClient.http import DtoResponse
5
5
  from cyberfusion.CoreApiClient.interfaces import Resource
@@ -9,21 +9,21 @@ class Customers(Resource):
9
9
  def list_customers(
10
10
  self,
11
11
  *,
12
- skip: Optional[int] = None,
13
- limit: Optional[int] = None,
14
- filter_: Optional[List[str]] = None,
15
- sort: Optional[List[str]] = None,
12
+ page: int = 1,
13
+ per_page: int = 0,
14
+ include_filters: models.CustomersSearchRequest | None = None,
16
15
  ) -> DtoResponse[list[models.CustomerResource]]:
17
16
  local_response = self.api_connector.send_or_fail(
18
17
  "GET",
19
18
  "/api/v1/customers",
20
19
  data=None,
21
20
  query_parameters={
22
- "skip": skip,
23
- "limit": limit,
24
- "filter": filter_,
25
- "sort": sort,
26
- },
21
+ "page": page,
22
+ "per_page": per_page,
23
+ }
24
+ | include_filters.dict(exclude_unset=True)
25
+ if include_filters
26
+ else None,
27
27
  )
28
28
 
29
29
  return DtoResponse.from_response(local_response, models.CustomerResource)
@@ -58,12 +58,15 @@ class Customers(Resource):
58
58
  request: models.CustomerIPAddressCreateRequest,
59
59
  *,
60
60
  id_: int,
61
+ callback_url: Optional[str] = None,
61
62
  ) -> DtoResponse[models.TaskCollectionResource]:
62
63
  local_response = self.api_connector.send_or_fail(
63
64
  "POST",
64
65
  f"/api/v1/customers/{id_}/ip-addresses",
65
66
  data=request.dict(exclude_unset=True),
66
- query_parameters={},
67
+ query_parameters={
68
+ "callback_url": callback_url,
69
+ },
67
70
  )
68
71
 
69
72
  return DtoResponse.from_response(local_response, models.TaskCollectionResource)
@@ -73,12 +76,15 @@ class Customers(Resource):
73
76
  *,
74
77
  id_: int,
75
78
  ip_address: str,
79
+ callback_url: Optional[str] = None,
76
80
  ) -> DtoResponse[models.TaskCollectionResource]:
77
81
  local_response = self.api_connector.send_or_fail(
78
82
  "DELETE",
79
83
  f"/api/v1/customers/{id_}/ip-addresses/{ip_address}",
80
84
  data=None,
81
- query_parameters={},
85
+ query_parameters={
86
+ "callback_url": callback_url,
87
+ },
82
88
  )
83
89
 
84
90
  return DtoResponse.from_response(local_response, models.TaskCollectionResource)
@@ -1,5 +1,5 @@
1
1
  from cyberfusion.CoreApiClient import models
2
- from typing import Optional, List
2
+ from typing import Optional
3
3
 
4
4
  from cyberfusion.CoreApiClient.http import DtoResponse
5
5
  from cyberfusion.CoreApiClient.interfaces import Resource
@@ -22,21 +22,21 @@ class Daemons(Resource):
22
22
  def list_daemons(
23
23
  self,
24
24
  *,
25
- skip: Optional[int] = None,
26
- limit: Optional[int] = None,
27
- filter_: Optional[List[str]] = None,
28
- sort: Optional[List[str]] = None,
25
+ page: int = 1,
26
+ per_page: int = 0,
27
+ include_filters: models.DaemonsSearchRequest | None = None,
29
28
  ) -> DtoResponse[list[models.DaemonResource]]:
30
29
  local_response = self.api_connector.send_or_fail(
31
30
  "GET",
32
31
  "/api/v1/daemons",
33
32
  data=None,
34
33
  query_parameters={
35
- "skip": skip,
36
- "limit": limit,
37
- "filter": filter_,
38
- "sort": sort,
39
- },
34
+ "page": page,
35
+ "per_page": per_page,
36
+ }
37
+ | include_filters.dict(exclude_unset=True)
38
+ if include_filters
39
+ else None,
40
40
  )
41
41
 
42
42
  return DtoResponse.from_response(local_response, models.DaemonResource)
@@ -78,13 +78,30 @@ class Daemons(Resource):
78
78
 
79
79
  return DtoResponse.from_response(local_response, models.DetailMessage)
80
80
 
81
+ def restart_daemon(
82
+ self,
83
+ *,
84
+ id_: int,
85
+ callback_url: Optional[str] = None,
86
+ ) -> DtoResponse[models.TaskCollectionResource]:
87
+ local_response = self.api_connector.send_or_fail(
88
+ "POST",
89
+ f"/api/v1/daemons/{id_}/restart",
90
+ data=None,
91
+ query_parameters={
92
+ "callback_url": callback_url,
93
+ },
94
+ )
95
+
96
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
97
+
81
98
  def list_logs(
82
99
  self,
83
100
  *,
84
101
  daemon_id: int,
85
102
  timestamp: Optional[str] = None,
86
103
  sort: Optional[str] = None,
87
- limit: Optional[int] = None,
104
+ page: int = 1,
88
105
  ) -> DtoResponse[list[models.DaemonLogResource]]:
89
106
  local_response = self.api_connector.send_or_fail(
90
107
  "GET",
@@ -92,8 +109,7 @@ class Daemons(Resource):
92
109
  data=None,
93
110
  query_parameters={
94
111
  "timestamp": timestamp,
95
- "sort": sort,
96
- "limit": limit,
112
+ "page": page,
97
113
  },
98
114
  )
99
115
 
@@ -1,5 +1,4 @@
1
1
  from cyberfusion.CoreApiClient import models
2
- from typing import Optional, List
3
2
 
4
3
  from cyberfusion.CoreApiClient.http import DtoResponse
5
4
  from cyberfusion.CoreApiClient.interfaces import Resource
@@ -24,21 +23,21 @@ class DatabaseUserGrants(Resource):
24
23
  def list_database_user_grants(
25
24
  self,
26
25
  *,
27
- skip: Optional[int] = None,
28
- limit: Optional[int] = None,
29
- filter_: Optional[List[str]] = None,
30
- sort: Optional[List[str]] = None,
26
+ page: int = 1,
27
+ per_page: int = 0,
28
+ include_filters: models.DatabaseUserGrantsSearchRequest | None = None,
31
29
  ) -> DtoResponse[list[models.DatabaseUserGrantResource]]:
32
30
  local_response = self.api_connector.send_or_fail(
33
31
  "GET",
34
32
  "/api/v1/database-user-grants",
35
33
  data=None,
36
34
  query_parameters={
37
- "skip": skip,
38
- "limit": limit,
39
- "filter": filter_,
40
- "sort": sort,
41
- },
35
+ "page": page,
36
+ "per_page": per_page,
37
+ }
38
+ | include_filters.dict(exclude_unset=True)
39
+ if include_filters
40
+ else None,
42
41
  )
43
42
 
44
43
  return DtoResponse.from_response(
@@ -1,5 +1,3 @@
1
- from typing import Optional, List
2
-
3
1
  from cyberfusion.CoreApiClient import models
4
2
  from cyberfusion.CoreApiClient.http import DtoResponse
5
3
  from cyberfusion.CoreApiClient.interfaces import Resource
@@ -22,21 +20,21 @@ class DatabaseUsers(Resource):
22
20
  def list_database_users(
23
21
  self,
24
22
  *,
25
- skip: Optional[int] = None,
26
- limit: Optional[int] = None,
27
- filter_: Optional[List[str]] = None,
28
- sort: Optional[List[str]] = None,
23
+ page: int = 1,
24
+ per_page: int = 0,
25
+ include_filters: models.DatabaseUsersSearchRequest | None = None,
29
26
  ) -> DtoResponse[list[models.DatabaseUserResource]]:
30
27
  local_response = self.api_connector.send_or_fail(
31
28
  "GET",
32
29
  "/api/v1/database-users",
33
30
  data=None,
34
31
  query_parameters={
35
- "skip": skip,
36
- "limit": limit,
37
- "filter": filter_,
38
- "sort": sort,
39
- },
32
+ "page": page,
33
+ "per_page": per_page,
34
+ }
35
+ | include_filters.dict(exclude_unset=True)
36
+ if include_filters
37
+ else None,
40
38
  )
41
39
 
42
40
  return DtoResponse.from_response(local_response, models.DatabaseUserResource)
@@ -22,21 +22,21 @@ class Databases(Resource):
22
22
  def list_databases(
23
23
  self,
24
24
  *,
25
- skip: Optional[int] = None,
26
- limit: Optional[int] = None,
27
- filter_: Optional[List[str]] = None,
28
- sort: Optional[List[str]] = None,
25
+ page: int = 1,
26
+ per_page: int = 0,
27
+ include_filters: models.DatabasesSearchRequest | None = None,
29
28
  ) -> DtoResponse[list[models.DatabaseResource]]:
30
29
  local_response = self.api_connector.send_or_fail(
31
30
  "GET",
32
31
  "/api/v1/databases",
33
32
  data=None,
34
33
  query_parameters={
35
- "skip": skip,
36
- "limit": limit,
37
- "filter": filter_,
38
- "sort": sort,
39
- },
34
+ "page": page,
35
+ "per_page": per_page,
36
+ }
37
+ | include_filters.dict(exclude_unset=True)
38
+ if include_filters
39
+ else None,
40
40
  )
41
41
 
42
42
  return DtoResponse.from_response(local_response, models.DatabaseResource)
@@ -1,5 +1,4 @@
1
1
  from cyberfusion.CoreApiClient import models
2
- from typing import Optional, List
3
2
  from cyberfusion.CoreApiClient.interfaces import Resource
4
3
  from cyberfusion.CoreApiClient.http import DtoResponse
5
4
 
@@ -8,21 +7,21 @@ class DomainRouters(Resource):
8
7
  def list_domain_routers(
9
8
  self,
10
9
  *,
11
- skip: Optional[int] = None,
12
- limit: Optional[int] = None,
13
- filter_: Optional[List[str]] = None,
14
- sort: Optional[List[str]] = None,
10
+ page: int = 1,
11
+ per_page: int = 0,
12
+ include_filters: models.DomainRoutersSearchRequest | None = None,
15
13
  ) -> DtoResponse[list[models.DomainRouterResource]]:
16
14
  local_response = self.api_connector.send_or_fail(
17
15
  "GET",
18
16
  "/api/v1/domain-routers",
19
17
  data=None,
20
18
  query_parameters={
21
- "skip": skip,
22
- "limit": limit,
23
- "filter": filter_,
24
- "sort": sort,
25
- },
19
+ "page": page,
20
+ "per_page": per_page,
21
+ }
22
+ | include_filters.dict(exclude_unset=True)
23
+ if include_filters
24
+ else None,
26
25
  )
27
26
 
28
27
  return DtoResponse.from_response(local_response, models.DomainRouterResource)
@@ -1,5 +1,4 @@
1
1
  from cyberfusion.CoreApiClient import models
2
- from typing import Optional, List
3
2
 
4
3
  from cyberfusion.CoreApiClient.interfaces import Resource
5
4
  from cyberfusion.CoreApiClient.http import DtoResponse
@@ -22,21 +21,21 @@ class FirewallGroups(Resource):
22
21
  def list_firewall_groups(
23
22
  self,
24
23
  *,
25
- skip: Optional[int] = None,
26
- limit: Optional[int] = None,
27
- filter_: Optional[List[str]] = None,
28
- sort: Optional[List[str]] = None,
24
+ page: int = 1,
25
+ per_page: int = 0,
26
+ include_filters: models.FirewallGroupsSearchRequest | None = None,
29
27
  ) -> DtoResponse[list[models.FirewallGroupResource]]:
30
28
  local_response = self.api_connector.send_or_fail(
31
29
  "GET",
32
30
  "/api/v1/firewall-groups",
33
31
  data=None,
34
32
  query_parameters={
35
- "skip": skip,
36
- "limit": limit,
37
- "filter": filter_,
38
- "sort": sort,
39
- },
33
+ "page": page,
34
+ "per_page": per_page,
35
+ }
36
+ | include_filters.dict(exclude_unset=True)
37
+ if include_filters
38
+ else None,
40
39
  )
41
40
 
42
41
  return DtoResponse.from_response(local_response, models.FirewallGroupResource)
@@ -1,5 +1,4 @@
1
1
  from cyberfusion.CoreApiClient import models
2
- from typing import Optional, List
3
2
 
4
3
  from cyberfusion.CoreApiClient.interfaces import Resource
5
4
  from cyberfusion.CoreApiClient.http import DtoResponse
@@ -22,21 +21,21 @@ class FirewallRules(Resource):
22
21
  def list_firewall_rules(
23
22
  self,
24
23
  *,
25
- skip: Optional[int] = None,
26
- limit: Optional[int] = None,
27
- filter_: Optional[List[str]] = None,
28
- sort: Optional[List[str]] = None,
24
+ page: int = 1,
25
+ per_page: int = 0,
26
+ include_filters: models.FirewallRulesSearchRequest | None = None,
29
27
  ) -> DtoResponse[list[models.FirewallRuleResource]]:
30
28
  local_response = self.api_connector.send_or_fail(
31
29
  "GET",
32
30
  "/api/v1/firewall-rules",
33
31
  data=None,
34
32
  query_parameters={
35
- "skip": skip,
36
- "limit": limit,
37
- "filter": filter_,
38
- "sort": sort,
39
- },
33
+ "page": page,
34
+ "per_page": per_page,
35
+ }
36
+ | include_filters.dict(exclude_unset=True)
37
+ if include_filters
38
+ else None,
40
39
  )
41
40
 
42
41
  return DtoResponse.from_response(local_response, models.FirewallRuleResource)
@@ -1,5 +1,5 @@
1
1
  from cyberfusion.CoreApiClient import models
2
- from typing import Optional, List
2
+ from typing import Optional
3
3
 
4
4
  from cyberfusion.CoreApiClient.interfaces import Resource
5
5
  from cyberfusion.CoreApiClient.http import DtoResponse
@@ -22,21 +22,21 @@ class FPMPools(Resource):
22
22
  def list_fpm_pools(
23
23
  self,
24
24
  *,
25
- skip: Optional[int] = None,
26
- limit: Optional[int] = None,
27
- filter_: Optional[List[str]] = None,
28
- sort: Optional[List[str]] = None,
25
+ page: int = 1,
26
+ per_page: int = 0,
27
+ include_filters: models.FpmPoolsSearchRequest | None = None,
29
28
  ) -> DtoResponse[list[models.FPMPoolResource]]:
30
29
  local_response = self.api_connector.send_or_fail(
31
30
  "GET",
32
31
  "/api/v1/fpm-pools",
33
32
  data=None,
34
33
  query_parameters={
35
- "skip": skip,
36
- "limit": limit,
37
- "filter": filter_,
38
- "sort": sort,
39
- },
34
+ "page": page,
35
+ "per_page": per_page,
36
+ }
37
+ | include_filters.dict(exclude_unset=True)
38
+ if include_filters
39
+ else None,
40
40
  )
41
41
 
42
42
  return DtoResponse.from_response(local_response, models.FPMPoolResource)
@@ -111,3 +111,35 @@ class FPMPools(Resource):
111
111
  )
112
112
 
113
113
  return DtoResponse.from_response(local_response, models.TaskCollectionResource)
114
+
115
+ def get_fpm_pool_status(
116
+ self,
117
+ *,
118
+ id_: int,
119
+ ) -> DtoResponse[list[models.FPMPoolNodeStatus]]:
120
+ local_response = self.api_connector.send_or_fail(
121
+ "GET",
122
+ f"/api/v1/fpm-pools/{id_}/status",
123
+ data=None,
124
+ )
125
+
126
+ return DtoResponse.from_response(local_response, models.FPMPoolNodeStatus)
127
+
128
+ def update_fpm_pool_version(
129
+ self,
130
+ *,
131
+ id_: int,
132
+ version: str,
133
+ callback_url: Optional[str] = None,
134
+ ) -> DtoResponse[models.TaskCollectionResource]:
135
+ local_response = self.api_connector.send_or_fail(
136
+ "POST",
137
+ f"/api/v1/fpm-pools/{id_}/update-version",
138
+ data=None,
139
+ query_parameters={
140
+ "version": version,
141
+ "callback_url": callback_url,
142
+ },
143
+ )
144
+
145
+ return DtoResponse.from_response(local_response, models.TaskCollectionResource)
@@ -1,5 +1,4 @@
1
1
  from cyberfusion.CoreApiClient import models
2
- from typing import Optional, List
3
2
 
4
3
  from cyberfusion.CoreApiClient.interfaces import Resource
5
4
  from cyberfusion.CoreApiClient.http import DtoResponse
@@ -22,21 +21,21 @@ class FTPUsers(Resource):
22
21
  def list_ftp_users(
23
22
  self,
24
23
  *,
25
- skip: Optional[int] = None,
26
- limit: Optional[int] = None,
27
- filter_: Optional[List[str]] = None,
28
- sort: Optional[List[str]] = None,
24
+ page: int = 1,
25
+ per_page: int = 0,
26
+ include_filters: models.FtpUsersSearchRequest | None = None,
29
27
  ) -> DtoResponse[list[models.FTPUserResource]]:
30
28
  local_response = self.api_connector.send_or_fail(
31
29
  "GET",
32
30
  "/api/v1/ftp-users",
33
31
  data=None,
34
32
  query_parameters={
35
- "skip": skip,
36
- "limit": limit,
37
- "filter": filter_,
38
- "sort": sort,
39
- },
33
+ "page": page,
34
+ "per_page": per_page,
35
+ }
36
+ | include_filters.dict(exclude_unset=True)
37
+ if include_filters
38
+ else None,
40
39
  )
41
40
 
42
41
  return DtoResponse.from_response(local_response, models.FTPUserResource)