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,99 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class PassengerApps(Resource):
8
+ def create_nodejs_passenger_app(
9
+ self,
10
+ request: models.PassengerAppCreateNodeJSRequest,
11
+ ) -> models.PassengerAppResource:
12
+ return models.PassengerAppResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/passenger-apps/nodejs",
16
+ data=request.dict(),
17
+ query_parameters={},
18
+ ).json
19
+ )
20
+
21
+ def list_passenger_apps(
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.PassengerAppResource]:
29
+ return [
30
+ models.PassengerAppResource.construct(**model)
31
+ for model in self.api_connector.send_or_fail(
32
+ "GET",
33
+ "/api/v1/passenger-apps",
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_passenger_app(
45
+ self,
46
+ *,
47
+ id_: int,
48
+ ) -> models.PassengerAppResource:
49
+ return models.PassengerAppResource.construct(
50
+ **self.api_connector.send_or_fail(
51
+ "GET", f"/api/v1/passenger-apps/{id_}", data=None, query_parameters={}
52
+ ).json
53
+ )
54
+
55
+ def update_passenger_app(
56
+ self,
57
+ request: models.PassengerAppUpdateRequest,
58
+ *,
59
+ id_: int,
60
+ ) -> models.PassengerAppResource:
61
+ return models.PassengerAppResource.construct(
62
+ **self.api_connector.send_or_fail(
63
+ "PATCH",
64
+ f"/api/v1/passenger-apps/{id_}",
65
+ data=request.dict(exclude_unset=True),
66
+ query_parameters={},
67
+ ).json
68
+ )
69
+
70
+ def delete_passenger_app(
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/passenger-apps/{id_}",
79
+ data=None,
80
+ query_parameters={},
81
+ ).json
82
+ )
83
+
84
+ def restart_passenger_app(
85
+ self,
86
+ *,
87
+ id_: int,
88
+ callback_url: Optional[str] = None,
89
+ ) -> models.TaskCollectionResource:
90
+ return models.TaskCollectionResource.construct(
91
+ **self.api_connector.send_or_fail(
92
+ "POST",
93
+ f"/api/v1/passenger-apps/{id_}/restart",
94
+ data=None,
95
+ query_parameters={
96
+ "callback_url": callback_url,
97
+ },
98
+ ).json
99
+ )
@@ -0,0 +1,85 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class RedisInstances(Resource):
8
+ def create_redis_instance(
9
+ self,
10
+ request: models.RedisInstanceCreateRequest,
11
+ ) -> models.RedisInstanceResource:
12
+ return models.RedisInstanceResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/redis-instances",
16
+ data=request.dict(),
17
+ query_parameters={},
18
+ ).json
19
+ )
20
+
21
+ def list_redis_instances(
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.RedisInstanceResource]:
29
+ return [
30
+ models.RedisInstanceResource.construct(**model)
31
+ for model in self.api_connector.send_or_fail(
32
+ "GET",
33
+ "/api/v1/redis-instances",
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_redis_instance(
45
+ self,
46
+ *,
47
+ id_: int,
48
+ ) -> models.RedisInstanceResource:
49
+ return models.RedisInstanceResource.construct(
50
+ **self.api_connector.send_or_fail(
51
+ "GET", f"/api/v1/redis-instances/{id_}", data=None, query_parameters={}
52
+ ).json
53
+ )
54
+
55
+ def update_redis_instance(
56
+ self,
57
+ request: models.RedisInstanceUpdateRequest,
58
+ *,
59
+ id_: int,
60
+ ) -> models.RedisInstanceResource:
61
+ return models.RedisInstanceResource.construct(
62
+ **self.api_connector.send_or_fail(
63
+ "PATCH",
64
+ f"/api/v1/redis-instances/{id_}",
65
+ data=request.dict(exclude_unset=True),
66
+ query_parameters={},
67
+ ).json
68
+ )
69
+
70
+ def delete_redis_instance(
71
+ self,
72
+ *,
73
+ id_: int,
74
+ delete_on_cluster: Optional[bool] = None,
75
+ ) -> models.DetailMessage:
76
+ return models.DetailMessage.construct(
77
+ **self.api_connector.send_or_fail(
78
+ "DELETE",
79
+ f"/api/v1/redis-instances/{id_}",
80
+ data=None,
81
+ query_parameters={
82
+ "delete_on_cluster": delete_on_cluster,
83
+ },
84
+ ).json
85
+ )
@@ -0,0 +1,77 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class RootSSHKeys(Resource):
8
+ def create_public_root_ssh_key(
9
+ self,
10
+ request: models.RootSSHKeyCreatePublicRequest,
11
+ ) -> models.RootSSHKeyResource:
12
+ return models.RootSSHKeyResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/root-ssh-keys/public",
16
+ data=request.dict(),
17
+ query_parameters={},
18
+ ).json
19
+ )
20
+
21
+ def create_private_root_ssh_key(
22
+ self,
23
+ request: models.RootSSHKeyCreatePrivateRequest,
24
+ ) -> models.RootSSHKeyResource:
25
+ return models.RootSSHKeyResource.construct(
26
+ **self.api_connector.send_or_fail(
27
+ "POST",
28
+ "/api/v1/root-ssh-keys/private",
29
+ data=request.dict(),
30
+ query_parameters={},
31
+ ).json
32
+ )
33
+
34
+ def list_root_ssh_keys(
35
+ self,
36
+ *,
37
+ skip: Optional[int] = None,
38
+ limit: Optional[int] = None,
39
+ filter_: Optional[List[str]] = None,
40
+ sort: Optional[List[str]] = None,
41
+ ) -> list[models.RootSSHKeyResource]:
42
+ return [
43
+ models.RootSSHKeyResource.construct(**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
+ ]
56
+
57
+ def read_root_ssh_key(
58
+ self,
59
+ *,
60
+ id_: int,
61
+ ) -> models.RootSSHKeyResource:
62
+ return models.RootSSHKeyResource.construct(
63
+ **self.api_connector.send_or_fail(
64
+ "GET", f"/api/v1/root-ssh-keys/{id_}", data=None, query_parameters={}
65
+ ).json
66
+ )
67
+
68
+ def delete_root_ssh_key(
69
+ self,
70
+ *,
71
+ id_: int,
72
+ ) -> models.DetailMessage:
73
+ return models.DetailMessage.construct(
74
+ **self.api_connector.send_or_fail(
75
+ "DELETE", f"/api/v1/root-ssh-keys/{id_}", data=None, query_parameters={}
76
+ ).json
77
+ )
@@ -0,0 +1,85 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class SecurityTXTPolicies(Resource):
8
+ def create_security_txt_policy(
9
+ self,
10
+ request: models.SecurityTXTPolicyCreateRequest,
11
+ ) -> models.SecurityTXTPolicyResource:
12
+ return models.SecurityTXTPolicyResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/security-txt-policies",
16
+ data=request.dict(),
17
+ query_parameters={},
18
+ ).json
19
+ )
20
+
21
+ def list_security_txt_policies(
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.SecurityTXTPolicyResource]:
29
+ return [
30
+ models.SecurityTXTPolicyResource.construct(**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
+ ]
43
+
44
+ def read_security_txt_policy(
45
+ self,
46
+ *,
47
+ id_: int,
48
+ ) -> models.SecurityTXTPolicyResource:
49
+ return models.SecurityTXTPolicyResource.construct(
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
56
+ )
57
+
58
+ def update_security_txt_policy(
59
+ self,
60
+ request: models.SecurityTXTPolicyUpdateRequest,
61
+ *,
62
+ id_: int,
63
+ ) -> models.SecurityTXTPolicyResource:
64
+ return models.SecurityTXTPolicyResource.construct(
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
71
+ )
72
+
73
+ def delete_security_txt_policy(
74
+ self,
75
+ *,
76
+ id_: int,
77
+ ) -> models.DetailMessage:
78
+ return models.DetailMessage.construct(
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
+ )
@@ -0,0 +1,29 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class Sites(Resource):
8
+ def list_sites(
9
+ self,
10
+ *,
11
+ skip: Optional[int] = None,
12
+ limit: Optional[int] = None,
13
+ filter_: Optional[List[str]] = None,
14
+ sort: Optional[List[str]] = None,
15
+ ) -> list[models.SiteResource]:
16
+ return [
17
+ models.SiteResource.construct(**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
+ ]
@@ -0,0 +1,77 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class SSHKeys(Resource):
8
+ def create_public_ssh_key(
9
+ self,
10
+ request: models.SSHKeyCreatePublicRequest,
11
+ ) -> models.SSHKeyResource:
12
+ return models.SSHKeyResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/ssh-keys/public",
16
+ data=request.dict(),
17
+ query_parameters={},
18
+ ).json
19
+ )
20
+
21
+ def create_private_ssh_key(
22
+ self,
23
+ request: models.SSHKeyCreatePrivateRequest,
24
+ ) -> models.SSHKeyResource:
25
+ return models.SSHKeyResource.construct(
26
+ **self.api_connector.send_or_fail(
27
+ "POST",
28
+ "/api/v1/ssh-keys/private",
29
+ data=request.dict(),
30
+ query_parameters={},
31
+ ).json
32
+ )
33
+
34
+ def list_ssh_keys(
35
+ self,
36
+ *,
37
+ skip: Optional[int] = None,
38
+ limit: Optional[int] = None,
39
+ filter_: Optional[List[str]] = None,
40
+ sort: Optional[List[str]] = None,
41
+ ) -> list[models.SSHKeyResource]:
42
+ return [
43
+ models.SSHKeyResource.construct(**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
+ ]
56
+
57
+ def read_ssh_key(
58
+ self,
59
+ *,
60
+ id_: int,
61
+ ) -> models.SSHKeyResource:
62
+ return models.SSHKeyResource.construct(
63
+ **self.api_connector.send_or_fail(
64
+ "GET", f"/api/v1/ssh-keys/{id_}", data=None, query_parameters={}
65
+ ).json
66
+ )
67
+
68
+ def delete_ssh_key(
69
+ self,
70
+ *,
71
+ id_: int,
72
+ ) -> models.DetailMessage:
73
+ return models.DetailMessage.construct(
74
+ **self.api_connector.send_or_fail(
75
+ "DELETE", f"/api/v1/ssh-keys/{id_}", data=None, query_parameters={}
76
+ ).json
77
+ )
@@ -0,0 +1,38 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class TaskCollections(Resource):
8
+ def list_task_collection_results(
9
+ self,
10
+ *,
11
+ uuid: str,
12
+ ) -> list[models.TaskResult]:
13
+ return [
14
+ models.TaskResult.construct(**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
+ ]
22
+
23
+ def retry_task_collection(
24
+ self,
25
+ *,
26
+ uuid: str,
27
+ callback_url: Optional[str] = None,
28
+ ) -> models.TaskCollectionResource:
29
+ return models.TaskCollectionResource.construct(
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
38
+ )
@@ -0,0 +1,29 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class Tombstones(Resource):
8
+ def list_tombstones(
9
+ self,
10
+ *,
11
+ skip: Optional[int] = None,
12
+ limit: Optional[int] = None,
13
+ filter_: Optional[List[str]] = None,
14
+ sort: Optional[List[str]] = None,
15
+ ) -> list[models.TombstoneResource]:
16
+ return [
17
+ models.TombstoneResource.construct(**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
+ ]
@@ -0,0 +1,122 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from typing import Optional, List
3
+
4
+ from cyberfusion.CoreApiClient.interfaces import Resource
5
+
6
+
7
+ class UNIXUsers(Resource):
8
+ def create_unix_user(
9
+ self,
10
+ request: models.UNIXUserCreateRequest,
11
+ ) -> models.UNIXUserResource:
12
+ return models.UNIXUserResource.construct(
13
+ **self.api_connector.send_or_fail(
14
+ "POST",
15
+ "/api/v1/unix-users",
16
+ data=request.dict(),
17
+ query_parameters={},
18
+ ).json
19
+ )
20
+
21
+ def list_unix_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.UNIXUserResource]:
29
+ return [
30
+ models.UNIXUserResource.construct(**model)
31
+ for model in self.api_connector.send_or_fail(
32
+ "GET",
33
+ "/api/v1/unix-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_unix_user(
45
+ self,
46
+ *,
47
+ id_: int,
48
+ ) -> models.UNIXUserResource:
49
+ return models.UNIXUserResource.construct(
50
+ **self.api_connector.send_or_fail(
51
+ "GET", f"/api/v1/unix-users/{id_}", data=None, query_parameters={}
52
+ ).json
53
+ )
54
+
55
+ def update_unix_user(
56
+ self,
57
+ request: models.UNIXUserUpdateRequest,
58
+ *,
59
+ id_: int,
60
+ ) -> models.UNIXUserResource:
61
+ return models.UNIXUserResource.construct(
62
+ **self.api_connector.send_or_fail(
63
+ "PATCH",
64
+ f"/api/v1/unix-users/{id_}",
65
+ data=request.dict(exclude_unset=True),
66
+ query_parameters={},
67
+ ).json
68
+ )
69
+
70
+ def delete_unix_user(
71
+ self,
72
+ *,
73
+ id_: int,
74
+ delete_on_cluster: Optional[bool] = None,
75
+ ) -> models.DetailMessage:
76
+ return models.DetailMessage.construct(
77
+ **self.api_connector.send_or_fail(
78
+ "DELETE",
79
+ f"/api/v1/unix-users/{id_}",
80
+ data=None,
81
+ query_parameters={
82
+ "delete_on_cluster": delete_on_cluster,
83
+ },
84
+ ).json
85
+ )
86
+
87
+ def compare_unix_users(
88
+ self,
89
+ *,
90
+ left_unix_user_id: int,
91
+ right_unix_user_id: int,
92
+ ) -> models.UNIXUserComparison:
93
+ return models.UNIXUserComparison.construct(
94
+ **self.api_connector.send_or_fail(
95
+ "GET",
96
+ f"/api/v1/unix-users/{left_unix_user_id}/comparison",
97
+ data=None,
98
+ query_parameters={
99
+ "right_unix_user_id": right_unix_user_id,
100
+ },
101
+ ).json
102
+ )
103
+
104
+ def list_unix_user_usages(
105
+ self,
106
+ *,
107
+ unix_user_id: int,
108
+ timestamp: str,
109
+ time_unit: Optional[models.UNIXUserUsageResource] = None,
110
+ ) -> list[models.UNIXUserUsageResource]:
111
+ return [
112
+ models.UNIXUserUsageResource.construct(**model)
113
+ for model in self.api_connector.send_or_fail(
114
+ "GET",
115
+ f"/api/v1/unix-users/usages/{unix_user_id}",
116
+ data=None,
117
+ query_parameters={
118
+ "timestamp": timestamp,
119
+ "time_unit": time_unit,
120
+ },
121
+ ).json
122
+ ]