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,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 CustomConfigs(Resource):
|
8
|
+
def create_custom_config(
|
9
|
+
self,
|
10
|
+
request: models.CustomConfigCreateRequest,
|
11
|
+
) -> models.CustomConfigResource:
|
12
|
+
return models.CustomConfigResource.construct(
|
13
|
+
**self.api_connector.send_or_fail(
|
14
|
+
"POST",
|
15
|
+
"/api/v1/custom-configs",
|
16
|
+
data=request.dict(),
|
17
|
+
query_parameters={},
|
18
|
+
).json
|
19
|
+
)
|
20
|
+
|
21
|
+
def list_custom_configs(
|
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.CustomConfigResource]:
|
29
|
+
return [
|
30
|
+
models.CustomConfigResource.construct(**model)
|
31
|
+
for model in self.api_connector.send_or_fail(
|
32
|
+
"GET",
|
33
|
+
"/api/v1/custom-configs",
|
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_custom_config(
|
45
|
+
self,
|
46
|
+
*,
|
47
|
+
id_: int,
|
48
|
+
) -> models.CustomConfigResource:
|
49
|
+
return models.CustomConfigResource.construct(
|
50
|
+
**self.api_connector.send_or_fail(
|
51
|
+
"GET", f"/api/v1/custom-configs/{id_}", data=None, query_parameters={}
|
52
|
+
).json
|
53
|
+
)
|
54
|
+
|
55
|
+
def update_custom_config(
|
56
|
+
self,
|
57
|
+
request: models.CustomConfigUpdateRequest,
|
58
|
+
*,
|
59
|
+
id_: int,
|
60
|
+
) -> models.CustomConfigResource:
|
61
|
+
return models.CustomConfigResource.construct(
|
62
|
+
**self.api_connector.send_or_fail(
|
63
|
+
"PATCH",
|
64
|
+
f"/api/v1/custom-configs/{id_}",
|
65
|
+
data=request.dict(exclude_unset=True),
|
66
|
+
query_parameters={},
|
67
|
+
).json
|
68
|
+
)
|
69
|
+
|
70
|
+
def delete_custom_config(
|
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/custom-configs/{id_}",
|
79
|
+
data=None,
|
80
|
+
query_parameters={},
|
81
|
+
).json
|
82
|
+
)
|
@@ -0,0 +1,97 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional, List
|
3
|
+
|
4
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
5
|
+
|
6
|
+
|
7
|
+
class Customers(Resource):
|
8
|
+
def list_customers(
|
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.CustomerResource]:
|
16
|
+
return [
|
17
|
+
models.CustomerResource.construct(**model)
|
18
|
+
for model in self.api_connector.send_or_fail(
|
19
|
+
"GET",
|
20
|
+
"/api/v1/customers",
|
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 read_customer(
|
32
|
+
self,
|
33
|
+
*,
|
34
|
+
id_: int,
|
35
|
+
) -> models.CustomerResource:
|
36
|
+
return models.CustomerResource.construct(
|
37
|
+
**self.api_connector.send_or_fail(
|
38
|
+
"GET", f"/api/v1/customers/{id_}", data=None, query_parameters={}
|
39
|
+
).json
|
40
|
+
)
|
41
|
+
|
42
|
+
def list_ip_addresses_for_customer(
|
43
|
+
self,
|
44
|
+
*,
|
45
|
+
id_: int,
|
46
|
+
) -> models.CustomerIPAddresses:
|
47
|
+
return models.CustomerIPAddresses.construct(
|
48
|
+
**self.api_connector.send_or_fail(
|
49
|
+
"GET",
|
50
|
+
f"/api/v1/customers/{id_}/ip-addresses",
|
51
|
+
data=None,
|
52
|
+
query_parameters={},
|
53
|
+
).json
|
54
|
+
)
|
55
|
+
|
56
|
+
def create_ip_address_for_customer(
|
57
|
+
self,
|
58
|
+
request: models.CustomerIPAddressCreateRequest,
|
59
|
+
*,
|
60
|
+
id_: int,
|
61
|
+
) -> models.TaskCollectionResource:
|
62
|
+
return models.TaskCollectionResource.construct(
|
63
|
+
**self.api_connector.send_or_fail(
|
64
|
+
"POST",
|
65
|
+
f"/api/v1/customers/{id_}/ip-addresses",
|
66
|
+
data=request.dict(),
|
67
|
+
query_parameters={},
|
68
|
+
).json
|
69
|
+
)
|
70
|
+
|
71
|
+
def delete_ip_address_for_customer(
|
72
|
+
self,
|
73
|
+
*,
|
74
|
+
id_: int,
|
75
|
+
ip_address: str,
|
76
|
+
) -> models.TaskCollectionResource:
|
77
|
+
return models.TaskCollectionResource.construct(
|
78
|
+
**self.api_connector.send_or_fail(
|
79
|
+
"DELETE",
|
80
|
+
f"/api/v1/customers/{id_}/ip-addresses/{ip_address}",
|
81
|
+
data=None,
|
82
|
+
query_parameters={},
|
83
|
+
).json
|
84
|
+
)
|
85
|
+
|
86
|
+
def get_ip_addresses_products_for_customers(
|
87
|
+
self,
|
88
|
+
) -> list[models.IPAddressProduct]:
|
89
|
+
return [
|
90
|
+
models.IPAddressProduct.construct(**model)
|
91
|
+
for model in self.api_connector.send_or_fail(
|
92
|
+
"GET",
|
93
|
+
"/api/v1/customers/ip-addresses/products",
|
94
|
+
data=None,
|
95
|
+
query_parameters={},
|
96
|
+
).json
|
97
|
+
]
|
@@ -0,0 +1,76 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional, List
|
3
|
+
|
4
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
5
|
+
|
6
|
+
|
7
|
+
class Daemons(Resource):
|
8
|
+
def create_daemon(
|
9
|
+
self,
|
10
|
+
request: models.DaemonCreateRequest,
|
11
|
+
) -> models.DaemonResource:
|
12
|
+
return models.DaemonResource.construct(
|
13
|
+
**self.api_connector.send_or_fail(
|
14
|
+
"POST", "/api/v1/daemons", data=request.dict(), query_parameters={}
|
15
|
+
).json
|
16
|
+
)
|
17
|
+
|
18
|
+
def list_daemons(
|
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.DaemonResource]:
|
26
|
+
return [
|
27
|
+
models.DaemonResource.construct(**model)
|
28
|
+
for model in self.api_connector.send_or_fail(
|
29
|
+
"GET",
|
30
|
+
"/api/v1/daemons",
|
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_daemon(
|
42
|
+
self,
|
43
|
+
*,
|
44
|
+
id_: int,
|
45
|
+
) -> models.DaemonResource:
|
46
|
+
return models.DaemonResource.construct(
|
47
|
+
**self.api_connector.send_or_fail(
|
48
|
+
"GET", f"/api/v1/daemons/{id_}", data=None, query_parameters={}
|
49
|
+
).json
|
50
|
+
)
|
51
|
+
|
52
|
+
def update_daemon(
|
53
|
+
self,
|
54
|
+
request: models.DaemonUpdateRequest,
|
55
|
+
*,
|
56
|
+
id_: int,
|
57
|
+
) -> models.DaemonResource:
|
58
|
+
return models.DaemonResource.construct(
|
59
|
+
**self.api_connector.send_or_fail(
|
60
|
+
"PATCH",
|
61
|
+
f"/api/v1/daemons/{id_}",
|
62
|
+
data=request.dict(exclude_unset=True),
|
63
|
+
query_parameters={},
|
64
|
+
).json
|
65
|
+
)
|
66
|
+
|
67
|
+
def delete_daemon(
|
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/daemons/{id_}", data=None, query_parameters={}
|
75
|
+
).json
|
76
|
+
)
|
@@ -0,0 +1,66 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional, List
|
3
|
+
|
4
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
5
|
+
|
6
|
+
|
7
|
+
class DatabaseUserGrants(Resource):
|
8
|
+
def create_database_user_grant(
|
9
|
+
self,
|
10
|
+
request: models.DatabaseUserGrantCreateRequest,
|
11
|
+
) -> models.DatabaseUserGrantResource:
|
12
|
+
return models.DatabaseUserGrantResource.construct(
|
13
|
+
**self.api_connector.send_or_fail(
|
14
|
+
"POST",
|
15
|
+
"/api/v1/database-user-grants",
|
16
|
+
data=request.dict(),
|
17
|
+
query_parameters={},
|
18
|
+
).json
|
19
|
+
)
|
20
|
+
|
21
|
+
def list_database_user_grants(
|
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.DatabaseUserGrantResource]:
|
29
|
+
return [
|
30
|
+
models.DatabaseUserGrantResource.construct(**model)
|
31
|
+
for model in self.api_connector.send_or_fail(
|
32
|
+
"GET",
|
33
|
+
"/api/v1/database-user-grants",
|
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 list_database_user_grants_for_database_users(
|
45
|
+
self,
|
46
|
+
*,
|
47
|
+
database_user_id: int,
|
48
|
+
skip: Optional[int] = None,
|
49
|
+
limit: Optional[int] = None,
|
50
|
+
filter_: Optional[List[str]] = None,
|
51
|
+
sort: Optional[List[str]] = None,
|
52
|
+
) -> list[models.DatabaseUserGrantResource]:
|
53
|
+
return [
|
54
|
+
models.DatabaseUserGrantResource.construct(**model)
|
55
|
+
for model in self.api_connector.send_or_fail(
|
56
|
+
"GET",
|
57
|
+
f"/api/v1/database-user-grants/{database_user_id}",
|
58
|
+
data=None,
|
59
|
+
query_parameters={
|
60
|
+
"skip": skip,
|
61
|
+
"limit": limit,
|
62
|
+
"filter": filter_,
|
63
|
+
"sort": sort,
|
64
|
+
},
|
65
|
+
).json
|
66
|
+
]
|
@@ -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 DatabaseUsers(Resource):
|
8
|
+
def create_database_user(
|
9
|
+
self,
|
10
|
+
request: models.DatabaseUserCreateRequest,
|
11
|
+
) -> models.DatabaseUserResource:
|
12
|
+
return models.DatabaseUserResource.construct(
|
13
|
+
**self.api_connector.send_or_fail(
|
14
|
+
"POST",
|
15
|
+
"/api/v1/database-users",
|
16
|
+
data=request.dict(),
|
17
|
+
query_parameters={},
|
18
|
+
).json
|
19
|
+
)
|
20
|
+
|
21
|
+
def list_database_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.DatabaseUserResource]:
|
29
|
+
return [
|
30
|
+
models.DatabaseUserResource.construct(**model)
|
31
|
+
for model in self.api_connector.send_or_fail(
|
32
|
+
"GET",
|
33
|
+
"/api/v1/database-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_database_user(
|
45
|
+
self,
|
46
|
+
*,
|
47
|
+
id_: int,
|
48
|
+
) -> models.DatabaseUserResource:
|
49
|
+
return models.DatabaseUserResource.construct(
|
50
|
+
**self.api_connector.send_or_fail(
|
51
|
+
"GET", f"/api/v1/database-users/{id_}", data=None, query_parameters={}
|
52
|
+
).json
|
53
|
+
)
|
54
|
+
|
55
|
+
def update_database_user(
|
56
|
+
self,
|
57
|
+
request: models.DatabaseUserUpdateRequest,
|
58
|
+
*,
|
59
|
+
id_: int,
|
60
|
+
) -> models.DatabaseUserResource:
|
61
|
+
return models.DatabaseUserResource.construct(
|
62
|
+
**self.api_connector.send_or_fail(
|
63
|
+
"PATCH",
|
64
|
+
f"/api/v1/database-users/{id_}",
|
65
|
+
data=request.dict(exclude_unset=True),
|
66
|
+
query_parameters={},
|
67
|
+
).json
|
68
|
+
)
|
69
|
+
|
70
|
+
def delete_database_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/database-users/{id_}",
|
79
|
+
data=None,
|
80
|
+
query_parameters={},
|
81
|
+
).json
|
82
|
+
)
|
@@ -0,0 +1,140 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional, List
|
3
|
+
|
4
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
5
|
+
|
6
|
+
|
7
|
+
class Databases(Resource):
|
8
|
+
def create_database(
|
9
|
+
self,
|
10
|
+
request: models.DatabaseCreateRequest,
|
11
|
+
) -> models.DatabaseResource:
|
12
|
+
return models.DatabaseResource.construct(
|
13
|
+
**self.api_connector.send_or_fail(
|
14
|
+
"POST", "/api/v1/databases", data=request.dict(), query_parameters={}
|
15
|
+
).json
|
16
|
+
)
|
17
|
+
|
18
|
+
def list_databases(
|
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.DatabaseResource]:
|
26
|
+
return [
|
27
|
+
models.DatabaseResource.construct(**model)
|
28
|
+
for model in self.api_connector.send_or_fail(
|
29
|
+
"GET",
|
30
|
+
"/api/v1/databases",
|
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_database(
|
42
|
+
self,
|
43
|
+
*,
|
44
|
+
id_: int,
|
45
|
+
) -> models.DatabaseResource:
|
46
|
+
return models.DatabaseResource.construct(
|
47
|
+
**self.api_connector.send_or_fail(
|
48
|
+
"GET", f"/api/v1/databases/{id_}", data=None, query_parameters={}
|
49
|
+
).json
|
50
|
+
)
|
51
|
+
|
52
|
+
def update_database(
|
53
|
+
self,
|
54
|
+
request: models.DatabaseUpdateRequest,
|
55
|
+
*,
|
56
|
+
id_: int,
|
57
|
+
) -> models.DatabaseResource:
|
58
|
+
return models.DatabaseResource.construct(
|
59
|
+
**self.api_connector.send_or_fail(
|
60
|
+
"PATCH",
|
61
|
+
f"/api/v1/databases/{id_}",
|
62
|
+
data=request.dict(exclude_unset=True),
|
63
|
+
query_parameters={},
|
64
|
+
).json
|
65
|
+
)
|
66
|
+
|
67
|
+
def delete_database(
|
68
|
+
self,
|
69
|
+
*,
|
70
|
+
id_: int,
|
71
|
+
delete_on_cluster: Optional[bool] = None,
|
72
|
+
) -> models.DetailMessage:
|
73
|
+
return models.DetailMessage.construct(
|
74
|
+
**self.api_connector.send_or_fail(
|
75
|
+
"DELETE",
|
76
|
+
f"/api/v1/databases/{id_}",
|
77
|
+
data=None,
|
78
|
+
query_parameters={
|
79
|
+
"delete_on_cluster": delete_on_cluster,
|
80
|
+
},
|
81
|
+
).json
|
82
|
+
)
|
83
|
+
|
84
|
+
def compare_databases(
|
85
|
+
self,
|
86
|
+
*,
|
87
|
+
left_database_id: int,
|
88
|
+
right_database_id: int,
|
89
|
+
) -> models.DatabaseComparison:
|
90
|
+
return models.DatabaseComparison.construct(
|
91
|
+
**self.api_connector.send_or_fail(
|
92
|
+
"GET",
|
93
|
+
f"/api/v1/databases/{left_database_id}/comparison",
|
94
|
+
data=None,
|
95
|
+
query_parameters={
|
96
|
+
"right_database_id": right_database_id,
|
97
|
+
},
|
98
|
+
).json
|
99
|
+
)
|
100
|
+
|
101
|
+
def sync_databases(
|
102
|
+
self,
|
103
|
+
*,
|
104
|
+
left_database_id: int,
|
105
|
+
right_database_id: int,
|
106
|
+
callback_url: Optional[str] = None,
|
107
|
+
exclude_tables_names: Optional[List[str]] = None,
|
108
|
+
) -> models.TaskCollectionResource:
|
109
|
+
return models.TaskCollectionResource.construct(
|
110
|
+
**self.api_connector.send_or_fail(
|
111
|
+
"POST",
|
112
|
+
f"/api/v1/databases/{left_database_id}/sync",
|
113
|
+
data=None,
|
114
|
+
query_parameters={
|
115
|
+
"callback_url": callback_url,
|
116
|
+
"right_database_id": right_database_id,
|
117
|
+
"exclude_tables_names": exclude_tables_names,
|
118
|
+
},
|
119
|
+
).json
|
120
|
+
)
|
121
|
+
|
122
|
+
def list_database_usages(
|
123
|
+
self,
|
124
|
+
*,
|
125
|
+
database_id: int,
|
126
|
+
timestamp: str,
|
127
|
+
time_unit: Optional[models.DatabaseUsageResource] = None,
|
128
|
+
) -> list[models.DatabaseUsageResource]:
|
129
|
+
return [
|
130
|
+
models.DatabaseUsageResource.construct(**model)
|
131
|
+
for model in self.api_connector.send_or_fail(
|
132
|
+
"GET",
|
133
|
+
f"/api/v1/databases/usages/{database_id}",
|
134
|
+
data=None,
|
135
|
+
query_parameters={
|
136
|
+
"timestamp": timestamp,
|
137
|
+
"time_unit": time_unit,
|
138
|
+
},
|
139
|
+
).json
|
140
|
+
]
|
@@ -0,0 +1,43 @@
|
|
1
|
+
from cyberfusion.CoreApiClient import models
|
2
|
+
from typing import Optional, List
|
3
|
+
from cyberfusion.CoreApiClient.interfaces import Resource
|
4
|
+
|
5
|
+
|
6
|
+
class DomainRouters(Resource):
|
7
|
+
def list_domain_routers(
|
8
|
+
self,
|
9
|
+
*,
|
10
|
+
skip: Optional[int] = None,
|
11
|
+
limit: Optional[int] = None,
|
12
|
+
filter_: Optional[List[str]] = None,
|
13
|
+
sort: Optional[List[str]] = None,
|
14
|
+
) -> list[models.DomainRouterResource]:
|
15
|
+
return [
|
16
|
+
models.DomainRouterResource.construct(**model)
|
17
|
+
for model in self.api_connector.send_or_fail(
|
18
|
+
"GET",
|
19
|
+
"/api/v1/domain-routers",
|
20
|
+
data=None,
|
21
|
+
query_parameters={
|
22
|
+
"skip": skip,
|
23
|
+
"limit": limit,
|
24
|
+
"filter": filter_,
|
25
|
+
"sort": sort,
|
26
|
+
},
|
27
|
+
).json
|
28
|
+
]
|
29
|
+
|
30
|
+
def update_domain_router(
|
31
|
+
self,
|
32
|
+
request: models.DomainRouterUpdateRequest,
|
33
|
+
*,
|
34
|
+
id_: int,
|
35
|
+
) -> models.DomainRouterResource:
|
36
|
+
return models.DomainRouterResource.construct(
|
37
|
+
**self.api_connector.send_or_fail(
|
38
|
+
"PATCH",
|
39
|
+
f"/api/v1/domain-routers/{id_}",
|
40
|
+
data=request.dict(exclude_unset=True),
|
41
|
+
query_parameters={},
|
42
|
+
).json
|
43
|
+
)
|
@@ -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 FirewallGroups(Resource):
|
8
|
+
def create_firewall_group(
|
9
|
+
self,
|
10
|
+
request: models.FirewallGroupCreateRequest,
|
11
|
+
) -> models.FirewallGroupResource:
|
12
|
+
return models.FirewallGroupResource.construct(
|
13
|
+
**self.api_connector.send_or_fail(
|
14
|
+
"POST",
|
15
|
+
"/api/v1/firewall-groups",
|
16
|
+
data=request.dict(),
|
17
|
+
query_parameters={},
|
18
|
+
).json
|
19
|
+
)
|
20
|
+
|
21
|
+
def list_firewall_groups(
|
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.FirewallGroupResource]:
|
29
|
+
return [
|
30
|
+
models.FirewallGroupResource.construct(**model)
|
31
|
+
for model in self.api_connector.send_or_fail(
|
32
|
+
"GET",
|
33
|
+
"/api/v1/firewall-groups",
|
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_group(
|
45
|
+
self,
|
46
|
+
*,
|
47
|
+
id_: int,
|
48
|
+
) -> models.FirewallGroupResource:
|
49
|
+
return models.FirewallGroupResource.construct(
|
50
|
+
**self.api_connector.send_or_fail(
|
51
|
+
"GET", f"/api/v1/firewall-groups/{id_}", data=None, query_parameters={}
|
52
|
+
).json
|
53
|
+
)
|
54
|
+
|
55
|
+
def update_firewall_group(
|
56
|
+
self,
|
57
|
+
request: models.FirewallGroupUpdateRequest,
|
58
|
+
*,
|
59
|
+
id_: int,
|
60
|
+
) -> models.FirewallGroupResource:
|
61
|
+
return models.FirewallGroupResource.construct(
|
62
|
+
**self.api_connector.send_or_fail(
|
63
|
+
"PATCH",
|
64
|
+
f"/api/v1/firewall-groups/{id_}",
|
65
|
+
data=request.dict(exclude_unset=True),
|
66
|
+
query_parameters={},
|
67
|
+
).json
|
68
|
+
)
|
69
|
+
|
70
|
+
def delete_firewall_group(
|
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/firewall-groups/{id_}",
|
79
|
+
data=None,
|
80
|
+
query_parameters={},
|
81
|
+
).json
|
82
|
+
)
|