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.
- cyberfusion/CoreApiClient/__init__.py +0 -0
- cyberfusion/CoreApiClient/_encoders.py +7 -0
- cyberfusion/CoreApiClient/connector.py +382 -0
- cyberfusion/CoreApiClient/exceptions.py +13 -0
- cyberfusion/CoreApiClient/http.py +21 -0
- cyberfusion/CoreApiClient/interfaces.py +9 -0
- cyberfusion/CoreApiClient/models.py +5350 -0
- cyberfusion/CoreApiClient/resources/__init__.py +99 -0
- cyberfusion/CoreApiClient/resources/basic_authentication_realms.py +85 -0
- cyberfusion/CoreApiClient/resources/borg_archives.py +144 -0
- cyberfusion/CoreApiClient/resources/borg_repositories.py +134 -0
- cyberfusion/CoreApiClient/resources/certificate_managers.py +99 -0
- cyberfusion/CoreApiClient/resources/certificates.py +63 -0
- cyberfusion/CoreApiClient/resources/clusters.py +233 -0
- cyberfusion/CoreApiClient/resources/cmses.py +289 -0
- cyberfusion/CoreApiClient/resources/crons.py +76 -0
- cyberfusion/CoreApiClient/resources/custom_config_snippets.py +88 -0
- cyberfusion/CoreApiClient/resources/custom_configs.py +82 -0
- cyberfusion/CoreApiClient/resources/customers.py +97 -0
- cyberfusion/CoreApiClient/resources/daemons.py +76 -0
- cyberfusion/CoreApiClient/resources/database_user_grants.py +66 -0
- cyberfusion/CoreApiClient/resources/database_users.py +82 -0
- cyberfusion/CoreApiClient/resources/databases.py +140 -0
- cyberfusion/CoreApiClient/resources/domain_routers.py +43 -0
- cyberfusion/CoreApiClient/resources/firewall_groups.py +82 -0
- cyberfusion/CoreApiClient/resources/firewall_rules.py +67 -0
- cyberfusion/CoreApiClient/resources/fpm_pools.py +110 -0
- cyberfusion/CoreApiClient/resources/ftp_users.py +89 -0
- cyberfusion/CoreApiClient/resources/haproxy_listens.py +67 -0
- cyberfusion/CoreApiClient/resources/haproxy_listens_to_nodes.py +70 -0
- cyberfusion/CoreApiClient/resources/health.py +14 -0
- cyberfusion/CoreApiClient/resources/hosts_entries.py +63 -0
- cyberfusion/CoreApiClient/resources/htpasswd_files.py +67 -0
- cyberfusion/CoreApiClient/resources/htpasswd_users.py +82 -0
- cyberfusion/CoreApiClient/resources/login.py +28 -0
- cyberfusion/CoreApiClient/resources/logs.py +50 -0
- cyberfusion/CoreApiClient/resources/mail_accounts.py +105 -0
- cyberfusion/CoreApiClient/resources/mail_aliases.py +79 -0
- cyberfusion/CoreApiClient/resources/mail_domains.py +79 -0
- cyberfusion/CoreApiClient/resources/mail_hostnames.py +82 -0
- cyberfusion/CoreApiClient/resources/malwares.py +53 -0
- cyberfusion/CoreApiClient/resources/mariadb_encryption_keys.py +56 -0
- cyberfusion/CoreApiClient/resources/node_add_ons.py +74 -0
- cyberfusion/CoreApiClient/resources/nodes.py +112 -0
- cyberfusion/CoreApiClient/resources/passenger_apps.py +99 -0
- cyberfusion/CoreApiClient/resources/redis_instances.py +85 -0
- cyberfusion/CoreApiClient/resources/root_ssh_keys.py +77 -0
- cyberfusion/CoreApiClient/resources/security_txt_policies.py +85 -0
- cyberfusion/CoreApiClient/resources/sites.py +29 -0
- cyberfusion/CoreApiClient/resources/ssh_keys.py +77 -0
- cyberfusion/CoreApiClient/resources/task_collections.py +38 -0
- cyberfusion/CoreApiClient/resources/tombstones.py +29 -0
- cyberfusion/CoreApiClient/resources/unix_users.py +122 -0
- cyberfusion/CoreApiClient/resources/url_redirects.py +79 -0
- cyberfusion/CoreApiClient/resources/virtual_hosts.py +120 -0
- python3_core_api_client-0.1.dist-info/METADATA +236 -0
- python3_core_api_client-0.1.dist-info/RECORD +59 -0
- python3_core_api_client-0.1.dist-info/WHEEL +5 -0
- python3_core_api_client-0.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional
|
3
|
+
|
4
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
5
|
+
|
6
|
+
|
7
|
+
class Logs(Resource):
|
8
|
+
def list_access_logs(
|
9
|
+
self,
|
10
|
+
*,
|
11
|
+
virtual_host_id: int,
|
12
|
+
timestamp: Optional[str] = None,
|
13
|
+
sort: Optional[models.LogAccessResource] = None,
|
14
|
+
limit: Optional[int] = None,
|
15
|
+
) -> list[models.LogAccessResource]:
|
16
|
+
return [
|
17
|
+
models.LogAccessResource.construct(**model)
|
18
|
+
for model in self.api_connector.send_or_fail(
|
19
|
+
"GET",
|
20
|
+
f"/api/v1/logs/access/{virtual_host_id}",
|
21
|
+
data=None,
|
22
|
+
query_parameters={
|
23
|
+
"timestamp": timestamp,
|
24
|
+
"sort": sort,
|
25
|
+
"limit": limit,
|
26
|
+
},
|
27
|
+
).json
|
28
|
+
]
|
29
|
+
|
30
|
+
def list_error_logs(
|
31
|
+
self,
|
32
|
+
*,
|
33
|
+
virtual_host_id: int,
|
34
|
+
timestamp: Optional[str] = None,
|
35
|
+
sort: Optional[models.LogErrorResource] = None,
|
36
|
+
limit: Optional[int] = None,
|
37
|
+
) -> list[models.LogErrorResource]:
|
38
|
+
return [
|
39
|
+
models.LogErrorResource.construct(**model)
|
40
|
+
for model in self.api_connector.send_or_fail(
|
41
|
+
"GET",
|
42
|
+
f"/api/v1/logs/error/{virtual_host_id}",
|
43
|
+
data=None,
|
44
|
+
query_parameters={
|
45
|
+
"timestamp": timestamp,
|
46
|
+
"sort": sort,
|
47
|
+
"limit": limit,
|
48
|
+
},
|
49
|
+
).json
|
50
|
+
]
|
@@ -0,0 +1,105 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional, List
|
3
|
+
|
4
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
5
|
+
|
6
|
+
|
7
|
+
class MailAccounts(Resource):
|
8
|
+
def create_mail_account(
|
9
|
+
self,
|
10
|
+
request: models.MailAccountCreateRequest,
|
11
|
+
) -> models.MailAccountResource:
|
12
|
+
return models.MailAccountResource.construct(
|
13
|
+
**self.api_connector.send_or_fail(
|
14
|
+
"POST",
|
15
|
+
"/api/v1/mail-accounts",
|
16
|
+
data=request.dict(),
|
17
|
+
query_parameters={},
|
18
|
+
).json
|
19
|
+
)
|
20
|
+
|
21
|
+
def list_mail_accounts(
|
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.MailAccountResource]:
|
29
|
+
return [
|
30
|
+
models.MailAccountResource.construct(**model)
|
31
|
+
for model in self.api_connector.send_or_fail(
|
32
|
+
"GET",
|
33
|
+
"/api/v1/mail-accounts",
|
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_mail_account(
|
45
|
+
self,
|
46
|
+
*,
|
47
|
+
id_: int,
|
48
|
+
) -> models.MailAccountResource:
|
49
|
+
return models.MailAccountResource.construct(
|
50
|
+
**self.api_connector.send_or_fail(
|
51
|
+
"GET", f"/api/v1/mail-accounts/{id_}", data=None, query_parameters={}
|
52
|
+
).json
|
53
|
+
)
|
54
|
+
|
55
|
+
def update_mail_account(
|
56
|
+
self,
|
57
|
+
request: models.MailAccountUpdateRequest,
|
58
|
+
*,
|
59
|
+
id_: int,
|
60
|
+
) -> models.MailAccountResource:
|
61
|
+
return models.MailAccountResource.construct(
|
62
|
+
**self.api_connector.send_or_fail(
|
63
|
+
"PATCH",
|
64
|
+
f"/api/v1/mail-accounts/{id_}",
|
65
|
+
data=request.dict(exclude_unset=True),
|
66
|
+
query_parameters={},
|
67
|
+
).json
|
68
|
+
)
|
69
|
+
|
70
|
+
def delete_mail_account(
|
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/mail-accounts/{id_}",
|
80
|
+
data=None,
|
81
|
+
query_parameters={
|
82
|
+
"delete_on_cluster": delete_on_cluster,
|
83
|
+
},
|
84
|
+
).json
|
85
|
+
)
|
86
|
+
|
87
|
+
def list_mail_account_usages(
|
88
|
+
self,
|
89
|
+
*,
|
90
|
+
mail_account_id: int,
|
91
|
+
timestamp: str,
|
92
|
+
time_unit: Optional[models.MailAccountUsageResource] = None,
|
93
|
+
) -> list[models.MailAccountUsageResource]:
|
94
|
+
return [
|
95
|
+
models.MailAccountUsageResource.construct(**model)
|
96
|
+
for model in self.api_connector.send_or_fail(
|
97
|
+
"GET",
|
98
|
+
f"/api/v1/mail-accounts/usages/{mail_account_id}",
|
99
|
+
data=None,
|
100
|
+
query_parameters={
|
101
|
+
"timestamp": timestamp,
|
102
|
+
"time_unit": time_unit,
|
103
|
+
},
|
104
|
+
).json
|
105
|
+
]
|
@@ -0,0 +1,79 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional, List
|
3
|
+
|
4
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
5
|
+
|
6
|
+
|
7
|
+
class MailAliases(Resource):
|
8
|
+
def create_mail_alias(
|
9
|
+
self,
|
10
|
+
request: models.MailAliasCreateRequest,
|
11
|
+
) -> models.MailAliasResource:
|
12
|
+
return models.MailAliasResource.construct(
|
13
|
+
**self.api_connector.send_or_fail(
|
14
|
+
"POST",
|
15
|
+
"/api/v1/mail-aliases",
|
16
|
+
data=request.dict(),
|
17
|
+
query_parameters={},
|
18
|
+
).json
|
19
|
+
)
|
20
|
+
|
21
|
+
def list_mail_aliases(
|
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.MailAliasResource]:
|
29
|
+
return [
|
30
|
+
models.MailAliasResource.construct(**model)
|
31
|
+
for model in self.api_connector.send_or_fail(
|
32
|
+
"GET",
|
33
|
+
"/api/v1/mail-aliases",
|
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_mail_alias(
|
45
|
+
self,
|
46
|
+
*,
|
47
|
+
id_: int,
|
48
|
+
) -> models.MailAliasResource:
|
49
|
+
return models.MailAliasResource.construct(
|
50
|
+
**self.api_connector.send_or_fail(
|
51
|
+
"GET", f"/api/v1/mail-aliases/{id_}", data=None, query_parameters={}
|
52
|
+
).json
|
53
|
+
)
|
54
|
+
|
55
|
+
def update_mail_alias(
|
56
|
+
self,
|
57
|
+
request: models.MailAliasUpdateRequest,
|
58
|
+
*,
|
59
|
+
id_: int,
|
60
|
+
) -> models.MailAliasResource:
|
61
|
+
return models.MailAliasResource.construct(
|
62
|
+
**self.api_connector.send_or_fail(
|
63
|
+
"PATCH",
|
64
|
+
f"/api/v1/mail-aliases/{id_}",
|
65
|
+
data=request.dict(exclude_unset=True),
|
66
|
+
query_parameters={},
|
67
|
+
).json
|
68
|
+
)
|
69
|
+
|
70
|
+
def delete_mail_alias(
|
71
|
+
self,
|
72
|
+
*,
|
73
|
+
id_: int,
|
74
|
+
) -> models.DetailMessage:
|
75
|
+
return models.DetailMessage.construct(
|
76
|
+
**self.api_connector.send_or_fail(
|
77
|
+
"DELETE", f"/api/v1/mail-aliases/{id_}", data=None, query_parameters={}
|
78
|
+
).json
|
79
|
+
)
|
@@ -0,0 +1,79 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional, List
|
3
|
+
|
4
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
5
|
+
|
6
|
+
|
7
|
+
class MailDomains(Resource):
|
8
|
+
def create_mail_domain(
|
9
|
+
self,
|
10
|
+
request: models.MailDomainCreateRequest,
|
11
|
+
) -> models.MailDomainResource:
|
12
|
+
return models.MailDomainResource.construct(
|
13
|
+
**self.api_connector.send_or_fail(
|
14
|
+
"POST",
|
15
|
+
"/api/v1/mail-domains",
|
16
|
+
data=request.dict(),
|
17
|
+
query_parameters={},
|
18
|
+
).json
|
19
|
+
)
|
20
|
+
|
21
|
+
def list_mail_domains(
|
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.MailDomainResource]:
|
29
|
+
return [
|
30
|
+
models.MailDomainResource.construct(**model)
|
31
|
+
for model in self.api_connector.send_or_fail(
|
32
|
+
"GET",
|
33
|
+
"/api/v1/mail-domains",
|
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_mail_domain(
|
45
|
+
self,
|
46
|
+
*,
|
47
|
+
id_: int,
|
48
|
+
) -> models.MailDomainResource:
|
49
|
+
return models.MailDomainResource.construct(
|
50
|
+
**self.api_connector.send_or_fail(
|
51
|
+
"GET", f"/api/v1/mail-domains/{id_}", data=None, query_parameters={}
|
52
|
+
).json
|
53
|
+
)
|
54
|
+
|
55
|
+
def update_mail_domain(
|
56
|
+
self,
|
57
|
+
request: models.MailDomainUpdateRequest,
|
58
|
+
*,
|
59
|
+
id_: int,
|
60
|
+
) -> models.MailDomainResource:
|
61
|
+
return models.MailDomainResource.construct(
|
62
|
+
**self.api_connector.send_or_fail(
|
63
|
+
"PATCH",
|
64
|
+
f"/api/v1/mail-domains/{id_}",
|
65
|
+
data=request.dict(exclude_unset=True),
|
66
|
+
query_parameters={},
|
67
|
+
).json
|
68
|
+
)
|
69
|
+
|
70
|
+
def delete_mail_domain(
|
71
|
+
self,
|
72
|
+
*,
|
73
|
+
id_: int,
|
74
|
+
) -> models.DetailMessage:
|
75
|
+
return models.DetailMessage.construct(
|
76
|
+
**self.api_connector.send_or_fail(
|
77
|
+
"DELETE", f"/api/v1/mail-domains/{id_}", data=None, query_parameters={}
|
78
|
+
).json
|
79
|
+
)
|
@@ -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 MailHostnames(Resource):
|
8
|
+
def create_mail_hostname(
|
9
|
+
self,
|
10
|
+
request: models.MailHostnameCreateRequest,
|
11
|
+
) -> models.MailHostnameResource:
|
12
|
+
return models.MailHostnameResource.construct(
|
13
|
+
**self.api_connector.send_or_fail(
|
14
|
+
"POST",
|
15
|
+
"/api/v1/mail-hostnames",
|
16
|
+
data=request.dict(),
|
17
|
+
query_parameters={},
|
18
|
+
).json
|
19
|
+
)
|
20
|
+
|
21
|
+
def list_mail_hostnames(
|
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.MailHostnameResource]:
|
29
|
+
return [
|
30
|
+
models.MailHostnameResource.construct(**model)
|
31
|
+
for model in self.api_connector.send_or_fail(
|
32
|
+
"GET",
|
33
|
+
"/api/v1/mail-hostnames",
|
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_mail_hostname(
|
45
|
+
self,
|
46
|
+
*,
|
47
|
+
id_: int,
|
48
|
+
) -> models.MailHostnameResource:
|
49
|
+
return models.MailHostnameResource.construct(
|
50
|
+
**self.api_connector.send_or_fail(
|
51
|
+
"GET", f"/api/v1/mail-hostnames/{id_}", data=None, query_parameters={}
|
52
|
+
).json
|
53
|
+
)
|
54
|
+
|
55
|
+
def update_mail_hostname(
|
56
|
+
self,
|
57
|
+
request: models.MailHostnameUpdateRequest,
|
58
|
+
*,
|
59
|
+
id_: int,
|
60
|
+
) -> models.MailHostnameResource:
|
61
|
+
return models.MailHostnameResource.construct(
|
62
|
+
**self.api_connector.send_or_fail(
|
63
|
+
"PATCH",
|
64
|
+
f"/api/v1/mail-hostnames/{id_}",
|
65
|
+
data=request.dict(exclude_unset=True),
|
66
|
+
query_parameters={},
|
67
|
+
).json
|
68
|
+
)
|
69
|
+
|
70
|
+
def delete_mail_hostname(
|
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/mail-hostnames/{id_}",
|
79
|
+
data=None,
|
80
|
+
query_parameters={},
|
81
|
+
).json
|
82
|
+
)
|
@@ -0,0 +1,53 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional, List
|
3
|
+
|
4
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
5
|
+
|
6
|
+
|
7
|
+
class Malwares(Resource):
|
8
|
+
def list_malwares(
|
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.MalwareResource]:
|
16
|
+
return [
|
17
|
+
models.MalwareResource.construct(**model)
|
18
|
+
for model in self.api_connector.send_or_fail(
|
19
|
+
"GET",
|
20
|
+
"/api/v1/malwares",
|
21
|
+
data=None,
|
22
|
+
query_parameters={
|
23
|
+
"skip": skip,
|
24
|
+
"limit": limit,
|
25
|
+
"filter": filter_,
|
26
|
+
"sort": sort,
|
27
|
+
},
|
28
|
+
).json
|
29
|
+
]
|
30
|
+
|
31
|
+
def list_malwares_for_unix_users(
|
32
|
+
self,
|
33
|
+
*,
|
34
|
+
unix_user_id: int,
|
35
|
+
skip: Optional[int] = None,
|
36
|
+
limit: Optional[int] = None,
|
37
|
+
filter_: Optional[List[str]] = None,
|
38
|
+
sort: Optional[List[str]] = None,
|
39
|
+
) -> list[models.MalwareResource]:
|
40
|
+
return [
|
41
|
+
models.MalwareResource.construct(**model)
|
42
|
+
for model in self.api_connector.send_or_fail(
|
43
|
+
"GET",
|
44
|
+
f"/api/v1/malwares/{unix_user_id}",
|
45
|
+
data=None,
|
46
|
+
query_parameters={
|
47
|
+
"skip": skip,
|
48
|
+
"limit": limit,
|
49
|
+
"filter": filter_,
|
50
|
+
"sort": sort,
|
51
|
+
},
|
52
|
+
).json
|
53
|
+
]
|
@@ -0,0 +1,56 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional, List
|
3
|
+
|
4
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
5
|
+
|
6
|
+
|
7
|
+
class MariaDBEncryptionKeys(Resource):
|
8
|
+
def create_mariadb_encryption_key(
|
9
|
+
self,
|
10
|
+
request: models.MariaDBEncryptionKeyCreateRequest,
|
11
|
+
) -> models.MariaDBEncryptionKeyResource:
|
12
|
+
return models.MariaDBEncryptionKeyResource.construct(
|
13
|
+
**self.api_connector.send_or_fail(
|
14
|
+
"POST",
|
15
|
+
"/api/v1/mariadb-encryption-keys",
|
16
|
+
data=request.dict(),
|
17
|
+
query_parameters={},
|
18
|
+
).json
|
19
|
+
)
|
20
|
+
|
21
|
+
def list_mariadb_encryption_keys(
|
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.MariaDBEncryptionKeyResource]:
|
29
|
+
return [
|
30
|
+
models.MariaDBEncryptionKeyResource.construct(**model)
|
31
|
+
for model in self.api_connector.send_or_fail(
|
32
|
+
"GET",
|
33
|
+
"/api/v1/mariadb-encryption-keys",
|
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_mariadb_encryption_key(
|
45
|
+
self,
|
46
|
+
*,
|
47
|
+
id_: int,
|
48
|
+
) -> models.MariaDBEncryptionKeyResource:
|
49
|
+
return models.MariaDBEncryptionKeyResource.construct(
|
50
|
+
**self.api_connector.send_or_fail(
|
51
|
+
"GET",
|
52
|
+
f"/api/v1/mariadb-encryption-keys/{id_}",
|
53
|
+
data=None,
|
54
|
+
query_parameters={},
|
55
|
+
).json
|
56
|
+
)
|
@@ -0,0 +1,74 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional, List
|
3
|
+
|
4
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
5
|
+
|
6
|
+
|
7
|
+
class NodeAddOns(Resource):
|
8
|
+
def create_node_add_on(
|
9
|
+
self,
|
10
|
+
request: models.NodeAddOnCreateRequest,
|
11
|
+
) -> models.TaskCollectionResource:
|
12
|
+
return models.TaskCollectionResource.construct(
|
13
|
+
**self.api_connector.send_or_fail(
|
14
|
+
"POST",
|
15
|
+
"/api/v1/node-add-ons",
|
16
|
+
data=request.dict(),
|
17
|
+
query_parameters={},
|
18
|
+
).json
|
19
|
+
)
|
20
|
+
|
21
|
+
def list_node_add_ons(
|
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.NodeAddOnResource]:
|
29
|
+
return [
|
30
|
+
models.NodeAddOnResource.construct(**model)
|
31
|
+
for model in self.api_connector.send_or_fail(
|
32
|
+
"GET",
|
33
|
+
"/api/v1/node-add-ons",
|
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 get_node_add_on_products(
|
45
|
+
self,
|
46
|
+
) -> list[models.NodeAddOnProduct]:
|
47
|
+
return [
|
48
|
+
models.NodeAddOnProduct.construct(**model)
|
49
|
+
for model in self.api_connector.send_or_fail(
|
50
|
+
"GET", "/api/v1/node-add-ons/products", data=None, query_parameters={}
|
51
|
+
).json
|
52
|
+
]
|
53
|
+
|
54
|
+
def read_node_add_on(
|
55
|
+
self,
|
56
|
+
*,
|
57
|
+
id_: int,
|
58
|
+
) -> models.NodeAddOnResource:
|
59
|
+
return models.NodeAddOnResource.construct(
|
60
|
+
**self.api_connector.send_or_fail(
|
61
|
+
"GET", f"/api/v1/node-add-ons/{id_}", data=None, query_parameters={}
|
62
|
+
).json
|
63
|
+
)
|
64
|
+
|
65
|
+
def delete_node_add_on(
|
66
|
+
self,
|
67
|
+
*,
|
68
|
+
id_: int,
|
69
|
+
) -> models.DetailMessage:
|
70
|
+
return models.DetailMessage.construct(
|
71
|
+
**self.api_connector.send_or_fail(
|
72
|
+
"DELETE", f"/api/v1/node-add-ons/{id_}", data=None, query_parameters={}
|
73
|
+
).json
|
74
|
+
)
|
@@ -0,0 +1,112 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional, List
|
3
|
+
|
4
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
5
|
+
|
6
|
+
|
7
|
+
class Nodes(Resource):
|
8
|
+
def create_node(
|
9
|
+
self,
|
10
|
+
request: models.NodeCreateRequest,
|
11
|
+
*,
|
12
|
+
callback_url: Optional[str] = None,
|
13
|
+
) -> models.TaskCollectionResource:
|
14
|
+
return models.TaskCollectionResource.construct(
|
15
|
+
**self.api_connector.send_or_fail(
|
16
|
+
"POST",
|
17
|
+
"/api/v1/nodes",
|
18
|
+
data=request.dict(),
|
19
|
+
query_parameters={
|
20
|
+
"callback_url": callback_url,
|
21
|
+
},
|
22
|
+
).json
|
23
|
+
)
|
24
|
+
|
25
|
+
def list_nodes(
|
26
|
+
self,
|
27
|
+
*,
|
28
|
+
skip: Optional[int] = None,
|
29
|
+
limit: Optional[int] = None,
|
30
|
+
filter_: Optional[List[str]] = None,
|
31
|
+
sort: Optional[List[str]] = None,
|
32
|
+
) -> list[models.NodeResource]:
|
33
|
+
return [
|
34
|
+
models.NodeResource.construct(**model)
|
35
|
+
for model in self.api_connector.send_or_fail(
|
36
|
+
"GET",
|
37
|
+
"/api/v1/nodes",
|
38
|
+
data=None,
|
39
|
+
query_parameters={
|
40
|
+
"skip": skip,
|
41
|
+
"limit": limit,
|
42
|
+
"filter": filter_,
|
43
|
+
"sort": sort,
|
44
|
+
},
|
45
|
+
).json
|
46
|
+
]
|
47
|
+
|
48
|
+
def get_node_products(
|
49
|
+
self,
|
50
|
+
) -> list[models.NodeProduct]:
|
51
|
+
return [
|
52
|
+
models.NodeProduct.construct(**model)
|
53
|
+
for model in self.api_connector.send_or_fail(
|
54
|
+
"GET", "/api/v1/nodes/products", data=None, query_parameters={}
|
55
|
+
).json
|
56
|
+
]
|
57
|
+
|
58
|
+
def read_node(
|
59
|
+
self,
|
60
|
+
*,
|
61
|
+
id_: int,
|
62
|
+
) -> models.NodeResource:
|
63
|
+
return models.NodeResource.construct(
|
64
|
+
**self.api_connector.send_or_fail(
|
65
|
+
"GET", f"/api/v1/nodes/{id_}", data=None, query_parameters={}
|
66
|
+
).json
|
67
|
+
)
|
68
|
+
|
69
|
+
def update_node(
|
70
|
+
self,
|
71
|
+
request: models.NodeUpdateRequest,
|
72
|
+
*,
|
73
|
+
id_: int,
|
74
|
+
) -> models.NodeResource:
|
75
|
+
return models.NodeResource.construct(
|
76
|
+
**self.api_connector.send_or_fail(
|
77
|
+
"PATCH",
|
78
|
+
f"/api/v1/nodes/{id_}",
|
79
|
+
data=request.dict(exclude_unset=True),
|
80
|
+
query_parameters={},
|
81
|
+
).json
|
82
|
+
)
|
83
|
+
|
84
|
+
def delete_node(
|
85
|
+
self,
|
86
|
+
*,
|
87
|
+
id_: int,
|
88
|
+
) -> models.DetailMessage:
|
89
|
+
return models.DetailMessage.construct(
|
90
|
+
**self.api_connector.send_or_fail(
|
91
|
+
"DELETE", f"/api/v1/nodes/{id_}", data=None, query_parameters={}
|
92
|
+
).json
|
93
|
+
)
|
94
|
+
|
95
|
+
def upgrade_downgrade_node(
|
96
|
+
self,
|
97
|
+
*,
|
98
|
+
id_: int,
|
99
|
+
callback_url: Optional[str] = None,
|
100
|
+
product: str,
|
101
|
+
) -> models.TaskCollectionResource:
|
102
|
+
return models.TaskCollectionResource.construct(
|
103
|
+
**self.api_connector.send_or_fail(
|
104
|
+
"POST",
|
105
|
+
f"/api/v1/nodes/{id_}/xgrade",
|
106
|
+
data=None,
|
107
|
+
query_parameters={
|
108
|
+
"callback_url": callback_url,
|
109
|
+
"product": product,
|
110
|
+
},
|
111
|
+
).json
|
112
|
+
)
|