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.
- cyberfusion/CoreApiClient/connector.py +1 -0
- cyberfusion/CoreApiClient/http.py +30 -1
- cyberfusion/CoreApiClient/models.py +1642 -4140
- cyberfusion/CoreApiClient/resources/basic_authentication_realms.py +56 -47
- cyberfusion/CoreApiClient/resources/borg_archives.py +81 -82
- cyberfusion/CoreApiClient/resources/borg_repositories.py +76 -77
- cyberfusion/CoreApiClient/resources/certificate_managers.py +63 -55
- cyberfusion/CoreApiClient/resources/certificates.py +34 -33
- cyberfusion/CoreApiClient/resources/clusters.py +1486 -153
- cyberfusion/CoreApiClient/resources/cmses.py +157 -156
- cyberfusion/CoreApiClient/resources/crons.py +41 -41
- cyberfusion/CoreApiClient/resources/custom_config_snippets.py +55 -47
- cyberfusion/CoreApiClient/resources/custom_configs.py +44 -44
- cyberfusion/CoreApiClient/resources/customers.py +53 -54
- cyberfusion/CoreApiClient/resources/daemons.py +54 -55
- cyberfusion/CoreApiClient/resources/database_user_grants.py +33 -53
- cyberfusion/CoreApiClient/resources/database_users.py +45 -45
- cyberfusion/CoreApiClient/resources/databases.py +80 -81
- cyberfusion/CoreApiClient/resources/domain_routers.py +23 -23
- cyberfusion/CoreApiClient/resources/firewall_groups.py +44 -44
- cyberfusion/CoreApiClient/resources/firewall_rules.py +36 -36
- cyberfusion/CoreApiClient/resources/fpm_pools.py +61 -61
- cyberfusion/CoreApiClient/resources/ftp_users.py +51 -49
- cyberfusion/CoreApiClient/resources/haproxy_listens.py +36 -36
- cyberfusion/CoreApiClient/resources/haproxy_listens_to_nodes.py +45 -39
- cyberfusion/CoreApiClient/resources/health.py +6 -5
- cyberfusion/CoreApiClient/resources/hosts_entries.py +33 -33
- cyberfusion/CoreApiClient/resources/htpasswd_files.py +36 -36
- cyberfusion/CoreApiClient/resources/htpasswd_users.py +44 -44
- cyberfusion/CoreApiClient/resources/login.py +15 -14
- cyberfusion/CoreApiClient/resources/logs.py +59 -58
- cyberfusion/CoreApiClient/resources/mail_accounts.py +60 -59
- cyberfusion/CoreApiClient/resources/mail_aliases.py +41 -41
- cyberfusion/CoreApiClient/resources/mail_domains.py +41 -41
- cyberfusion/CoreApiClient/resources/mail_hostnames.py +44 -44
- cyberfusion/CoreApiClient/resources/malwares.py +14 -38
- cyberfusion/CoreApiClient/resources/mariadb_encryption_keys.py +37 -31
- cyberfusion/CoreApiClient/resources/node_add_ons.py +39 -40
- cyberfusion/CoreApiClient/resources/nodes.py +60 -61
- cyberfusion/CoreApiClient/resources/passenger_apps.py +54 -54
- cyberfusion/CoreApiClient/resources/redis_instances.py +46 -46
- cyberfusion/CoreApiClient/resources/root_ssh_keys.py +41 -41
- cyberfusion/CoreApiClient/resources/security_txt_policies.py +56 -48
- cyberfusion/CoreApiClient/resources/sites.py +15 -15
- cyberfusion/CoreApiClient/resources/ssh_keys.py +41 -41
- cyberfusion/CoreApiClient/resources/task_collections.py +20 -20
- cyberfusion/CoreApiClient/resources/tombstones.py +15 -15
- cyberfusion/CoreApiClient/resources/unix_users.py +68 -69
- cyberfusion/CoreApiClient/resources/url_redirects.py +42 -42
- cyberfusion/CoreApiClient/resources/virtual_hosts.py +66 -66
- {python3_core_api_client-1.2.dist-info → python3_core_api_client-2.1.0.dist-info}/METADATA +44 -11
- python3_core_api_client-2.1.0.dist-info/RECORD +59 -0
- python3_core_api_client-1.2.dist-info/RECORD +0 -59
- {python3_core_api_client-1.2.dist-info → python3_core_api_client-2.1.0.dist-info}/WHEEL +0 -0
- {python3_core_api_client-1.2.dist-info → python3_core_api_client-2.1.0.dist-info}/top_level.txt +0 -0
|
@@ -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 UNIXUsers(Resource):
|
|
8
9
|
def create_unix_user(
|
|
9
10
|
self,
|
|
10
11
|
request: models.UNIXUserCreateRequest,
|
|
11
|
-
) -> models.UNIXUserResource:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
query_parameters={},
|
|
18
|
-
).json
|
|
12
|
+
) -> DtoResponse[models.UNIXUserResource]:
|
|
13
|
+
local_response = self.api_connector.send_or_fail(
|
|
14
|
+
"POST",
|
|
15
|
+
"/api/v1/unix-users",
|
|
16
|
+
data=request.dict(exclude_unset=True),
|
|
17
|
+
query_parameters={},
|
|
19
18
|
)
|
|
20
19
|
|
|
20
|
+
return DtoResponse.from_response(local_response, models.UNIXUserResource)
|
|
21
|
+
|
|
21
22
|
def list_unix_users(
|
|
22
23
|
self,
|
|
23
24
|
*,
|
|
@@ -25,98 +26,96 @@ class UNIXUsers(Resource):
|
|
|
25
26
|
limit: Optional[int] = None,
|
|
26
27
|
filter_: Optional[List[str]] = None,
|
|
27
28
|
sort: Optional[List[str]] = None,
|
|
28
|
-
) -> list[models.UNIXUserResource]:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
]
|
|
29
|
+
) -> DtoResponse[list[models.UNIXUserResource]]:
|
|
30
|
+
local_response = self.api_connector.send_or_fail(
|
|
31
|
+
"GET",
|
|
32
|
+
"/api/v1/unix-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.UNIXUserResource)
|
|
43
43
|
|
|
44
44
|
def read_unix_user(
|
|
45
45
|
self,
|
|
46
46
|
*,
|
|
47
47
|
id_: int,
|
|
48
|
-
) -> models.UNIXUserResource:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"GET", f"/api/v1/unix-users/{id_}", data=None, query_parameters={}
|
|
52
|
-
).json
|
|
48
|
+
) -> DtoResponse[models.UNIXUserResource]:
|
|
49
|
+
local_response = self.api_connector.send_or_fail(
|
|
50
|
+
"GET", f"/api/v1/unix-users/{id_}", data=None, query_parameters={}
|
|
53
51
|
)
|
|
54
52
|
|
|
53
|
+
return DtoResponse.from_response(local_response, models.UNIXUserResource)
|
|
54
|
+
|
|
55
55
|
def update_unix_user(
|
|
56
56
|
self,
|
|
57
57
|
request: models.UNIXUserUpdateRequest,
|
|
58
58
|
*,
|
|
59
59
|
id_: int,
|
|
60
|
-
) -> models.UNIXUserResource:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
query_parameters={},
|
|
67
|
-
).json
|
|
60
|
+
) -> DtoResponse[models.UNIXUserResource]:
|
|
61
|
+
local_response = self.api_connector.send_or_fail(
|
|
62
|
+
"PATCH",
|
|
63
|
+
f"/api/v1/unix-users/{id_}",
|
|
64
|
+
data=request.dict(exclude_unset=True),
|
|
65
|
+
query_parameters={},
|
|
68
66
|
)
|
|
69
67
|
|
|
68
|
+
return DtoResponse.from_response(local_response, models.UNIXUserResource)
|
|
69
|
+
|
|
70
70
|
def delete_unix_user(
|
|
71
71
|
self,
|
|
72
72
|
*,
|
|
73
73
|
id_: int,
|
|
74
74
|
delete_on_cluster: Optional[bool] = None,
|
|
75
|
-
) -> models.DetailMessage:
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
},
|
|
84
|
-
).json
|
|
75
|
+
) -> DtoResponse[models.DetailMessage]:
|
|
76
|
+
local_response = self.api_connector.send_or_fail(
|
|
77
|
+
"DELETE",
|
|
78
|
+
f"/api/v1/unix-users/{id_}",
|
|
79
|
+
data=None,
|
|
80
|
+
query_parameters={
|
|
81
|
+
"delete_on_cluster": delete_on_cluster,
|
|
82
|
+
},
|
|
85
83
|
)
|
|
86
84
|
|
|
85
|
+
return DtoResponse.from_response(local_response, models.DetailMessage)
|
|
86
|
+
|
|
87
87
|
def compare_unix_users(
|
|
88
88
|
self,
|
|
89
89
|
*,
|
|
90
90
|
left_unix_user_id: int,
|
|
91
91
|
right_unix_user_id: int,
|
|
92
|
-
) -> models.UNIXUserComparison:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
},
|
|
101
|
-
).json
|
|
92
|
+
) -> DtoResponse[models.UNIXUserComparison]:
|
|
93
|
+
local_response = self.api_connector.send_or_fail(
|
|
94
|
+
"GET",
|
|
95
|
+
f"/api/v1/unix-users/{left_unix_user_id}/comparison",
|
|
96
|
+
data=None,
|
|
97
|
+
query_parameters={
|
|
98
|
+
"right_unix_user_id": right_unix_user_id,
|
|
99
|
+
},
|
|
102
100
|
)
|
|
103
101
|
|
|
102
|
+
return DtoResponse.from_response(local_response, models.UNIXUserComparison)
|
|
103
|
+
|
|
104
104
|
def list_unix_user_usages(
|
|
105
105
|
self,
|
|
106
106
|
*,
|
|
107
107
|
unix_user_id: int,
|
|
108
108
|
timestamp: str,
|
|
109
109
|
time_unit: Optional[models.UNIXUserUsageResource] = None,
|
|
110
|
-
) -> list[models.UNIXUserUsageResource]:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
]
|
|
110
|
+
) -> DtoResponse[list[models.UNIXUserUsageResource]]:
|
|
111
|
+
local_response = self.api_connector.send_or_fail(
|
|
112
|
+
"GET",
|
|
113
|
+
f"/api/v1/unix-users/usages/{unix_user_id}",
|
|
114
|
+
data=None,
|
|
115
|
+
query_parameters={
|
|
116
|
+
"timestamp": timestamp,
|
|
117
|
+
"time_unit": time_unit,
|
|
118
|
+
},
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
return DtoResponse.from_response(local_response, models.UNIXUserUsageResource)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
from cyberfusion.CoreApiClient import models
|
|
2
1
|
from typing import Optional, List
|
|
3
2
|
|
|
3
|
+
from cyberfusion.CoreApiClient import models
|
|
4
|
+
from cyberfusion.CoreApiClient.http import DtoResponse
|
|
4
5
|
from cyberfusion.CoreApiClient.interfaces import Resource
|
|
5
6
|
|
|
6
7
|
|
|
@@ -8,16 +9,16 @@ class URLRedirects(Resource):
|
|
|
8
9
|
def create_url_redirect(
|
|
9
10
|
self,
|
|
10
11
|
request: models.URLRedirectCreateRequest,
|
|
11
|
-
) -> models.URLRedirectResource:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
query_parameters={},
|
|
18
|
-
).json
|
|
12
|
+
) -> DtoResponse[models.URLRedirectResource]:
|
|
13
|
+
local_response = self.api_connector.send_or_fail(
|
|
14
|
+
"POST",
|
|
15
|
+
"/api/v1/url-redirects",
|
|
16
|
+
data=request.dict(exclude_unset=True),
|
|
17
|
+
query_parameters={},
|
|
19
18
|
)
|
|
20
19
|
|
|
20
|
+
return DtoResponse.from_response(local_response, models.URLRedirectResource)
|
|
21
|
+
|
|
21
22
|
def list_url_redirects(
|
|
22
23
|
self,
|
|
23
24
|
*,
|
|
@@ -25,55 +26,54 @@ class URLRedirects(Resource):
|
|
|
25
26
|
limit: Optional[int] = None,
|
|
26
27
|
filter_: Optional[List[str]] = None,
|
|
27
28
|
sort: Optional[List[str]] = None,
|
|
28
|
-
) -> list[models.URLRedirectResource]:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
]
|
|
29
|
+
) -> DtoResponse[list[models.URLRedirectResource]]:
|
|
30
|
+
local_response = self.api_connector.send_or_fail(
|
|
31
|
+
"GET",
|
|
32
|
+
"/api/v1/url-redirects",
|
|
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.URLRedirectResource)
|
|
43
43
|
|
|
44
44
|
def read_url_redirect(
|
|
45
45
|
self,
|
|
46
46
|
*,
|
|
47
47
|
id_: int,
|
|
48
|
-
) -> models.URLRedirectResource:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"GET", f"/api/v1/url-redirects/{id_}", data=None, query_parameters={}
|
|
52
|
-
).json
|
|
48
|
+
) -> DtoResponse[models.URLRedirectResource]:
|
|
49
|
+
local_response = self.api_connector.send_or_fail(
|
|
50
|
+
"GET", f"/api/v1/url-redirects/{id_}", data=None, query_parameters={}
|
|
53
51
|
)
|
|
54
52
|
|
|
53
|
+
return DtoResponse.from_response(local_response, models.URLRedirectResource)
|
|
54
|
+
|
|
55
55
|
def update_url_redirect(
|
|
56
56
|
self,
|
|
57
57
|
request: models.URLRedirectUpdateRequest,
|
|
58
58
|
*,
|
|
59
59
|
id_: int,
|
|
60
|
-
) -> models.URLRedirectResource:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
query_parameters={},
|
|
67
|
-
).json
|
|
60
|
+
) -> DtoResponse[models.URLRedirectResource]:
|
|
61
|
+
local_response = self.api_connector.send_or_fail(
|
|
62
|
+
"PATCH",
|
|
63
|
+
f"/api/v1/url-redirects/{id_}",
|
|
64
|
+
data=request.dict(exclude_unset=True),
|
|
65
|
+
query_parameters={},
|
|
68
66
|
)
|
|
69
67
|
|
|
68
|
+
return DtoResponse.from_response(local_response, models.URLRedirectResource)
|
|
69
|
+
|
|
70
70
|
def delete_url_redirect(
|
|
71
71
|
self,
|
|
72
72
|
*,
|
|
73
73
|
id_: int,
|
|
74
|
-
) -> models.DetailMessage:
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"DELETE", f"/api/v1/url-redirects/{id_}", data=None, query_parameters={}
|
|
78
|
-
).json
|
|
74
|
+
) -> DtoResponse[models.DetailMessage]:
|
|
75
|
+
local_response = self.api_connector.send_or_fail(
|
|
76
|
+
"DELETE", f"/api/v1/url-redirects/{id_}", data=None, query_parameters={}
|
|
79
77
|
)
|
|
78
|
+
|
|
79
|
+
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
|
|
|
@@ -8,16 +9,16 @@ class VirtualHosts(Resource):
|
|
|
8
9
|
def create_virtual_host(
|
|
9
10
|
self,
|
|
10
11
|
request: models.VirtualHostCreateRequest,
|
|
11
|
-
) -> models.VirtualHostResource:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
query_parameters={},
|
|
18
|
-
).json
|
|
12
|
+
) -> DtoResponse[models.VirtualHostResource]:
|
|
13
|
+
local_response = self.api_connector.send_or_fail(
|
|
14
|
+
"POST",
|
|
15
|
+
"/api/v1/virtual-hosts",
|
|
16
|
+
data=request.dict(exclude_unset=True),
|
|
17
|
+
query_parameters={},
|
|
19
18
|
)
|
|
20
19
|
|
|
20
|
+
return DtoResponse.from_response(local_response, models.VirtualHostResource)
|
|
21
|
+
|
|
21
22
|
def list_virtual_hosts(
|
|
22
23
|
self,
|
|
23
24
|
*,
|
|
@@ -25,79 +26,78 @@ class VirtualHosts(Resource):
|
|
|
25
26
|
limit: Optional[int] = None,
|
|
26
27
|
filter_: Optional[List[str]] = None,
|
|
27
28
|
sort: Optional[List[str]] = None,
|
|
28
|
-
) -> list[models.VirtualHostResource]:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
]
|
|
29
|
+
) -> DtoResponse[list[models.VirtualHostResource]]:
|
|
30
|
+
local_response = self.api_connector.send_or_fail(
|
|
31
|
+
"GET",
|
|
32
|
+
"/api/v1/virtual-hosts",
|
|
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.VirtualHostResource)
|
|
43
43
|
|
|
44
44
|
def read_virtual_host(
|
|
45
45
|
self,
|
|
46
46
|
*,
|
|
47
47
|
id_: int,
|
|
48
|
-
) -> models.VirtualHostResource:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"GET", f"/api/v1/virtual-hosts/{id_}", data=None, query_parameters={}
|
|
52
|
-
).json
|
|
48
|
+
) -> DtoResponse[models.VirtualHostResource]:
|
|
49
|
+
local_response = self.api_connector.send_or_fail(
|
|
50
|
+
"GET", f"/api/v1/virtual-hosts/{id_}", data=None, query_parameters={}
|
|
53
51
|
)
|
|
54
52
|
|
|
53
|
+
return DtoResponse.from_response(local_response, models.VirtualHostResource)
|
|
54
|
+
|
|
55
55
|
def update_virtual_host(
|
|
56
56
|
self,
|
|
57
57
|
request: models.VirtualHostUpdateRequest,
|
|
58
58
|
*,
|
|
59
59
|
id_: int,
|
|
60
|
-
) -> models.VirtualHostResource:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
query_parameters={},
|
|
67
|
-
).json
|
|
60
|
+
) -> DtoResponse[models.VirtualHostResource]:
|
|
61
|
+
local_response = self.api_connector.send_or_fail(
|
|
62
|
+
"PATCH",
|
|
63
|
+
f"/api/v1/virtual-hosts/{id_}",
|
|
64
|
+
data=request.dict(exclude_unset=True),
|
|
65
|
+
query_parameters={},
|
|
68
66
|
)
|
|
69
67
|
|
|
68
|
+
return DtoResponse.from_response(local_response, models.VirtualHostResource)
|
|
69
|
+
|
|
70
70
|
def delete_virtual_host(
|
|
71
71
|
self,
|
|
72
72
|
*,
|
|
73
73
|
id_: int,
|
|
74
74
|
delete_on_cluster: Optional[bool] = None,
|
|
75
|
-
) -> models.DetailMessage:
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
},
|
|
84
|
-
).json
|
|
75
|
+
) -> DtoResponse[models.DetailMessage]:
|
|
76
|
+
local_response = self.api_connector.send_or_fail(
|
|
77
|
+
"DELETE",
|
|
78
|
+
f"/api/v1/virtual-hosts/{id_}",
|
|
79
|
+
data=None,
|
|
80
|
+
query_parameters={
|
|
81
|
+
"delete_on_cluster": delete_on_cluster,
|
|
82
|
+
},
|
|
85
83
|
)
|
|
86
84
|
|
|
85
|
+
return DtoResponse.from_response(local_response, models.DetailMessage)
|
|
86
|
+
|
|
87
87
|
def get_virtual_host_document_root(
|
|
88
88
|
self,
|
|
89
89
|
*,
|
|
90
90
|
id_: int,
|
|
91
|
-
) -> models.VirtualHostDocumentRoot:
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
query_parameters={},
|
|
98
|
-
).json
|
|
91
|
+
) -> DtoResponse[models.VirtualHostDocumentRoot]:
|
|
92
|
+
local_response = self.api_connector.send_or_fail(
|
|
93
|
+
"GET",
|
|
94
|
+
f"/api/v1/virtual-hosts/{id_}/document-root",
|
|
95
|
+
data=None,
|
|
96
|
+
query_parameters={},
|
|
99
97
|
)
|
|
100
98
|
|
|
99
|
+
return DtoResponse.from_response(local_response, models.VirtualHostDocumentRoot)
|
|
100
|
+
|
|
101
101
|
def sync_domain_roots_of_virtual_hosts(
|
|
102
102
|
self,
|
|
103
103
|
*,
|
|
@@ -105,16 +105,16 @@ class VirtualHosts(Resource):
|
|
|
105
105
|
right_virtual_host_id: int,
|
|
106
106
|
callback_url: Optional[str] = None,
|
|
107
107
|
exclude_paths: Optional[List[str]] = None,
|
|
108
|
-
) -> models.TaskCollectionResource:
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
},
|
|
119
|
-
).json
|
|
108
|
+
) -> DtoResponse[models.TaskCollectionResource]:
|
|
109
|
+
local_response = self.api_connector.send_or_fail(
|
|
110
|
+
"POST",
|
|
111
|
+
f"/api/v1/virtual-hosts/{left_virtual_host_id}/domain-root/sync",
|
|
112
|
+
data=None,
|
|
113
|
+
query_parameters={
|
|
114
|
+
"callback_url": callback_url,
|
|
115
|
+
"right_virtual_host_id": right_virtual_host_id,
|
|
116
|
+
"exclude_paths": exclude_paths,
|
|
117
|
+
},
|
|
120
118
|
)
|
|
119
|
+
|
|
120
|
+
return DtoResponse.from_response(local_response, models.TaskCollectionResource)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python3-core-api-client
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 2.1.0
|
|
4
4
|
Summary: Python client for Core API.
|
|
5
5
|
Author-email: Cyberfusion <support@cyberfusion.io>
|
|
6
6
|
Project-URL: Source, https://github.com/CyberfusionIO/python3-core-api-client
|
|
@@ -9,7 +9,7 @@ Requires-Dist: certifi==2022.9.24
|
|
|
9
9
|
Requires-Dist: requests==2.28.1
|
|
10
10
|
Requires-Dist: pydantic[dotenv,email]==1.10.4
|
|
11
11
|
|
|
12
|
-
# python3-core-api-client
|
|
12
|
+
# python3-core-api-client
|
|
13
13
|
|
|
14
14
|
Python client for Core API.
|
|
15
15
|
|
|
@@ -69,7 +69,9 @@ connector = CoreApiConnector(
|
|
|
69
69
|
api_key='api_key'
|
|
70
70
|
)
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
response = connector.virtual_hosts.list_virtual_hosts()
|
|
73
|
+
|
|
74
|
+
virtual_hosts = response.dto
|
|
73
75
|
```
|
|
74
76
|
|
|
75
77
|
## Authentication
|
|
@@ -168,7 +170,7 @@ for error in errors:
|
|
|
168
170
|
|
|
169
171
|
### Get model from response
|
|
170
172
|
|
|
171
|
-
Calling an endpoint returns the resource model.
|
|
173
|
+
Calling an endpoint returns a response model (`DtoResponse`) containing the resource model (in the `dto` variable).
|
|
172
174
|
|
|
173
175
|
Code example:
|
|
174
176
|
|
|
@@ -181,7 +183,7 @@ connector = CoreApiConnector(
|
|
|
181
183
|
username='username', password='password'
|
|
182
184
|
)
|
|
183
185
|
|
|
184
|
-
|
|
186
|
+
response = connector.mail_domains.create_mail_domain(
|
|
185
187
|
MailDomainCreateRequest(
|
|
186
188
|
domain='cyberfusion.io',
|
|
187
189
|
unix_user_id=1,
|
|
@@ -189,9 +191,46 @@ mail_domain_resource = connector.mail_domains.create_mail_domain(
|
|
|
189
191
|
catch_all_forward_email_addresses=[],
|
|
190
192
|
)
|
|
191
193
|
)
|
|
194
|
+
|
|
195
|
+
mail_domain_resource = response.dto
|
|
192
196
|
# mail_domain_resource is a model representing the API resource
|
|
193
197
|
```
|
|
194
198
|
|
|
199
|
+
### Get other information from response
|
|
200
|
+
|
|
201
|
+
The response model also contains the response status code, body (in both string and JSON format), headers and a failed boolean.
|
|
202
|
+
|
|
203
|
+
Need even more? Access the raw response object in `requests_response`.
|
|
204
|
+
|
|
205
|
+
Code example:
|
|
206
|
+
|
|
207
|
+
```python
|
|
208
|
+
import requests_cache
|
|
209
|
+
|
|
210
|
+
from cyberfusion.CoreApiClient.connector import CoreApiConnector
|
|
211
|
+
|
|
212
|
+
from cyberfusion.CoreApiClient.models import MailAliasCreateRequest
|
|
213
|
+
|
|
214
|
+
connector = CoreApiConnector(
|
|
215
|
+
username='username', password='password', requests_session=requests_cache.CachedSession()
|
|
216
|
+
)
|
|
217
|
+
|
|
218
|
+
response = connector.mail_aliases.create_mail_alias(
|
|
219
|
+
MailAliasCreateRequest(
|
|
220
|
+
local_part='&^@$#^&@$#^&',
|
|
221
|
+
mail_domain_id=1,
|
|
222
|
+
)
|
|
223
|
+
)
|
|
224
|
+
|
|
225
|
+
if response.failed:
|
|
226
|
+
print("HTTP request failed with status code: ", response.status_code)
|
|
227
|
+
|
|
228
|
+
if response.requests_response.from_cache:
|
|
229
|
+
print("Cached response body: ", response.body)
|
|
230
|
+
|
|
231
|
+
json_body = response.json
|
|
232
|
+
```
|
|
233
|
+
|
|
195
234
|
### Throw exception on failure
|
|
196
235
|
|
|
197
236
|
If a request returns an unexpected HTTP status code, `cyberfusion.CoreApiClient.exceptions.CallException` is thrown.
|
|
@@ -236,12 +275,6 @@ from cyberfusion.CoreApiClient.connector import CoreApiConnector
|
|
|
236
275
|
connector = CoreApiConnector(...)
|
|
237
276
|
|
|
238
277
|
response = connector.send(method='GET', path='/foobar', data={}, query_parameters={})
|
|
239
|
-
|
|
240
|
-
response.status_code
|
|
241
|
-
response.json
|
|
242
|
-
response.body
|
|
243
|
-
response.headers
|
|
244
|
-
response.failed
|
|
245
278
|
```
|
|
246
279
|
|
|
247
280
|
To raise `cyberfusion.CoreApiClient.exceptions.CallException` in case of an unexpected HTTP status code, use `send_or_fail` instead of `send`. It takes the same parameters.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
cyberfusion/CoreApiClient/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
cyberfusion/CoreApiClient/_encoders.py,sha256=b4k_ULo1KOR1XBsYGXsmnOUsWL2bBHU_NMtc-Zl4C4Q,430
|
|
3
|
+
cyberfusion/CoreApiClient/connector.py,sha256=8EXN__4q0NLgKxXfJuSBZjfAohC5v88HNEsHkZmMrM8,12747
|
|
4
|
+
cyberfusion/CoreApiClient/exceptions.py,sha256=fNxPtzVL4SzPiVNZmBTu1l8D57dkCxMxflyIXDPLE4Q,204
|
|
5
|
+
cyberfusion/CoreApiClient/http.py,sha256=XhN6Ik1cPczr0KgVlQ411h3wEmgPLjBmerodeYS61f0,1313
|
|
6
|
+
cyberfusion/CoreApiClient/interfaces.py,sha256=P0wCbmSNEpB-eF49PHudc_qXM4blIXm4TsD2AB0z_7Q,269
|
|
7
|
+
cyberfusion/CoreApiClient/models.py,sha256=2DSzTmsqrsa1wVsBLW_Vmy3wrUZIULW3u0pv0EVBzjA,93986
|
|
8
|
+
cyberfusion/CoreApiClient/resources/__init__.py,sha256=E5VMFXttOmN7TjJt0WeARL_tYVoJcLoRoOnIYkCF748,1881
|
|
9
|
+
cyberfusion/CoreApiClient/resources/basic_authentication_realms.py,sha256=fuugVCo9rW7kfaYJ2mvdL83EBNeXa4xiPY_OmEPUBdI,2980
|
|
10
|
+
cyberfusion/CoreApiClient/resources/borg_archives.py,sha256=h_w_txXyPUqkAyopA-YqPQSfqRufwInbRDO0ZV2dyV8,4507
|
|
11
|
+
cyberfusion/CoreApiClient/resources/borg_repositories.py,sha256=TX70qoHdMwMw0piChOzByo-qdF9uoYKwn9xLGmTpo1o,4133
|
|
12
|
+
cyberfusion/CoreApiClient/resources/certificate_managers.py,sha256=KmeY0N6v_xlE3aRmyvee-hXDHmQxhRbSzbtZBFVCvMk,3249
|
|
13
|
+
cyberfusion/CoreApiClient/resources/certificates.py,sha256=RvpaQsMtVAGpTPt3xo6VQozBi2d4v-xd_jXoVY7ofn8,2038
|
|
14
|
+
cyberfusion/CoreApiClient/resources/clusters.py,sha256=J2YivixLqpuH_2So5wQV7cLUUz8u6Inb8S1DROeUIDE,49674
|
|
15
|
+
cyberfusion/CoreApiClient/resources/cmses.py,sha256=JzOUaWOInI4Q30IGEc8QkbgoE6WCGwYowmHgR3vTzsA,8950
|
|
16
|
+
cyberfusion/CoreApiClient/resources/crons.py,sha256=TcLSsjwkc2jJPDHIvexzUZXCiYeMYqBPEmCTm-XkPWI,2365
|
|
17
|
+
cyberfusion/CoreApiClient/resources/custom_config_snippets.py,sha256=IjkhpqZ25T9Rkm8eKRyfcXaV1TP1hHp29nDoY05xxw0,2976
|
|
18
|
+
cyberfusion/CoreApiClient/resources/custom_configs.py,sha256=2d7Ep-SH2Y37-ZMYcZDOvPQo7RFz99pTOcB_kULCKGs,2580
|
|
19
|
+
cyberfusion/CoreApiClient/resources/customers.py,sha256=MBF2k-CBLNvBSCtHiwSbqJEOpCtpDx5Zf6iYPdtPMlE,3010
|
|
20
|
+
cyberfusion/CoreApiClient/resources/daemons.py,sha256=k3Ged9trVIQ0QxHScIjhWENXLQ55JjkeDKSHA-07G_Q,3035
|
|
21
|
+
cyberfusion/CoreApiClient/resources/database_user_grants.py,sha256=n0KvItGArpaPZbY2N806VeoHGGpN5_pfwdwWzQ3Sre0,1815
|
|
22
|
+
cyberfusion/CoreApiClient/resources/database_users.py,sha256=ur6uVI5IseW_hkgbsRnvosi2HDC5ub0l3k41qVAiIPg,2580
|
|
23
|
+
cyberfusion/CoreApiClient/resources/databases.py,sha256=wd9DFu6Lu6oXDkmYf19FsthDIzVfAi33F-493jAJT9w,4476
|
|
24
|
+
cyberfusion/CoreApiClient/resources/domain_routers.py,sha256=J_Pa81KF3m-991j2m0Z3eoO-Td1vZZJLEVLPEMdivU4,1385
|
|
25
|
+
cyberfusion/CoreApiClient/resources/firewall_groups.py,sha256=hePq1bnn1_y9EQxxjROu2qVDNqCgXVXpUfA6mubawiQ,2601
|
|
26
|
+
cyberfusion/CoreApiClient/resources/firewall_rules.py,sha256=t9Xqt08CP1CdFZr3mzIhOeCMJmt6JIX3pRQrkuXRqnA,2099
|
|
27
|
+
cyberfusion/CoreApiClient/resources/fpm_pools.py,sha256=7qj_Rmk3qJOq6YUg1z115BLWFGsgRLuf8lJTEkcJkiQ,3450
|
|
28
|
+
cyberfusion/CoreApiClient/resources/ftp_users.py,sha256=dkxoPK8cZ8xzJ6FN7p2M7KITdSyVUnekIbEPvr5qiZw,2926
|
|
29
|
+
cyberfusion/CoreApiClient/resources/haproxy_listens.py,sha256=b70TywD4jU7Z4GGwk5D9YrWqVRvMOPhhlfgpv6eb2QQ,2115
|
|
30
|
+
cyberfusion/CoreApiClient/resources/haproxy_listens_to_nodes.py,sha256=sWuX8ZoJbTtuJcjoc5O9nmnf-hI0lRj8IdgvYU6G8As,2336
|
|
31
|
+
cyberfusion/CoreApiClient/resources/health.py,sha256=IxeFtXVKUpjmCUHxJaGOfcgUuGgpcMJGHfVuf-5U50g,482
|
|
32
|
+
cyberfusion/CoreApiClient/resources/hosts_entries.py,sha256=MowfkJFJGg0PHDG8n9bJBNsEkDOLZm2AdfHdmJiWIM4,2035
|
|
33
|
+
cyberfusion/CoreApiClient/resources/htpasswd_files.py,sha256=azVNZXmeMwkDjvKXTCSXvw35IO29CZGPGiEBo8OqvWU,2099
|
|
34
|
+
cyberfusion/CoreApiClient/resources/htpasswd_users.py,sha256=-j7jz6Q9RBUuxbb3Q1PgoxXxIdNNtM-KFnw97qGEqcg,2580
|
|
35
|
+
cyberfusion/CoreApiClient/resources/login.py,sha256=FBbVwaNMO0zf9q8qtx5oDhCJVsmb72RQrauPiU8SOzM,983
|
|
36
|
+
cyberfusion/CoreApiClient/resources/logs.py,sha256=k7CswaRXGkBsjQoz7WyNrVcdnImfpus2yfBb2q2x5UU,2924
|
|
37
|
+
cyberfusion/CoreApiClient/resources/mail_accounts.py,sha256=2DOa5bkhRRxdvID3Uu27jOzq5f9GRXdabSIlTGij3vc,3334
|
|
38
|
+
cyberfusion/CoreApiClient/resources/mail_aliases.py,sha256=MiysNIIFu3cxt0n7a9CTgSm5g4aINu7sANMvopow26s,2487
|
|
39
|
+
cyberfusion/CoreApiClient/resources/mail_domains.py,sha256=ylDKsfnKC0j_MuWzXUgFHkNqCAp29GMoog11TLwhUbU,2501
|
|
40
|
+
cyberfusion/CoreApiClient/resources/mail_hostnames.py,sha256=tmFoD5mqAuu3Idq8lBBY98BM2k9OTgo9HFyKGSJlzMg,2580
|
|
41
|
+
cyberfusion/CoreApiClient/resources/malwares.py,sha256=sATKH58TNctqtCI8cIe8e3BnUIQz-0lSTrq5hKWsEeQ,878
|
|
42
|
+
cyberfusion/CoreApiClient/resources/mariadb_encryption_keys.py,sha256=uHE64lOTjKaWxVm6PxFuXpLQQl2ANI3VU6ICJpMX0iA,1931
|
|
43
|
+
cyberfusion/CoreApiClient/resources/node_add_ons.py,sha256=9WCITs_QczUA-jrlgOnKz9KuPZZj-IlSBJy9RVIFY_k,2368
|
|
44
|
+
cyberfusion/CoreApiClient/resources/nodes.py,sha256=xD9lt6wow8lSVYXZ6UJWwnP9ZfhUfEB5hU36RB8FIO4,3377
|
|
45
|
+
cyberfusion/CoreApiClient/resources/passenger_apps.py,sha256=fFuS85zBRJ3kC-hO8F-sre-Oxdc4uJizISzvCxQZjD8,3205
|
|
46
|
+
cyberfusion/CoreApiClient/resources/redis_instances.py,sha256=Q94tDfKao4yy_a7W8egqufrnUZj7agN4S5HBxCMEbRg,2720
|
|
47
|
+
cyberfusion/CoreApiClient/resources/root_ssh_keys.py,sha256=eF7gDrXnZWsUfXUZ_ovMyApT3yNRwWrCquKkG5C6ZF4,2517
|
|
48
|
+
cyberfusion/CoreApiClient/resources/security_txt_policies.py,sha256=H_eAd9SjQ7icB_gWlM6771LRHwCULJxtwPJMTM_C-cw,2827
|
|
49
|
+
cyberfusion/CoreApiClient/resources/sites.py,sha256=O5vT7kxOZX6_dJHQboZ9DmSL--xHJjOQp5u2X5uD3r4,863
|
|
50
|
+
cyberfusion/CoreApiClient/resources/ssh_keys.py,sha256=tgwjzdLazxgK_9k69bif7TLcxpbYMvnAtpsgVbcVBlI,2423
|
|
51
|
+
cyberfusion/CoreApiClient/resources/task_collections.py,sha256=q9klVO9ZcyDqFC4diy_XgcwLZ3dKYCyGWn--muVGc4I,1146
|
|
52
|
+
cyberfusion/CoreApiClient/resources/tombstones.py,sha256=a0JwjubnQ4Fbic4Me0aH9J29rQaK9Cx1cl7eZTK-xyk,888
|
|
53
|
+
cyberfusion/CoreApiClient/resources/unix_users.py,sha256=9CPxqEnuJtrK7v25Y6YhrzGtahaIOgjH1X1IHewjR8M,3761
|
|
54
|
+
cyberfusion/CoreApiClient/resources/url_redirects.py,sha256=icj44_gTPoXjl_CMsSbWN0cCO0-5zkwTGv4mtBre2_4,2522
|
|
55
|
+
cyberfusion/CoreApiClient/resources/virtual_hosts.py,sha256=IcWdCQWLTP-JSq7VvJVWZyZzYYoxxP_jRLoyz3wlhrY,3878
|
|
56
|
+
python3_core_api_client-2.1.0.dist-info/METADATA,sha256=9SaOfB7ymcEM7xKposwcM-dBoKKF6on0TcmlI-oRTB8,8046
|
|
57
|
+
python3_core_api_client-2.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
58
|
+
python3_core_api_client-2.1.0.dist-info/top_level.txt,sha256=ss011q9S6SL_KIIyq7iujFmIYa0grSjlnInO7cDkeag,12
|
|
59
|
+
python3_core_api_client-2.1.0.dist-info/RECORD,,
|