python3-core-api-client 0.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 (59) hide show
  1. cyberfusion/CoreApiClient/__init__.py +0 -0
  2. cyberfusion/CoreApiClient/_encoders.py +7 -0
  3. cyberfusion/CoreApiClient/connector.py +382 -0
  4. cyberfusion/CoreApiClient/exceptions.py +13 -0
  5. cyberfusion/CoreApiClient/http.py +21 -0
  6. cyberfusion/CoreApiClient/interfaces.py +9 -0
  7. cyberfusion/CoreApiClient/models.py +5350 -0
  8. cyberfusion/CoreApiClient/resources/__init__.py +99 -0
  9. cyberfusion/CoreApiClient/resources/basic_authentication_realms.py +85 -0
  10. cyberfusion/CoreApiClient/resources/borg_archives.py +144 -0
  11. cyberfusion/CoreApiClient/resources/borg_repositories.py +134 -0
  12. cyberfusion/CoreApiClient/resources/certificate_managers.py +99 -0
  13. cyberfusion/CoreApiClient/resources/certificates.py +63 -0
  14. cyberfusion/CoreApiClient/resources/clusters.py +233 -0
  15. cyberfusion/CoreApiClient/resources/cmses.py +289 -0
  16. cyberfusion/CoreApiClient/resources/crons.py +76 -0
  17. cyberfusion/CoreApiClient/resources/custom_config_snippets.py +88 -0
  18. cyberfusion/CoreApiClient/resources/custom_configs.py +82 -0
  19. cyberfusion/CoreApiClient/resources/customers.py +97 -0
  20. cyberfusion/CoreApiClient/resources/daemons.py +76 -0
  21. cyberfusion/CoreApiClient/resources/database_user_grants.py +66 -0
  22. cyberfusion/CoreApiClient/resources/database_users.py +82 -0
  23. cyberfusion/CoreApiClient/resources/databases.py +140 -0
  24. cyberfusion/CoreApiClient/resources/domain_routers.py +43 -0
  25. cyberfusion/CoreApiClient/resources/firewall_groups.py +82 -0
  26. cyberfusion/CoreApiClient/resources/firewall_rules.py +67 -0
  27. cyberfusion/CoreApiClient/resources/fpm_pools.py +110 -0
  28. cyberfusion/CoreApiClient/resources/ftp_users.py +89 -0
  29. cyberfusion/CoreApiClient/resources/haproxy_listens.py +67 -0
  30. cyberfusion/CoreApiClient/resources/haproxy_listens_to_nodes.py +70 -0
  31. cyberfusion/CoreApiClient/resources/health.py +14 -0
  32. cyberfusion/CoreApiClient/resources/hosts_entries.py +63 -0
  33. cyberfusion/CoreApiClient/resources/htpasswd_files.py +67 -0
  34. cyberfusion/CoreApiClient/resources/htpasswd_users.py +82 -0
  35. cyberfusion/CoreApiClient/resources/login.py +28 -0
  36. cyberfusion/CoreApiClient/resources/logs.py +50 -0
  37. cyberfusion/CoreApiClient/resources/mail_accounts.py +105 -0
  38. cyberfusion/CoreApiClient/resources/mail_aliases.py +79 -0
  39. cyberfusion/CoreApiClient/resources/mail_domains.py +79 -0
  40. cyberfusion/CoreApiClient/resources/mail_hostnames.py +82 -0
  41. cyberfusion/CoreApiClient/resources/malwares.py +53 -0
  42. cyberfusion/CoreApiClient/resources/mariadb_encryption_keys.py +56 -0
  43. cyberfusion/CoreApiClient/resources/node_add_ons.py +74 -0
  44. cyberfusion/CoreApiClient/resources/nodes.py +112 -0
  45. cyberfusion/CoreApiClient/resources/passenger_apps.py +99 -0
  46. cyberfusion/CoreApiClient/resources/redis_instances.py +85 -0
  47. cyberfusion/CoreApiClient/resources/root_ssh_keys.py +77 -0
  48. cyberfusion/CoreApiClient/resources/security_txt_policies.py +85 -0
  49. cyberfusion/CoreApiClient/resources/sites.py +29 -0
  50. cyberfusion/CoreApiClient/resources/ssh_keys.py +77 -0
  51. cyberfusion/CoreApiClient/resources/task_collections.py +38 -0
  52. cyberfusion/CoreApiClient/resources/tombstones.py +29 -0
  53. cyberfusion/CoreApiClient/resources/unix_users.py +122 -0
  54. cyberfusion/CoreApiClient/resources/url_redirects.py +79 -0
  55. cyberfusion/CoreApiClient/resources/virtual_hosts.py +120 -0
  56. python3_core_api_client-0.1.dist-info/METADATA +236 -0
  57. python3_core_api_client-0.1.dist-info/RECORD +59 -0
  58. python3_core_api_client-0.1.dist-info/WHEEL +5 -0
  59. python3_core_api_client-0.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,67 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class FirewallRules(Resource):
8
+ def create_firewall_rule(
9
+ self,
10
+ request: models.FirewallRuleCreateRequest,
11
+ ) -> models.FirewallRuleResource:
12
+ return models.FirewallRuleResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/firewall-rules",
16
+ data=request.dict(),
17
+ query_parameters={},
18
+ ).json
19
+ )
20
+
21
+ def list_firewall_rules(
22
+ self,
23
+ *,
24
+ skip: Optional[int] = None,
25
+ limit: Optional[int] = None,
26
+ filter_: Optional[List[str]] = None,
27
+ sort: Optional[List[str]] = None,
28
+ ) -> list[models.FirewallRuleResource]:
29
+ return [
30
+ models.FirewallRuleResource.construct(**model)
31
+ for model in self.api_connector.send_or_fail(
32
+ "GET",
33
+ "/api/v1/firewall-rules",
34
+ data=None,
35
+ query_parameters={
36
+ "skip": skip,
37
+ "limit": limit,
38
+ "filter": filter_,
39
+ "sort": sort,
40
+ },
41
+ ).json
42
+ ]
43
+
44
+ def read_firewall_rule(
45
+ self,
46
+ *,
47
+ id_: int,
48
+ ) -> models.FirewallRuleResource:
49
+ return models.FirewallRuleResource.construct(
50
+ **self.api_connector.send_or_fail(
51
+ "GET", f"/api/v1/firewall-rules/{id_}", data=None, query_parameters={}
52
+ ).json
53
+ )
54
+
55
+ def delete_firewall_rule(
56
+ self,
57
+ *,
58
+ id_: int,
59
+ ) -> models.DetailMessage:
60
+ return models.DetailMessage.construct(
61
+ **self.api_connector.send_or_fail(
62
+ "DELETE",
63
+ f"/api/v1/firewall-rules/{id_}",
64
+ data=None,
65
+ query_parameters={},
66
+ ).json
67
+ )
@@ -0,0 +1,110 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class FPMPools(Resource):
8
+ def create_fpm_pool(
9
+ self,
10
+ request: models.FPMPoolCreateRequest,
11
+ ) -> models.FPMPoolResource:
12
+ return models.FPMPoolResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST", "/api/v1/fpm-pools", data=request.dict(), query_parameters={}
15
+ ).json
16
+ )
17
+
18
+ def list_fpm_pools(
19
+ self,
20
+ *,
21
+ skip: Optional[int] = None,
22
+ limit: Optional[int] = None,
23
+ filter_: Optional[List[str]] = None,
24
+ sort: Optional[List[str]] = None,
25
+ ) -> list[models.FPMPoolResource]:
26
+ return [
27
+ models.FPMPoolResource.construct(**model)
28
+ for model in self.api_connector.send_or_fail(
29
+ "GET",
30
+ "/api/v1/fpm-pools",
31
+ data=None,
32
+ query_parameters={
33
+ "skip": skip,
34
+ "limit": limit,
35
+ "filter": filter_,
36
+ "sort": sort,
37
+ },
38
+ ).json
39
+ ]
40
+
41
+ def read_fpm_pool(
42
+ self,
43
+ *,
44
+ id_: int,
45
+ ) -> models.FPMPoolResource:
46
+ return models.FPMPoolResource.construct(
47
+ **self.api_connector.send_or_fail(
48
+ "GET", f"/api/v1/fpm-pools/{id_}", data=None, query_parameters={}
49
+ ).json
50
+ )
51
+
52
+ def update_fpm_pool(
53
+ self,
54
+ request: models.FPMPoolUpdateRequest,
55
+ *,
56
+ id_: int,
57
+ ) -> models.FPMPoolResource:
58
+ return models.FPMPoolResource.construct(
59
+ **self.api_connector.send_or_fail(
60
+ "PATCH",
61
+ f"/api/v1/fpm-pools/{id_}",
62
+ data=request.dict(exclude_unset=True),
63
+ query_parameters={},
64
+ ).json
65
+ )
66
+
67
+ def delete_fpm_pool(
68
+ self,
69
+ *,
70
+ id_: int,
71
+ ) -> models.DetailMessage:
72
+ return models.DetailMessage.construct(
73
+ **self.api_connector.send_or_fail(
74
+ "DELETE", f"/api/v1/fpm-pools/{id_}", data=None, query_parameters={}
75
+ ).json
76
+ )
77
+
78
+ def restart_fpm_pool(
79
+ self,
80
+ *,
81
+ id_: int,
82
+ callback_url: Optional[str] = None,
83
+ ) -> models.TaskCollectionResource:
84
+ return models.TaskCollectionResource.construct(
85
+ **self.api_connector.send_or_fail(
86
+ "POST",
87
+ f"/api/v1/fpm-pools/{id_}/restart",
88
+ data=None,
89
+ query_parameters={
90
+ "callback_url": callback_url,
91
+ },
92
+ ).json
93
+ )
94
+
95
+ def reload_fpm_pool(
96
+ self,
97
+ *,
98
+ id_: int,
99
+ callback_url: Optional[str] = None,
100
+ ) -> models.TaskCollectionResource:
101
+ return models.TaskCollectionResource.construct(
102
+ **self.api_connector.send_or_fail(
103
+ "POST",
104
+ f"/api/v1/fpm-pools/{id_}/reload",
105
+ data=None,
106
+ query_parameters={
107
+ "callback_url": callback_url,
108
+ },
109
+ ).json
110
+ )
@@ -0,0 +1,89 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class FTPUsers(Resource):
8
+ def create_ftp_user(
9
+ self,
10
+ request: models.FTPUserCreateRequest,
11
+ ) -> models.FTPUserResource:
12
+ return models.FTPUserResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST", "/api/v1/ftp-users", data=request.dict(), query_parameters={}
15
+ ).json
16
+ )
17
+
18
+ def list_ftp_users(
19
+ self,
20
+ *,
21
+ skip: Optional[int] = None,
22
+ limit: Optional[int] = None,
23
+ filter_: Optional[List[str]] = None,
24
+ sort: Optional[List[str]] = None,
25
+ ) -> list[models.FTPUserResource]:
26
+ return [
27
+ models.FTPUserResource.construct(**model)
28
+ for model in self.api_connector.send_or_fail(
29
+ "GET",
30
+ "/api/v1/ftp-users",
31
+ data=None,
32
+ query_parameters={
33
+ "skip": skip,
34
+ "limit": limit,
35
+ "filter": filter_,
36
+ "sort": sort,
37
+ },
38
+ ).json
39
+ ]
40
+
41
+ def read_ftp_user(
42
+ self,
43
+ *,
44
+ id_: int,
45
+ ) -> models.FTPUserResource:
46
+ return models.FTPUserResource.construct(
47
+ **self.api_connector.send_or_fail(
48
+ "GET", f"/api/v1/ftp-users/{id_}", data=None, query_parameters={}
49
+ ).json
50
+ )
51
+
52
+ def update_ftp_user(
53
+ self,
54
+ request: models.FTPUserUpdateRequest,
55
+ *,
56
+ id_: int,
57
+ ) -> models.FTPUserResource:
58
+ return models.FTPUserResource.construct(
59
+ **self.api_connector.send_or_fail(
60
+ "PATCH",
61
+ f"/api/v1/ftp-users/{id_}",
62
+ data=request.dict(exclude_unset=True),
63
+ query_parameters={},
64
+ ).json
65
+ )
66
+
67
+ def delete_ftp_user(
68
+ self,
69
+ *,
70
+ id_: int,
71
+ ) -> models.DetailMessage:
72
+ return models.DetailMessage.construct(
73
+ **self.api_connector.send_or_fail(
74
+ "DELETE", f"/api/v1/ftp-users/{id_}", data=None, query_parameters={}
75
+ ).json
76
+ )
77
+
78
+ def create_temporary_ftp_user(
79
+ self,
80
+ request: models.TemporaryFTPUserCreateRequest,
81
+ ) -> models.TemporaryFTPUserResource:
82
+ return models.TemporaryFTPUserResource.construct(
83
+ **self.api_connector.send_or_fail(
84
+ "POST",
85
+ "/api/v1/ftp-users/temporary",
86
+ data=request.dict(),
87
+ query_parameters={},
88
+ ).json
89
+ )
@@ -0,0 +1,67 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class HAProxyListens(Resource):
8
+ def create_haproxy_listen(
9
+ self,
10
+ request: models.HAProxyListenCreateRequest,
11
+ ) -> models.HAProxyListenResource:
12
+ return models.HAProxyListenResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/haproxy-listens",
16
+ data=request.dict(),
17
+ query_parameters={},
18
+ ).json
19
+ )
20
+
21
+ def list_haproxy_listens(
22
+ self,
23
+ *,
24
+ skip: Optional[int] = None,
25
+ limit: Optional[int] = None,
26
+ filter_: Optional[List[str]] = None,
27
+ sort: Optional[List[str]] = None,
28
+ ) -> list[models.HAProxyListenResource]:
29
+ return [
30
+ models.HAProxyListenResource.construct(**model)
31
+ for model in self.api_connector.send_or_fail(
32
+ "GET",
33
+ "/api/v1/haproxy-listens",
34
+ data=None,
35
+ query_parameters={
36
+ "skip": skip,
37
+ "limit": limit,
38
+ "filter": filter_,
39
+ "sort": sort,
40
+ },
41
+ ).json
42
+ ]
43
+
44
+ def read_haproxy_listen(
45
+ self,
46
+ *,
47
+ id_: int,
48
+ ) -> models.HAProxyListenResource:
49
+ return models.HAProxyListenResource.construct(
50
+ **self.api_connector.send_or_fail(
51
+ "GET", f"/api/v1/haproxy-listens/{id_}", data=None, query_parameters={}
52
+ ).json
53
+ )
54
+
55
+ def delete_haproxy_listen(
56
+ self,
57
+ *,
58
+ id_: int,
59
+ ) -> models.DetailMessage:
60
+ return models.DetailMessage.construct(
61
+ **self.api_connector.send_or_fail(
62
+ "DELETE",
63
+ f"/api/v1/haproxy-listens/{id_}",
64
+ data=None,
65
+ query_parameters={},
66
+ ).json
67
+ )
@@ -0,0 +1,70 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class HAProxyListensToNodes(Resource):
8
+ def create_haproxy_listen_to_node(
9
+ self,
10
+ request: models.HAProxyListenToNodeCreateRequest,
11
+ ) -> models.HAProxyListenToNodeResource:
12
+ return models.HAProxyListenToNodeResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/haproxy-listens-to-nodes",
16
+ data=request.dict(),
17
+ query_parameters={},
18
+ ).json
19
+ )
20
+
21
+ def list_haproxy_listens_to_nodes(
22
+ self,
23
+ *,
24
+ skip: Optional[int] = None,
25
+ limit: Optional[int] = None,
26
+ filter_: Optional[List[str]] = None,
27
+ sort: Optional[List[str]] = None,
28
+ ) -> list[models.HAProxyListenToNodeResource]:
29
+ return [
30
+ models.HAProxyListenToNodeResource.construct(**model)
31
+ for model in self.api_connector.send_or_fail(
32
+ "GET",
33
+ "/api/v1/haproxy-listens-to-nodes",
34
+ data=None,
35
+ query_parameters={
36
+ "skip": skip,
37
+ "limit": limit,
38
+ "filter": filter_,
39
+ "sort": sort,
40
+ },
41
+ ).json
42
+ ]
43
+
44
+ def read_haproxy_listen_to_node(
45
+ self,
46
+ *,
47
+ id_: int,
48
+ ) -> models.HAProxyListenToNodeResource:
49
+ return models.HAProxyListenToNodeResource.construct(
50
+ **self.api_connector.send_or_fail(
51
+ "GET",
52
+ f"/api/v1/haproxy-listens-to-nodes/{id_}",
53
+ data=None,
54
+ query_parameters={},
55
+ ).json
56
+ )
57
+
58
+ def delete_haproxy_listen_to_node(
59
+ self,
60
+ *,
61
+ id_: int,
62
+ ) -> models.DetailMessage:
63
+ return models.DetailMessage.construct(
64
+ **self.api_connector.send_or_fail(
65
+ "DELETE",
66
+ f"/api/v1/haproxy-listens-to-nodes/{id_}",
67
+ data=None,
68
+ query_parameters={},
69
+ ).json
70
+ )
@@ -0,0 +1,14 @@
1
+ from cyberfusion.CoreApiClient import models
2
+
3
+ from cyberfusion.CoreApiClient.interfaces import Resource
4
+
5
+
6
+ class Health(Resource):
7
+ def read_health(
8
+ self,
9
+ ) -> models.HealthResource:
10
+ return models.HealthResource.construct(
11
+ **self.api_connector.send_or_fail(
12
+ "GET", "/api/v1/health", data=None, query_parameters={}
13
+ ).json
14
+ )
@@ -0,0 +1,63 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+ from cyberfusion.CoreApiClient.interfaces import Resource
4
+
5
+
6
+ class HostsEntries(Resource):
7
+ def create_hosts_entry(
8
+ self,
9
+ request: models.HostsEntryCreateRequest,
10
+ ) -> models.HostsEntryResource:
11
+ return models.HostsEntryResource.construct(
12
+ **self.api_connector.send_or_fail(
13
+ "POST",
14
+ "/api/v1/hosts-entries",
15
+ data=request.dict(),
16
+ query_parameters={},
17
+ ).json
18
+ )
19
+
20
+ def list_hosts_entries(
21
+ self,
22
+ *,
23
+ skip: Optional[int] = None,
24
+ limit: Optional[int] = None,
25
+ filter_: Optional[List[str]] = None,
26
+ sort: Optional[List[str]] = None,
27
+ ) -> list[models.HostsEntryResource]:
28
+ return [
29
+ models.HostsEntryResource.construct(**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
+ ]
42
+
43
+ def read_hosts_entry(
44
+ self,
45
+ *,
46
+ id_: int,
47
+ ) -> models.HostsEntryResource:
48
+ return models.HostsEntryResource.construct(
49
+ **self.api_connector.send_or_fail(
50
+ "GET", f"/api/v1/hosts-entries/{id_}", data=None, query_parameters={}
51
+ ).json
52
+ )
53
+
54
+ def delete_hosts_entry(
55
+ self,
56
+ *,
57
+ id_: int,
58
+ ) -> models.DetailMessage:
59
+ return models.DetailMessage.construct(
60
+ **self.api_connector.send_or_fail(
61
+ "DELETE", f"/api/v1/hosts-entries/{id_}", data=None, query_parameters={}
62
+ ).json
63
+ )
@@ -0,0 +1,67 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class HtpasswdFiles(Resource):
8
+ def create_htpasswd_file(
9
+ self,
10
+ request: models.HtpasswdFileCreateRequest,
11
+ ) -> models.HtpasswdFileResource:
12
+ return models.HtpasswdFileResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/htpasswd-files",
16
+ data=request.dict(),
17
+ query_parameters={},
18
+ ).json
19
+ )
20
+
21
+ def list_htpasswd_files(
22
+ self,
23
+ *,
24
+ skip: Optional[int] = None,
25
+ limit: Optional[int] = None,
26
+ filter_: Optional[List[str]] = None,
27
+ sort: Optional[List[str]] = None,
28
+ ) -> list[models.HtpasswdFileResource]:
29
+ return [
30
+ models.HtpasswdFileResource.construct(**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
+ ]
43
+
44
+ def read_htpasswd_file(
45
+ self,
46
+ *,
47
+ id_: int,
48
+ ) -> models.HtpasswdFileResource:
49
+ return models.HtpasswdFileResource.construct(
50
+ **self.api_connector.send_or_fail(
51
+ "GET", f"/api/v1/htpasswd-files/{id_}", data=None, query_parameters={}
52
+ ).json
53
+ )
54
+
55
+ def delete_htpasswd_file(
56
+ self,
57
+ *,
58
+ id_: int,
59
+ ) -> models.DetailMessage:
60
+ return models.DetailMessage.construct(
61
+ **self.api_connector.send_or_fail(
62
+ "DELETE",
63
+ f"/api/v1/htpasswd-files/{id_}",
64
+ data=None,
65
+ query_parameters={},
66
+ ).json
67
+ )
@@ -0,0 +1,82 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class HtpasswdUsers(Resource):
8
+ def create_htpasswd_user(
9
+ self,
10
+ request: models.HtpasswdUserCreateRequest,
11
+ ) -> models.HtpasswdUserResource:
12
+ return models.HtpasswdUserResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/htpasswd-users",
16
+ data=request.dict(),
17
+ query_parameters={},
18
+ ).json
19
+ )
20
+
21
+ def list_htpasswd_users(
22
+ self,
23
+ *,
24
+ skip: Optional[int] = None,
25
+ limit: Optional[int] = None,
26
+ filter_: Optional[List[str]] = None,
27
+ sort: Optional[List[str]] = None,
28
+ ) -> list[models.HtpasswdUserResource]:
29
+ return [
30
+ models.HtpasswdUserResource.construct(**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
+ ]
43
+
44
+ def read_htpasswd_user(
45
+ self,
46
+ *,
47
+ id_: int,
48
+ ) -> models.HtpasswdUserResource:
49
+ return models.HtpasswdUserResource.construct(
50
+ **self.api_connector.send_or_fail(
51
+ "GET", f"/api/v1/htpasswd-users/{id_}", data=None, query_parameters={}
52
+ ).json
53
+ )
54
+
55
+ def update_htpasswd_user(
56
+ self,
57
+ request: models.HtpasswdUserUpdateRequest,
58
+ *,
59
+ id_: int,
60
+ ) -> models.HtpasswdUserResource:
61
+ return models.HtpasswdUserResource.construct(
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
68
+ )
69
+
70
+ def delete_htpasswd_user(
71
+ self,
72
+ *,
73
+ id_: int,
74
+ ) -> models.DetailMessage:
75
+ return models.DetailMessage.construct(
76
+ **self.api_connector.send_or_fail(
77
+ "DELETE",
78
+ f"/api/v1/htpasswd-users/{id_}",
79
+ data=None,
80
+ query_parameters={},
81
+ ).json
82
+ )
@@ -0,0 +1,28 @@
1
+ from cyberfusion.CoreApiClient import models
2
+
3
+ from cyberfusion.CoreApiClient.interfaces import Resource
4
+
5
+
6
+ class Login(Resource):
7
+ def request_access_token(
8
+ self,
9
+ request: models.BodyLoginAccessToken,
10
+ ) -> models.TokenResource:
11
+ return models.TokenResource.construct(
12
+ **self.api_connector.send_or_fail(
13
+ "POST",
14
+ "/api/v1/login/access-token",
15
+ data=request.dict(),
16
+ query_parameters={},
17
+ content_type="application/x-www-form-urlencoded",
18
+ ).json
19
+ )
20
+
21
+ def test_access_token(
22
+ self,
23
+ ) -> models.APIUserInfo:
24
+ return models.APIUserInfo.construct(
25
+ **self.api_connector.send_or_fail(
26
+ "POST", "/api/v1/login/test-token", data=None, query_parameters={}
27
+ ).json
28
+ )