8 Commits
1.0.0 ... 1.3.2

Author SHA1 Message Date
fac66abef6 1.3.2 2026-01-29 21:27:09 +07:00
56db28cb37 1.3.1 2025-12-05 20:51:29 +07:00
1703d1ed33 1.3.0 2025-12-02 10:48:38 +03:00
9eac1da63f 1.2.2 2025-10-28 17:56:12 +07:00
c4d0acfba2 1.2.1 2025-10-16 19:08:06 +07:00
a63ff017af 1.2.0 2025-07-21 20:27:59 +07:00
9f2c3dc81e 1.1.0 2025-06-30 15:33:01 +03:00
caf367262c 1.0.1 2025-06-06 08:39:05 +03:00
439 changed files with 12532 additions and 301 deletions

View File

@@ -23,3 +23,10 @@ repos:
- id: flake8
name: flake8 (2/2)
exclude: src/dynamix_sdk/types\.py|.*__init__\.py|.*_api\.py
- repo: local
hooks:
- id: pytest-local-tests
name: pytest local tests
entry: pytest tests/local
language: system
pass_filenames: false

View File

@@ -1,28 +1,17 @@
# Список изменений в версии 1.0.0
# Список изменений в версии 1.3.2
## Добавлено
### Глобально
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BPYS-3 | Добавлена возможность авторизации через DECS3O. |
| BPYS-7 | Добавлена возможность авторизации через BVS. |
### Функциональный интерфейс
## Удалено
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BPYS-5 | Добавлена функция API `/system/usermanager/whoami`. |
| BPYS-4 | Добавлена функция API `/cloudapi/compute/get`. |
| BPYS-6 | Добавлена функция API `/cloudapi/kvmx86/create`. |
| BPYS-12 | Добавлена функция API `/cloudapi/compute/delete`. |
| BPYS-21 | Добавлена функция API `/cloudapi/user/get`. |
| BPYS-15 | Добавлена функция API `/cloudapi/compute/update`. |
| BPYS-29 | Добавлена функция API `/cloudapi/account/updateUser`. |
| BPYS-33 | Добавлена функция API `/cloudapi/account/enable`. |
| BPYS-32 | Добавлена функция API `/cloudapi/account/disable`. |
| BPYS-45 | Добавлена функция API `/cloudapi/rg/list`. |
| BPYS-20 | Добавлена функция API `/cloudapi/account/addUser`. |
| BPYS-30 | Добавлена функция API `/cloudapi/account/deleteUser`. |
| BPYS-51 | Добавлена функция API `/cloudapi/rg/get`. |
| BPYS-52 | Добавлена функция API `/cloudapi/rg/create`. |
| BPYS-35 | Добавлена функция API `/cloudapi/compute/list`. |
## Исправлено
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BPYS-990 | Функции `cloudapi.kvmx86.create`, `cloudapi.kvmx86.create_blank`: вызов функций завершался ошибкой валидации поля `sdn_logical_port_id` для модели `InterfaceAPIParamsNM` при передаче данных в параметр `interfaces`. |

586
README.md
View File

@@ -15,10 +15,12 @@
- [Ошибки и исключения (exceptions)](#ошибки-и-исключения-exceptions)
- [Ошибки валидации данных](#ошибки-валидации-данных)
- [Ошибки HTTP](#ошибки-http)
- [Ошибка несовместимости c API](#ошибка-несовместимости-с-api)
- [Доступный функционал](#доступный-функционал)
- [Способы авторизации](#способы-авторизации)
- [Функции API](#функции-api)
- [Cloudapi](#cloudapi)
- [Cloudbroker](#cloudbroker)
- [System](#system)
## Описание
@@ -33,6 +35,9 @@
| Версия платформы | Версия SDK |
| --- | --- |
| 4.4.0 | 1.3.x |
| 4.4.0 build 963 | 1.2.x |
| 4.3.0 | 1.1.x |
| 4.2.0 | 1.0.x |
### Зависимости
@@ -116,6 +121,24 @@ dx = Dynamix(
</details>
<details><summary>Задание декораторов для всех вызываемых функций</summary>
```python
from dynamix_sdk import Dynamix
Dynamix(
...,
f_decorators=[decorator_1, decorator_2],
)
```
Декораторы будут применяться к вызываемым функциям SDK в обратном порядке, то есть сначала будет применяться декоратор <code>decorator_2</code>, а потом <code>decorator_1</code>.
**Важно:** декораторы должны соответствовать аннотации параметра, то есть оставлять без изменений параметры и тип возвращаемого значения функции, иначе применение декораторов приведёт к некорректной работе SDK.
</details>
<details><summary>Настройка повторных попыток при 503</summary>
По умолчанию SDK при получении кода ответа 503 производит 10 повторных попыток с интервалом 5 секунд. Данное поведение можно скорректировать:
@@ -183,6 +206,24 @@ BVSAuth(
</details>
<details><summary>Игнорирование проверки совместимости с API</summary>
**Важно:** игнорирование проверки совместимости с API может вызвать непредвиденные ошибки в работе SDK, поэтому использование данного функционала допустимо только принимая на себя всю ответственность за возможные последствия.
При игнорирование выводится только сообщение с предупреждением о несовместимости.
```python
from dynamix_sdk import Dynamix
Dynamix(
...,
ignore_api_compatibility=True,
)
```
</details>
### Функциональный интерфейс
Функциональный интерфейс предоставляет функции, соответствующие функциям API платформы.
@@ -203,14 +244,14 @@ from dynamix_sdk import Dynamix, types
dx = Dynamix(...)
data_disk_1 = types.DiskAPIParamsNM(name='data_disk_1', size=10)
data_disk_1 = types.DiskAPIParamsNM(name='data_disk_1', size_gb=10)
# /cloudapi/kvmx86/create
new_vm_id = dx.api.cloudapi.kvmx86.create(
rg_id=123,
name='new_vm',
cpu=1,
ram=1024,
cpu_count=1,
ram_size_mb=1024,
image_id=456,
data_disks=[data_disk_1],
)
@@ -230,8 +271,8 @@ dx = Dynamix(...)
new_vm_id = dx.api.cloudapi.kvmx86.create(
rg_id=123,
name='new_vm',
cpu=1,
ram=1024,
cpu_count=1,
ram_size_mb=1024,
image_id=456,
chipset=types.Chipset.Q35, # enum
numa_affinity=types.NumaAffinity.none, # enum
@@ -257,7 +298,7 @@ from dynamix_sdk import Dynamix
dx = Dynamix(...)
# /cloudapi/compute/get
get_result = dx.api.cloudapi.compute.get(compute_id=1)
get_result = dx.api.cloudapi.compute.get(vm_id=1)
print(type(get_result)) # <class '....CloudapiComputeGetResultModel'>
@@ -276,7 +317,7 @@ from dynamix_sdk import Dynamix
dx = Dynamix(...)
# /cloudapi/compute/get
vm_name = dx.api.cloudapi.compute.get(compute_id=1).name
vm_name = dx.api.cloudapi.compute.get(vm_id=1).name
```
@@ -294,7 +335,7 @@ from dynamix_sdk import Dynamix
dx = Dynamix(...)
# /cloudapi/compute/get
vm_disk1 = dx.api.cloudapi.compute.get(compute_id=1).disks[0]
vm_disk1 = dx.api.cloudapi.compute.get(vm_id=1).disks[0]
print(type(vm_disk1)) # <class '....DiskAPIResultNM'>
@@ -313,7 +354,7 @@ from dynamix_sdk import Dynamix
dx = Dynamix(...)
# /cloudapi/compute/get
vm_disk1_id = dx.api.cloudapi.compute.get(compute_id=1).disks[0].id
vm_disk1_id = dx.api.cloudapi.compute.get(vm_id=1).disks[0].id
```
@@ -331,7 +372,7 @@ from dynamix_sdk import Dynamix
dx = Dynamix(...)
# /cloudapi/compute/get
get_result = dx.api.cloudapi.compute.get(compute_id=1)
get_result = dx.api.cloudapi.compute.get(vm_id=1)
# Поле, возвращаемое платформой
print(type(get_result.created_timestamp)) # <class 'int'>
@@ -375,7 +416,7 @@ from dynamix_sdk import Dynamix
dx = Dynamix(...)
# /cloudapi/compute/delete
delete_result = dx.api.cloudapi.compute.delete(compute_id=1)
delete_result = dx.api.cloudapi.compute.delete(vm_id=1)
print(type(delete_result)) # <class '....CloudapiComputeDeleteResultBool'>
print(type(delete_result.value)) # <class 'bool'>
@@ -391,7 +432,7 @@ from dynamix_sdk import Dynamix
dx = Dynamix(...)
# /cloudapi/compute/delete
if dx.api.cloudapi.compute.delete(compute_id=1):
if dx.api.cloudapi.compute.delete(vm_id=1):
print('The VM has been deleted.')
```
@@ -458,7 +499,7 @@ dx = Dynamix(...)
vm_id = 1
try:
get_result = dx.api.cloudapi.compute.get(compute_id=vm_id)
get_result = dx.api.cloudapi.compute.get(vm_id=vm_id)
except HTTPError as e:
resp = e.response
if resp.status_code == 404:
@@ -474,6 +515,24 @@ except RequestException as e:
Подробную информацию об исключениях библиотеки **Requests** можно получить в [соответствующем разделе официальной документации Requests](https://requests.readthedocs.io/en/latest/user/quickstart/#errors-and-exceptions).
<details><summary>Использование исключения SDK</summary>
Для возможности получать дополнительную информацию о функциях SDK при ошибках HTTP-запросов, в SDK есть возможность оборачивать все исключения <code>requests.exceptions.RequestException</code> в исключение <code>dynamix_sdk.exceptions.RequestException</code>:
```python
class RequestException(Exception):
orig_exception: requests.exceptions.RequestException
func_name: str
func_kwargs: None | dict = None
```
Чтобы включить использование исключения <code>dynamix_sdk.exceptions.RequestException</code>, необходимо передать в конструкторы классов <code>Dynamix</code>, <code>DECS3OAuth</code>, <code>BVSAuth</code> параметр <code>wrap_request_exceptions=True</code>
</details>
#### Ошибка несовместимости с API
SDK производит проверку совместимости с API.
При несовместимости будет вызвано исключение `exceptions.IncompatibleAPIError`.
## Доступный функционал
### Способы авторизации
@@ -491,44 +550,545 @@ except RequestException as e:
<details><summary>account</summary>
- /cloudapi/account/addUser
- /cloudapi/account/delete
- /cloudapi/account/deleteUser
- /cloudapi/account/disable
- /cloudapi/account/enable
- /cloudapi/account/get
- /cloudapi/account/getResourceConsumption
- /cloudapi/account/list
- /cloudapi/account/listDeleted
- /cloudapi/account/restore
- /cloudapi/account/update
- /cloudapi/account/updateUser
</details>
<details><summary>audit</summary>
- /cloudapi/audit/get
- /cloudapi/audit/list
</details>
<details><summary>bservice</summary>
- /cloudapi/bservice/create
- /cloudapi/bservice/delete
- /cloudapi/bservice/disable
- /cloudapi/bservice/enable
- /cloudapi/bservice/get
- /cloudapi/bservice/groupAdd
- /cloudapi/bservice/groupComputeRemove
- /cloudapi/bservice/groupGet
- /cloudapi/bservice/groupParentAdd
- /cloudapi/bservice/groupParentRemove
- /cloudapi/bservice/groupRemove
- /cloudapi/bservice/groupResize
- /cloudapi/bservice/groupStart
- /cloudapi/bservice/groupStop
- /cloudapi/bservice/groupUpdate
- /cloudapi/bservice/groupUpdateExtnet
- /cloudapi/bservice/groupUpdateVins
- /cloudapi/bservice/list
- /cloudapi/bservice/listDeleted
- /cloudapi/bservice/migrateToZone
- /cloudapi/bservice/restore
- /cloudapi/bservice/snapshotCreate
- /cloudapi/bservice/snapshotDelete
- /cloudapi/bservice/snapshotList
- /cloudapi/bservice/snapshotRollback
- /cloudapi/bservice/start
- /cloudapi/bservice/stop
</details>
<details><summary>compute</summary>
- /cloudapi/compute/abort_shared_snapshot_merge
- /cloudapi/compute/affinityLabelRemove
- /cloudapi/compute/affinityLabelSet
- /cloudapi/compute/affinityRelations
- /cloudapi/compute/affinityRuleAdd
- /cloudapi/compute/affinityRuleRemove
- /cloudapi/compute/affinityRulesClear
- /cloudapi/compute/antiAffinityRuleAdd
- /cloudapi/compute/antiAffinityRuleRemove
- /cloudapi/compute/antiAffinityRulesClear
- /cloudapi/compute/attachGpu
- /cloudapi/compute/attachPciDevice
- /cloudapi/compute/bootDiskSet
- /cloudapi/compute/cdEject
- /cloudapi/compute/cdInsert
- /cloudapi/compute/changeMac
- /cloudapi/compute/change_mtu
- /cloudapi/compute/change_security_groups
- /cloudapi/compute/changeIp
- /cloudapi/compute/changeLinkState
- /cloudapi/compute/clone
- /cloudapi/compute/clone_abort
- /cloudapi/compute/createTemplate
- /cloudapi/compute/delete
- /cloudapi/compute/deleteCustomFields
- /cloudapi/compute/detachGpu
- /cloudapi/compute/detachPciDevice
- /cloudapi/compute/disable
- /cloudapi/compute/diskAdd
- /cloudapi/compute/diskAttach
- /cloudapi/compute/diskDel
- /cloudapi/compute/diskDetach
- /cloudapi/compute/diskMigrate
- /cloudapi/compute/diskSwitchToReplication
- /cloudapi/compute/enable
- /cloudapi/compute/get
- /cloudapi/compute/getConsoleUrl
- /cloudapi/compute/guest_agent_disable
- /cloudapi/compute/guest_agent_enable
- /cloudapi/compute/guest_agent_execute
- /cloudapi/compute/guest_agent_feature_update
- /cloudapi/compute/list
- /cloudapi/compute/listDeleted
- /cloudapi/compute/migrateToZone
- /cloudapi/compute/moveToRg
- /cloudapi/compute/netAttach
- /cloudapi/compute/netDetach
- /cloudapi/compute/pause
- /cloudapi/compute/pfwAdd
- /cloudapi/compute/pfwDel
- /cloudapi/compute/pfwList
- /cloudapi/compute/pinToStack
- /cloudapi/compute/powerCycle
- /cloudapi/compute/reboot
- /cloudapi/compute/redeploy
- /cloudapi/compute/reset
- /cloudapi/compute/resize
- /cloudapi/compute/restore
- /cloudapi/compute/resume
- /cloudapi/compute/setCustomFields
- /cloudapi/compute/snapshotCreate
- /cloudapi/compute/snapshotList
- /cloudapi/compute/snapshotRollback
- /cloudapi/compute/start
- /cloudapi/compute/stop
- /cloudapi/compute/tagAdd
- /cloudapi/compute/tagRemove
- /cloudapi/compute/unpinFromStack
- /cloudapi/compute/update
- /cloudapi/compute/userGrant
- /cloudapi/compute/userList
- /cloudapi/compute/userRevoke
- /cloudapi/compute/userUpdate
</details>
<details><summary>disks</summary>
- /cloudapi/disks/change_disk_storage_policy
- /cloudapi/disks/create
- /cloudapi/disks/delete
- /cloudapi/disks/deleteDisks
- /cloudapi/disks/get
- /cloudapi/disks/limitIO
- /cloudapi/disks/list
- /cloudapi/disks/listDeleted
- /cloudapi/disks/listTypes
- /cloudapi/disks/listUnattached
- /cloudapi/disks/rename
- /cloudapi/disks/resize2
- /cloudapi/disks/restore
- /cloudapi/disks/share
- /cloudapi/disks/snapshotDelete
- /cloudapi/disks/snapshotRollback
- /cloudapi/disks/unshare
</details>
<details><summary>dpdknet</summary>
- /cloudapi/dpdknet/get
- /cloudapi/dpdknet/list
</details>
<details><summary>extnet</summary>
- /cloudapi/extnet/get
- /cloudapi/extnet/getDefault
- /cloudapi/extnet/list
</details>
<details><summary>flipgroup</summary>
- /cloudapi/flipgroup/computeAdd
- /cloudapi/flipgroup/computeRemove
- /cloudapi/flipgroup/create
- /cloudapi/flipgroup/delete
- /cloudapi/flipgroup/edit
- /cloudapi/flipgroup/get
- /cloudapi/flipgroup/list
</details>
<details><summary>image</summary>
- /cloudapi/image/change_storage_policy
- /cloudapi/image/create
- /cloudapi/image/createVirtual
- /cloudapi/image/delete
- /cloudapi/image/get
- /cloudapi/image/link
- /cloudapi/image/list
- /cloudapi/image/rename
</details>
<details><summary>k8ci</summary>
- /cloudapi/k8ci/get
- /cloudapi/k8ci/list
- /cloudapi/k8ci/listDeleted
</details>
<details><summary>k8s</summary>
- /cloudapi/k8s/create
- /cloudapi/k8s/delete
- /cloudapi/k8s/deleteMasterFromGroup
- /cloudapi/k8s/deleteWorkerFromGroup
- /cloudapi/k8s/disable
- /cloudapi/k8s/enable
- /cloudapi/k8s/get
- /cloudapi/k8s/getConfig
- /cloudapi/k8s/getNodeAnnotations
- /cloudapi/k8s/getNodeLabels
- /cloudapi/k8s/getNodeTaints
- /cloudapi/k8s/list
- /cloudapi/k8s/listDeleted
- /cloudapi/k8s/migrateToZone
- /cloudapi/k8s/restore
- /cloudapi/k8s/start
- /cloudapi/k8s/stop
- /cloudapi/k8s/update
- /cloudapi/k8s/updateWorkerNodesMetaData
- /cloudapi/k8s/workerAdd
- /cloudapi/k8s/workerReset
- /cloudapi/k8s/workerRestart
- /cloudapi/k8s/workersGroupAdd
- /cloudapi/k8s/workersGroupDelete
- /cloudapi/k8s/workersGroupGetByName
</details>
<details><summary>kvmx86</summary>
- /cloudapi/kvmx86/create
- /cloudapi/kvmx86/createBlank
</details>
<details><summary>lb</summary>
- /cloudapi/lb/backendCreate
- /cloudapi/lb/backendDelete
- /cloudapi/lb/backendServerAdd
- /cloudapi/lb/backendServerDelete
- /cloudapi/lb/backendServerUpdate
- /cloudapi/lb/backendUpdate
- /cloudapi/lb/configReset
- /cloudapi/lb/create
- /cloudapi/lb/delete
- /cloudapi/lb/disable
- /cloudapi/lb/enable
- /cloudapi/lb/frontendBind
- /cloudapi/lb/frontendBindDelete
- /cloudapi/lb/frontendBindingUpdate
- /cloudapi/lb/frontendCreate
- /cloudapi/lb/frontendDelete
- /cloudapi/lb/get
- /cloudapi/lb/list
- /cloudapi/lb/listDeleted
- /cloudapi/lb/makeHighlyAvailable
- /cloudapi/lb/migrateToZone
- /cloudapi/lb/restart
- /cloudapi/lb/restore
- /cloudapi/lb/start
- /cloudapi/lb/stop
- /cloudapi/lb/update
- /cloudapi/lb/updateSysctlParams
</details>
<details><summary>locations</summary>
- /cloudapi/locations/getUrl
- /cloudapi/locations/list
</details>
<details><summary>pcidevice</summary>
- /cloudapi/pcidevice/list
</details>
<details><summary>rg</summary>
- /cloudapi/rg/accessGrant
- /cloudapi/rg/accessRevoke
- /cloudapi/rg/add_storage_policy
- /cloudapi/rg/create
- /cloudapi/rg/del_storage_policy
- /cloudapi/rg/delete
- /cloudapi/rg/disable
- /cloudapi/rg/enable
- /cloudapi/rg/get
- /cloudapi/rg/getResourceConsumption
- /cloudapi/rg/list
- /cloudapi/rg/listDeleted
- /cloudapi/rg/removeDefNet
- /cloudapi/rg/restore
- /cloudapi/rg/setDefNet
- /cloudapi/rg/update
</details>
<details><summary>security_group</summary>
- /cloudapi/security_group/get
- /cloudapi/security_group/create
- /cloudapi/security_group/create_rule
- /cloudapi/security_group/delete
- /cloudapi/security_group/delete_rule
- /cloudapi/security_group/list
- /cloudapi/security_group/update
</details>
<details><summary>sep</summary>
- /cloudapi/sep/listAvailableSepAndPools
</details>
<details><summary>stack</summary>
- /cloudapi/stack/get
- /cloudapi/stack/list
</details>
<details><summary>storage_policy</summary>
- /cloudapi/storage_policy/get
- /cloudapi/storage_policy/list
</details>
<details><summary>tasks</summary>
- /cloudapi/tasks/get
- /cloudapi/tasks/list
</details>
<details><summary>trunk</summary>
- /cloudapi/trunk/get
- /cloudapi/trunk/list
</details>
<details><summary>user</summary>
- /cloudapi/user/apiList
- /cloudapi/user/brief
- /cloudapi/user/get
- /cloudapi/user/getResourceConsumption
- /cloudapi/user/setData
</details>
<details><summary>vfpool</summary>
- /cloudapi/vfpool/get
- /cloudapi/vfpool/list
</details>
<details><summary>vgpu</summary>
- /cloudapi/vgpu/list
</details>
<details><summary>vins</summary>
- /cloudapi/vins/createInAccount
- /cloudapi/vins/createInRG
- /cloudapi/vins/delete
- /cloudapi/vins/disable
- /cloudapi/vins/dnsApply
- /cloudapi/vins/enable
- /cloudapi/vins/extNetConnect
- /cloudapi/vins/extNetDisconnect
- /cloudapi/vins/extNetList
- /cloudapi/vins/get
- /cloudapi/vins/ipList
- /cloudapi/vins/ipRelease
- /cloudapi/vins/ipReserve
- /cloudapi/vins/list
- /cloudapi/vins/listDeleted
- /cloudapi/vins/migrateToZone
- /cloudapi/vins/natRuleAdd
- /cloudapi/vins/natRuleDel
- /cloudapi/vins/natRuleList
- /cloudapi/vins/restore
- /cloudapi/vins/staticRouteAdd
- /cloudapi/vins/staticRouteDel
- /cloudapi/vins/staticRouteList
- /cloudapi/vins/vnfdevRedeploy
- /cloudapi/vins/vnfdevRestart
</details>
<details><summary>zone</summary>
- /cloudapi/zone/get
- /cloudapi/zone/list
</details>
#### Cloudbroker
<details><summary>account</summary>
- /cloudbroker/account/add_storage_policy
- /cloudbroker/account/addUser
- /cloudbroker/account/addZone
- /cloudbroker/account/create
- /cloudbroker/account/del_storage_policy
- /cloudbroker/account/delete
- /cloudbroker/account/deleteAccounts
- /cloudbroker/account/deleteUser
- /cloudbroker/account/disable
- /cloudbroker/account/disableAccounts
- /cloudbroker/account/enable
- /cloudbroker/account/enableAccounts
- /cloudbroker/account/get
- /cloudbroker/account/getResourceConsumption
- /cloudbroker/account/list
- /cloudbroker/account/listDeleted
- /cloudbroker/account/removeZone
- /cloudbroker/account/restore
</details>
<details><summary>audit</summary>
- /cloudbroker/audit/list
</details>
<details><summary>compute</summary>
- /cloudbroker/compute/change_security_groups
- /cloudbroker/compute/clone
- /cloudbroker/compute/clone_abort
- /cloudbroker/compute/migrate_storage_list
- /cloudbroker/compute/start_migration_in
- /cloudbroker/compute/start_migration_out
- /cloudbroker/compute/stop_migration_in
- /cloudbroker/compute/stop_migration_out
</details>
<details><summary>disks</summary>
- /cloudbroker/disks/migrate
- /cloudbroker/disks/migrate_abort
- /cloudbroker/disks/migrate_status
</details>
<details><summary>image</summary>
- /cloudbroker/image/change_storage_policy
</details>
<details><summary>node</summary>
- cloudbroker/node/add_ssh_identity
- cloudbroker/node/get_ssh_identity
- cloudbroker/node/update_description
</details>
<details><summary>rg</summary>
- /cloudbroker/rg/add_storage_policy
- /cloudbroker/rg/del_storage_policy
</details>
<details><summary>security_group</summary>
- /cloudbroker/security_group/create
- /cloudbroker/security_group/create_rule
- /cloudbroker/security_group/delete
- /cloudbroker/security_group/delete_rule
- /cloudbroker/security_group/get
- /cloudbroker/security_group/list
- /cloudbroker/security_group/update
</details>
<details><summary>storage_policy</summary>
- /cloudbroker/storage_policy/add_pool
- /cloudbroker/storage_policy/create
- /cloudbroker/storage_policy/delete
- /cloudbroker/storage_policy/delete_pool
- /cloudbroker/storage_policy/disable
- /cloudbroker/storage_policy/enable
- /cloudbroker/storage_policy/get
- /cloudbroker/storage_policy/list
- /cloudbroker/storage_policy/update
</details>
<details><summary>user</summary>
- /cloudbroker/user/block
- /cloudbroker/user/create
- /cloudbroker/user/get
- /cloudbroker/user/list
- /cloudbroker/user/unblock
</details>
<details><summary>vins</summary>
- /cloudbroker/vins/update
</details>
<details><summary>vnfdev</summary>
- /cloudbroker/vnfdev/migrate_abort
</details>
#### System
<details><summary>info</summary>
- /system/info/version
</details>
<details><summary>usermanager</summary>
- /system/usermanager/whoami

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@@ -1,15 +1,19 @@
[project]
name = "dynamix-sdk"
authors = [{name = "Dmitriy Smirnov"}]
version = "1.0.0"
authors = [
{name = "Dmitriy Smirnov"},
{name = "Vladislav Nesterov"},
{name = "Stanislav Karimov"},
]
version = "1.3.2"
readme = "README.md"
requires-python = ">=3.10.12"
requires-python = ">=3.12"
dependencies = [
"requests>=2.32.3",
"pydantic>=2.10.5",
"pydantic==2.10.5",
"pyyaml>=6.0.2",
]

View File

@@ -1 +1,2 @@
pre-commit==4.1.0
pytest==8.3.5

View File

@@ -1,8 +1,10 @@
import dynamix_sdk.base as _base
from .cloudapi import *
from .cloudbroker import *
from .system import *
class API(_base.BaseAPI):
cloudapi: CloudapiAPI
cloudbroker: CloudbrokerAPI
system: SystemAPI

View File

@@ -1,3 +1,5 @@
from enum import Enum
from dynamix_sdk.utils import (
AutoNameEnum as _AutoNameEnum,
enum_auto as _enum_auto,
@@ -23,7 +25,7 @@ class AffinityPolicy(str, _AutoNameEnum):
class AffinityTopology(str, _AutoNameEnum):
compute = _enum_auto()
vm = 'compute'
node = _enum_auto()
@@ -47,10 +49,17 @@ class NetType(str, _AutoNameEnum):
DPDK = _enum_auto()
EMPTY = _enum_auto()
EXTNET = _enum_auto()
SDN = _enum_auto()
TRUNK = _enum_auto()
VFNIC = _enum_auto()
VINS = _enum_auto()
class NetTypeForChangeIP(str, _AutoNameEnum):
EXTNET = _enum_auto()
VINS = _enum_auto()
class NumaAffinity(str, _AutoNameEnum):
none = _enum_auto()
strict = _enum_auto()
@@ -93,14 +102,21 @@ class LockStatus(str, _AutoNameEnum):
UNLOCKED = _enum_auto()
class ComputeFeature(str, _AutoNameEnum):
class VMFeature(str, _AutoNameEnum):
changemac = _enum_auto()
cpupin = _enum_auto()
dpdk = _enum_auto()
hugepages = _enum_auto()
numa = _enum_auto()
trunk = _enum_auto()
vfnic = _enum_auto()
class RGDefaultNetTypeForSet(str, _AutoNameEnum):
PRIVATE = _enum_auto()
PUBLIC = _enum_auto()
class RGDefaultNetType(str, _AutoNameEnum):
NONE = _enum_auto()
PRIVATE = _enum_auto()
@@ -108,7 +124,7 @@ class RGDefaultNetType(str, _AutoNameEnum):
class RGResourceType(str, _AutoNameEnum):
compute = _enum_auto()
vm = 'compute'
k8s = _enum_auto()
lb = _enum_auto()
vins = _enum_auto()
@@ -116,13 +132,19 @@ class RGResourceType(str, _AutoNameEnum):
class DiskStatus(str, _AutoNameEnum):
ASSIGNED = _enum_auto()
BACKUP_RUNNING = _enum_auto()
CLONING = _enum_auto()
CREATED = _enum_auto()
CREATING = _enum_auto()
DELETED = _enum_auto()
DESTROYED = _enum_auto()
DESTROYING = _enum_auto()
MERGE = _enum_auto()
MIGRATING = _enum_auto()
MODELED = _enum_auto()
PURGED = _enum_auto()
REPLICATION = _enum_auto()
ROLLBACK = _enum_auto()
SNAPCREATE = _enum_auto()
class DiskTechStatus(str, _AutoNameEnum):
@@ -145,11 +167,17 @@ class VMStatus(str, _AutoNameEnum):
class VMTechStatus(str, _AutoNameEnum):
BACKUP_RUNNING = _enum_auto()
BACKUP_STOPPED = _enum_auto()
CLONING = _enum_auto()
DOWN = _enum_auto()
MERGE = _enum_auto()
MIGRATING = _enum_auto()
MIGRATING_IN = _enum_auto()
MIGRATING_OUT = _enum_auto()
PAUSED = _enum_auto()
PAUSING = _enum_auto()
ROLLBACK = _enum_auto()
SCHEDULED = _enum_auto()
SNAPCREATE = _enum_auto()
STARTED = _enum_auto()
STARTING = _enum_auto()
STOPPED = _enum_auto()
@@ -159,3 +187,434 @@ class VMTechStatus(str, _AutoNameEnum):
class DiskType(str, _AutoNameEnum):
B = _enum_auto()
D = _enum_auto()
class AccountStatus(str, _AutoNameEnum):
CONFIRMED = _enum_auto()
DISABLED = _enum_auto()
DELETED = _enum_auto()
DESTROYED = _enum_auto()
DESTROYING = _enum_auto()
class AccountResourceType(str, _AutoNameEnum):
vm = 'compute'
k8s = _enum_auto()
lb = _enum_auto()
vins = _enum_auto()
flipgroup = _enum_auto()
class ImageTechStatus(str, _AutoNameEnum):
ALLOCATED = _enum_auto()
UNALLOCATED = _enum_auto()
class ImageStatus(str, _AutoNameEnum):
CREATED = _enum_auto()
CREATING = _enum_auto()
DESTROYED = _enum_auto()
MODELED = _enum_auto()
PURGED = _enum_auto()
class ImageType(str, _AutoNameEnum):
cdrom = _enum_auto()
linux = _enum_auto()
unknown = _enum_auto()
virtual = _enum_auto()
windows = _enum_auto()
class NetIfaceNamingTemplate(str, _AutoNameEnum):
ens = _enum_auto()
eth = _enum_auto()
class VINSStatus(str, _AutoNameEnum):
MODELED = _enum_auto()
CREATED = _enum_auto()
ENABLED = _enum_auto()
ENABLING = _enum_auto()
DISABLED = _enum_auto()
DISABLING = _enum_auto()
DELETED = _enum_auto()
DELETING = _enum_auto()
DESTROYED = _enum_auto()
DESTROYING = _enum_auto()
class VNFType(str, _AutoNameEnum):
DHCP = _enum_auto()
GW = _enum_auto()
NAT = _enum_auto()
class VNFDevStatus(str, _AutoNameEnum):
MODELED = _enum_auto()
CREATED = _enum_auto()
DELETED = _enum_auto()
DESTROYED = _enum_auto()
class VNFDevTechStatus(str, _AutoNameEnum):
DOWN = _enum_auto()
MIGRATING = _enum_auto()
SCHEDULED = _enum_auto()
STARTED = _enum_auto()
STARTING = _enum_auto()
STOPPED = _enum_auto()
STOPPING = _enum_auto()
class VNFStatus(str, _AutoNameEnum):
MODELED = _enum_auto()
CREATED = _enum_auto()
ENABLED = _enum_auto()
DISABLED = _enum_auto()
DELETED = _enum_auto()
DESTROYED = _enum_auto()
STASHED = _enum_auto()
class VNFTechStatus(str, _AutoNameEnum):
STARTING = _enum_auto()
STARTED = _enum_auto()
STOPPING = _enum_auto()
STOPPED = _enum_auto()
VIRTUAL = _enum_auto()
class VINSInterfaceType(str, _AutoNameEnum):
MGMT = _enum_auto()
class NATRuleProtocol(str, _AutoNameEnum):
tcp = _enum_auto()
udp = _enum_auto()
class VNFDevType(str, _AutoNameEnum):
vyos = _enum_auto()
class BootMode(str, _AutoNameEnum):
bios = _enum_auto()
uefi = _enum_auto()
class BServiceStatus(str, _AutoNameEnum):
CREATED = _enum_auto()
DELETED = _enum_auto()
DELETING = _enum_auto()
DESTROYED = _enum_auto()
DESTROYING = _enum_auto()
DISABLED = _enum_auto()
DISABLING = _enum_auto()
ENABLED = _enum_auto()
ENABLING = _enum_auto()
MODELED = _enum_auto()
RECONFIGURING = _enum_auto()
RESTORING = _enum_auto()
class BServiceTechStatus(str, _AutoNameEnum):
PAUSED = _enum_auto()
PAUSING = _enum_auto()
STARTED = _enum_auto()
STARTING = _enum_auto()
STOPPED = _enum_auto()
STOPPING = _enum_auto()
class BServiceGroupStatus(str, _AutoNameEnum):
CREATED = _enum_auto()
CREATING = _enum_auto()
CURRUPTED = _enum_auto()
DELETED = _enum_auto()
DELETING = _enum_auto()
DESTROYED = _enum_auto()
DESTROYING = _enum_auto()
DISABLED = _enum_auto()
DISABLING = _enum_auto()
ENABLED = _enum_auto()
ENABLING = _enum_auto()
MODELED = _enum_auto()
RESTORING = _enum_auto()
class BServiceGroupTechStatus(str, _AutoNameEnum):
STARTED = _enum_auto()
STARTING = _enum_auto()
STOPPED = _enum_auto()
STOPPING = _enum_auto()
class SEPType(str, _AutoNameEnum):
HITACHI = _enum_auto()
DES = _enum_auto()
OVS = _enum_auto()
LOCAL = _enum_auto()
TATLIN = _enum_auto()
DORADO = _enum_auto()
SHARED = _enum_auto()
class ExtNetStatus(str, _AutoNameEnum):
CREATED = _enum_auto()
DESTROYED = _enum_auto()
DESTROYING = _enum_auto()
DISABLED = _enum_auto()
DISABLING = _enum_auto()
ENABLED = _enum_auto()
ENABLING = _enum_auto()
MODELED = _enum_auto()
class BootLoaderType(str, _AutoNameEnum):
linux = _enum_auto()
unknown = _enum_auto()
windows = _enum_auto()
class FlipGroupClientType(str, _AutoNameEnum):
VM = 'compute'
class FlipGroupStatus(str, _AutoNameEnum):
CREATED = _enum_auto()
DESTROYED = _enum_auto()
class FlipGroupNetType(str, _AutoNameEnum):
EXTNET = _enum_auto()
VINS = _enum_auto()
class PoolDiskType(str, _AutoNameEnum):
B = _enum_auto()
D = _enum_auto()
ANY = _enum_auto()
class CountChangeMode(str, _AutoNameEnum):
ABSOLUTE = _enum_auto()
RELATIVE = _enum_auto()
class LBStatus(str, _AutoNameEnum):
MODELED = _enum_auto()
CREATING = _enum_auto()
CREATED = _enum_auto()
DELETING = _enum_auto()
DELETED = _enum_auto()
DESTROYING = _enum_auto()
DESTROYED = _enum_auto()
ENABLING = _enum_auto()
ENABLED = _enum_auto()
DISABLING = _enum_auto()
DISABLED = _enum_auto()
RESTORING = _enum_auto()
class LBTechStatus(str, _AutoNameEnum):
STARTING = _enum_auto()
STARTED = _enum_auto()
STOPPING = _enum_auto()
STOPPED = _enum_auto()
class LBBackendAlgorithm(str, _AutoNameEnum):
ROUNDROBIN = 'roundrobin'
STATIC_RR = 'static-rr'
LEASTCONN = 'leastconn'
class LBServerCheck(str, _AutoNameEnum):
ENABLED = 'enabled'
DISABLED = 'disabled'
class AccessTypeForSet(str, _AutoNameEnum):
ARCXDU = _enum_auto()
RCX = _enum_auto()
R = _enum_auto()
class DataDisksChangeMode(str, _AutoNameEnum):
DESTROY = _enum_auto()
DETACH = _enum_auto()
KEEP = _enum_auto()
class PhysicalNodeStatus(str, _AutoNameEnum):
DECOMMISSIONED = _enum_auto()
DECOMMISSIONING = _enum_auto()
ENABLED = _enum_auto()
ERROR = _enum_auto()
INSTALLING = _enum_auto()
MAINTENANCE = _enum_auto()
RESTRICTED = _enum_auto()
class AuthBroker(str, _AutoNameEnum):
DECS3O = 'decs3o'
BVS = 'bvs'
class DHCPReservationType(str, _AutoNameEnum):
DHCP = _enum_auto()
EXCLUDED = _enum_auto()
SERVICE = _enum_auto()
VIP = _enum_auto()
class TaskStatus(str, _AutoNameEnum):
ABORTED = _enum_auto()
CLEANUPED = _enum_auto()
ERROR = _enum_auto()
OK = _enum_auto()
PROCESSING = _enum_auto()
SCHEDULED = _enum_auto()
class K8sNetworkPlugin(str, _AutoNameEnum):
FLANNEL = 'flannel'
CALICO = 'calico'
WEAVENET = 'weavenet'
class K8CIStatus(str, _AutoNameEnum):
CREATED = _enum_auto()
DELETED = _enum_auto()
DESTROYED = _enum_auto()
DISABLED = _enum_auto()
ENABLED = _enum_auto()
MODELED = _enum_auto()
class K8sStatus(str, _AutoNameEnum):
CREATED = _enum_auto()
CREATING = _enum_auto()
DELETED = _enum_auto()
DELETING = _enum_auto()
DESTROYED = _enum_auto()
DESTROYING = _enum_auto()
DISABLED = _enum_auto()
DISABLING = _enum_auto()
ENABLED = _enum_auto()
ENABLING = _enum_auto()
MODELED = _enum_auto()
RESTORING = _enum_auto()
class K8sTechStatus(str, _AutoNameEnum):
STARTED = _enum_auto()
STARTING = _enum_auto()
STOPPED = _enum_auto()
STOPPING = _enum_auto()
class DPDKNetStatus(str, _AutoNameEnum):
CREATED = _enum_auto()
DESTROYED = _enum_auto()
DISABLED = _enum_auto()
ENABLED = _enum_auto()
class VFPoolStatus(str, _AutoNameEnum):
CREATED = _enum_auto()
DESTROYED = _enum_auto()
DISABLED = _enum_auto()
ENABLED = _enum_auto()
class LinkState(str, _AutoNameEnum):
on = _enum_auto()
off = _enum_auto()
class ZoneStatus(str, _AutoNameEnum):
CREATED = _enum_auto()
DESTROYED = _enum_auto()
class TrafficDirection(str, _AutoNameEnum):
INBOUND = 'inbound'
OUTBOUND = 'outbound'
class SGRuleEthertype(str, _AutoNameEnum):
IPV4 = 'IPv4'
IPV6 = 'IPv6'
class SGRuleProtocol(str, _AutoNameEnum):
ICMP = 'icmp'
TCP = 'tcp'
UDP = 'udp'
class TrunkStatus(str, _AutoNameEnum):
CREATED = _enum_auto()
DESTROYED = _enum_auto()
DESTROYING = _enum_auto()
DISABLED = _enum_auto()
ENABLED = _enum_auto()
ENABLING = _enum_auto()
MODELED = _enum_auto()
class StoragePolicyStatus(str, _AutoNameEnum):
DISABLED = _enum_auto()
ENABLED = _enum_auto()
class JobStatus(str, _AutoNameEnum):
ABORTED = _enum_auto()
CLEANUPED = _enum_auto()
ERROR = _enum_auto()
OK = _enum_auto()
PROCESSING = _enum_auto()
SCHEDULED = _enum_auto()
class PGPUProcessorType(str, _AutoNameEnum):
NVIDIA = _enum_auto()
DUMMY = _enum_auto()
class PGPUMode(str, _AutoNameEnum):
PASSTHROUGH = _enum_auto()
class VGPUStatus(str, _AutoNameEnum):
ALLOCATED = _enum_auto()
ALLOCATING = _enum_auto()
CLAIMED = _enum_auto()
CLAIMING = _enum_auto()
CREATED = _enum_auto()
DEALLOCATED = _enum_auto()
DEALLOCATING = _enum_auto()
DESTROYED = _enum_auto()
ERROR = _enum_auto()
class NetMapSourceType(str, _AutoNameEnum):
NETWORK = 'network'
BRIDGE = 'bridge'
class DiskMigrateJobType(int, Enum):
PULL = 1
COPY = 2
COMMIT = 3
class PCIDeviceStatus(str, _AutoNameEnum):
CLAIMED = _enum_auto()
CLAIMING = _enum_auto()
DESTROYED = _enum_auto()
DISABLED = _enum_auto()
ENABLED = _enum_auto()
ERROR = _enum_auto()

View File

@@ -4,7 +4,8 @@ from . import enums as _enums
class DiskAPIParamsNM(_base.BaseAPIParamsNestedModel):
name: str
size: int
size_gb: int
storage_policy_id: int
description: None | str = None
image_id: None | int = None
@@ -13,8 +14,42 @@ class DiskAPIParamsNM(_base.BaseAPIParamsNestedModel):
class InterfaceAPIParamsNM(_base.BaseAPIParamsNestedModel):
enabled: bool = True
net_id: int
net_type: _enums.NetType
sdn_logical_port_id: None | str = None
security_group_ids: None | list[int] = None
security_group_mode: bool = False
ip_addr: None | str = None
mac: None | str = None
mtu: None | int = None
class RouteAPIParamsNM(_base.BaseAPIParamsNestedModel):
dst_net_ip: str
dst_net_mask: str
gateway: str
class StoragePolicyQuotasAPIParamsNM(_base.BaseAPIParamsNestedModel):
id: int
storage_size_gb: int
class SEPPoolsAPIParamsNM(_base.BaseAPIParamsNestedModel):
pool_names: list[str]
sep_id: int
class OSUserAPIParamsNM(_base.BaseAPIParamsNestedModel):
guid: str
login: str
password: str
ssh_public_key: str
class NetMapConfigAPIParamsNM(_base.BaseAPIParamsNestedModel):
target_dev: str
source_type: _enums.NetMapSourceType
source_value: str

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,58 @@
import dynamix_sdk.base as _base
from .account import *
from .audit import *
from .bservice import *
from .compute import *
from .disks import *
from .dpdknet import *
from .extnet import *
from .flipgroup import *
from .image import *
from .k8ci import *
from .k8s import *
from .kvmx86 import *
from .lb import *
from .locations import *
from .pcidevice import *
from .rg import *
from .security_group import *
from .sep import *
from .stack import *
from .storage_policy import *
from .tasks import *
from .trunk import *
from .user import *
from .vfpool import *
from .vgpu import *
from .vins import *
from .zone import *
class CloudapiAPI(_base.BaseAPI):
account: CloudapiAccountAPI
audit: CloudapiAuditAPI
bservice: CloudapiBserviceAPI
compute: CloudapiComputeAPI
disks: CloudapiDisksAPI
dpdknet: CloudapiDpdknetAPI
extnet: CloudapiExtnetAPI
flipgroup: CloudapiFlipgroupAPI
image: CloudapiImageAPI
k8ci: CloudapiK8ciAPI
k8s: CloudapiK8sAPI
kvmx86: CloudapiKvmx86API
lb: CloudapiLbAPI
locations: CloudapiLocationsAPI
pcidevice: CloudapiPcideviceAPI
rg: CloudapiRgAPI
security_group: CloudapiSecurityGroupAPI
sep: CloudapiSepAPI
stack: CloudapiStackAPI
storage_policy: CloudapiStoragePolicyAPI
tasks: CloudapiTasksAPI
trunk: CloudapiTrunkAPI
user: CloudapiUserAPI
vfpool: CloudapiVfpoolAPI
vgpu: CloudapiVgpuAPI
vins: CloudapiVinsAPI
zone: CloudapiZoneAPI

View File

@@ -1,17 +1,31 @@
import dynamix_sdk.base as _base
from .add_user import *
from .delete import *
from .delete_user import *
from .disable import *
from .enable import *
from .get import *
from .get_resource_consumption import *
from .list import *
from .list_deleted import *
from .restore import *
from .update import *
from .update_user import *
class CloudapiAccountAPI(
_base.BaseAPI,
CloudapiAccountAddUserProtocol,
CloudapiAccountDeleteProtocol,
CloudapiAccountDeleteUserProtocol,
CloudapiAccountDisableProtocol,
CloudapiAccountEnableProtocol,
CloudapiAccountGetProtocol,
CloudapiAccountGetResourceConsumptionProtocol,
CloudapiAccountListDeletedProtocol,
CloudapiAccountListProtocol,
CloudapiAccountRestoreProtocol,
CloudapiAccountUpdateProtocol,
CloudapiAccountUpdateUserProtocol,
):
pass

View File

@@ -11,7 +11,7 @@ class CloudapiAccountAddUserProtocol(_base.BasePostAPIFunctionProtocol):
self,
*,
account_id: int,
access_type: _nested.AccessType,
user_id: str,
access_type: _nested.AccessTypeForSet,
user_name: str,
) -> CloudapiAccountAddUserResultBool:
...

View File

@@ -0,0 +1,15 @@
import dynamix_sdk.base as _base
class CloudapiAccountDeleteResultStr(_base.BaseAPIResultStr):
pass
class CloudapiAccountDeleteProtocol(_base.BasePostAPIFunctionProtocol):
def delete(
self,
*,
account_id: int,
permanently: bool = False,
) -> CloudapiAccountDeleteResultStr:
...

View File

@@ -10,6 +10,6 @@ class CloudapiAccountDeleteUserProtocol(_base.BasePostAPIFunctionProtocol):
self,
*,
account_id: int,
user_id: str,
user_name: str,
) -> CloudapiAccountDeleteUserResultBool:
...

View File

@@ -0,0 +1,60 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiAccountGetResultModel(_base.BaseAPIResultModel):
acc_lvl_vins_ids: list[int]
acl: list[_nested.AccessAPIResultNM]
company_url: str
company: str
cpu_allocation_parameter: str
cpu_allocation_ratio: int
created_by: str
created_timestamp: int
dc_location: str
deactivation_timestamp: int
default_zone_id: int
deleted_by: str
deleted_timestamp: int
description: str
display_name: str
guid: int
id: int
name: str
quotas: _nested.TenantQuotasAPIResultNM
resource_types: list[_nested.AccountResourceType]
send_access_emails: bool
status: _nested.AccountStatus
storage_policy_ids: list[int]
uniq_pools: list[str]
updated_timestamp: int
version: int
vins_count: int
vm_counts: _nested.VMCountsAPIResultNM
vm_features: list[_nested.VMFeature]
zones: list[_nested.ZoneAPIResultNM]
@property
def created_datetime(self):
return self._get_datetime_from_timestamp(self.created_timestamp)
@property
def deactivation_datetime(self):
return self._get_datetime_from_timestamp(self.deactivation_timestamp)
@property
def deleted_datetime(self):
return self._get_datetime_from_timestamp(self.deleted_timestamp)
@property
def updated_datetime(self):
return self._get_datetime_from_timestamp(self.updated_timestamp)
class CloudapiAccountGetProtocol(_base.BasePostAPIFunctionProtocol):
def get(
self,
*,
account_id: int,
) -> CloudapiAccountGetResultModel:
...

View File

@@ -0,0 +1,21 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiAccountGetResourceConsumptionResultModel(
_base.BaseAPIResultModel,
):
id: int
consumed: _nested.ResourceCountersAPIResultNM
reserved: _nested.ResourceCountersAPIResultNM
quotas: _nested.TenantQuotasForResourceConsumptionAPIResultNM
class CloudapiAccountGetResourceConsumptionProtocol(
_base.BasePostAPIFunctionProtocol,
):
def get_resource_consumption(
self,
*,
account_id: int,
) -> CloudapiAccountGetResourceConsumptionResultModel: ...

View File

@@ -0,0 +1,23 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiAccountListResultModel(_base.BaseAPIResultModel):
data: list[_nested.AccountForCAAPIResultNM]
entry_count: int
class CloudapiAccountListProtocol(_base.BasePostAPIFunctionProtocol):
def list(
self,
*,
access_type: None | _nested.AccessType = None,
id: None | int = None,
name: None | str = None,
zone_id: None | int = None,
page_number: None | int = None,
page_size: None | int = None,
sort_by: None | str = None,
status: None | _nested.AccountStatus = None,
) -> CloudapiAccountListResultModel:
...

View File

@@ -0,0 +1,21 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiAccountListDeletedResultModel(_base.BaseAPIResultModel):
data: list[_nested.AccountForCAAPIResultNM]
entry_count: int
class CloudapiAccountListDeletedProtocol(_base.BasePostAPIFunctionProtocol):
def list_deleted(
self,
*,
access_type: None | _nested.AccessType = None,
id: None | int = None,
name: None | str = None,
page_number: None | int = None,
page_size: None | int = None,
sort_by: None | str = None,
) -> CloudapiAccountListDeletedResultModel:
...

View File

@@ -0,0 +1,14 @@
import dynamix_sdk.base as _base
class CloudapiAccountRestoreResultStr(_base.BaseAPIResultStr):
pass
class CloudapiAccountRestoreProtocol(_base.BasePostAPIFunctionProtocol):
def restore(
self,
*,
account_id: int,
) -> CloudapiAccountRestoreResultStr:
...

View File

@@ -0,0 +1,25 @@
import dynamix_sdk.base as _base
class CloudapiAccountUpdateResultBool(_base.BaseAPIResultBool):
pass
class CloudapiAccountUpdateProtocol(_base.BasePostAPIFunctionProtocol):
def update(
self,
*,
account_id: int,
cpu_count_quota: None | int = None,
ext_traffic_quota: None | int = None,
gpu_count_quota: None | int = None,
name: None | str = None,
ext_ip_count_quota: None | int = None,
ram_size_quota_mb: None | int = None,
send_access_emails: bool = False,
storage_size_quota_gb: None | int = None,
uniq_pools: None | list[str] = None,
description: str | None = None,
default_zone_id: int | None = None,
) -> CloudapiAccountUpdateResultBool:
...

View File

@@ -11,7 +11,7 @@ class CloudapiAccountUpdateUserProtocol(_base.BasePostAPIFunctionProtocol):
self,
*,
account_id: int,
access_type: _nested.AccessType,
user_id: str,
access_type: _nested.AccessTypeForSet,
user_name: str,
) -> CloudapiAccountUpdateUserResultBool:
...

View File

@@ -0,0 +1 @@
from ._api import *

View File

@@ -0,0 +1,11 @@
import dynamix_sdk.base as _base
from .get import *
from .list import *
class CloudapiAuditAPI(
_base.BaseAPI,
CloudapiAuditGetProtocol,
CloudapiAuditListProtocol,
):
pass

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.api._nested as _nested
import dynamix_sdk.base as _base
class CloudapiAuditGetResultModel(
_base.BaseAPIResultModel,
_nested.AuditAPIResultNM,
):
pass
class CloudapiAuditGetProtocol(_base.BasePostAPIFunctionProtocol):
def get(
self,
*,
audit_guid: str,
) -> CloudapiAuditGetResultModel:
...

View File

@@ -0,0 +1,35 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiAuditListResultModel(_base.BaseAPIResultModel):
data: list[_nested.AuditAPIResultNM]
entry_count: int
class CloudapiAuditListProtocol(_base.BasePostAPIFunctionProtocol):
def list(
self,
*,
account_id: int | None = None,
api_url_path: str | None = None,
bservice_id: int | None = None,
exclude_audit_lines: bool = False,
flip_group_id: int | None = None,
request_id: str | None = None,
k8s_id: int | None = None,
lb_id: int | None = None,
max_status_code: int | None = None,
min_status_code: int | None = None,
page_number: int = 1,
page_size: int = 100,
request_timestamp_end: int | None = None,
request_timestamp_start: int | None = None,
rg_id: int | None = None,
sep_id: int | None = None,
sort_by: str | None = None,
user_name: str | None = None,
vins_id: int | None = None,
vm_id: int | None = None,
) -> CloudapiAuditListResultModel:
...

View File

@@ -0,0 +1 @@
from ._api import *

View File

@@ -0,0 +1,61 @@
import dynamix_sdk.base as _base
from .create import *
from .delete import *
from .disable import *
from .enable import *
from .get import *
from .group_add import *
from .group_compute_remove import *
from .group_get import *
from .group_parent_add import *
from .group_parent_remove import *
from .group_remove import *
from .group_resize import *
from .group_start import *
from .group_stop import *
from .group_update import *
from .group_update_extnet import *
from .group_update_vins import *
from .list import *
from .list_deleted import *
from .migrate_to_zone import *
from .restore import *
from .snapshot_create import *
from .snapshot_delete import *
from .snapshot_list import *
from .snapshot_rollback import *
from .start import *
from .stop import *
class CloudapiBserviceAPI(
_base.BaseAPI,
CloudapiBserviceCreateProtocol,
CloudapiBserviceDeleteProtocol,
CloudapiBserviceDisableProtocol,
CloudapiBserviceEnableProtocol,
CloudapiBserviceGetProtocol,
CloudapiBserviceGroupAddProtocol,
CloudapiBserviceGroupComputeRemoveProtocol,
CloudapiBserviceGroupGetProtocol,
CloudapiBserviceGroupParentAddProtocol,
CloudapiBserviceGroupParentRemoveProtocol,
CloudapiBserviceGroupRemoveProtocol,
CloudapiBserviceGroupResizeProtocol,
CloudapiBserviceGroupStartProtocol,
CloudapiBserviceGroupStopProtocol,
CloudapiBserviceGroupUpdateExtnetProtocol,
CloudapiBserviceGroupUpdateProtocol,
CloudapiBserviceGroupUpdateVinsProtocol,
CloudapiBserviceListDeletedProtocol,
CloudapiBserviceListProtocol,
CloudapiBserviceMigrateToZoneProtocol,
CloudapiBserviceRestoreProtocol,
CloudapiBserviceSnapshotCreateProtocol,
CloudapiBserviceSnapshotDeleteProtocol,
CloudapiBserviceSnapshotListProtocol,
CloudapiBserviceSnapshotRollbackProtocol,
CloudapiBserviceStartProtocol,
CloudapiBserviceStopProtocol,
):
pass

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
class CloudapiBserviceCreateResultInt(_base.BaseAPIResultInt):
pass
class CloudapiBserviceCreateProtocol(_base.BasePostAPIFunctionProtocol):
def create(
self,
*,
name: str,
rg_id: int,
ssh_user_name: str | None = None,
ssh_public_key: str | None = None,
zone_id: int | None = None,
) -> CloudapiBserviceCreateResultInt:
...

View File

@@ -0,0 +1,15 @@
import dynamix_sdk.base as _base
class CloudapiBserviceDeleteResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceDeleteProtocol(_base.BasePostAPIFunctionProtocol):
def delete(
self,
*,
bservice_id: int,
permanently: bool = False,
) -> CloudapiBserviceDeleteResultBool:
...

View File

@@ -0,0 +1,14 @@
import dynamix_sdk.base as _base
class CloudapiBserviceDisableResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceDisableProtocol(_base.BasePostAPIFunctionProtocol):
def disable(
self,
*,
bservice_id: int,
) -> CloudapiBserviceDisableResultBool:
...

View File

@@ -0,0 +1,14 @@
import dynamix_sdk.base as _base
class CloudapiBserviceEnableResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceEnableProtocol(_base.BasePostAPIFunctionProtocol):
def enable(
self,
*,
bservice_id: int,
) -> CloudapiBserviceEnableResultBool:
...

View File

@@ -0,0 +1,56 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiBserviceGetResultModel(_base.BaseAPIResultModel):
account_id: int
account_name: str
base_domain: str
cpu_count_total: int
created_by: str
created_timestamp: int
deleted_by: str
deleted_timestamp: int
disk_size_total_gb: int
grid_id: int
groups: list[_nested.BServiceGroupAPIResultNM]
guid: int
id: int
milestones: int
name: str
parent_service_id: int
parent_service_type: str
ram_size_total_mb: int
rg_id: int
rg_name: str
snapshots: list[_nested.BServiceSnapshotAPIResultNM]
ssh_public_key: str
ssh_user_name: str
status: _nested.BServiceStatus
tech_status: _nested.BServiceTechStatus
updated_by: str
updated_timestamp: int
user_managed: bool
vms: list[_nested.BServiceVMAPIResultNM]
zone_id: int
@property
def created_datetime(self):
return self._get_datetime_from_timestamp(self.created_timestamp)
@property
def deleted_datetime(self):
return self._get_datetime_from_timestamp(self.deleted_timestamp)
@property
def updated_datetime(self):
return self._get_datetime_from_timestamp(self.updated_timestamp)
class CloudapiBserviceGetProtocol(_base.BasePostAPIFunctionProtocol):
def get(
self,
*,
bservice_id: int,
) -> CloudapiBserviceGetResultModel:
...

View File

@@ -0,0 +1,31 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiBserviceGroupAddResultInt(_base.BaseAPIResultInt):
pass
class CloudapiBserviceGroupAddProtocol(_base.BasePostAPIFunctionProtocol):
def group_add(
self,
*,
bservice_id: int,
vm_count: int,
cpu_count: int,
boot_disk_size_gb: int,
image_id: int,
driver: _nested.Driver,
name: str,
ram_size_mb: int,
storage_policy_id: int | None = None,
ci_user_data: str | None = None,
extnet_ids: list[int] | None = None,
role: str | None = None,
sep_id: int | None = None,
sep_pool_name: str | None = None,
start_timeout: int | None = None,
vins_ids: list[int] | None = None,
chipset: _nested.Chipset = _nested.Chipset.i440fx,
) -> CloudapiBserviceGroupAddResultInt:
...

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
class CloudapiBserviceGroupComputeRemoveResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceGroupComputeRemoveProtocol(
_base.BasePostAPIFunctionProtocol
):
def group_compute_remove(
self,
*,
bservice_id: int,
bsgroup_id: int,
vm_id: int,
) -> CloudapiBserviceGroupComputeRemoveResultBool:
...

View File

@@ -0,0 +1,61 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiBserviceGroupGetResultModel(
_base.BaseAPIResultModel,
):
account_id: int
account_name: str
bservice_id: int
consistency: bool
cpu_count: int
created_by: str
created_timestamp: int
deleted_by: str
deleted_timestamp: int
boot_disk_size_gb: int
driver: _nested.Driver
extnet_ids: list[int]
grid_id: int
guid: int
id: int
image_id: int
milestones: int
name: str
parent_ids: list[int]
ram_size_mb: int
rg_id: int
rg_name: str
role: str
sep_id: int
sep_pool_name: str
seq_no: int
status: _nested.BServiceGroupStatus
tech_status: _nested.BServiceGroupTechStatus
start_timeout: int
updated_by: str
updated_timestamp: int
vins_ids: list[int]
vms: list[_nested.BServiceGroupVMAPIResultNM]
@property
def created_datetime(self):
return self._get_datetime_from_timestamp(self.created_timestamp)
@property
def deleted_datetime(self):
return self._get_datetime_from_timestamp(self.deleted_timestamp)
@property
def updated_datetime(self):
return self._get_datetime_from_timestamp(self.updated_timestamp)
class CloudapiBserviceGroupGetProtocol(_base.BasePostAPIFunctionProtocol):
def group_get(
self, *,
bservice_id: int,
bsgroup_id: int
) -> CloudapiBserviceGroupGetResultModel:
...

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
class CloudapiBserviceGroupParentAddResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceGroupParentAddProtocol(
_base.BasePostAPIFunctionProtocol
):
def group_parent_add(
self,
*,
bservice_id: int,
bsgroup_id: int,
parent_id: int,
) -> CloudapiBserviceGroupParentAddResultBool:
...

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
class CloudapiBserviceGroupParentRemoveResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceGroupParentRemoveProtocol(
_base.BasePostAPIFunctionProtocol
):
def group_parent_remove(
self,
*,
bservice_id: int,
bsgroup_id: int,
parent_id: int,
) -> CloudapiBserviceGroupParentRemoveResultBool:
...

View File

@@ -0,0 +1,14 @@
import dynamix_sdk.base as _base
class CloudapiBserviceGroupRemoveResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceGroupRemoveProtocol(_base.BasePostAPIFunctionProtocol):
def group_remove(
self, *,
bservice_id: int,
bsgroup_id: int
) -> CloudapiBserviceGroupRemoveResultBool:
...

View File

@@ -0,0 +1,23 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiBserviceGroupResizeResultInt(_base.BaseAPIResultInt):
pass
class CloudapiBserviceGroupResizeProtocol(
_base.BasePostAPIFunctionProtocol
):
def group_resize(
self,
*,
bservice_id: int,
bsgroup_id: int,
chipset: _nested.Chipset = _nested.Chipset.i440fx,
count_change_mode: _nested.CountChangeMode = (
_nested.CountChangeMode.RELATIVE
),
vm_count: int,
) -> CloudapiBserviceGroupResizeResultInt:
...

View File

@@ -0,0 +1,15 @@
import dynamix_sdk.base as _base
class CloudapiBserviceGroupStartResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceGroupStartProtocol(_base.BasePostAPIFunctionProtocol):
def group_start(
self,
*,
bservice_id: int,
bsgroup_id: int,
) -> CloudapiBserviceGroupStartResultBool:
...

View File

@@ -0,0 +1,16 @@
import dynamix_sdk.base as _base
class CloudapiBserviceGroupStopResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceGroupStopProtocol(_base.BasePostAPIFunctionProtocol):
def group_stop(
self,
*,
bservice_id: int,
bsgroup_id: int,
force: bool = False,
) -> CloudapiBserviceGroupStopResultBool:
...

View File

@@ -0,0 +1,23 @@
import dynamix_sdk.base as _base
class CloudapiBserviceGroupUpdateResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceGroupUpdateProtocol(
_base.BasePostAPIFunctionProtocol
):
def group_update(
self,
*,
bservice_id: int,
bsgroup_id: int,
force: bool = False,
cpu_count: int | None = None,
boot_disk_size_gb: int | None = None,
name: str | None = None,
ram_size_mb: int | None = None,
role: str | None = None,
) -> CloudapiBserviceGroupUpdateResultBool:
...

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
class CloudapiBserviceGroupUpdateExtnetResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceGroupUpdateExtnetProtocol(
_base.BasePostAPIFunctionProtocol
):
def group_update_extnet(
self,
*,
bservice_id: int,
bsgroup_id: int,
extnet_ids: list[int] | None = None,
) -> CloudapiBserviceGroupUpdateExtnetResultBool:
...

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
class CloudapiBserviceGroupUpdateVinsResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceGroupUpdateVinsProtocol(
_base.BasePostAPIFunctionProtocol
):
def group_update_vins(
self,
*,
bservice_id: int,
bsgroup_id: int,
vins_ids: list[int] | None = None,
) -> CloudapiBserviceGroupUpdateVinsResultBool:
...

View File

@@ -0,0 +1,27 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiBserviceListResultModel(_base.BaseAPIResultModel):
data: list[_nested.BServiceAPIResultNM]
entry_count: int
class CloudapiBserviceListProtocol(_base.BasePostAPIFunctionProtocol):
def list(
self,
*,
account_id: int | None = None,
account_name: str | None = None,
id: int | None = None,
name: str | None = None,
zone_id: int | None = None,
page_number: int | None = None,
page_size: int | None = None,
rg_id: int | None = None,
rg_name: str | None = None,
sort_by: str | None = None,
status: _nested.BServiceStatus | None = None,
tech_status: _nested.BServiceTechStatus | None = None,
) -> CloudapiBserviceListResultModel:
...

View File

@@ -0,0 +1,20 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiBserviceListDeletedResultModel(_base.BaseAPIResultModel):
data: list[_nested.BServiceAPIResultNM]
entry_count: int
class CloudapiBserviceListDeletedProtocol(_base.BasePostAPIFunctionProtocol):
def list_deleted(
self,
*,
account_id: int | None = None,
page_number: int | None = None,
page_size: int | None = None,
rg_id: int | None = None,
sort_by: str | None = None,
) -> CloudapiBserviceListDeletedResultModel:
...

View File

@@ -0,0 +1,15 @@
import dynamix_sdk.base as _base
class CloudapiBserviceMigrateToZoneResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceMigrateToZoneProtocol(_base.BasePostAPIFunctionProtocol):
def migrate_to_zone(
self,
*,
bservice_id: int,
zone_id: int,
) -> CloudapiBserviceMigrateToZoneResultBool:
...

View File

@@ -0,0 +1,14 @@
import dynamix_sdk.base as _base
class CloudapiBserviceRestoreResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceRestoreProtocol(_base.BasePostAPIFunctionProtocol):
def restore(
self,
*,
bservice_id: int,
) -> CloudapiBserviceRestoreResultBool:
...

View File

@@ -0,0 +1,17 @@
import dynamix_sdk.base as _base
class CloudapiBserviceSnapshotCreateResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceSnapshotCreateProtocol(
_base.BasePostAPIFunctionProtocol,
):
def snapshot_create(
self,
*,
bservice_id: int,
label: str,
) -> CloudapiBserviceSnapshotCreateResultBool:
...

View File

@@ -0,0 +1,17 @@
import dynamix_sdk.base as _base
class CloudapiBserviceSnapshotDeleteResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceSnapshotDeleteProtocol(
_base.BasePostAPIFunctionProtocol,
):
def snapshot_delete(
self,
*,
bservice_id: int,
label: str,
) -> CloudapiBserviceSnapshotDeleteResultBool:
...

View File

@@ -0,0 +1,16 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiBserviceSnapshotListResultModel(_base.BaseAPIResultModel):
data: list[_nested.BServiceSnapshotAPIResultNM]
entry_count: int
class CloudapiBserviceSnapshotListProtocol(_base.BasePostAPIFunctionProtocol):
def snapshot_list(
self,
*,
bservice_id: int,
) -> CloudapiBserviceSnapshotListResultModel:
...

View File

@@ -0,0 +1,17 @@
import dynamix_sdk.base as _base
class CloudapiBserviceSnapshotRollbackResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceSnapshotRollbackProtocol(
_base.BasePostAPIFunctionProtocol,
):
def snapshot_rollback(
self,
*,
bservice_id: int,
label: str,
) -> CloudapiBserviceSnapshotRollbackResultBool:
...

View File

@@ -0,0 +1,14 @@
import dynamix_sdk.base as _base
class CloudapiBserviceStartResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceStartProtocol(_base.BasePostAPIFunctionProtocol):
def start(
self,
*,
bservice_id: int,
) -> CloudapiBserviceStartResultBool:
...

View File

@@ -0,0 +1,14 @@
import dynamix_sdk.base as _base
class CloudapiBserviceStopResultBool(_base.BaseAPIResultBool):
pass
class CloudapiBserviceStopProtocol(_base.BasePostAPIFunctionProtocol):
def stop(
self,
*,
bservice_id: int,
) -> CloudapiBserviceStopResultBool:
...

View File

@@ -1,15 +1,153 @@
import dynamix_sdk.base as _base
from .abort_shared_snapshot_merge import *
from .affinity_label_remove import *
from .affinity_label_set import *
from .affinity_relations import *
from .affinity_rule_add import *
from .affinity_rule_remove import *
from .affinity_rules_clear import *
from .anti_affinity_rule_add import *
from .anti_affinity_rule_remove import *
from .anti_affinity_rules_clear import *
from .attach_gpu import *
from .attach_pci_device import *
from .boot_disk_set import *
from .cd_eject import *
from .cd_insert import *
from .change_ip import *
from .change_link_state import *
from .change_mac import *
from .change_mtu import *
from .change_security_groups import *
from .clone import *
from .clone_abort import *
from .create_template import *
from .delete import *
from .delete_custom_fields import *
from .detach_gpu import *
from .detach_pci_device import *
from .disable import *
from .disk_add import *
from .disk_attach import *
from .disk_migrate import *
from .disk_del import *
from .disk_detach import *
from .disk_switch_to_replication import *
from .enable import *
from .get import *
from .get_console_url import *
from .guest_agent_disable import *
from .guest_agent_enable import *
from .guest_agent_execute import *
from .guest_agent_feature_update import *
from .list import *
from .list_deleted import *
from .migrate_to_zone import *
from .move_to_rg import *
from .net_attach import *
from .net_detach import *
from .pause import *
from .pfw_add import *
from .pfw_del import *
from .pfw_list import *
from .pin_to_stack import *
from .power_cycle import *
from .reboot import *
from .redeploy import *
from .reset import *
from .resize import *
from .restore import *
from .resume import *
from .set_custom_fields import *
from .snapshot_create import *
from .snapshot_list import *
from .snapshot_rollback import *
from .start import *
from .stop import *
from .tag_add import *
from .tag_remove import *
from .unpin_from_stack import *
from .update import *
from .user_grant import *
from .user_list import *
from .user_revoke import *
from .user_update import *
class CloudapiComputeAPI(
_base.BaseAPI,
CloudapiComputeAbortSharedSnapshotMergeProtocol,
CloudapiComputeAffinityLabelRemoveProtocol,
CloudapiComputeAffinityLabelSetProtocol,
CloudapiComputeAffinityRelationsProtocol,
CloudapiComputeAffinityRuleAddProtocol,
CloudapiComputeAffinityRuleRemoveProtocol,
CloudapiComputeAffinityRulesClearProtocol,
CloudapiComputeAntiAffinityRuleAddProtocol,
CloudapiComputeAntiAffinityRuleRemoveProtocol,
CloudapiComputeAntiAffinityRulesClearProtocol,
CloudapiComputeAttachGpuProtocol,
CloudapiComputeAttachPciDeviceProtocol,
CloudapiComputeBootDiskSetProtocol,
CloudapiComputeCdEjectProtocol,
CloudapiComputeCdInsertProtocol,
CloudapiComputeChangeIpProtocol,
CloudapiComputeChangeLinkStateProtocol,
CloudapiComputeChangeMacProtocol,
CloudapiComputeChangeMtuProtocol,
CloudapiComputeChangeSecurityGroupsProtocol,
CloudapiComputeCloneAbortProtocol,
CloudapiComputeCloneProtocol,
CloudapiComputeCreateTemplateProtocol,
CloudapiComputeDeleteCustomFieldsProtocol,
CloudapiComputeDeleteProtocol,
CloudapiComputeDetachGpuProtocol,
CloudapiComputeDetachPciDeviceProtocol,
CloudapiComputeDisableProtocol,
CloudapiComputeDiskAddProtocol,
CloudapiComputeDiskAttachProtocol,
CloudapiComputeDiskDelProtocol,
CloudapiComputeDiskDetachProtocol,
CloudapiComputeDiskMigrateProtocol,
CloudapiComputeDiskSwitchToReplicationProtocol,
CloudapiComputeEnableProtocol,
CloudapiComputeGetConsoleUrlProtocol,
CloudapiComputeGetProtocol,
CloudapiComputeGuestAgentDisableProtocol,
CloudapiComputeGuestAgentEnableProtocol,
CloudapiComputeGuestAgentExecuteProtocol,
CloudapiComputeGuestAgentFeatureUpdateProtocol,
CloudapiComputeListProtocol,
CloudapiComputeListDeletedProtocol,
CloudapiComputeMigrateToZoneProtocol,
CloudapiComputeMoveToRgProtocol,
CloudapiComputeNetAttachProtocol,
CloudapiComputeNetDetachProtocol,
CloudapiComputePauseProtocol,
CloudapiComputePfwAddProtocol,
CloudapiComputePfwDelProtocol,
CloudapiComputePfwListProtocol,
CloudapiComputePinToStackProtocol,
CloudapiComputePowerCycleProtocol,
CloudapiComputeRebootProtocol,
CloudapiComputeRedeployProtocol,
CloudapiComputeResetProtocol,
CloudapiComputeResizeProtocol,
CloudapiComputeRestoreProtocol,
CloudapiComputeResumeProtocol,
CloudapiComputeSetCustomFieldsProtocol,
CloudapiComputeSnapshotCreateProtocol,
CloudapiComputeSnapshotListProtocol,
CloudapiComputeSnapshotRollbackProtocol,
CloudapiComputeStartProtocol,
CloudapiComputeStopProtocol,
CloudapiComputeTagAddProtocol,
CloudapiComputeTagRemoveProtocol,
CloudapiComputeUnpinFromStackProtocol,
CloudapiComputeUpdateProtocol,
CloudapiComputeUserGrantProtocol,
CloudapiComputeUserListProtocol,
CloudapiComputeUserRevokeProtocol,
CloudapiComputeUserUpdateProtocol,
):
pass

View File

@@ -0,0 +1,19 @@
import dynamix_sdk.base as _base
class CloudapiComputeAbortSharedSnapshotMergeResultBool(
_base.BaseAPIResultBool,
):
pass
class CloudapiComputeAbortSharedSnapshotMergeProtocol(
_base.BasePostAPIFunctionProtocol
):
def abort_shared_snapshot_merge(
self,
*,
vm_id: int,
label: str,
) -> CloudapiComputeAbortSharedSnapshotMergeResultBool:
...

View File

@@ -0,0 +1,16 @@
import dynamix_sdk.base as _base
class CloudapiComputeAffinityLabelRemoveResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeAffinityLabelRemoveProtocol(
_base.BasePostAPIFunctionProtocol
):
def affinity_label_remove(
self,
*,
vm_id: int,
) -> CloudapiComputeAffinityLabelRemoveResultBool:
...

View File

@@ -0,0 +1,17 @@
import dynamix_sdk.base as _base
class CloudapiComputeAffinityLabelSetResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeAffinityLabelSetProtocol(
_base.BasePostAPIFunctionProtocol
):
def affinity_label_set(
self,
*,
vm_id: int,
affinity_label: str,
) -> CloudapiComputeAffinityLabelSetResultBool:
...

View File

@@ -0,0 +1,20 @@
import dynamix_sdk.base as _base
from dynamix_sdk.api import _nested
class CloudapiComputeAffinityRelationsResultModel(
_base.BaseAPIResultModel,
_nested.AffinityRelationsAPIResultNM,
):
pass
class CloudapiComputeAffinityRelationsProtocol(
_base.BasePostAPIFunctionProtocol
):
def affinity_relations(
self,
*,
vm_id: int,
) -> CloudapiComputeAffinityRelationsResultModel:
...

View File

@@ -0,0 +1,22 @@
import dynamix_sdk.base as _base
from dynamix_sdk.api import _nested
class CloudapiComputeAffinityRuleAddResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeAffinityRuleAddProtocol(
_base.BasePostAPIFunctionProtocol
):
def affinity_rule_add(
self,
*,
vm_id: int,
topology: _nested.AffinityTopology,
policy: _nested.AffinityPolicy,
mode: _nested.AffinityMode,
key: str,
value: str,
) -> CloudapiComputeAffinityRuleAddResultBool:
...

View File

@@ -0,0 +1,22 @@
import dynamix_sdk.base as _base
from dynamix_sdk.api import _nested
class CloudapiComputeAffinityRuleRemoveResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeAffinityRuleRemoveProtocol(
_base.BasePostAPIFunctionProtocol
):
def affinity_rule_remove(
self,
*,
vm_id: int,
topology: _nested.AffinityTopology,
policy: _nested.AffinityPolicy,
mode: _nested.AffinityMode,
key: str,
value: str,
) -> CloudapiComputeAffinityRuleRemoveResultBool:
...

View File

@@ -0,0 +1,16 @@
import dynamix_sdk.base as _base
class CloudapiComputeAffinityRulesClearResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeAffinityRulesClearProtocol(
_base.BasePostAPIFunctionProtocol
):
def affinity_rules_clear(
self,
*,
vm_id: int,
) -> CloudapiComputeAffinityRulesClearResultBool:
...

View File

@@ -0,0 +1,22 @@
import dynamix_sdk.base as _base
from dynamix_sdk.api import _nested
class CloudapiComputeAntiAffinityRuleAddResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeAntiAffinityRuleAddProtocol(
_base.BasePostAPIFunctionProtocol
):
def anti_affinity_rule_add(
self,
*,
vm_id: int,
topology: _nested.AffinityTopology,
policy: _nested.AffinityPolicy,
mode: _nested.AffinityMode,
key: str,
value: str,
) -> CloudapiComputeAntiAffinityRuleAddResultBool:
...

View File

@@ -0,0 +1,22 @@
import dynamix_sdk.base as _base
from dynamix_sdk.api import _nested
class CloudapiComputeAntiAffinityRuleRemoveResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeAntiAffinityRuleRemoveProtocol(
_base.BasePostAPIFunctionProtocol
):
def anti_affinity_rule_remove(
self,
*,
vm_id: int,
topology: _nested.AffinityTopology,
policy: _nested.AffinityPolicy,
mode: _nested.AffinityMode,
key: str,
value: str,
) -> CloudapiComputeAntiAffinityRuleRemoveResultBool:
...

View File

@@ -0,0 +1,16 @@
import dynamix_sdk.base as _base
class CloudapiComputeAntiAffinityRulesClearResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeAntiAffinityRulesClearProtocol(
_base.BasePostAPIFunctionProtocol
):
def anti_affinity_rules_clear(
self,
*,
vm_id: int,
) -> CloudapiComputeAntiAffinityRulesClearResultBool:
...

View File

@@ -0,0 +1,15 @@
import dynamix_sdk.base as _base
class CloudapiComputeAttachGpuResultInt(_base.BaseAPIResultInt):
pass
class CloudapiComputeAttachGpuProtocol(_base.BasePostAPIFunctionProtocol):
def attach_gpu(
self,
*,
vm_id: int,
vgpu_id: int,
) -> CloudapiComputeAttachGpuResultInt:
...

View File

@@ -0,0 +1,17 @@
import dynamix_sdk.base as _base
class CloudapiComputeAttachPciDeviceResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeAttachPciDeviceProtocol(
_base.BasePostAPIFunctionProtocol,
):
def attach_pci_device(
self,
*,
vm_id: int,
pci_device_id: int,
) -> CloudapiComputeAttachPciDeviceResultBool:
...

View File

@@ -0,0 +1,15 @@
import dynamix_sdk.base as _base
class CloudapiComputeBootDiskSetResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeBootDiskSetProtocol(_base.BasePostAPIFunctionProtocol):
def boot_disk_set(
self,
*,
vm_id: int,
disk_id: int,
) -> CloudapiComputeBootDiskSetResultBool:
...

View File

@@ -0,0 +1,14 @@
import dynamix_sdk.base as _base
class CloudapiComputeCdEjectResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeCdEjectProtocol(_base.BasePostAPIFunctionProtocol):
def cd_eject(
self,
*,
vm_id: int,
) -> CloudapiComputeCdEjectResultBool:
...

View File

@@ -0,0 +1,15 @@
import dynamix_sdk.base as _base
class CloudapiComputeCdInsertResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeCdInsertProtocol(_base.BasePostAPIFunctionProtocol):
def cd_insert(
self,
*,
vm_id: int,
cdrom_image_id: int,
) -> CloudapiComputeCdInsertResultBool:
...

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiComputeChangeIpResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeChangeIpProtocol(_base.BasePostAPIFunctionProtocol):
def change_ip(
self,
*,
vm_id: int,
net_type: _nested.NetTypeForChangeIP,
net_id: int,
ip_addr: str,
) -> CloudapiComputeChangeIpResultBool:
...

View File

@@ -0,0 +1,19 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiComputeChangeLinkStateResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeChangeLinkStateProtocol(
_base.BasePostAPIFunctionProtocol
):
def change_link_state(
self,
*,
interface: str,
state: _nested.LinkState,
vm_id: int,
) -> CloudapiComputeChangeLinkStateResultBool:
...

View File

@@ -0,0 +1,16 @@
import dynamix_sdk.base as _base
class CloudapiComputeChangeMacResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeChangeMacProtocol(_base.BasePostAPIFunctionProtocol):
def change_mac(
self,
*,
vm_id: int,
current_mac: str,
new_mac: str,
) -> CloudapiComputeChangeMacResultBool:
...

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
class CloudapiComputeChangeMtuResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeChangeMtuProtocol(
_base.BasePostAPIFunctionProtocol
):
def change_mtu(
self,
*,
vm_id: int,
interface: str,
mtu: int,
) -> CloudapiComputeChangeMtuResultBool:
...

View File

@@ -0,0 +1,19 @@
import dynamix_sdk.base as _base
class CloudapiComputeChangeSecurityGroupsResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeChangeSecurityGroupsProtocol(
_base.BasePostAPIFunctionProtocol
):
def change_security_groups(
self,
*,
vm_id: int,
interface: str,
security_group_ids: list[int] | None = None,
security_group_mode: bool | None = None,
) -> CloudapiComputeChangeSecurityGroupsResultBool:
...

View File

@@ -0,0 +1,21 @@
import dynamix_sdk.base as _base
class CloudapiComputeCloneResultStr(_base.BaseAPIResultStr):
pass
class CloudapiComputeCloneProtocol(_base.BasePostAPIFunctionProtocol):
def clone(
self,
*,
vm_id: int,
name: str,
force: bool = False,
storage_policy_id: int,
snapshot_timestamp: int | None = None,
snapshot_name: str | None = None,
sep_pool_name: str | None = None,
sep_id: int | None = None,
) -> CloudapiComputeCloneResultStr:
...

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
class CloudapiComputeCloneAbortResultBool(
_base.BaseAPIResultBool,
):
pass
class CloudapiComputeCloneAbortProtocol(
_base.BasePostAPIFunctionProtocol
):
def clone_abort(
self,
*,
vm_id: int,
) -> CloudapiComputeCloneAbortResultBool:
...

View File

@@ -0,0 +1,15 @@
import dynamix_sdk.base as _base
class CloudapiComputeCreateTemplateResultStr(_base.BaseAPIResultStr):
pass
class CloudapiComputeCreateTemplateProtocol(_base.BasePostAPIFunctionProtocol):
def create_template(
self,
*,
vm_id: int,
name: str
) -> CloudapiComputeCreateTemplateResultStr:
...

View File

@@ -9,8 +9,7 @@ class CloudapiComputeDeleteProtocol(_base.BasePostAPIFunctionProtocol):
def delete(
self,
*,
compute_id: int,
vm_id: int,
detach_disks: bool = False,
permanently: bool = False,
) -> CloudapiComputeDeleteResultBool:

View File

@@ -0,0 +1,16 @@
import dynamix_sdk.base as _base
class CloudapiComputeDeleteCustomFieldsResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeDeleteCustomFieldsProtocol(
_base.BasePostAPIFunctionProtocol
):
def delete_custom_fields(
self,
*,
vm_id: int,
) -> CloudapiComputeDeleteCustomFieldsResultBool:
...

View File

@@ -0,0 +1,15 @@
import dynamix_sdk.base as _base
class CloudapiComputeDetachGpuResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeDetachGpuProtocol(_base.BasePostAPIFunctionProtocol):
def detach_gpu(
self,
*,
vm_id: int,
vgpu_id: int | None = None,
) -> CloudapiComputeDetachGpuResultBool:
...

View File

@@ -0,0 +1,17 @@
import dynamix_sdk.base as _base
class CloudapiComputeDetachPciDeviceResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeDetachPciDeviceProtocol(
_base.BasePostAPIFunctionProtocol,
):
def detach_pci_device(
self,
*,
vm_id: int,
pci_device_id: int,
) -> CloudapiComputeDetachPciDeviceResultBool:
...

View File

@@ -0,0 +1,16 @@
import dynamix_sdk.base as _base
class CloudapiComputeDisableResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeDisableProtocol(
_base.BasePostAPIFunctionProtocol
):
def disable(
self,
*,
vm_id: int,
) -> CloudapiComputeDisableResultBool:
...

View File

@@ -0,0 +1,25 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiComputeDiskAddResultInt(_base.BaseAPIResultInt):
pass
class CloudapiComputeDiskAddProtocol(_base.BasePostAPIFunctionProtocol):
def disk_add(
self,
*,
vm_id: int,
name: str,
disk_size_gb: int,
storage_policy_id: int,
disk_type: _nested.DiskType = _nested.DiskType.D,
sep_id: int | None = None,
sep_pool_name: str | None = None,
description: str | None = None,
image_id: int | None = None,
pci_slot_num_hex: str | None = None,
bus_num_hex: str | None = None,
) -> CloudapiComputeDiskAddResultInt:
...

View File

@@ -0,0 +1,19 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiComputeDiskAttachResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeDiskAttachProtocol(_base.BasePostAPIFunctionProtocol):
def disk_attach(
self,
*,
vm_id: int,
disk_id: int,
disk_type: _nested.DiskType = _nested.DiskType.D,
pci_slot_num_hex: str | None = None,
bus_num_hex: str | None = None,
) -> CloudapiComputeDiskAttachResultBool:
...

View File

@@ -0,0 +1,16 @@
import dynamix_sdk.base as _base
class CloudapiComputeDiskDelResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeDiskDelProtocol(_base.BasePostAPIFunctionProtocol):
def disk_del(
self,
*,
vm_id: int,
disk_id: int,
permanently: bool = True,
) -> CloudapiComputeDiskDelResultBool:
...

View File

@@ -0,0 +1,15 @@
import dynamix_sdk.base as _base
class CloudapiComputeDiskDetachResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeDiskDetachProtocol(_base.BasePostAPIFunctionProtocol):
def disk_detach(
self,
*,
vm_id: int,
disk_id: int,
) -> CloudapiComputeDiskDetachResultBool:
...

View File

@@ -0,0 +1,19 @@
import dynamix_sdk.base as _base
class CloudapiComputeDiskMigrateResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeDiskMigrateProtocol(
_base.BasePostAPIFunctionProtocol
):
def disk_migrate(
self,
*,
vm_id: int,
disk_id: int,
target_disk_id: int,
mode: int = 1,
) -> CloudapiComputeDiskMigrateResultBool:
...

View File

@@ -0,0 +1,20 @@
import dynamix_sdk.base as _base
class CloudapiComputeDiskSwitchToReplicationResultBool(
_base.BaseAPIResultBool,
):
pass
class CloudapiComputeDiskSwitchToReplicationProtocol(
_base.BasePostAPIFunctionProtocol,
):
def disk_switch_to_replication(
self,
*,
vm_id: int,
disk_id: int,
stop_replication: bool = False,
) -> CloudapiComputeDiskSwitchToReplicationResultBool:
...

View File

@@ -0,0 +1,14 @@
import dynamix_sdk.base as _base
class CloudapiComputeEnableResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeEnableProtocol(_base.BasePostAPIFunctionProtocol):
def enable(
self,
*,
vm_id: int,
) -> CloudapiComputeEnableResultBool:
...

View File

@@ -2,18 +2,81 @@ import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiComputeGetResultModel(
_base.BaseAPIResultModel,
_nested.BaseVMAPIResultNM,
):
class CloudapiComputeGetResultModel(_base.BaseAPIResultModel):
account_id: int
account_name: str
acl: _nested.VMACLAPIResultNM
affinity_label: str
affinity_rules: list[_nested.AffinityRuleAPIResultNM]
affinity_weight: int
anti_affinity_rules: list[_nested.AffinityRuleAPIResultNM]
arch: str
auto_start: bool
boot_disk_size_gb: int
boot_image_id: int
boot_loader_metaiso: _nested.BootLoaderMetaisoAPIResultNM | None
boot_loader_type: _nested.BootLoaderType
boot_mode: _nested.BootMode
boot_order: list[_nested.BootDevice]
cdrom_image_id: int
chipset: _nested.Chipset
ci_user_data: dict
disks: list[_nested.DiskAPIResultNM]
clone_ids: list[int]
clone_reference: int
cpu_count: int
cpu_pin: bool
created_by: str
created_timestamp: int
custom_fields: dict
deleted_by: str
deleted_timestamp: int
description: str
devices: dict
disks: list[_nested.DiskForCAComputeGetAPIResultNM]
driver: _nested.Driver
grid_id: int
guid: int
hot_resize: bool
hp_backed: bool
id: int
image_id: None | int
image_name: None | str
interfaces: list[_nested.InterfaceAPIResultNM]
interfaces: list[_nested.InterfaceForComputeGetAPIResultNM]
live_migration_job_id: int
lock_status: _nested.LockStatus
manager_id: int
manager_type: str
migration_job_id: int
milestones: int
name: str
need_reboot: bool
network_interface_naming: _nested.NetIfaceNamingTemplate
numa_affinity: _nested.NumaAffinity
numa_node_id: int
os_users: list[_nested.OSUserAPIResultNM]
virtual_image_name: None | str
vns_password: str
os_version: str
pinned_to_stack: bool
preferred_cpu_cores: list[int]
ram_size_mb: int
reference_id: str
res_name: str
reserved_cpu_cores: list[int]
rg_id: int
rg_name: str
snapshot_sets: list[_nested.SnapshotSetAPIResultNM]
stateless_sep_id: int | None = None
stateless_sep_type: str | None = None
status: _nested.VMStatus
tags: dict
tech_status: _nested.VMTechStatus
updated_by: str
updated_timestamp: int
user_managed: bool
vgpus: list[_nested.VGPUAPIResultNM]
vm_ci_id: int
vnc_password: str
guest_agent: _nested.GuestAgentAPIResultNM
zone_id: int
natable_vins_id: int = 0
natable_vins_ip: str = ''
@@ -21,11 +84,23 @@ class CloudapiComputeGetResultModel(
natable_vins_network: str = ''
natable_vins_network_name: str = ''
@property
def created_datetime(self):
return self._get_datetime_from_timestamp(self.created_timestamp)
@property
def deleted_datetime(self):
return self._get_datetime_from_timestamp(self.deleted_timestamp)
@property
def updated_datetime(self):
return self._get_datetime_from_timestamp(self.updated_timestamp)
class CloudapiComputeGetProtocol(_base.BasePostAPIFunctionProtocol):
def get(
self,
*,
compute_id: int,
vm_id: int,
) -> CloudapiComputeGetResultModel:
...

View File

@@ -0,0 +1,14 @@
import dynamix_sdk.base as _base
class CloudapiComputeGetConsoleUrlResultStr(_base.BaseAPIResultStr):
pass
class CloudapiComputeGetConsoleUrlProtocol(_base.BasePostAPIFunctionProtocol):
def get_console_url(
self,
*,
vm_id: int,
) -> CloudapiComputeGetConsoleUrlResultStr:
...

View File

@@ -0,0 +1,16 @@
import dynamix_sdk.base as _base
class CloudapiComputeGuestAgentDisableResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeGuestAgentDisableProtocol(
_base.BasePostAPIFunctionProtocol
):
def guest_agent_disable(
self,
*,
vm_id: int,
) -> CloudapiComputeGuestAgentDisableResultBool:
...

View File

@@ -0,0 +1,16 @@
import dynamix_sdk.base as _base
class CloudapiComputeGuestAgentEnableResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeGuestAgentEnableProtocol(
_base.BasePostAPIFunctionProtocol
):
def guest_agent_enable(
self,
*,
vm_id: int,
) -> CloudapiComputeGuestAgentEnableResultBool:
...

View File

@@ -0,0 +1,21 @@
import typing as _typing
import dynamix_sdk.base as _base
class CloudapiComputeGuestAgentExecuteResultModel(
_base.BaseAPIResultModel,
):
exec_result: dict
class CloudapiComputeGuestAgentExecuteProtocol(
_base.BasePostAPIFunctionProtocol
):
def guest_agent_execute(
self,
*,
vm_id: int,
cmd: str,
args: dict[str, _typing.Any],
) -> CloudapiComputeGuestAgentExecuteResultModel:
...

View File

@@ -0,0 +1,18 @@
import dynamix_sdk.base as _base
class CloudapiComputeGuestAgentFeatureUpdateResultBool(
_base.BaseAPIResultBool,
):
pass
class CloudapiComputeGuestAgentFeatureUpdateProtocol(
_base.BasePostAPIFunctionProtocol
):
def guest_agent_feature_update(
self,
*,
vm_id: int,
) -> CloudapiComputeGuestAgentFeatureUpdateResultBool:
...

View File

@@ -18,6 +18,7 @@ class CloudapiComputeListProtocol(_base.BasePostAPIFunctionProtocol):
include_deleted: bool = False,
ip_addr: str | None = None,
name: str | None = None,
zone_id: int | None = None,
page_number: int | None = None,
page_size: int | None = None,
rg_id: int | None = None,

View File

@@ -0,0 +1,27 @@
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
class CloudapiComputeListDeletedResultModel(_base.BaseAPIResultModel):
data: list[_nested.VMAPIResultNM]
entry_count: int
class CloudapiComputeListDeletedProtocol(_base.BasePostAPIFunctionProtocol):
def list_deleted(
self,
*,
id: int | None = None,
name: str | None = None,
account_id: int | None = None,
rg_name: str | None = None,
rg_id: int | None = None,
tech_status: _nested.VMTechStatus | None = None,
ip_addr: str | None = None,
ext_net_name: str | None = None,
ext_net_id: int | None = None,
page_number: int | None = None,
page_size: int | None = None,
sort_by: str | None = None,
) -> CloudapiComputeListDeletedResultModel:
...

View File

@@ -0,0 +1,15 @@
import dynamix_sdk.base as _base
class CloudapiComputeMigrateToZoneResultBool(_base.BaseAPIResultBool):
pass
class CloudapiComputeMigrateToZoneProtocol(_base.BasePostAPIFunctionProtocol):
def migrate_to_zone(
self,
*,
vm_id: int,
zone_id: int,
) -> CloudapiComputeMigrateToZoneResultBool:
...

Some files were not shown because too many files have changed in this diff Show More