diff --git a/CHANGELOG.md b/CHANGELOG.md
index ce36029..473a410 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,20 +1,376 @@
-# Список изменений в версии 1.2.2
+# Список изменений в версии 1.3.0
## Добавлено
-### Функциональный интерфейс
| Идентификатор
задачи | Описание |
| --- | --- |
+| BPYS-89 | Добавлены функции `cloudapi.vfpool.get`, `cloudapi.vfpool.list`. |
+| BPYS-314 | Функция `cloudapi.compute.get`: тип атрибута `CloudapiComputeGetResultModel.stateless_sep_id` изменен с `int` на `int \| None`. |
+| BPYS-315 | Функция `cloudapi.compute.get`: тип атрибута `CloudapiComputeGetResultModel.stateless_sep_type` изменен с `str` на `str \| None`. |
+| BPYS-174 | Добавлена функция `cloudapi.compute.get_console_url`. |
+| BPYS-168 | Добавлена функция `cloudapi.lb.config_reset`. |
+| BPYS-166 | Добавлена функция `cloudapi.lb.update`. |
+| BPYS-164 | Добавлены функции `cloudapi.lb.start`, `cloudapi.lb.stop`. |
+| BPYS-333 | Функция `cloudapi.compute.list`: тип атрибута `CloudapiComputeListResultModel.data.stateless_sep_id` изменен с `int` на `int \| None`. |
+| BPYS-334 | Функция `cloudapi.compute.list`: тип атрибута `CloudapiComputeListResultModel.data.stateless_sep_type` изменен с `str` на `str \| None`. |
+| BPYS-324 | Функция `cloudapi.k8s.list`: у атрибута `CloudapiK8sListResultModel.data` изменен тип с `K8sListAPIResultNM` на `K8sAPIResultNM`. |
+| BPYS-324 | Функция `cloudapi.k8s.list_deleted`: у атрибута `CloudapiK8sListDeletedResultModel.data` изменен тип с `K8sListDeletedAPIResultNM` на `K8sAPIResultNM`. |
+| BPYS-188 | Добавлены функции `cloudapi.k8s.delete_master_from_group`, `cloudapi.k8s.delete_worker_from_group`. |
+| BPYS-359 | Функция `cloudapi.account.get`: добавлен атрибут `CloudapiAccountGetResultModel.quotas.ext_ip_count` в связи с переименованием из `public_ip_count`. |
+| BPYS-359 | Функция `cloudapi.account.update`: добавлен параметр `ext_ip_count_quota` в связи с переименованием из `public_ip_count_quota`. |
+| BPYS-359 | Функция `cloudapi.rg.create`: добавлен параметр `ext_ip_count_quota` в связи с переименованием из `public_ip_count_quota`. |
+| BPYS-359 | Функция `cloudapi.rg.get`: добавлен атрибут `CloudapiRgGetResultModel.quotas.ext_ip_count` в связи с переименованием из `public_ip_count`. |
+| BPYS-359 | Функция `cloudapi.rg.list`: добавлен атрибут `CloudapiRgListResultModel.data.quotas.ext_ip_count` в связи с переименованием из `public_ip_count`. |
+| BPYS-359 | Функция `cloudapi.rg.update`: добавлен параметр `ext_ip_count_quota` в связи с переименованием из `public_ip_count_quota`. |
+| BPYS-359 | Функция `cloudbroker.account.create`: добавлен параметр `ext_ip_count_quota` в связи с переименованием из `public_ip_count_quota`. |
+| BPYS-150 | Добавлены функции `cloudapi.vins.nat_rule_add`, `cloudapi.vins.nat_rule_del`, `cloudapi.vins.nat_rule_list`. |
+| BPYS-176 | Добавлена функция `cloudapi.compute.power_cycle`. |
+| BPYS-374 | Функция `cloudapi.image.create`: добавлен параметр `storage_policy_id`. |
+| BPYS-379 | Функция `cloudapi.kvmx86.create`: добавлен параметр `storage_policy_id`. |
+| BPYS-380 | Функция `cloudapi.kvmx86.create_blank`: добавлен параметр `storage_policy_id`. |
+| BPYS-370 | Функция `cloudapi.compute.disk_add`: добавлен параметр `storage_policy_id`. |
+| BPYS-372 | Функция `cloudapi.disks.create`: добавлен параметр `storage_policy_id`. |
+| BPYS-376 | Функция `cloudapi.k8s.create`: добавлен параметр `storage_policy_id`. |
+| BPYS-378 | Функция `cloudapi.k8s.workers_group_add`: добавлен параметр `storage_policy_id`. |
+| BPYS-368 | Функция `cloudapi.bservice.group_add`: добавлен параметр `storage_policy_id`. |
+| BPYS-177 | Добавлена функция `cloudapi.compute.reset`. |
+| BPYS-192 | Добавлена функция `cloudapi.k8s.enable`, `cloudapi.k8s.disable`. |
+| BPYS-193 | Добавлена функция `cloudapi.k8s.update`. |
+| BPYS-194 | Добавлена функция `cloudapi.k8s.start`, `cloudapi.k8s.stop`. |
+| BPYS-170 | Добавлена функция `cloudapi.lb.restart`. |
+| BPYS-169 | Добавлена функция `cloudapi.lb.restore`. |
+| BPYS-175 | Добавлена функция `cloudapi.compute.change_link_state`. |
+| BPYS-139 | Добавлена функция `cloudapi.compute.abort_shared_snapshot_merge`. |
+| BPYS-173 | Добавлена функция `cloudapi.lb.update_syscl_params`. |
+| BPYS-389 | Функция `cloudapi.account.get`: добавлен атрибут `CloudapiAccountGetResultModel.storage_policy_ids`. |
+| BPYS-414 | Функция `cloudapi.account.get`: добавлен атрибут `CloudapiAccountGetResultModel.quotas.storage_policies`. |
+| BPYS-414 | Функция `cloudapi.rg.get`: добавлен атрибут `CloudapiRgGetResultModel.quotas.storage_policies`. |
+| BPYS-414 | Функция `cloudapi.rg.list`: добавлен атрибут `CloudapiRgListResultModel.data.quotas.storage_policies`. |
+| BPYS-385 | Функция `cloudapi.compute.redeploy`: добавлен параметр `storage_policy_id`. |
+| BPYS-386 | Функция `cloudapi.disks.get`: добавлен атрибут `CloudapiDisksGetResultModel.storage_policy_id`. |
+| BPYS-387 | Функция `cloudapi.disks.list`: добавлен атрибут `CloudapiDisksListResultModel.data.storage_policy_id`. |
+| BPYS-387 | Функция `cloudapi.disks.list_deleted`: добавлен атрибут `CloudapiDisksListDeletedResultModel.data.storage_policy_id`. |
+| BPYS-391 | Функция `cloudapi.rg.get`: добавлен атрибут `CloudapiRgGetResultModel.storage_policy_ids`. |
+| BPYS-181 | Добавлена функция `cloudapi.vins.dns_apply`. |
+| BPYS-388 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.disks.storage_policy_id`. |
+| BPYS-417 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.interfaces.security_group_ids`. |
+| BPYS-418 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.interfaces.security_group_mode`. |
+| BPYS-418 | Функция `cloudapi.compute.net_attach`: добавлен атрибут `CloudapiComputeNetAttachResultModel.interfaces.security_group_ids`. |
+| BPYS-418 | Функция `cloudapi.compute.net_attach`: добавлен атрибут `CloudapiComputeNetAttachResultModel.interfaces.security_group_mode`. |
+| BPYS-155 | Добавлены функции `cloudbroker.user.block`, `cloudbroker.user.unblock`. |
+| BPYS-308 | Функция `cloudapi.image.create_virtual`: добавлен параметр `account_id`. |
+| BPYS-422 | Функция `cloudapi.compute.list`: добавлен атрибут `CloudapiComputeListResultModel.data.interfaces.security_group_ids`. |
+| BPYS-423 | Функция `cloudapi.compute.list`: добавлен атрибут `CloudapiComputeListResultModel.data.interfaces.security_group_mode`. |
+| BPYS-156 | Функция `cloudapi.compute.user_list`: у атрибута `CloudapiComputeUserListResultModel.data.account.explicit` изменен тип с `bool \| str` на `bool`. |
+| BPYS-156 | Функция `cloudapi.compute.user_list`: у атрибута `CloudapiComputeUserListResultModel.data.vm.explicit` изменен тип с `bool \| str` на `bool`. |
+| BPYS-156 | Функция `cloudapi.compute.user_list`: у атрибута `CloudapiComputeUserListResultModel.data.rg.explicit` изменен тип с `bool \| str` на `bool`. |
+| BPYS-156 | Функция `cloudapi.compute.get`: у атрибута `CloudapiComputeGetResultModel.acl.account.explicit` изменен тип с `bool \| str` на `bool`. |
+| BPYS-156 | Функция `cloudapi.compute.get`: у атрибута `CloudapiComputeGetResultModel.acl.vm.explicit` изменен тип с `bool \| str` на `bool`. |
+| BPYS-156 | Функция `cloudapi.compute.get`: у атрибута `CloudapiComputeGetResultModel.acl.rg.explicit` изменен тип с `bool \| str` на `bool`. |
+| BPYS-100 | Добавлены функции `cloudapi.zone.get`, `cloudapi.zone.list`. |
+| BPYS-141 | Добавлены функции `cloudapi.compute.guest_agent_disable`, `cloudapi.compute.guest_agent_enable`, `cloudapi.compute.guest_agent_execute`, `cloudapi.compute.guest_agent_feature_update`. |
+| BPYS-436 | Функция `cloudapi.disks.list`: добавлен параметр `storage_policy_id`. |
+| BPYS-427 | Функция `cloudapi.kvmx86.create`: добавлен параметр `interfaces.security_group_mode`. |
+| BPYS-428 | Функция `cloudapi.kvmx86.create`: добавлен параметр `interfaces.security_group_ids`. |
+| BPYS-428 | Функция `cloudapi.kvmx86.create_blank`: добавлен параметр `interfaces.security_group_mode`. |
+| BPYS-428 | Функция `cloudapi.kvmx86.create_blank`: добавлен параметр `interfaces.security_group_ids`. |
+| BPYS-433 | Функция `cloudapi.compute.net_attach`: добавлен параметр `security_group_mode`. |
+| BPYS-434 | Функция `cloudapi.compute.net_attach`: добавлен параметр `security_group_ids`. |
+| BPYS-447 | Добавлена функция `cloudapi.image.change_storage_policy`. |
+| BPYS-459 | Функция `cloudapi.rg.update`: добавлен параметр `storage_policies`. |
+| BPYS-101 | Добавлены функции `cloudapi.bservice.migrate_to_zone`, `cloudapi.compute.migrate_to_zone`, `cloudapi.k8s.migrate_to_zone`, `cloudapi.lb.migrate_to_zone`, `cloudapi.vins.migrate_to_zone`. |
+| BPYS-446 | Добавлена функция `cloudapi.security_group.update`. |
+| BPYS-251 | Добавлена функция `cloudapi.compute.change_mtu`. |
+| BPYS-439 | Добавлена функция `cloudapi.compute.change_security_groups`. |
+| BPYS-217 | Добавлены функции `cloudapi.trunk.get`, `cloudapi.trunk.list`. |
+| BPYS-462 | Функция `cloudapi.kvmx86.create_blank`: добавлен параметр `data_disks.storage_policy_id`. |
+| BPYS-462 | Функция `cloudapi.kvmx86.create`: добавлен параметр `data_disks.storage_policy_id`. |
+| BPYS-464 | Функция `cloudapi.user.get_audit`: в параметре `sort_by` изменено значение по умолчанию с `-Time` на `-timestamp`. |
+| BPYS-470 | Функция `cloudapi.bservice.list`: добавлен параметр `zone_id`. |
+| BPYS-496 | Функция `cloudapi.account.list`: добавлен атрибут `CloudapiAccountListResultModel.data.zone_ids`. |
+| BPYS-496 | Функция `cloudapi.account.list_deleted`: добавлен атрибут `CloudapiAccountListDeletedResultModel.data.zone_ids`. |
+| BPYS-468 | Функция `cloudapi.account.list`: добавлен параметр `zone_id`. |
+| BPYS-492 | Функция `cloudapi.kvmx86.create`: добавлен параметр `interfaces.enabled`. |
+| BPYS-492 | Функция `cloudapi.kvmx86.create_blank`: добавлен параметр `interfaces.enabled`. |
+| BPYS-480 | Функция `cloudapi.vins.list`: добавлен параметр `zone_id`. |
+| BPYS-397 | Добавлена функция `cloudapi.storage_policy.get`. |
+| BPYS-472 | Функция `cloudapi.compute.list`: добавлен параметр `zone_id`. |
+| BPYS-474 | Функция `cloudapi.extnet.list`: добавлен параметр `zone_id`. |
+| BPYS-476 | Функция `cloudapi.k8s.list`: добавлен параметр `zone_id`. |
+| BPYS-478 | Функция `cloudapi.lb.list`: добавлен параметр `zone_id`. |
+| BPYS-493 | Функция `cloudapi.compute.net_attach`: добавлен параметр `enabled`. |
+| BPYS-180 | Добавлены функции `cloudapi.vins.ext_net_list`, `cloudapi.vins.ext_net_connect`, `cloudapi.vins.ext_net_disconnect`. |
+| BPYS-445 | Добавлена функция `cloudapi.security_group.list`. |
+| BPYS-442 | Добавлена функция `cloudapi.security_group.delete`. |
+| BPYS-440 | Добавлена функция `cloudapi.security_group.create`. |
+| BPYS-441 | Добавлена функция `cloudapi.security_group.create_rule`. |
+| BPYS-398 | Добавлена функция `cloudapi.storage_policy.list`. |
+| BPYS-443 | Добавлена функция `cloudapi.security_group.delete_rule`. |
+| BPYS-400 | Добавлена функция `cloudbroker.storage_policy.create`. |
+| BPYS-403 | Добавлена функция `cloudbroker.account.add_storage_policy`. |
+| BPYS-404 | Добавлена функция `cloudbroker.account.del_storage_policy`. |
+| BPYS-405 | Добавлена функция `cloudbroker.rg.add_storage_policy`. |
+| BPYS-448 | Добавлена функция `cloudbroker.image.change_storage_policy`. |
+| BPYS-396 | Функция `cloudbroker.account.create`: добавлен параметр `storage_policy_quotas`. |
+| BPYS-444 | Добавлена функция `cloudapi.security_group.get`. |
+| BPYS-449 | Добавлена функция `cloudbroker.compute.change_security_groups`. |
+| BPYS-450 | Добавлена функция `cloudbroker.vins.update`. |
+| BPYS-505 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.disks.to_clean`. |
+| BPYS-515 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.os_version`. |
+| BPYS-518 | Функция `cloudapi.compute.get`: у атрибута `CloudapiComputeGetResultModel.image_id` изменен тип с `int` на `None \| int`. |
+| BPYS-504 | Функция `cloudapi.disks.list`: добавлен атрибут `CloudapiDisksListResultModel.data.to_clean`. |
+| BPYS-504 | Функция `cloudapi.disks.list_deleted`: добавлен атрибут `CloudapiDisksListDeletedResultModel.data.to_clean`. |
+| BPYS-503 | Функция `cloudapi.disks.get`: добавлен атрибут `CloudapiDisksGetResultModel.to_clean`. |
+| BPYS-406 | Добавлена функция `cloudbroker.rg.del_storage_policy`. |
+| BPYS-438 | Функция `cloudapi.rg.create`: добавлен параметр `storage_policy_quotas`. |
+| BPYS-514 | Функция `cloudapi.kvmx86.create`: добавлен параметр `os_version`. |
+| BPYS-521 | Функция `cloudapi.compute.list`: добавлен атрибут `CloudapiComputeListResultModel.data.os_version`. |
+| BPYS-513 | Функция `cloudapi.kvmx86.create_blank`: добавлен параметр `os_version`. |
+| BPYS-512 | Функция `cloudapi.compute.update`: добавлен параметр `os_version`. |
+| BPYS-409 | Добавлена функция `cloudbroker.storage_policy.disable`. |
+| BPYS-402 | Добавлена функция `cloudbroker.storage_policy.update`. |
+| BPYS-407 | Добавлена функция `cloudbroker.storage_policy.add_pool`. |
+| BPYS-410 | Добавлена функция `cloudbroker.storage_policy.enable`. |
+| BPYS-532 | Функция `cloudapi.vins.get`: добавлен атрибут `CloudapiVinsGetResultModel.vnfdev.interfaces.security_group_ids`. |
+| BPYS-533 | Функция `cloudapi.vins.get`: добавлен атрибут `CloudapiVinsGetResultModel.vnfdev.interfaces.security_group_mode`. |
+| BPYS-534 | Функция `cloudapi.vins.get`: добавлен атрибут `CloudapiVinsGetResultModel.security_group_mode`. |
+| BPYS-531 | Функция `cloudapi.image.get`: добавлен атрибут `CloudapiImageGetResultModel.storage_policy_id`. |
+| BPYS-529 | Функция `cloudapi.extnet.get`: добавлен атрибут `CloudapiExtnetGetResultModel.security_group_mode`. |
+| BPYS-528 | Функция `cloudapi.dpdknet.get`: добавлен атрибут `CloudapiDpdknetGetResultModel.security_group_mode`. |
+| BPYS-528 | Функция `cloudapi.dpdknet.list`: добавлен атрибут `CloudapiDpdknetListResultModel.data.security_group_mode`. |
+| BPYS-524 | Функция `cloudapi.audit.get`: добавлен атрибут `CloudapiAuditGetResultModel.correlation_id`. |
+| BPYS-411 | Добавлена функция `cloudbroker.storage_policy.get`. |
+| BPYS-451 | Добавлена функция `cloudbroker.security_group.create`. |
+| BPYS-412 | Добавлена функция `cloudbroker.storage_policy.list`. |
+| BPYS-452 | Добавлена функция `cloudbroker.security_group.create_rule`. |
+| BPYS-542 | Функция `cloudapi.disks.list_unattached`: добавлен параметр `storage_policy_id`. |
+| BPYS-408 | Добавлена функция `cloudbroker.storage_policy.delete_pool`. |
+| BPYS-453 | Добавлена функция `cloudbroker.security_group.delete`. |
+| BPYS-455 | Добавлена функция `cloudbroker.security_group.get`. |
+| BPYS-456 | Добавлена функция `cloudbroker.security_group.list`. |
+| BPYS-457 | Добавлена функция `cloudbroker.security_group.update`. |
+| BPYS-564 | Функция `cloudapi.image.list`: добавлен параметр `storage_policy_id`. |
+| BPYS-562 | Функция `cloudapi.compute.redeploy`: добавлен параметр `os_version`. |
+| BPYS-570 | Функция `cloudapi.storage_policy.get`: добавлен атрибут `CloudapiStoragePolicyGetResultModel.sep_pools.sep_name`. |
+| BPYS-570 | Функция `cloudapi.storage_policy.list`: добавлен атрибут `CloudapiStoragePolicyListResultModel.data.sep_pools.sep_name`. |
+| BPYS-570 | Функция `cloudbroker.storage_policy.add_pool`: добавлен атрибут `CloudbrokerStoragePolicyAddPoolResultModel.sep_pools.sep_name`. |
+| BPYS-570 | Функция `cloudbroker.storage_policy.delete_pool`: добавлен атрибут `CloudbrokerStoragePolicyDeletePoolResultModel.sep_pools.sep_name`. |
+| BPYS-570 | Функция `cloudbroker.storage_policy.get`: добавлен атрибут `CloudbrokerStoragePolicyGetResultModel.sep_pools.sep_name`. |
+| BPYS-570 | Функция `cloudbroker.storage_policy.list`: добавлен атрибут `CloudbrokerStoragePolicyListResultModel.data.sep_pools.sep_name`. |
+| BPYS-570 | Функция `cloudbroker.storage_policy.update`: добавлен атрибут `CloudbrokerStoragePolicyUpdateResultModel.sep_pools.sep_name`. |
+| BPYS-550 | Добавлена функция `cloudbroker.node.get_ssh_identity`. |
+| BPYS-566 | Добавлена функция `cloudbroker.compute.start_migration_in`. |
+| BPYS-581 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.boot_loader_metaiso`. |
+| BPYS-582 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.disks.device_name`. |
+| BPYS-580 | Функция `cloudapi.image.list`: добавлен атрибут `CloudapiImageListResultModel.data.storage_policy_id`. |
+| BPYS-567 | Добавлена функция `cloudbroker.compute.stop_migration_in`. |
+| BPYS-556 | Функция `cloudapi.compute.disk_add`: добавлен параметр `pci_slot_num_hex`. |
+| BPYS-557 | Функция `cloudapi.compute.disk_add`: добавлен параметр `bus_num_hex`. |
+| BPYS-559 | Функция `cloudapi.compute.disk_attach`: добавлен параметр `pci_slot_num_hex`. |
+| BPYS-560 | Функция `cloudapi.compute.disk_attach`: добавлен параметр `bus_num_hex`. |
+| BPYS-565 | Добавлена функция `cloudbroker.compute.migrate_storage_list`. |
+| BPYS-553 | Функция `cloudapi.k8s.create`: тип параметра `lb_sysctl_params` изменен с `list[dict]` на `list[dict[str, str]]`. |
+| BPYS-552 | Функция `cloudapi.lb.update_sysctl_params`: тип параметра `sysctl_params` изменен с `list[dict]` на `list[dict[str, str]]`. |
+| BPYS-497 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.interfaces.net_prefix` в связи с переименованием из `net_mask`. |
+| BPYS-497 | Функция `cloudapi.compute.list`: добавлен атрибут `CloudapiComputeListResultModel.data.interfaces.net_prefix` в связи с переименованием из `net_mask`. |
+| BPYS-497 | Функция `cloudapi.compute.net_attach`: добавлен атрибут `CloudapiComputeNetAttachResultModel.net_prefix` в связи с переименованием из `net_mask`. |
+| BPYS-497 | Функция `cloudapi.flipgroup.create`: добавлен атрибут `CloudapiFlipgroupCreateResultModel.net_prefix` в связи с переименованием из `net_mask`. |
+| BPYS-497 | Функция `cloudapi.flipgroup.list`: добавлен атрибут `CloudapiFlipgroupListResultModel.data.net_prefix` в связи с переименованием из `net_mask`. |
+| BPYS-497 | Функция `cloudapi.extnet.get`: добавлен атрибут `CloudapiExtnetGetResultModel.net_prefix` в связи с переименованием из `net_mask`. |
+| BPYS-497 | Функция `cloudapi.vins.get`: добавлен атрибут `CloudapiVinsGetResultModel.net_prefix` в связи с переименованием из `net_mask`. |
+| BPYS-497 | Функция `cloudapi.vins.get`: добавлен атрибут `CloudapiVinsGetResultModel.vnfdev.interfaces.net_prefix` в связи с переименованием из `net_mask`. |
+| BPYS-497 | Функция `cloudapi.vins.get`: добавлен атрибут `CloudapiVinsGetResultModel.vnfs.dhcp.config.net_prefix` в связи с переименованием из `net_mask`. |
+| BPYS-497 | Функция `cloudapi.vins.get`: добавлен атрибут `CloudapiVinsGetResultModel.vnfs.gw.config.ext_net_prefix` в связи с переименованием из `ext_net_mask`. |
+| BPYS-497 | Функция `cloudapi.vins.get`: добавлен атрибут `CloudapiVinsGetResultModel.vnfs.nat.config.net_prefix` в связи с переименованием из `net_mask`. |
+| BPYS-587 | Функция `cloudapi.audit.get`: добавлен атрибут `CloudapiAuditGetResultModel.account_id`. |
+| BPYS-588 | Функция `cloudapi.audit.get`: добавлен атрибут `CloudapiAuditGetResultModel.vm_id`. |
+| BPYS-589 | Функция `cloudapi.audit.get`: добавлен атрибут `CloudapiAuditGetResultModel.rg_id`. |
+| BPYS-590 | Функция `cloudapi.audit.get`: добавлен атрибут `CloudapiAuditGetResultModel.vins_id`. |
+| BPYS-591 | Функция `cloudapi.audit.get`: добавлен атрибут `CloudapiAuditGetResultModel.bservice_id`. |
+| BPYS-592 | Функция `cloudapi.audit.get`: добавлен атрибут `CloudapiAuditGetResultModel.k8s_id`. |
+| BPYS-593 | Функция `cloudapi.audit.get`: добавлен атрибут `CloudapiAuditGetResultModel.flip_group_id`. |
+| BPYS-594 | Функция `cloudapi.audit.get`: добавлен атрибут `CloudapiAuditGetResultModel.lb_id`. |
+| BPYS-595 | Функция `cloudapi.audit.get`: добавлен атрибут `CloudapiAuditGetResultModel.sep_id`. |
+| BPYS-596 | Функция `cloudapi.audit.get`: добавлен атрибут `CloudapiAuditGetResultModel.node_ids`. |
+| BPYS-597 | Функция `cloudapi.audit.get`: добавлен атрибут `CloudapiAuditGetResultModel.apitask`. |
+| BPYS-575 | Добавлена функция `cloudapi.compute.create_template`. |
+| BPYS-195 | Добавлены функции `cloudapi.k8s.get_node_annotations`, `cloudapi.k8s.get_node_labels`, `cloudapi.k8s.get_node_taints`. |
+| BPYS-189 | Добавлена функция `cloudapi.k8s.update_worker_nodes_meta_data`. |
+| BPYS-579 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.disks.bus_num` в связи с переименованием из `bus_number`. |
+| BPYS-579 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.interfaces.bus_num` в связи с переименованием из `bus_number`. |
+| BPYS-579 | Функция `cloudapi.compute.list`: добавлен атрибут `CloudapiComputeListResultModel.data.interfaces.bus_num` в связи с переименованием из `bus_number`. |
+| BPYS-579 | Функция `cloudapi.vins.get`: добавлен атрибут `CloudapiVinsGetResultModel.vnfdev.interfaces.bus_num` в связи с переименованием из `bus_number`. |
+| BPYS-578 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.disks.pci_slot_num` в связи с переименованием из `pci_slot`. |
+| BPYS-578 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.interfaces.pci_slot_num` в связи с переименованием из `pci_slot`. |
+| BPYS-578 | Функция `cloudapi.compute.list`: добавлен атрибут `CloudapiComputeListResultModel.data.interfaces.pci_slot_num` в связи с переименованием из `pci_slot`. |
+| BPYS-578 | Функция `cloudapi.vins.get`: добавлен атрибут `CloudapiVinsGetResultModel.vnfdev.interfaces.pci_slot_num` в связи с переименованием из `pci_slot`. |
+| BPYS-586 | Добавлена функция `cloudapi.audit.list`. |
+| BPYS-601 | Добавлена функция `cloudbroker.audit.list`. |
+| BPYS-607 | Функция `cloudapi.compute.clone`: добавлен параметр `storage_policy_id`. |
+| BPYS-617 | Функция `cloudapi.compute.clone`: изменен тип возвращаемого функцией значения с `int` на `str`. |
+| BPYS-621 | Функция `cloudbroker.storage_policy.update`: добавлен параметр `sep_pools`. |
+| BPYS-603 | Функция `cloudapi.compute.list`: добавлен атрибут `CloudapiComputeListResultModel.data.vgpu_ids` в связи с переименованием из `vgpus`. |
+| BPYS-127 | Функция `cloudapi.compute.get`: у атрибута `CloudapiComputeGetResultModel.vgpus` изменен тип с `list[dict[str, _typing.Any]]` на `list[VGPUAPIResultNM]`. |
+| BPYS-604 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.migration_job_id` в связи с переименованием из `migration_job`. |
+| BPYS-604 | Функция `cloudapi.compute.list`: добавлен атрибут `CloudapiComputeListResultModel.data.migration_job_id` в связи с переименованием из `migration_job`. |
+| BPYS-609 | Функция `cloudapi.compute.clone`: добавлен параметр `sep_pool_name`. |
+| BPYS-610 | Функция `cloudapi.compute.clone`: добавлен параметр `sep_id`. |
+| BPYS-549 | Добавлена функция `cloudbroker.node.add_ssh_identity`. |
+| BPYS-401 | Добавлена функция `cloudbroker.storage_policy.delete`. |
+| BPYS-454 | Добавлена функция `cloudbroker.security_group.delete_rule`. |
+| BPYS-154 | Добавлена функция `cloudbroker.user.create`. |
+| BPYS-576 | Добавлена функция `cloudbroker.compute.start_migration_out`. |
+| BPYS-577 | Добавлена функция `cloudbroker.compute.stop_migration_out`. |
+| BPYS-613 | Добавлена функция `cloudbroker.compute.clone`. |
+| BPYS-612 | Добавлена функция `cloudbroker.compute.clone_abort`. |
+| BPYS-618 | Добавлена функция `cloudapi.compute.clone_abort`. |
+| BPYS-614 | Добавлена функция `cloudbroker.disks.migrate`. |
+| BPYS-615 | Добавлена функция `cloudbroker.disks.migrate_abort`. |
+| BPYS-623 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.boot_image_id`. |
+| BPYS-625 | Функция `cloudapi.compute.list`: добавлен атрибут `CloudapiComputeListResultModel.data.boot_image_id`. |
+| BPYS-634 | Функция `cloudapi.vins.get`: добавлен атрибут `CloudapiVinsGetResultModel.vnfdev.live_migration_job_id`. |
+| BPYS-643 | Функции `cloudapi.bservice.get`, `cloudapi.compute.get`, `cloudapi.compute.list`, `cloudapi.k8s.get`: в перечисляемый тип `VMTechStatus` добавлено значение `MIGRATING_IN`. |
+| BPYS-644 | Функции `cloudapi.bservice.get`, `cloudapi.compute.get`, `cloudapi.compute.list`, `cloudapi.k8s.get`: в перечисляемый тип `VMTechStatus` добавлено значение `MIGRATING_OUT`. |
+| BPYS-215 | Добавлены функции `cloudbroker.user.get`, `cloudbroker.user.list`. |
+| BPYS-399 | Добавлена функция `cloudapi.disks.change_disk_storage_policy`. |
+| BPYS-616 | Добавлена функция `cloudbroker.disks.migrate_status`. |
+| BPYS-660 | Функция `cloudapi.image.get`: добавлен атрибут `CloudapiImageGetResultModel.to_clean`. |
+| BPYS-641 | Добавлена функция `cloudapi.rg.del_storage_policy`. |
+| BPYS-640 | Добавлена функция `cloudapi.rg.add_storage_policy`. |
+| BPYS-642 | Функция `cloudapi.compute.get`: добавлен атрибут `CloudapiComputeGetResultModel.os_users.ssh_public_key` в связи с переименованием из `pub_key`. |
+| BPYS-642 | Функция `cloudbroker.compute.stop_migration_in`: добавлен параметр `os_users.ssh_public_key` в связи с переименованием из `pub_key`. |
+| BPYS-629 | Добавлена функция `cloudbroker.node.update_description`. |
+| BPYS-630 | Добавлена функция `cloudbroker.vnfdev.migrate_abort`. |
+| BPYS-668 | Функция `cloudapi.bservice.create`: добавлен параметр `ssh_public_key` в связи с переименованием из `ssh_key`. |
+| BPYS-668 | Функция `cloudapi.bservice.get`: добавлен атрибут `CloudapiBserviceGetResultModel.ssh_public_key` в связи с переименованием из `ssh_key`. |
+| BPYS-668 | Функция `cloudapi.vins.get`: добавлен атрибут `CloudapiVinsGetResultModel.vnfdev.config.mgmt.ssh_public_key` в связи с переименованием из `ssh_key`. |
+| BPYS-667 | Функция `cloudapi.bservice.create`: добавлен параметр `ssh_user_name` в связи с переименованием из `ssh_user`. |
+| BPYS-667 | Функция `cloudapi.bservice.get`: добавлен атрибут `CloudapiBserviceGetResultModel.ssh_user_name` в связи с переименованием из `ssh_user`. |
+| BPYS-667 | Функция `cloudapi.bservice.list`: добавлен атрибут `CloudapiBserviceListResultModel.data.ssh_user_name` в связи с переименованием из `ssh_user`. |
+| BPYS-667 | Функция `cloudapi.bservice.list_delete`: добавлен атрибут `CloudapiBserviceListDeleteResultModel.data.ssh_user_name` в связи с переименованием из `ssh_user`. |
+| BPYS-676 | Добавлена функция `system.info.version`. |
+| BPYS-681 | Добавлена функция `cloudapi.bservice.snapshot_rollback`. |
+| BPYS-680 | Добавлена функция `cloudapi.bservice.snapshot_delete`. |
+| BPYS-679 | Добавлена функция `cloudapi.bservice.snapshot_create`. |
+| BPYS-684 | Добавлена функция `cloudapi.compute.attach_pci_device`. |
+| BPYS-682 | Добавлена функция `cloudapi.bservice.snapshot_list`. |
+| BPYS-683 | Добавлена функция `cloudapi.compute.attach_gpu`. |
+| BPYS-687 | Добавлена функция `cloudapi.compute.detach_gpu`. |
+| BPYS-686 | Добавлена функция `cloudapi.compute.boot_disk_set`. |
+| BPYS-677 | Добавлена функция `cloudapi.account.get_resource_consumption`. |
+| BPYS-688 | Добавлена функция `cloudapi.compute.detach_pci_device`. |
+| BPYS-689 | Добавлена функция `cloudapi.compute.disable`. |
+| BPYS-690 | Добавлена функция `cloudapi.compute.disk_migrate`. |
+| BPYS-694 | Добавлена функция `cloudapi.compute.disk_switch_to_replication`. |
+| BPYS-695 | Добавлена функция `cloudapi.compute.enable`. |
+| BPYS-697 | Добавлена функция `cloudapi.compute.move_to_rg`. |
+| BPYS-698 | Добавлена функция `cloudapi.compute.restore`. |
+| BPYS-699 | Добавлена функция `cloudapi.compute.change_mac`. |
+| BPYS-658 | Добавлена проверка совместимости с API и соответствующий параметр `ignore_api_compatibility` в конструктор класса `Dynamix`. |
+| BPYS-708 | Добавлена функция `cloudapi.k8s.worker_add`. |
+| BPYS-692 | Добавлен тип исключения `dynamix_sdk.exceptions.RequestException`. В конструкторы классов `Dynamix`, `DECS3OAuth`, `BVSAuth` добавлен параметр `wrap_request_exceptions`, позволяющий заменить исключения библиотеки requests на новый тип исключения, который кроме оригинального исключения содержит название функции SDK и переданные в неё параметры. |
+| BPYS-693 | В конструкторы классов `Dynamix`, `DECS3OAuth`, `BVSAuth` добавлен параметр `f_decorators`, позволяющий задать список декораторов, которые будут применяться к каждой вызываемой функции SDK. |
+| BPYS-709 | Добавлена функция `cloudapi.pcidevice.list`. |
+| BPYS-711 | Добавлена функция `cloudapi.rg.get_resource_consumption`. |
+| BPYS-713 | Добавлена функция `cloudapi.sep.list_available_sep_and_pools`. |
+| BPYS-722 | Добавлена функция `cloudapi.user.set_data`. |
+| BPYS-716 | Добавлена функция `cloudapi.vgpu.list`. |
+| BPYS-724 | Добавлена функция `cloudbroker.account.get`. |
+| BPYS-726 | Добавлена функция `cloudbroker.account.add_user`. |
+| BPYS-696 | Добавлена функция `cloudapi.compute.list_deleted`. |
+| BPYS-712 | Добавлена функция `cloudapi.rg.list_deleted`. |
+| BPYS-714 | Добавлена функция `cloudapi.user.brief`. |
+| BPYS-725 | Добавлена функция `cloudbroker.account.list`. |
+| BPYS-727 | Добавлена функция `cloudbroker.account.add_zone`. |
+| BPYS-734 | Добавлена функция `cloudbroker.account.delete_accounts`. |
+| BPYS-735 | Добавлена функция `cloudbroker.account.delete_user`. |
+| BPYS-736 | Добавлена функция `cloudbroker.account.disable`. |
+| BPYS-737 | Добавлена функция `cloudbroker.account.disable_accounts`. |
+| BPYS-738 | Добавлена функция `cloudbroker.account.enable`. |
+| BPYS-728 | Добавлена функция `cloudbroker.account.delete`. |
+| BPYS-715 | Добавлена функция `cloudapi.user.get_resource_consumption`. |
+| BPYS-739 | Добавлена функция `cloudbroker.account.enable_accounts`. |
+| BPYS-741 | Добавлена функция `cloudbroker.account.get_resource_consumption`. |
+| BPYS-745 | Добавлена функция `cloudbroker.account.list_deleted`. |
+| BPYS-746 | Добавлена функция `cloudbroker.account.restore`. |
+| BPYS-747 | Добавлена функция `cloudbroker.account.remove_zone`. |
## Удалено
-### Функциональный интерфейс
| Идентификатор
задачи | Описание |
| --- | --- |
+| BPYS-322 | Функция `cloudapi.k8ci.list`: удален параметр `worker_node_driver`. |
+| BPYS-323 | Функция `cloudapi.k8ci.list`: удален параметр `master_node_driver`. |
+| BPYS-331 | Функция `cloudapi.kvmx86.create_blank`: удален параметр `driver`. |
+| BPYS-329 | Функция `cloudapi.kvmx86.create`: удален параметр `driver`. |
+| BPYS-326 | Функция `cloudapi.k8ci.list_deleted`: удален параметр `worker_node_driver`. |
+| BPYS-327 | Функция `cloudapi.k8ci.list_deleted`: удален параметр `master_node_driver`. |
+| BPYS-359 | Функция `cloudapi.account.get`: удален атрибут `CloudapiAccountGetResultModel.quotas.public_ip_count` в связи с переименованием в `ext_ip_count`. |
+| BPYS-359 | Функция `cloudapi.account.update`: удален параметр `public_ip_count_quota` в связи с переименованием в `ext_ip_count_quota`. |
+| BPYS-359 | Функция `cloudapi.rg.create`: удален параметр `public_ip_count_quota` в связи с переименованием в `ext_ip_count_quota`. |
+| BPYS-359 | Функция `cloudapi.rg.get`: удален атрибут `CloudapiRgGetResultModel.quotas.public_ip_count` в связи с переименованием в `ext_ip_count`. |
+| BPYS-359 | Функция `cloudapi.rg.list`: удален атрибут `CloudapiRgListResultModel.data.quotas.public_ip_count` в связи с переименованием в `ext_ip_count`. |
+| BPYS-359 | Функция `cloudapi.rg.update`: удален параметр `public_ip_count_quota` в связи с переименованием в `ext_ip_count_quota`. |
+| BPYS-359 | Функция `cloudbroker.account.create`: удален параметр `public_ip_count_quota` в связи с переименованием в `ext_ip_count_quota`. |
+| BPYS-318 | Функция `cloudapi.image.create`: удален параметр `drivers`. |
+| BPYS-372 | Функция `cloudapi.disks.create`: удален параметр `iops`. |
+| BPYS-516 | Функция `cloudapi.compute.get`: удален атрибут `CloudapiComputeGetResultModel.virtual_image_id`. |
+| BPYS-517 | Функция `cloudapi.compute.get`: удален атрибут `CloudapiComputeGetResultModel.virtual_image_name`. |
+| BPYS-519 | Функция `cloudapi.compute.list`: удален атрибут `CloudapiComputeListResultModel.data.image_id`. |
+| BPYS-520 | Функция `cloudapi.compute.list`: удален атрибут `CloudapiComputeListResultModel.data.virtual_image_id`. |
+| BPYS-569 | Функция `cloudapi.storage_policy.get`: удален атрибут `CloudapiStoragePolicyGetResultModel.sep_pools.name`. |
+| BPYS-569 | Функция `cloudapi.storage_policy.list`: удален атрибут `CloudapiStoragePolicyListResultModel.data.sep_pools.name`. |
+| BPYS-569 | Функция `cloudbroker.storage_policy.add_pool`: удален атрибут `CloudbrokerStoragePolicyAddPoolResultModel.sep_pools.name`. |
+| BPYS-569 | Функция `cloudbroker.storage_policy.delete_pool`: удален атрибут `CloudbrokerStoragePolicyDeletePoolResultModel.sep_pools.name`. |
+| BPYS-569 | Функция `cloudbroker.storage_policy.get`: удален атрибут `CloudbrokerStoragePolicyGetResultModel.sep_pools.name`. |
+| BPYS-569 | Функция `cloudbroker.storage_policy.list`: удален атрибут `CloudbrokerStoragePolicyListResultModel.data.sep_pools.name`. |
+| BPYS-569 | Функция `cloudbroker.storage_policy.update`: удален атрибут `CloudbrokerStoragePolicyUpdateResultModel.sep_pools.name`. |
+| BPYS-497 | Функция `cloudapi.compute.get`: удален атрибут `CloudapiComputeGetResultModel.interfaces.net_mask` в связи с переименованием в `net_prefix`. |
+| BPYS-497 | Функция `cloudapi.compute.list`: удален атрибут `CloudapiComputeListResultModel.data.interfaces.net_mask` в связи с переименованием в `net_prefix`. |
+| BPYS-497 | Функция `cloudapi.compute.net_attach`: удален атрибут `CloudapiComputeNetAttachResultModel.net_mask` в связи с переименованием в `net_prefix`. |
+| BPYS-497 | Функция `cloudapi.extnet.get`: удален атрибут `CloudapiExtnetGetResultModel.net_mask` в связи с переименованием в `net_prefix`. |
+| BPYS-497 | Функция `cloudapi.flipgroup.create`: удален атрибут `CloudapiFlipgroupCreateResultModel.net_mask` в связи с переименованием в `net_prefix`. |
+| BPYS-497 | Функция `cloudapi.flipgroup.list`: удален атрибут `CloudapiFlipgroupListResultModel.data.net_mask` в связи с переименованием в `net_prefix`. |
+| BPYS-497 | Функция `cloudapi.vins.get`: удален атрибут `CloudapiVinsGetResultModel.net_mask` в связи с переименованием в `net_prefix`. |
+| BPYS-497 | Функция `cloudapi.vins.get`: удален атрибут `CloudapiVinsGetResultModel.vnfdev.interfaces.net_mask` в связи с переименованием в `net_prefix`. |
+| BPYS-497 | Функция `cloudapi.vins.get`: удален атрибут `CloudapiVinsGetResultModel.vnfs.dhcp.config.net_mask` в связи с переименованием в `net_prefix`. |
+| BPYS-497 | Функция `cloudapi.vins.get`: удален атрибут `CloudapiVinsGetResultModel.vnfs.gw.config.ext_net_mask` в связи с переименованием в `ext_net_prefix`. |
+| BPYS-497 | Функция `cloudapi.vins.get`: удален атрибут `CloudapiVinsGetResultModel.vnfs.nat.config.net_mask` в связи с переименованием в `net_prefix`. |
+| BPYS-579 | Функция `cloudapi.compute.get`: удален атрибут `CloudapiComputeGetResultModel.disks.bus_number` в связи с переименованием в `bus_num`. |
+| BPYS-579 | Функция `cloudapi.compute.get`: удален атрибут `CloudapiComputeGetResultModel.interfaces.bus_number` в связи с переименованием в `bus_num`. |
+| BPYS-579 | Функция `cloudapi.compute.list`: удален атрибут `CloudapiComputeListResultModel.data.interfaces.bus_number` в связи с переименованием в `bus_num`. |
+| BPYS-579 | Функция `cloudapi.vins.get`: удален атрибут `CloudapiVinsGetResultModel.vnfdev.interfaces.bus_number` в связи с переименованием в `bus_num`. |
+| BPYS-578 | Функция `cloudapi.compute.get`: удален атрибут `CloudapiComputeGetResultModel.disks.pci_slot` в связи с переименованием в `pci_slot_num`. |
+| BPYS-578 | Функция `cloudapi.compute.get`: удален атрибут `CloudapiComputeGetResultModel.interfaces.pci_slot` в связи с переименованием в `pci_slot_num`. |
+| BPYS-578 | Функция `cloudapi.compute.list`: удален атрибут `CloudapiComputeListResultModel.data.interfaces.pci_slot` в связи с переименованием в `pci_slot_num`. |
+| BPYS-578 | Функция `cloudapi.vins.get`: удален атрибут `CloudapiVinsGetResultModel.vnfdev.interfaces.pci_slot` в связи с переименованием в `pci_slot_num`. |
+| BPYS-603 | Функция `cloudapi.compute.list`: удален атрибут `CloudapiComputeListResultModel.data.vgpus` в связи с переименованием в `vgpu_ids`. |
+| BPYS-604 | Функция `cloudapi.compute.get`: удален атрибут `CloudapiComputeGetResultModel.migration_job` в связи с переименованием в `migration_job_id`. |
+| BPYS-604 | Функция `cloudapi.compute.list`: удален атрибут `CloudapiComputeListResultModel.data.migration_job` в связи с переименованием в `migration_job_id`. |
+| BPYS-651 | Удалена функция `cloudapi.user.get_audit`. |
+| BPYS-642 | Функция `cloudapi.compute.get`: удален атрибут `CloudapiComputeGetResultModel.os_users.pub_key` в связи с переименованием в `ssh_public_key`. |
+| BPYS-642 | Функция `cloudbroker.compute.stop_migration_in`: удален параметр `os_users.pub_key` в связи с переименованием в `ssh_public_key`. |
+| BPYS-668 | Функция `cloudapi.bservice.create`: удален параметр `ssh_key` в связи с переименованием в `ssh_public_key`. |
+| BPYS-668 | Функция `cloudapi.bservice.get`: удален атрибут `CloudapiBserviceGetResultModel.ssh_key` в связи с переименованием в `ssh_public_key`. |
+| BPYS-668 | Функция `cloudapi.vins.get`: удален атрибут `CloudapiVinsGetResultModel.vnfdev.config.mgmt.ssh_key` в связи с переименованием в `ssh_public_key`. |
+| BPYS-667 | Функция `cloudapi.bservice.create`: удален параметр `ssh_user` в связи с переименованием в `ssh_user_name`. |
+| BPYS-667 | Функция `cloudapi.bservice.get`: удален атрибут `CloudapiBserviceGetResultModel.ssh_user` в связи с переименованием в `ssh_user_name`. |
+| BPYS-667 | Функция `cloudapi.bservice.list`: удален атрибут `CloudapiBserviceListResultModel.data.ssh_user` в связи с переименованием в `ssh_user_name`. |
+| BPYS-667 | Функция `cloudapi.bservice.list_delete`: удален атрибут `CloudapiBserviceListDeleteResultModel.data.ssh_user` в связи с переименованием в `ssh_user_name`. |
+| BPYS-723 | Удалена функция `cloudapi.compute.disk_resize`: в связи с тем, что аналогичный функционал доступен через функцию `cloudapi.disks.resize2`. |
## Исправлено
-### Функциональный интерфейс
| Идентификатор
задачи | Описание |
| --- | --- |
+| BPYS-358 | Функция `cloudapi.k8s.get`: в некоторых случаях вызов функции завершался ошибкой валидации полей `k8sGroups.masters.detailedInfo.0.externalip` и `k8sGroups.workers.0.detailedInfo.0.externalip`. |
+| BPYS-357 | Функция `cloudapi.k8s.list`: был неверно аннотирован тип элементов списка `data.acl`. |
+| BPYS-357 | Функция `cloudapi.k8s.list_deleted`: был неверно аннотирован тип элементов списка `data.acl`. |
+| BPYS-551 | Функция `cloudapi.lb.create`: при передаче корректного значения в параметр `sysctl_params` выполнение функции завершалось ошибкой валидации типа параметра. |
+| BPYS-602 | Функция `cloudapi.compute.list`: выполнение функции завершалось ошибкой валидации при наличии элементов в списке `CloudapiComputeListResultModel.data.vgpus`. |
+| BPYS-649 | Функция `cloudapi.account.update`: отсутствовало значение по умолчанию у параметра `send_access_emails`. |
+| BPYS-654 | Функция `cloudapi.image.get`: отсутствовало значение `unknown` в перечисляемом типе `ImageType` у атрибута `CloudapiImageGetResultModel.type`, что приводило к ошибке валидации. |
+| BPYS-654 | Функция `cloudapi.image.list`: отсутствовало значение `unknown` в перечисляемом типе `ImageType` у параметра `type` и атрибута `CloudapiImageListResultModel.data.type`, что приводило к ошибке валидации. |
+| BPYS-654 | Функция `cloudapi.image.get`: было лишнее значение `other` в перечисляемом типе `ImageType` у атрибута `CloudapiImageGetResultModel.type`, что приводило к ошибке валидации. |
+| BPYS-654 | Функция `cloudapi.image.list`: было лишнее значение `other` в перечисляемом типе `ImageType` у параметра `type` и атрибута `CloudapiImageListResultModel.data.type`, что приводило к ошибке валидации. |
| BPYS-670 | Функция `cloudapi.bservice.group_get`: вызов функции завершался ошибкой валидации поля `computes.0.chipset`. |
diff --git a/README.md b/README.md
index 0564c64..0531fb2 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,7 @@
- [Ошибки и исключения (exceptions)](#ошибки-и-исключения-exceptions)
- [Ошибки валидации данных](#ошибки-валидации-данных)
- [Ошибки HTTP](#ошибки-http)
+ - [Ошибка несовместимости c API](#ошибка-несовместимости-с-api)
- [Доступный функционал](#доступный-функционал)
- [Способы авторизации](#способы-авторизации)
- [Функции API](#функции-api)
@@ -34,6 +35,7 @@
| Версия платформы | Версия 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 |
@@ -119,6 +121,24 @@ dx = Dynamix(
+Задание декораторов для всех вызываемых функций
+
+```python
+from dynamix_sdk import Dynamix
+
+
+Dynamix(
+ ...,
+ f_decorators=[decorator_1, decorator_2],
+)
+```
+
+Декораторы будут применяться к вызываемым функциям SDK в обратном порядке, то есть сначала будет применяться декоратор decorator_2, а потом decorator_1.
+
+**Важно:** декораторы должны соответствовать аннотации параметра, то есть оставлять без изменений параметры и тип возвращаемого значения функции, иначе применение декораторов приведёт к некорректной работе SDK.
+
+
+
Настройка повторных попыток при 503
По умолчанию SDK при получении кода ответа 503 производит 10 повторных попыток с интервалом 5 секунд. Данное поведение можно скорректировать:
@@ -186,6 +206,24 @@ BVSAuth(
+Игнорирование проверки совместимости с API
+
+**Важно:** игнорирование проверки совместимости с API может вызвать непредвиденные ошибки в работе SDK, поэтому использование данного функционала допустимо только принимая на себя всю ответственность за возможные последствия.
+
+При игнорирование выводится только сообщение с предупреждением о несовместимости.
+
+```python
+from dynamix_sdk import Dynamix
+
+
+Dynamix(
+ ...,
+ ignore_api_compatibility=True,
+)
+```
+
+
+
### Функциональный интерфейс
Функциональный интерфейс предоставляет функции, соответствующие функциям API платформы.
@@ -477,6 +515,24 @@ except RequestException as e:
Подробную информацию об исключениях библиотеки **Requests** можно получить в [соответствующем разделе официальной документации Requests](https://requests.readthedocs.io/en/latest/user/quickstart/#errors-and-exceptions).
+Использование исключения SDK
+
+Для возможности получать дополнительную информацию о функциях SDK при ошибках HTTP-запросов, в SDK есть возможность оборачивать все исключения requests.exceptions.RequestException в исключение dynamix_sdk.exceptions.RequestException:
+
+```python
+class RequestException(Exception):
+ orig_exception: requests.exceptions.RequestException
+ func_name: str
+ func_kwargs: None | dict = None
+```
+
+Чтобы включить использование исключения dynamix_sdk.exceptions.RequestException, необходимо передать в конструкторы классов Dynamix, DECS3OAuth, BVSAuth параметр wrap_request_exceptions=True
+
+
+#### Ошибка несовместимости с API
+SDK производит проверку совместимости с API.
+При несовместимости будет вызвано исключение `exceptions.IncompatibleAPIError`.
+
## Доступный функционал
### Способы авторизации
@@ -499,6 +555,7 @@ except RequestException as e:
- /cloudapi/account/disable
- /cloudapi/account/enable
- /cloudapi/account/get
+- /cloudapi/account/getResourceConsumption
- /cloudapi/account/list
- /cloudapi/account/listDeleted
- /cloudapi/account/restore
@@ -510,6 +567,7 @@ except RequestException as e:
audit
- /cloudapi/audit/get
+- /cloudapi/audit/list
@@ -534,7 +592,12 @@ except RequestException as e:
- /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
@@ -542,6 +605,7 @@ except RequestException as e:
compute
+- /cloudapi/compute/abort_shared_snapshot_merge
- /cloudapi/compute/affinityLabelRemove
- /cloudapi/compute/affinityLabelSet
- /cloudapi/compute/affinityRelations
@@ -551,19 +615,41 @@ except RequestException as e:
- /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/diskResize
+- /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
@@ -571,9 +657,12 @@ except RequestException as e:
- /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
@@ -594,6 +683,7 @@ except RequestException as e:
disks
+- /cloudapi/disks/change_disk_storage_policy
- /cloudapi/disks/create
- /cloudapi/disks/delete
- /cloudapi/disks/deleteDisks
@@ -642,6 +732,7 @@ except RequestException as e:
image
+- /cloudapi/image/change_storage_policy
- /cloudapi/image/create
- /cloudapi/image/createVirtual
- /cloudapi/image/delete
@@ -664,11 +755,24 @@ except RequestException as e:
- /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
@@ -692,6 +796,7 @@ except RequestException as e:
- /cloudapi/lb/backendServerDelete
- /cloudapi/lb/backendServerUpdate
- /cloudapi/lb/backendUpdate
+- /cloudapi/lb/configReset
- /cloudapi/lb/create
- /cloudapi/lb/delete
- /cloudapi/lb/disable
@@ -705,6 +810,13 @@ except RequestException as e:
- /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
@@ -715,16 +827,26 @@ except RequestException as e:
+pcidevice
+
+- /cloudapi/pcidevice/list
+
+
+
rg
- /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
@@ -732,6 +854,24 @@ except RequestException as e:
+security_group
+
+- /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
+
+
+
+sep
+
+- /cloudapi/sep/listAvailableSepAndPools
+
+
+
stack
- /cloudapi/stack/get
@@ -739,6 +879,13 @@ except RequestException as e:
+storage_policy
+
+- /cloudapi/storage_policy/get
+- /cloudapi/storage_policy/list
+
+
+
tasks
- /cloudapi/tasks/get
@@ -746,11 +893,33 @@ except RequestException as e:
+trunk
+
+- /cloudapi/trunk/get
+- /cloudapi/trunk/list
+
+
+
user
- /cloudapi/user/apiList
+- /cloudapi/user/brief
- /cloudapi/user/get
-- /cloudapi/user/getAudit
+- /cloudapi/user/getResourceConsumption
+- /cloudapi/user/setData
+
+
+
+vfpool
+
+- /cloudapi/vfpool/get
+- /cloudapi/vfpool/list
+
+
+
+vgpu
+
+- /cloudapi/vgpu/list
@@ -760,13 +929,21 @@ except RequestException as e:
- /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
@@ -776,16 +953,142 @@ except RequestException as e:
+zone
+
+- /cloudapi/zone/get
+- /cloudapi/zone/list
+
+
+
#### Cloudbroker
account
+- /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
+
+
+
+audit
+
+- /cloudbroker/audit/list
+
+
+
+compute
+
+- /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
+
+
+
+disks
+
+- /cloudbroker/disks/migrate
+- /cloudbroker/disks/migrate_abort
+- /cloudbroker/disks/migrate_status
+
+
+
+image
+
+- /cloudbroker/image/change_storage_policy
+
+
+
+node
+
+- cloudbroker/node/add_ssh_identity
+- cloudbroker/node/get_ssh_identity
+- cloudbroker/node/update_description
+
+
+
+rg
+
+- /cloudbroker/rg/add_storage_policy
+- /cloudbroker/rg/del_storage_policy
+
+
+
+security_group
+
+- /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
+
+
+
+storage_policy
+
+- /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
+
+
+
+user
+
+- /cloudbroker/user/block
+- /cloudbroker/user/create
+- /cloudbroker/user/get
+- /cloudbroker/user/list
+- /cloudbroker/user/unblock
+
+
+
+vins
+
+- /cloudbroker/vins/update
+
+
+
+vnfdev
+
+- /cloudbroker/vnfdev/migrate_abort
#### System
+info
+
+- /system/info/version
+
+
+
usermanager
- /system/usermanager/whoami
diff --git a/pyproject.toml b/pyproject.toml
index f30ec23..e11b4eb 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -5,7 +5,7 @@ authors = [
{name = "Vladislav Nesterov"},
{name = "Stanislav Karimov"},
]
-version = "1.2.2"
+version = "1.3.0"
readme = "README.md"
@@ -13,7 +13,7 @@ requires-python = ">=3.12"
dependencies = [
"requests>=2.32.3",
- "pydantic>=2.10.5",
+ "pydantic==2.10.5",
"pyyaml>=6.0.2",
]
diff --git a/src/dynamix_sdk/api/_nested/enums.py b/src/dynamix_sdk/api/_nested/enums.py
index b6d9cfb..d8fff0d 100644
--- a/src/dynamix_sdk/api/_nested/enums.py
+++ b/src/dynamix_sdk/api/_nested/enums.py
@@ -1,3 +1,5 @@
+from enum import Enum
+
from dynamix_sdk.utils import (
AutoNameEnum as _AutoNameEnum,
enum_auto as _enum_auto,
@@ -169,6 +171,8 @@ class VMTechStatus(str, _AutoNameEnum):
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()
@@ -516,3 +520,101 @@ class DPDKNetStatus(str, _AutoNameEnum):
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()
diff --git a/src/dynamix_sdk/api/_nested/params.py b/src/dynamix_sdk/api/_nested/params.py
index edeb5f8..e436bfd 100644
--- a/src/dynamix_sdk/api/_nested/params.py
+++ b/src/dynamix_sdk/api/_nested/params.py
@@ -5,6 +5,7 @@ from . import enums as _enums
class DiskAPIParamsNM(_base.BaseAPIParamsNestedModel):
name: str
size_gb: int
+ storage_policy_id: int
description: None | str = None
image_id: None | int = None
@@ -13,9 +14,12 @@ class DiskAPIParamsNM(_base.BaseAPIParamsNestedModel):
class InterfaceAPIParamsNM(_base.BaseAPIParamsNestedModel):
+ enabled: bool = True
net_id: int
net_type: _enums.NetType
sdn_logical_port_id: str
+ security_group_ids: None | list[int] = None
+ security_group_mode: bool = False
ip_addr: None | str = None
mac: None | str = None
@@ -26,3 +30,26 @@ 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
diff --git a/src/dynamix_sdk/api/_nested/result.py b/src/dynamix_sdk/api/_nested/result.py
index 37e71ec..5b95842 100644
--- a/src/dynamix_sdk/api/_nested/result.py
+++ b/src/dynamix_sdk/api/_nested/result.py
@@ -6,7 +6,7 @@ from . import enums as _enums
class AccessAPIResultNM(_base.BaseAPIResultNestedModel):
- explicit: bool | str # BDX-8471
+ explicit: bool
guid: str
access_type: _enums.AccessType
status: str
@@ -50,7 +50,7 @@ class LibvirtSettingsAPIResultNM(_base.BaseAPIResultNestedModel):
class InterfaceForComputeListAPIResultNM(_base.BaseAPIResultNestedModel):
- bus_number: int
+ bus_num: int
conn_id: int
conn_type: str
default_gw: str
@@ -64,11 +64,13 @@ class InterfaceForComputeListAPIResultNM(_base.BaseAPIResultNestedModel):
mtu: int
name: str
net_id: int
- net_mask: int
+ net_prefix: int
net_type: _enums.NetType
node_id: int
- pci_slot: int
+ pci_slot_num: int
sdn_logical_port_id: str
+ security_group_ids: list[int]
+ security_group_mode: bool
target: str
trunk_vlan_ids: str | None = None
type: str
@@ -76,10 +78,11 @@ class InterfaceForComputeListAPIResultNM(_base.BaseAPIResultNestedModel):
class InterfaceForComputeGetAPIResultNM(_base.BaseAPIResultNestedModel):
- bus_number: int
+ bus_num: int
conn_id: int
conn_type: str
default_gw: str
+ security_group_mode: bool
enabled: bool
flip_group_id: int
guid: str
@@ -90,12 +93,13 @@ class InterfaceForComputeGetAPIResultNM(_base.BaseAPIResultNestedModel):
mtu: int
name: str
net_id: int
- net_mask: int
+ net_prefix: int
net_type: _enums.NetType
node_id: int
- pci_slot: int
+ pci_slot_num: int
sdn_logical_port_id: str
qos: QOSAPIResultNM
+ security_group_ids: list[int]
target: str
trunk_vlan_ids: str | None = None
type: str
@@ -103,7 +107,7 @@ class InterfaceForComputeGetAPIResultNM(_base.BaseAPIResultNestedModel):
class VNFDevInterfaceAPIResultNM(_base.BaseAPIResultNestedModel):
- bus_number: int
+ bus_num: int
conn_id: int
conn_type: str
default_gw: str
@@ -117,12 +121,14 @@ class VNFDevInterfaceAPIResultNM(_base.BaseAPIResultNestedModel):
mtu: int
name: str
net_id: int
- net_mask: int
+ net_prefix: int
net_type: _EmptyStr | _enums.NetType
node_id: int
- pci_slot: int
+ pci_slot_num: int
qos: QOSAPIResultNM
sdn_logical_port_id: str
+ security_group_ids: list[int]
+ security_group_mode: bool
target: str
type: str
vnf_ids: list[int]
@@ -190,13 +196,14 @@ class DiskForCAComputeGetAPIResultNM(_base.BaseAPIResultNestedModel):
account_id: int
acl: dict
boot_partition: int
- bus_number: int
+ bus_num: int
created_by: str
created_timestamp: int
deleted_by: str
deleted_timestamp: int
description: str
destruction_timestamp: int
+ device_name: str
disk_path: str
grid_id: int
guid: int
@@ -212,7 +219,7 @@ class DiskForCAComputeGetAPIResultNM(_base.BaseAPIResultNestedModel):
params: str
parent_id: int
password: str
- pci_slot: int
+ pci_slot_num: int
present_to: dict[str, int]
purge_timestamp: int
reality_device_number: int
@@ -228,7 +235,9 @@ class DiskForCAComputeGetAPIResultNM(_base.BaseAPIResultNestedModel):
size_used: float
snapshots: list[SnapshotAPIResultNM]
status: _enums.DiskStatus
+ storage_policy_id: int
tech_status: _enums.DiskTechStatus
+ to_clean: bool
type: _enums.DiskType
updated_by: str
updated_by: str
@@ -291,7 +300,9 @@ class DiskForListAndListDeletedAPIResultNM(_base.BaseAPIResultNestedModel):
size_used: float
snapshots: list[SnapshotAPIResultNM]
status: _enums.DiskStatus
+ storage_policy_id: int
tech_status: _enums.DiskTechStatus
+ to_clean: bool
type: _enums.DiskType
updated_by: str
vm_id: int | None
@@ -386,14 +397,20 @@ class DiskForListUnattachedAPIResultNM(_base.BaseAPIResultNestedModel):
return self._get_datetime_from_timestamp(self.updated_timestamp)
+class StoragePolicyQuotasAPIResultNM(_base.BaseAPIResultNestedModel):
+ id: int
+ storage_size_gb: int
+
+
class TenantQuotasAPIResultNM(_base.BaseAPIResultNestedModel):
cpu_count: int
disk_size_gb: int
ext_traffic: int
gpu_count: int
- public_ip_count: int
+ ext_ip_count: int
ram_size_mb: float | int
storage_size_gb: int
+ storage_policies: list[StoragePolicyQuotasAPIResultNM]
class ResourceGroupAPIResultNM(_base.BaseAPIResultNestedModel):
@@ -421,6 +438,7 @@ class ResourceGroupAPIResultNM(_base.BaseAPIResultNestedModel):
sdn_access_group_id: str
secret: str
status: _enums.ResourceGroupStatus
+ storage_policy_ids: list[int]
uniq_pools: list[str]
updated_by: str
updated_timestamp: int
@@ -442,7 +460,7 @@ class ResourceGroupAPIResultNM(_base.BaseAPIResultNestedModel):
return self._get_datetime_from_timestamp(self.updated_timestamp)
-class AccountAPIResultNM(_base.BaseAPIResultNestedModel):
+class AccountForCAAPIResultNM(_base.BaseAPIResultNestedModel):
acl: list[AccessAPIResultNM]
created_timestamp: int
deleted_timestamp: int
@@ -452,6 +470,7 @@ class AccountAPIResultNM(_base.BaseAPIResultNestedModel):
status: _enums.AccountStatus
updated_timestamp: int
vm_features: list[_enums.VMFeature]
+ zone_ids: list[int]
@property
def created_datetime(self):
@@ -478,6 +497,40 @@ class GuestAgentAPIResultNM(_base.BaseAPIResultNestedModel):
return self._get_datetime_from_timestamp(self.last_update_timestamp)
+class VGPUAPIResultNM(_base.BaseAPIResultNestedModel):
+ account_id: int
+ bus_num: int
+ created_timestamp: int
+ deleted_timestamp: int
+ grid_id: int
+ guid: int
+ id: int
+ last_claimed_by: int
+ last_update_timestamp: int
+ pci_slot_num: int
+ pgpu_id: int
+ pgpu_mode: _enums.PGPUMode
+ pgpu_processor_type: _enums.PGPUProcessorType
+ profile_id: int | None
+ ram_size_mb: int
+ reference_id: str
+ rg_id: int
+ status: _enums.VGPUStatus
+ vm_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 last_update_datetime(self):
+ return self._get_datetime_from_timestamp(self.last_update_timestamp)
+
+
class VMAPIResultNM(_base.BaseAPIResultNestedModel):
account_id: int
account_name: str
@@ -489,6 +542,7 @@ class VMAPIResultNM(_base.BaseAPIResultNestedModel):
arch: str
auto_start: bool
boot_disk_size_gb: int
+ boot_image_id: int
boot_loader_type: _enums.BootLoaderType
boot_mode: _enums.BootMode
boot_order: list[_enums.BootDevice]
@@ -512,19 +566,19 @@ class VMAPIResultNM(_base.BaseAPIResultNestedModel):
hot_resize: bool
hp_backed: bool
id: int
- image_id: int
interfaces: list[InterfaceForComputeListAPIResultNM]
live_migration_job_id: int
lock_status: _enums.LockStatus
manager_id: int
manager_type: str
- migration_job: int
+ migration_job_id: int
milestones: int
name: str
need_reboot: bool
network_interface_naming: _enums.NetIfaceNamingTemplate
numa_affinity: _enums.NumaAffinity
numa_node_id: int
+ os_version: str
pinned_to_stack: bool
preferred_cpu_cores: list[int]
ram_size_mb: int
@@ -534,8 +588,8 @@ class VMAPIResultNM(_base.BaseAPIResultNestedModel):
rg_id: int
rg_name: str
snapshot_sets: list[SnapshotSetAPIResultNM]
- stateless_sep_id: int
- stateless_sep_type: str
+ stateless_sep_id: int | None = None
+ stateless_sep_type: str | None = None
status: _enums.VMStatus
tags: dict
tech_status: _enums.VMTechStatus
@@ -543,9 +597,8 @@ class VMAPIResultNM(_base.BaseAPIResultNestedModel):
updated_by: str
updated_timestamp: int
user_managed: bool
- vgpus: list[dict[str, _typing.Any]]
+ vgpu_ids: list[int]
vins_count: int
- virtual_image_id: int
vm_ci_id: int
guest_agent: GuestAgentAPIResultNM
zone_id: int
@@ -585,6 +638,7 @@ class ImageForListAPIResultNM(_base.BaseAPIResultNestedModel):
sep_pool_name: str
size_gb: int
status: _enums.ImageStatus
+ storage_policy_id: int
type: _enums.ImageType
virtual: bool | None = None
@@ -714,7 +768,7 @@ class DHCPVNFConfigAPIResultNM(_base.BaseAPIResultNestedModel):
ip_pool_start: str
lease_time: int
net_ip: str
- net_mask: int
+ net_prefix: int
reservations: list[DHCPReservationAPIResultNM]
@@ -722,7 +776,7 @@ class GWVNFConfigAPIResultNM(_base.BaseAPIResultNestedModel):
default_gw: str
ext_net_id: int
ext_net_ip: str
- ext_net_mask: int
+ ext_net_prefix: int
qos: _typing.Any
@@ -735,10 +789,12 @@ class NATRuleAPIResultNM(_base.BaseAPIResultNestedModel):
public_port_start: int
vm_id: int
+ vm_name: None | str = None
+
class NATVNFConfigAPIResultNM(_base.BaseAPIResultNestedModel):
net_ip: str
- net_mask: int
+ net_prefix: int
rules: list[NATRuleAPIResultNM]
@@ -823,7 +879,7 @@ class VNFSAPIResultNM(_base.BaseAPIResultNestedModel):
class VNFDevMGMTConfigAPIResultNM(_base.BaseAPIResultNestedModel):
ip_addr: str
password: str
- ssh_key: str
+ ssh_public_key: str
user: str
@@ -850,6 +906,7 @@ class VNFDevAPIResultNM(_base.BaseAPIResultNestedModel):
guid: int
id: int
interfaces: list[VNFDevInterfaceAPIResultNM]
+ live_migration_job_id: int
lock_status: _enums.LockStatus
milestones: int
name: str
@@ -912,7 +969,7 @@ class BServiceAPIResultNM(_base.BaseAPIResultNestedModel):
parent_service_type: str
rg_id: int
rg_name: str
- ssh_user: str
+ ssh_user_name: str
status: _enums.BServiceStatus
tech_status: _enums.BServiceTechStatus
updated_by: str
@@ -942,7 +999,7 @@ class OSUserAPIResultNM(_base.BaseAPIResultNestedModel):
guid: str
login: str
password: str
- pub_key: str
+ ssh_public_key: str
class BServiceGroupVMAPIResultNM(_base.BaseAPIResultNestedModel):
@@ -975,7 +1032,7 @@ class FlipGroupForListAPIResultNM(_base.BaseAPIResultNestedModel):
milestones: int
name: str
net_id: int
- net_mask: int
+ net_prefix: int
net_type: _enums.FlipGroupNetType
status: _enums.FlipGroupStatus
@@ -1083,7 +1140,7 @@ class LBAPIResultNM(_base.BaseAPIResultNestedModel):
class SEPPoolAPIResultNM(_base.BaseAPIResultNestedModel):
name: str
types: list[_enums.PoolDiskType]
- system: str
+ system: str | bool
class SEPAPIResultNM(_base.BaseAPIResultNestedModel):
@@ -1143,18 +1200,6 @@ class TaskAPIResultNM(_base.BaseAPIResultNestedModel):
return self._get_datetime_from_timestamp(self.updated_timestamp)
-class UserAuditAPIResultNM(_base.BaseAPIResultNestedModel):
- request_timestamp: int
- api_url_path: str
- execution_time_sec: int | None
- status_code: int | None
- guid: str
-
- @property
- def request_datetime(self):
- return self._get_datetime_from_timestamp(self.request_timestamp)
-
-
class K8CIForListAPIResultNM(_base.BaseAPIResultNestedModel):
created_timestamp: int
description: str
@@ -1180,6 +1225,7 @@ class NetworkIDsAPIResultNM(_base.BaseAPIResultNestedModel):
class K8sVMAPIResultNM(_base.BaseAPIResultNestedModel):
+ ext_ip: str | None = None
id: int
name: str
status: _enums.VMStatus
@@ -1229,10 +1275,10 @@ class K8sServiceAccountAPIResultNM(_base.BaseAPIResultNestedModel):
user_name: str
-class K8sListAPIResultNM(_base.BaseAPIResultNestedModel):
+class K8sAPIResultNM(_base.BaseAPIResultNestedModel):
account_id: int
account_name: str
- acl: list[K8sACLAPIResultNM]
+ acl: list[_typing.Any]
bservice_id: int
k8ci_id: int
config: dict
@@ -1273,36 +1319,359 @@ class K8sListAPIResultNM(_base.BaseAPIResultNestedModel):
return self._get_datetime_from_timestamp(self.updated_timestamp)
-class K8sListDeletedAPIResultNM(_base.BaseAPIResultNestedModel):
+class DPDKNetAPIResultNM(_base.BaseAPIResultNestedModel):
+ account_ids: list[int]
+ created_timestamp: int
+ description: str
+ grid_id: int
+ guid: int
+ id: int
+ name: str
+ ovs_bridge: str
+ rg_ids: list[int]
+ security_group_mode: bool
+ status: _enums.DPDKNetStatus
+ updated_timestamp: int
+ vlan_id: int
+ vm_ids: list[int]
+
+ @property
+ def created_datetime(self):
+ return self._get_datetime_from_timestamp(self.created_timestamp)
+
+ @property
+ def updated_datetime(self):
+ return self._get_datetime_from_timestamp(self.updated_timestamp)
+
+
+class VirtualFunctionAPIResultNM(_base.BaseAPIResultNestedModel):
+ guid: str
+ id: int
+ vm_id: int
+ claimed: bool
+
+
+class VFPoolNodeInterfaceAPIResultNM(_base.BaseAPIResultNestedModel):
+ guid: str
+ name: str
+ vfs: list[VirtualFunctionAPIResultNM]
+
+
+class VFPoolNodeAPIResultNM(_base.BaseAPIResultNestedModel):
+ guid: str
+ id: int
+ interfaces: list[VFPoolNodeInterfaceAPIResultNM]
+
+
+class VFPoolAPIResultNM(_base.BaseAPIResultNestedModel):
+ account_ids: list[int]
+ created_timestamp: int
+ description: str
+ grid_id: int
+ guid: int
+ id: int
+ name: str
+ rg_ids: list[int]
+ status: _enums.VFPoolStatus
+ updated_timestamp: int
+ nodes: list[VFPoolNodeAPIResultNM]
+
+ @property
+ def created_datetime(self):
+ return self._get_datetime_from_timestamp(self.created_timestamp)
+
+ @property
+ def updated_datetime(self):
+ return self._get_datetime_from_timestamp(self.updated_timestamp)
+
+
+class ZoneForListAPIResultNM(_base.BaseAPIResultNestedModel):
+ created_timestamp: int
+ deletable: bool
+ description: str
+ grid_id: int
+ guid: int
+ id: int
+ name: str
+ node_ids: list[int]
+ status: _enums.ZoneStatus
+ updated_timestamp: int
+
+ @property
+ def created_datetime(self):
+ return self._get_datetime_from_timestamp(self.created_timestamp)
+
+ @property
+ def updated_datetime(self):
+ return self._get_datetime_from_timestamp(self.updated_timestamp)
+
+
+class SecurityGroupRuleAPIResultNM(_base.BaseAPIResultNestedModel):
+ ethertype: _enums.SGRuleEthertype
+ id: int
+ port_range_max: int | None
+ port_range_min: int | None
+ protocol: _enums.SGRuleProtocol | None
+ remote_group_id: int | None = None
+ remote_ip_prefix: str | None
+ traffic_direction: _enums.TrafficDirection
+
+
+class TrunkAPIResultNM(_base.BaseAPIResultNestedModel):
+ account_ids: list[int] | None
+ created_by: str
+ created_timestamp: int
+ deleted_by: str | None
+ deleted_timestamp: int | None
+ description: str
+ guid: int
+ id: int
+ mac: str
+ name: str
+ native_vlan_id: int | None
+ ovs_bridge: str
+ status: _enums.TrunkStatus
+ updated_by: str | None
+ updated_timestamp: int | None
+ vlan_ids: str
+
+ @property
+ def created_datetime(self):
+ return self._get_datetime_from_timestamp(self.created_timestamp)
+
+ @property
+ def deleted_datetime(self):
+ if self.deleted_timestamp is None:
+ return None
+ return self._get_datetime_from_timestamp(self.deleted_timestamp)
+
+ @property
+ def updated_datetime(self):
+ if self.updated_timestamp is None:
+ return None
+ return self._get_datetime_from_timestamp(self.updated_timestamp)
+
+
+class SEPPoolsAPIResultNM(_base.BaseAPIResultNestedModel):
+ pool_names: list[str]
+ sep_id: int
+ sep_name: str | None = None
+
+
+class TenantIDsAPIResultNM(_base.BaseAPIResultNestedModel):
+ account_ids: list[int]
+ rg_ids: list[int]
+
+
+class StoragePolicyAPIResultNM(_base.BaseAPIResultNestedModel):
+ sep_pools: list[SEPPoolsAPIResultNM]
+ description: str
+ guid: int
+ id: int
+ iops_limit: int
+ name: str
+ status: _enums.StoragePolicyStatus
+ usage: TenantIDsAPIResultNM
+
+
+class VINSExtNetAPIResultNM(_base.BaseAPIResultNestedModel):
+ default_gw: str
+ id: int
+ ip_addr: str
+ net_prefix: int
+ status: _enums.ExtNetStatus
+ tech_status: _enums.VNFDevTechStatus
+
+
+class SecurityGroupAPIResultNM(_base.BaseAPIResultNestedModel):
+ account_id: int
+ created_by: str
+ created_timestamp: int
+ description: str
+ id: int
+ name: str
+ rules: list[SecurityGroupRuleAPIResultNM]
+ updated_by: str | None
+ updated_timestamp: int | None
+
+ @property
+ def created_datetime(self):
+ return self._get_datetime_from_timestamp(self.created_timestamp)
+
+ @property
+ def updated_datetime(self):
+ if self.updated_timestamp is None:
+ return None
+ return self._get_datetime_from_timestamp(self.updated_timestamp)
+
+
+class BootLoaderMetaisoAPIResultNM(_base.BaseAPIResultNestedModel):
+ device_name: str
+ path: str
+
+
+class MigrateStorageJobAPIResultNM(_base.BaseAPIResultNestedModel):
+ completed: bool
+ domain_name: str
+ id: int
+ log: list[str]
+ source_stack_id: int
+ status: _enums.JobStatus
+ target_stack_id: int
+
+
+class AuditAPIResultNM(_base.BaseAPIResultNestedModel):
+ account_id: int | None = None
+ api_url_path: str
+ async_request_task_id: str | None = None
+ args: str
+ bservice_id: int | None = None
+ client_ip_addr: str
+ correlation_id: str
+ execution_time_sec: float | None
+ flip_group_id: int | None = None
+ guid: str
+ k8s_id: int | None = None
+ kwargs: str
+ lb_id: int | None = None
+ node_ids: list[int] | None = None
+ request_datetime_iso8601: str
+ request_timestamp: float
+ response_timestamp: float | None
+ result: str | None
+ rg_id: int | None = None
+ sep_id: int | None = None
+ status_code: int | None
+ user_name: str
+ vins_id: int | None = None
+ vm_id: int | None = None
+
+ @property
+ def request_datetime(self):
+ return self._get_datetime_from_timestamp(self.request_timestamp)
+
+ @property
+ def response_datetime(self):
+ if self.response_timestamp is None:
+ return None
+ return self._get_datetime_from_timestamp(self.response_timestamp)
+
+
+class UserAPIResultNM(_base.BaseAPIResultNestedModel):
+ active: bool
+ api_access_groups: dict[str, str]
+ auth_key: str
+ auth_keys: list[_typing.Any]
+ blocked: bool | None = None
+ data: str
+ description: str
+ domain_name: str | None
+ emails: list[str]
+ grid_id: int
+ groups: list[str]
+ guid: str
+ id: str
+ last_check_timestamp: int
+ mobile: list[_typing.Any]
+ password: str
+ protected: bool | None = None
+ roles: list[_typing.Any]
+ service_account: bool
+ xmpp: list[_typing.Any]
+
+ @property
+ def last_check_datetime(self):
+ return self._get_datetime_from_timestamp(self.last_check_timestamp)
+
+
+class StorageCountersAPIResultNM(_base.BaseAPIResultNestedModel):
+ storage_size_gb_by_real_usage: float
+ storage_size_gb_by_disk_max: float
+
+
+class StoragePolicyCountersAPIResultNM(_base.BaseAPIResultNestedModel):
+ storage_size_gb_by_real_usage: float
+ storage_size_gb_by_disk_max: float
+ sep_pools: dict[str, dict[str, StorageCountersAPIResultNM]]
+ storage_size_quota_gb: int | None = None
+
+
+class ResourceCountersAPIResultNM(_base.BaseAPIResultNestedModel):
+ cpu_count: int
+ ram_size_mb: int
+ storage_size_gb_by_real_usage: int | float
+ storage_size_gb_by_disk_max: int
+ ext_ip_count: int
+ ext_traffic: int
+ gpu_count: int
+ sep_pools: dict[str, dict[str, StorageCountersAPIResultNM]]
+ storage_policies: dict[str, StoragePolicyCountersAPIResultNM]
+
+
+class TenantQuotasForResourceConsumptionAPIResultNM(
+ _base.BaseAPIResultNestedModel,
+):
+ cpu_count: int
+ disk_size_gb: int
+ ext_traffic: int
+ gpu_count: int
+ ext_ip_count: int
+ ram_size_mb: float | int
+ storage_size_gb: int
+
+
+class PCIDeviceAPIResultNM(_base.BaseAPIResultNestedModel):
+ vm_id: int
+ description: str
+ guid: int
+ hw_path: str
+ id: int
+ name: str
+ rg_id: int
+ stack_id: int
+ status: _enums.PCIDeviceStatus
+ system_name: str
+
+
+class AvailableSEPPoolsAPIResultNM(_base.BaseAPIResultNestedModel):
+ sep_id: int
+ sep_name: str
+ sep_type: _enums.SEPType
+ pools: list[SEPPoolAPIResultNM]
+
+
+class ResourceGroupForListDeletedAPIResultNM(_base.BaseAPIResultNestedModel):
+ account_acl: AccessAPIResultNM
account_id: int
account_name: str
- acl: list[K8sACLAPIResultNM]
- bservice_id: int
- k8ci_id: int
- config: dict
+ acl: list[AccessAPIResultNM]
+ vm_features: list[_enums.VMFeature]
+ cpu_allocation_parameter: str
+ cpu_allocation_ratio: int
created_by: str
created_timestamp: int
+ default_net_id: int
+ default_net_type: _enums.RGDefaultNetType
deleted_by: str
deleted_timestamp: int
description: str
- ext_net_id: int
grid_id: int
guid: int
id: int
- lb_id: int
+ lock_status: _enums.LockStatus
milestones: int
name: str
- network_plugin: _enums.K8sNetworkPlugin
- rg_id: int
- rg_name: str
- service_account: K8sServiceAccountAPIResultNM
- status: _enums.K8sStatus
- tech_status: _enums.K8sTechStatus
+ quotas: TenantQuotasAPIResultNM
+ resource_types: list[_enums.RGResourceType]
+ sdn_access_group_id: str
+ secret: str
+ status: _enums.ResourceGroupStatus
+ storage_policy_ids: list[int]
+ uniq_pools: list[str]
updated_by: str
updated_timestamp: int
- vins_id: int
- worker_groups: list[WorkerGroupAPIResultNM]
- zone_id: int
+ vins_ids: list[int]
+ vm_ids: list[int]
@property
def created_datetime(self):
@@ -1317,25 +1686,55 @@ class K8sListDeletedAPIResultNM(_base.BaseAPIResultNestedModel):
return self._get_datetime_from_timestamp(self.updated_timestamp)
-class DPDKNetAPIResultNM(_base.BaseAPIResultNestedModel):
- account_ids: list[int]
+class TenantStatusCountersAPIResultNM(_base.BaseAPIResultNestedModel):
+ disabled: int
+ enabled: int
+
+
+class VMStatusCountersAPIResultNM(_base.BaseAPIResultNestedModel):
+ started: int
+ stopped: int
+
+
+class AccountForCBAPIResultNM(_base.BaseAPIResultNestedModel):
+ acc_lvl_vins_ids: list[int]
+ acl: list[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
- grid_id: int
+ display_name: str
guid: int
id: int
name: str
- ovs_bridge: str
- rg_ids: list[int]
- status: _enums.DPDKNetStatus
+ quotas: TenantQuotasAPIResultNM
+ resource_types: list[_enums.AccountResourceType]
+ send_access_emails: bool
+ status: _enums.AccountStatus
+ storage_policy_ids: list[int]
+ uniq_pools: list[str]
updated_timestamp: int
- vlan_id: int
- vm_ids: list[int]
+ version: int
+ vm_features: list[_enums.VMFeature]
+ zone_ids: list[int]
+ zones: list[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)
diff --git a/src/dynamix_sdk/api/cloudapi/_api.py b/src/dynamix_sdk/api/cloudapi/_api.py
index 72a1b19..f9812e7 100644
--- a/src/dynamix_sdk/api/cloudapi/_api.py
+++ b/src/dynamix_sdk/api/cloudapi/_api.py
@@ -13,11 +13,19 @@ 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):
@@ -35,8 +43,16 @@ class CloudapiAPI(_base.BaseAPI):
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
diff --git a/src/dynamix_sdk/api/cloudapi/account/_api.py b/src/dynamix_sdk/api/cloudapi/account/_api.py
index 35b8bb7..5dbe60f 100644
--- a/src/dynamix_sdk/api/cloudapi/account/_api.py
+++ b/src/dynamix_sdk/api/cloudapi/account/_api.py
@@ -5,6 +5,7 @@ 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 *
@@ -20,6 +21,7 @@ class CloudapiAccountAPI(
CloudapiAccountDisableProtocol,
CloudapiAccountEnableProtocol,
CloudapiAccountGetProtocol,
+ CloudapiAccountGetResourceConsumptionProtocol,
CloudapiAccountListDeletedProtocol,
CloudapiAccountListProtocol,
CloudapiAccountRestoreProtocol,
diff --git a/src/dynamix_sdk/api/cloudapi/account/get.py b/src/dynamix_sdk/api/cloudapi/account/get.py
index fec6ae2..d4fa0d1 100644
--- a/src/dynamix_sdk/api/cloudapi/account/get.py
+++ b/src/dynamix_sdk/api/cloudapi/account/get.py
@@ -25,6 +25,7 @@ class CloudapiAccountGetResultModel(_base.BaseAPIResultModel):
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
diff --git a/src/dynamix_sdk/api/cloudapi/account/get_resource_consumption.py b/src/dynamix_sdk/api/cloudapi/account/get_resource_consumption.py
new file mode 100644
index 0000000..261c90d
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/account/get_resource_consumption.py
@@ -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: ...
diff --git a/src/dynamix_sdk/api/cloudapi/account/list.py b/src/dynamix_sdk/api/cloudapi/account/list.py
index dcdcbba..feb4208 100644
--- a/src/dynamix_sdk/api/cloudapi/account/list.py
+++ b/src/dynamix_sdk/api/cloudapi/account/list.py
@@ -3,7 +3,7 @@ import dynamix_sdk.api._nested as _nested
class CloudapiAccountListResultModel(_base.BaseAPIResultModel):
- data: list[_nested.AccountAPIResultNM]
+ data: list[_nested.AccountForCAAPIResultNM]
entry_count: int
@@ -14,6 +14,7 @@ class CloudapiAccountListProtocol(_base.BasePostAPIFunctionProtocol):
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,
diff --git a/src/dynamix_sdk/api/cloudapi/account/list_deleted.py b/src/dynamix_sdk/api/cloudapi/account/list_deleted.py
index 1c5fa1d..d1b6270 100644
--- a/src/dynamix_sdk/api/cloudapi/account/list_deleted.py
+++ b/src/dynamix_sdk/api/cloudapi/account/list_deleted.py
@@ -3,7 +3,7 @@ import dynamix_sdk.api._nested as _nested
class CloudapiAccountListDeletedResultModel(_base.BaseAPIResultModel):
- data: list[_nested.AccountAPIResultNM]
+ data: list[_nested.AccountForCAAPIResultNM]
entry_count: int
diff --git a/src/dynamix_sdk/api/cloudapi/account/update.py b/src/dynamix_sdk/api/cloudapi/account/update.py
index 18e9261..b8f1326 100644
--- a/src/dynamix_sdk/api/cloudapi/account/update.py
+++ b/src/dynamix_sdk/api/cloudapi/account/update.py
@@ -14,9 +14,9 @@ class CloudapiAccountUpdateProtocol(_base.BasePostAPIFunctionProtocol):
ext_traffic_quota: None | int = None,
gpu_count_quota: None | int = None,
name: None | str = None,
- public_ip_count_quota: None | int = None,
+ ext_ip_count_quota: None | int = None,
ram_size_quota_mb: None | int = None,
- send_access_emails: None | bool = None,
+ send_access_emails: bool = False,
storage_size_quota_gb: None | int = None,
uniq_pools: None | list[str] = None,
description: str | None = None,
diff --git a/src/dynamix_sdk/api/cloudapi/audit/_api.py b/src/dynamix_sdk/api/cloudapi/audit/_api.py
index e5f263c..d68e977 100644
--- a/src/dynamix_sdk/api/cloudapi/audit/_api.py
+++ b/src/dynamix_sdk/api/cloudapi/audit/_api.py
@@ -1,9 +1,11 @@
import dynamix_sdk.base as _base
from .get import *
+from .list import *
class CloudapiAuditAPI(
_base.BaseAPI,
CloudapiAuditGetProtocol,
+ CloudapiAuditListProtocol,
):
pass
diff --git a/src/dynamix_sdk/api/cloudapi/audit/get.py b/src/dynamix_sdk/api/cloudapi/audit/get.py
index 38d2f28..9c96275 100644
--- a/src/dynamix_sdk/api/cloudapi/audit/get.py
+++ b/src/dynamix_sdk/api/cloudapi/audit/get.py
@@ -1,27 +1,12 @@
+import dynamix_sdk.api._nested as _nested
import dynamix_sdk.base as _base
-class CloudapiAuditGetResultModel(_base.BaseAPIResultModel):
- args: str
- api_url_path: str
- guid: str
- kwargs: str
- client_ip_addr: str
- execution_time_sec: float
- result: str
- status_code: int
- request_timestamp: float
- response_timestamp: float
- user_name: str
- request_datetime_iso8601: str
-
- @property
- def request_datetime(self):
- return self._get_datetime_from_timestamp(self.request_timestamp)
-
- @property
- def response_datetime(self):
- return self._get_datetime_from_timestamp(self.response_timestamp)
+class CloudapiAuditGetResultModel(
+ _base.BaseAPIResultModel,
+ _nested.AuditAPIResultNM,
+):
+ pass
class CloudapiAuditGetProtocol(_base.BasePostAPIFunctionProtocol):
diff --git a/src/dynamix_sdk/api/cloudapi/audit/list.py b/src/dynamix_sdk/api/cloudapi/audit/list.py
new file mode 100644
index 0000000..15c246f
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/audit/list.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/bservice/_api.py b/src/dynamix_sdk/api/cloudapi/bservice/_api.py
index f5a61e0..6a786af 100644
--- a/src/dynamix_sdk/api/cloudapi/bservice/_api.py
+++ b/src/dynamix_sdk/api/cloudapi/bservice/_api.py
@@ -18,7 +18,12 @@ 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 *
@@ -44,7 +49,12 @@ class CloudapiBserviceAPI(
CloudapiBserviceGroupUpdateVinsProtocol,
CloudapiBserviceListDeletedProtocol,
CloudapiBserviceListProtocol,
+ CloudapiBserviceMigrateToZoneProtocol,
CloudapiBserviceRestoreProtocol,
+ CloudapiBserviceSnapshotCreateProtocol,
+ CloudapiBserviceSnapshotDeleteProtocol,
+ CloudapiBserviceSnapshotListProtocol,
+ CloudapiBserviceSnapshotRollbackProtocol,
CloudapiBserviceStartProtocol,
CloudapiBserviceStopProtocol,
):
diff --git a/src/dynamix_sdk/api/cloudapi/bservice/create.py b/src/dynamix_sdk/api/cloudapi/bservice/create.py
index a61745b..1133e96 100644
--- a/src/dynamix_sdk/api/cloudapi/bservice/create.py
+++ b/src/dynamix_sdk/api/cloudapi/bservice/create.py
@@ -11,8 +11,8 @@ class CloudapiBserviceCreateProtocol(_base.BasePostAPIFunctionProtocol):
*,
name: str,
rg_id: int,
- ssh_user: str | None = None,
- ssh_key: str | None = None,
+ ssh_user_name: str | None = None,
+ ssh_public_key: str | None = None,
zone_id: int | None = None,
) -> CloudapiBserviceCreateResultInt:
...
diff --git a/src/dynamix_sdk/api/cloudapi/bservice/get.py b/src/dynamix_sdk/api/cloudapi/bservice/get.py
index 3d3f074..69c3912 100644
--- a/src/dynamix_sdk/api/cloudapi/bservice/get.py
+++ b/src/dynamix_sdk/api/cloudapi/bservice/get.py
@@ -24,8 +24,8 @@ class CloudapiBserviceGetResultModel(_base.BaseAPIResultModel):
rg_id: int
rg_name: str
snapshots: list[_nested.BServiceSnapshotAPIResultNM]
- ssh_key: str
- ssh_user: str
+ ssh_public_key: str
+ ssh_user_name: str
status: _nested.BServiceStatus
tech_status: _nested.BServiceTechStatus
updated_by: str
diff --git a/src/dynamix_sdk/api/cloudapi/bservice/group_add.py b/src/dynamix_sdk/api/cloudapi/bservice/group_add.py
index 3565e19..c36fbfd 100644
--- a/src/dynamix_sdk/api/cloudapi/bservice/group_add.py
+++ b/src/dynamix_sdk/api/cloudapi/bservice/group_add.py
@@ -14,10 +14,11 @@ class CloudapiBserviceGroupAddProtocol(_base.BasePostAPIFunctionProtocol):
vm_count: int,
cpu_count: int,
boot_disk_size_gb: int,
- driver: _nested.Driver,
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,
diff --git a/src/dynamix_sdk/api/cloudapi/bservice/list.py b/src/dynamix_sdk/api/cloudapi/bservice/list.py
index 844a59d..e802d7b 100644
--- a/src/dynamix_sdk/api/cloudapi/bservice/list.py
+++ b/src/dynamix_sdk/api/cloudapi/bservice/list.py
@@ -15,6 +15,7 @@ class CloudapiBserviceListProtocol(_base.BasePostAPIFunctionProtocol):
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,
diff --git a/src/dynamix_sdk/api/cloudapi/bservice/migrate_to_zone.py b/src/dynamix_sdk/api/cloudapi/bservice/migrate_to_zone.py
new file mode 100644
index 0000000..373fdd4
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/bservice/migrate_to_zone.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/bservice/snapshot_create.py b/src/dynamix_sdk/api/cloudapi/bservice/snapshot_create.py
new file mode 100644
index 0000000..0a7b0e4
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/bservice/snapshot_create.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/bservice/snapshot_delete.py b/src/dynamix_sdk/api/cloudapi/bservice/snapshot_delete.py
new file mode 100644
index 0000000..afbbd73
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/bservice/snapshot_delete.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/bservice/snapshot_list.py b/src/dynamix_sdk/api/cloudapi/bservice/snapshot_list.py
new file mode 100644
index 0000000..649eeb5
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/bservice/snapshot_list.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/bservice/snapshot_rollback.py b/src/dynamix_sdk/api/cloudapi/bservice/snapshot_rollback.py
new file mode 100644
index 0000000..28ce445
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/bservice/snapshot_rollback.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/_api.py b/src/dynamix_sdk/api/cloudapi/compute/_api.py
index 378d8b8..77bbb08 100644
--- a/src/dynamix_sdk/api/cloudapi/compute/_api.py
+++ b/src/dynamix_sdk/api/cloudapi/compute/_api.py
@@ -1,4 +1,5 @@
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 *
@@ -8,19 +9,41 @@ 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_resize 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 *
@@ -28,9 +51,12 @@ 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 *
@@ -50,6 +76,7 @@ from .user_update import *
class CloudapiComputeAPI(
_base.BaseAPI,
+ CloudapiComputeAbortSharedSnapshotMergeProtocol,
CloudapiComputeAffinityLabelRemoveProtocol,
CloudapiComputeAffinityLabelSetProtocol,
CloudapiComputeAffinityRelationsProtocol,
@@ -59,19 +86,41 @@ class CloudapiComputeAPI(
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,
- CloudapiComputeDiskResizeProtocol,
+ CloudapiComputeDiskMigrateProtocol,
+ CloudapiComputeDiskSwitchToReplicationProtocol,
+ CloudapiComputeEnableProtocol,
+ CloudapiComputeGetConsoleUrlProtocol,
CloudapiComputeGetProtocol,
+ CloudapiComputeGuestAgentDisableProtocol,
+ CloudapiComputeGuestAgentEnableProtocol,
+ CloudapiComputeGuestAgentExecuteProtocol,
+ CloudapiComputeGuestAgentFeatureUpdateProtocol,
CloudapiComputeListProtocol,
+ CloudapiComputeListDeletedProtocol,
+ CloudapiComputeMigrateToZoneProtocol,
+ CloudapiComputeMoveToRgProtocol,
CloudapiComputeNetAttachProtocol,
CloudapiComputeNetDetachProtocol,
CloudapiComputePauseProtocol,
@@ -79,9 +128,12 @@ class CloudapiComputeAPI(
CloudapiComputePfwDelProtocol,
CloudapiComputePfwListProtocol,
CloudapiComputePinToStackProtocol,
+ CloudapiComputePowerCycleProtocol,
CloudapiComputeRebootProtocol,
CloudapiComputeRedeployProtocol,
+ CloudapiComputeResetProtocol,
CloudapiComputeResizeProtocol,
+ CloudapiComputeRestoreProtocol,
CloudapiComputeResumeProtocol,
CloudapiComputeSetCustomFieldsProtocol,
CloudapiComputeSnapshotCreateProtocol,
diff --git a/src/dynamix_sdk/api/cloudapi/compute/abort_shared_snapshot_merge.py b/src/dynamix_sdk/api/cloudapi/compute/abort_shared_snapshot_merge.py
new file mode 100644
index 0000000..9cad96b
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/abort_shared_snapshot_merge.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/attach_gpu.py b/src/dynamix_sdk/api/cloudapi/compute/attach_gpu.py
new file mode 100644
index 0000000..0959ce8
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/attach_gpu.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/attach_pci_device.py b/src/dynamix_sdk/api/cloudapi/compute/attach_pci_device.py
new file mode 100644
index 0000000..dfcb906
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/attach_pci_device.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/boot_disk_set.py b/src/dynamix_sdk/api/cloudapi/compute/boot_disk_set.py
new file mode 100644
index 0000000..63f0070
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/boot_disk_set.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/change_link_state.py b/src/dynamix_sdk/api/cloudapi/compute/change_link_state.py
new file mode 100644
index 0000000..8c997c3
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/change_link_state.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/change_mac.py b/src/dynamix_sdk/api/cloudapi/compute/change_mac.py
new file mode 100644
index 0000000..b42d4de
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/change_mac.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/change_mtu.py b/src/dynamix_sdk/api/cloudapi/compute/change_mtu.py
new file mode 100644
index 0000000..62dc776
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/change_mtu.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/change_security_groups.py b/src/dynamix_sdk/api/cloudapi/compute/change_security_groups.py
new file mode 100644
index 0000000..a675ca0
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/change_security_groups.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/clone.py b/src/dynamix_sdk/api/cloudapi/compute/clone.py
index 2e97e64..ace847f 100644
--- a/src/dynamix_sdk/api/cloudapi/compute/clone.py
+++ b/src/dynamix_sdk/api/cloudapi/compute/clone.py
@@ -1,7 +1,7 @@
import dynamix_sdk.base as _base
-class CloudapiComputeCloneResultInt(_base.BaseAPIResultInt):
+class CloudapiComputeCloneResultStr(_base.BaseAPIResultStr):
pass
@@ -12,7 +12,10 @@ class CloudapiComputeCloneProtocol(_base.BasePostAPIFunctionProtocol):
vm_id: int,
name: str,
force: bool = False,
+ storage_policy_id: int,
snapshot_timestamp: int | None = None,
snapshot_name: str | None = None,
- ) -> CloudapiComputeCloneResultInt:
+ sep_pool_name: str | None = None,
+ sep_id: int | None = None,
+ ) -> CloudapiComputeCloneResultStr:
...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/clone_abort.py b/src/dynamix_sdk/api/cloudapi/compute/clone_abort.py
new file mode 100644
index 0000000..a54d207
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/clone_abort.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/create_template.py b/src/dynamix_sdk/api/cloudapi/compute/create_template.py
new file mode 100644
index 0000000..87cfd95
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/create_template.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/detach_gpu.py b/src/dynamix_sdk/api/cloudapi/compute/detach_gpu.py
new file mode 100644
index 0000000..e56f095
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/detach_gpu.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/detach_pci_device.py b/src/dynamix_sdk/api/cloudapi/compute/detach_pci_device.py
new file mode 100644
index 0000000..eb9fd37
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/detach_pci_device.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/disable.py b/src/dynamix_sdk/api/cloudapi/compute/disable.py
new file mode 100644
index 0000000..c970e14
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/disable.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/disk_add.py b/src/dynamix_sdk/api/cloudapi/compute/disk_add.py
index ab6e59a..d2be762 100644
--- a/src/dynamix_sdk/api/cloudapi/compute/disk_add.py
+++ b/src/dynamix_sdk/api/cloudapi/compute/disk_add.py
@@ -13,11 +13,13 @@ class CloudapiComputeDiskAddProtocol(_base.BasePostAPIFunctionProtocol):
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:
...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/disk_attach.py b/src/dynamix_sdk/api/cloudapi/compute/disk_attach.py
index 39af539..b0f47c6 100644
--- a/src/dynamix_sdk/api/cloudapi/compute/disk_attach.py
+++ b/src/dynamix_sdk/api/cloudapi/compute/disk_attach.py
@@ -13,5 +13,7 @@ class CloudapiComputeDiskAttachProtocol(_base.BasePostAPIFunctionProtocol):
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:
...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/disk_migrate.py b/src/dynamix_sdk/api/cloudapi/compute/disk_migrate.py
new file mode 100644
index 0000000..8b4c552
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/disk_migrate.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/disk_resize.py b/src/dynamix_sdk/api/cloudapi/compute/disk_resize.py
deleted file mode 100644
index 0a07f29..0000000
--- a/src/dynamix_sdk/api/cloudapi/compute/disk_resize.py
+++ /dev/null
@@ -1,16 +0,0 @@
-import dynamix_sdk.base as _base
-
-
-class CloudapiComputeDiskResizeResultBool(_base.BaseAPIResultBool):
- pass
-
-
-class CloudapiComputeDiskResizeProtocol(_base.BasePostAPIFunctionProtocol):
- def disk_resize(
- self,
- *,
- vm_id: int,
- disk_id: int,
- disk_size_gb: int,
- ) -> CloudapiComputeDiskResizeResultBool:
- ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/disk_switch_to_replication.py b/src/dynamix_sdk/api/cloudapi/compute/disk_switch_to_replication.py
new file mode 100644
index 0000000..9ec0eba
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/disk_switch_to_replication.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/enable.py b/src/dynamix_sdk/api/cloudapi/compute/enable.py
new file mode 100644
index 0000000..ca6dcf5
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/enable.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/get.py b/src/dynamix_sdk/api/cloudapi/compute/get.py
index 1fa29fb..1402a04 100644
--- a/src/dynamix_sdk/api/cloudapi/compute/get.py
+++ b/src/dynamix_sdk/api/cloudapi/compute/get.py
@@ -1,5 +1,3 @@
-import typing as _typing
-
import dynamix_sdk.base as _base
import dynamix_sdk.api._nested as _nested
@@ -15,6 +13,8 @@ class CloudapiComputeGetResultModel(_base.BaseAPIResultModel):
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]
@@ -39,14 +39,14 @@ class CloudapiComputeGetResultModel(_base.BaseAPIResultModel):
hot_resize: bool
hp_backed: bool
id: int
- image_id: int
+ image_id: None | int
image_name: None | str
interfaces: list[_nested.InterfaceForComputeGetAPIResultNM]
live_migration_job_id: int
lock_status: _nested.LockStatus
manager_id: int
manager_type: str
- migration_job: int
+ migration_job_id: int
milestones: int
name: str
need_reboot: bool
@@ -54,6 +54,7 @@ class CloudapiComputeGetResultModel(_base.BaseAPIResultModel):
numa_affinity: _nested.NumaAffinity
numa_node_id: int
os_users: list[_nested.OSUserAPIResultNM]
+ os_version: str
pinned_to_stack: bool
preferred_cpu_cores: list[int]
ram_size_mb: int
@@ -63,17 +64,15 @@ class CloudapiComputeGetResultModel(_base.BaseAPIResultModel):
rg_id: int
rg_name: str
snapshot_sets: list[_nested.SnapshotSetAPIResultNM]
- stateless_sep_id: int
- stateless_sep_type: str
+ 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[dict[str, _typing.Any]]
- virtual_image_id: int
- virtual_image_name: None | str
+ vgpus: list[_nested.VGPUAPIResultNM]
vm_ci_id: int
vnc_password: str
guest_agent: _nested.GuestAgentAPIResultNM
diff --git a/src/dynamix_sdk/api/cloudapi/compute/get_console_url.py b/src/dynamix_sdk/api/cloudapi/compute/get_console_url.py
new file mode 100644
index 0000000..1d259b9
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/get_console_url.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/guest_agent_disable.py b/src/dynamix_sdk/api/cloudapi/compute/guest_agent_disable.py
new file mode 100644
index 0000000..deaa2d6
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/guest_agent_disable.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/guest_agent_enable.py b/src/dynamix_sdk/api/cloudapi/compute/guest_agent_enable.py
new file mode 100644
index 0000000..1a68a94
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/guest_agent_enable.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/guest_agent_execute.py b/src/dynamix_sdk/api/cloudapi/compute/guest_agent_execute.py
new file mode 100644
index 0000000..5207e77
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/guest_agent_execute.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/guest_agent_feature_update.py b/src/dynamix_sdk/api/cloudapi/compute/guest_agent_feature_update.py
new file mode 100644
index 0000000..00c9af6
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/guest_agent_feature_update.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/list.py b/src/dynamix_sdk/api/cloudapi/compute/list.py
index 1275be9..c48ef9e 100644
--- a/src/dynamix_sdk/api/cloudapi/compute/list.py
+++ b/src/dynamix_sdk/api/cloudapi/compute/list.py
@@ -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,
diff --git a/src/dynamix_sdk/api/cloudapi/compute/list_deleted.py b/src/dynamix_sdk/api/cloudapi/compute/list_deleted.py
new file mode 100644
index 0000000..8f16758
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/list_deleted.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/migrate_to_zone.py b/src/dynamix_sdk/api/cloudapi/compute/migrate_to_zone.py
new file mode 100644
index 0000000..4b0b29e
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/migrate_to_zone.py
@@ -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:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/move_to_rg.py b/src/dynamix_sdk/api/cloudapi/compute/move_to_rg.py
new file mode 100644
index 0000000..3cdbead
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/move_to_rg.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiComputeMoveToRgResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiComputeMoveToRgProtocol(_base.BasePostAPIFunctionProtocol):
+ def move_to_rg(
+ self,
+ *,
+ vm_id: int,
+ rg_id: int,
+ new_vm_name: str | None = None,
+ auto_start: bool = False,
+ force_stop: bool = False,
+ ) -> CloudapiComputeMoveToRgResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/net_attach.py b/src/dynamix_sdk/api/cloudapi/compute/net_attach.py
index 6938286..ec0a208 100644
--- a/src/dynamix_sdk/api/cloudapi/compute/net_attach.py
+++ b/src/dynamix_sdk/api/cloudapi/compute/net_attach.py
@@ -16,6 +16,9 @@ class CloudapiComputeNetAttachProtocol(_base.BasePostAPIFunctionProtocol):
vm_id: int,
net_type: _nested.NetType,
net_id: int,
+ security_group_ids: None | list[int] = None,
+ security_group_mode: bool = False,
+ enabled: bool = True,
ip_addr: None | str = None,
mtu: None | int = None,
mac: None | str = None,
diff --git a/src/dynamix_sdk/api/cloudapi/compute/power_cycle.py b/src/dynamix_sdk/api/cloudapi/compute/power_cycle.py
new file mode 100644
index 0000000..00a166a
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/power_cycle.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiComputePowerCycleResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiComputePowerCycleProtocol(_base.BasePostAPIFunctionProtocol):
+ def power_cycle(
+ self,
+ *,
+ vm_id: int,
+ ) -> CloudapiComputePowerCycleResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/redeploy.py b/src/dynamix_sdk/api/cloudapi/compute/redeploy.py
index 58a3187..c96659c 100644
--- a/src/dynamix_sdk/api/cloudapi/compute/redeploy.py
+++ b/src/dynamix_sdk/api/cloudapi/compute/redeploy.py
@@ -11,6 +11,7 @@ class CloudapiComputeRedeployProtocol(_base.BasePostAPIFunctionProtocol):
self,
*,
vm_id: int,
+ storage_policy_id: int,
start: bool = False,
boot_disk_size_gb: int | None = None,
data_disks_change_mode: _nested.DataDisksChangeMode = (
@@ -18,5 +19,6 @@ class CloudapiComputeRedeployProtocol(_base.BasePostAPIFunctionProtocol):
),
force_stop: bool = False,
image_id: int | None = None,
+ os_version: str | None = None,
) -> CloudapiComputeRedeployResultBool:
...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/reset.py b/src/dynamix_sdk/api/cloudapi/compute/reset.py
new file mode 100644
index 0000000..15c4e27
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/reset.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiComputeResetResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiComputeResetProtocol(_base.BasePostAPIFunctionProtocol):
+ def reset(
+ self,
+ *,
+ vm_id: int,
+ ) -> CloudapiComputeResetResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/restore.py b/src/dynamix_sdk/api/cloudapi/compute/restore.py
new file mode 100644
index 0000000..dca57a2
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/compute/restore.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiComputeRestoreResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiComputeRestoreProtocol(_base.BasePostAPIFunctionProtocol):
+ def restore(
+ self,
+ *,
+ vm_id: int,
+ ) -> CloudapiComputeRestoreResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/compute/update.py b/src/dynamix_sdk/api/cloudapi/compute/update.py
index 920c3b4..25a873d 100644
--- a/src/dynamix_sdk/api/cloudapi/compute/update.py
+++ b/src/dynamix_sdk/api/cloudapi/compute/update.py
@@ -23,5 +23,6 @@ class CloudapiComputeUpdateProtocol(_base.BasePostAPIFunctionProtocol):
boot_mode: _nested.BootMode | None = None,
network_interface_naming: _nested.NetIfaceNamingTemplate | None = None,
hot_resize: bool | None = None,
+ os_version: str | None = None,
) -> CloudapiComputeUpdateResultBool:
...
diff --git a/src/dynamix_sdk/api/cloudapi/disks/_api.py b/src/dynamix_sdk/api/cloudapi/disks/_api.py
index 36bf87f..ce1bcd5 100644
--- a/src/dynamix_sdk/api/cloudapi/disks/_api.py
+++ b/src/dynamix_sdk/api/cloudapi/disks/_api.py
@@ -1,4 +1,5 @@
import dynamix_sdk.base as _base
+from .change_disk_storage_policy import *
from .create import *
from .delete import *
from .delete_disks import *
@@ -19,6 +20,7 @@ from .unshare import *
class CloudapiDisksAPI(
_base.BaseAPI,
+ CloudapiDisksChangeDiskStoragePolicyProtocol,
CloudapiDisksCreateProtocol,
CloudapiDisksDeleteDisksProtocol,
CloudapiDisksDeleteProtocol,
diff --git a/src/dynamix_sdk/api/cloudapi/disks/change_disk_storage_policy.py b/src/dynamix_sdk/api/cloudapi/disks/change_disk_storage_policy.py
new file mode 100644
index 0000000..432a948
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/disks/change_disk_storage_policy.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiDisksChangeDiskStoragePolicyResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiDisksChangeDiskStoragePolicyProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def change_disk_storage_policy(
+ self,
+ *,
+ disk_id: int,
+ storage_policy_id: int,
+ ) -> CloudapiDisksChangeDiskStoragePolicyResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/disks/create.py b/src/dynamix_sdk/api/cloudapi/disks/create.py
index 7a08571..c38b174 100644
--- a/src/dynamix_sdk/api/cloudapi/disks/create.py
+++ b/src/dynamix_sdk/api/cloudapi/disks/create.py
@@ -12,7 +12,7 @@ class CloudapiDisksCreateProtocol(_base.BasePostAPIFunctionProtocol):
account_id: int,
name: str,
size_gb: int,
- iops: int = 2000,
+ storage_policy_id: int,
description: str | None = None,
sep_id: int | None = None,
sep_pool_name: str | None = None,
diff --git a/src/dynamix_sdk/api/cloudapi/disks/get.py b/src/dynamix_sdk/api/cloudapi/disks/get.py
index 8d7e033..09244cd 100644
--- a/src/dynamix_sdk/api/cloudapi/disks/get.py
+++ b/src/dynamix_sdk/api/cloudapi/disks/get.py
@@ -33,12 +33,13 @@ class CloudapiDisksGetResultModel(_base.BaseAPIResultModel):
sep_type: _nested.SEPType
shared: bool
size_available: float
- size_available: float
size_max_gb: int
size_used: float
snapshots: list[_nested.SnapshotAPIResultNM]
status: _nested.DiskStatus
+ storage_policy_id: int
tech_status: _nested.DiskTechStatus
+ to_clean: bool
type: _nested.DiskType
updated_by: str
vm_id: int | None
diff --git a/src/dynamix_sdk/api/cloudapi/disks/list.py b/src/dynamix_sdk/api/cloudapi/disks/list.py
index faf453d..ab2b371 100644
--- a/src/dynamix_sdk/api/cloudapi/disks/list.py
+++ b/src/dynamix_sdk/api/cloudapi/disks/list.py
@@ -23,6 +23,7 @@ class CloudapiDisksListProtocol(_base.BasePostAPIFunctionProtocol):
shared: bool | None = None,
sort_by: str | None = None,
status: _nested.DiskStatus | None = None,
+ storage_policy_id: int | None = None,
type: _nested.DiskType | None = None,
) -> CloudapiDisksListResultModel:
...
diff --git a/src/dynamix_sdk/api/cloudapi/disks/list_unattached.py b/src/dynamix_sdk/api/cloudapi/disks/list_unattached.py
index 2e93ec6..1df18af 100644
--- a/src/dynamix_sdk/api/cloudapi/disks/list_unattached.py
+++ b/src/dynamix_sdk/api/cloudapi/disks/list_unattached.py
@@ -19,6 +19,7 @@ class CloudapiDisksListUnattachedProtocol(_base.BasePostAPIFunctionProtocol):
page_size: int | None = None,
sep_id: int | None = None,
sep_pool_name: str | None = None,
+ storage_policy_id: int | None = None,
sort_by: str | None = None,
status: _nested.DiskStatus | None = None,
type: _nested.DiskType | None = None,
diff --git a/src/dynamix_sdk/api/cloudapi/extnet/get.py b/src/dynamix_sdk/api/cloudapi/extnet/get.py
index 63de7ab..2ee9d3d 100644
--- a/src/dynamix_sdk/api/cloudapi/extnet/get.py
+++ b/src/dynamix_sdk/api/cloudapi/extnet/get.py
@@ -20,7 +20,7 @@ class CloudapiExtnetGetResultModel(_base.BaseAPIResultModel):
mtu: int
name: str
net_ip: str
- net_mask: int
+ net_prefix: int
network_ids: _nested.NetworkIDsAPIResultNM
ntp_servers: list[str]
ovs_bridge: str
@@ -29,6 +29,7 @@ class CloudapiExtnetGetResultModel(_base.BaseAPIResultModel):
primary_vnfdev_id: int
redundant: bool
secondary_vnfdev_id: int
+ security_group_mode: bool
shared_with: list[int]
status: _nested.ExtNetStatus
vlan_id: int
diff --git a/src/dynamix_sdk/api/cloudapi/extnet/list.py b/src/dynamix_sdk/api/cloudapi/extnet/list.py
index d710f19..4e4c527 100644
--- a/src/dynamix_sdk/api/cloudapi/extnet/list.py
+++ b/src/dynamix_sdk/api/cloudapi/extnet/list.py
@@ -16,6 +16,7 @@ class CloudapiExtnetListProtocol(_base.BasePostAPIFunctionProtocol):
name: str | None = None,
net_ip: str | None = None,
ovs_bridge: str | None = None,
+ zone_id: int | None = None,
page_number: int | None = None,
page_size: int | None = None,
sort_by: str | None = None,
diff --git a/src/dynamix_sdk/api/cloudapi/flipgroup/create.py b/src/dynamix_sdk/api/cloudapi/flipgroup/create.py
index bea14db..e8767a0 100644
--- a/src/dynamix_sdk/api/cloudapi/flipgroup/create.py
+++ b/src/dynamix_sdk/api/cloudapi/flipgroup/create.py
@@ -7,7 +7,7 @@ class CloudapiFlipgroupCreateResultModel(_base.BaseAPIResultModel):
id: int
ip_addr: str
name: str
- net_mask: int
+ net_prefix: int
class CloudapiFlipgroupCreateProtocol(_base.BasePostAPIFunctionProtocol):
diff --git a/src/dynamix_sdk/api/cloudapi/image/_api.py b/src/dynamix_sdk/api/cloudapi/image/_api.py
index 9cc2f4e..c34cac0 100644
--- a/src/dynamix_sdk/api/cloudapi/image/_api.py
+++ b/src/dynamix_sdk/api/cloudapi/image/_api.py
@@ -1,4 +1,5 @@
import dynamix_sdk.base as _base
+from .change_storage_policy import *
from .create import *
from .create_virtual import *
from .delete import *
@@ -10,6 +11,7 @@ from .rename import *
class CloudapiImageAPI(
_base.BaseAPI,
+ CloudapiImageChangeStoragePolicyProtocol,
CloudapiImageCreateProtocol,
CloudapiImageCreateVirtualProtocol,
CloudapiImageDeleteProtocol,
diff --git a/src/dynamix_sdk/api/cloudapi/image/change_storage_policy.py b/src/dynamix_sdk/api/cloudapi/image/change_storage_policy.py
new file mode 100644
index 0000000..bcaa3a9
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/image/change_storage_policy.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiImageChangeStoragePolicyResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiImageChangeStoragePolicyProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def change_storage_policy(
+ self,
+ *,
+ image_id: int,
+ storage_policy_id: int,
+ ) -> CloudapiImageChangeStoragePolicyResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/image/create.py b/src/dynamix_sdk/api/cloudapi/image/create.py
index f40fe85..640da29 100644
--- a/src/dynamix_sdk/api/cloudapi/image/create.py
+++ b/src/dynamix_sdk/api/cloudapi/image/create.py
@@ -12,10 +12,10 @@ class CloudapiImageCreateProtocol(_base.BasePostAPIFunctionProtocol):
*,
account_id: int,
boot_mode: _nested.BootMode,
- drivers: list[_nested.Driver],
boot_loader_type: _nested.BootLoaderType,
name: str,
download_url: str,
+ storage_policy_id: int,
hot_resize: bool = False,
network_interface_naming: _nested.NetIfaceNamingTemplate = (
_nested.NetIfaceNamingTemplate.ens
diff --git a/src/dynamix_sdk/api/cloudapi/image/create_virtual.py b/src/dynamix_sdk/api/cloudapi/image/create_virtual.py
index b788b3f..e63c7ff 100644
--- a/src/dynamix_sdk/api/cloudapi/image/create_virtual.py
+++ b/src/dynamix_sdk/api/cloudapi/image/create_virtual.py
@@ -11,5 +11,6 @@ class CloudapiImageCreateVirtualProtocol(_base.BasePostAPIFunctionProtocol):
*,
name: str,
target_image_id: int,
+ account_id: int | None = None,
) -> CloudapiImageCreateVirtualResultInt:
...
diff --git a/src/dynamix_sdk/api/cloudapi/image/get.py b/src/dynamix_sdk/api/cloudapi/image/get.py
index 1f5aeb3..3f9a87b 100644
--- a/src/dynamix_sdk/api/cloudapi/image/get.py
+++ b/src/dynamix_sdk/api/cloudapi/image/get.py
@@ -36,11 +36,13 @@ class CloudapiImageGetResultModel(_base.BaseAPIResultModel):
rescue_cd: bool
sep_id: int
sep_pool_name: str
+ storage_policy_id: int
shared_with: list[int]
size_gb: int
snapshot_id: str = ''
status: _nested.ImageStatus
tech_status: _nested.ImageTechStatus
+ to_clean: bool
type: _nested.ImageType
unc_path: str
version: str
diff --git a/src/dynamix_sdk/api/cloudapi/image/list.py b/src/dynamix_sdk/api/cloudapi/image/list.py
index e1807b7..23d2561 100644
--- a/src/dynamix_sdk/api/cloudapi/image/list.py
+++ b/src/dynamix_sdk/api/cloudapi/image/list.py
@@ -26,5 +26,6 @@ class CloudapiImageListProtocol(_base.BasePostAPIFunctionProtocol):
sort_by: str | None = None,
status: _nested.ImageStatus | None = None,
type: _nested.ImageType | None = None,
+ storage_policy_id: int | None = None,
) -> CloudapiImageListResultModel:
...
diff --git a/src/dynamix_sdk/api/cloudapi/k8ci/list.py b/src/dynamix_sdk/api/cloudapi/k8ci/list.py
index c8cd31b..6216ffd 100644
--- a/src/dynamix_sdk/api/cloudapi/k8ci/list.py
+++ b/src/dynamix_sdk/api/cloudapi/k8ci/list.py
@@ -13,13 +13,11 @@ class CloudapiK8ciListProtocol(_base.BasePostAPIFunctionProtocol):
*,
id: int | None = None,
include_disabled: bool = False,
- master_node_driver: _nested.Driver | None = None,
name: str | None = None,
network_plugin: _nested.K8sNetworkPlugin | None = None,
page_number: int | None = None,
page_size: int | None = None,
sort_by: str | None = None,
status: _nested.K8CIStatus | None = None,
- worker_node_driver: _nested.Driver | None = None,
) -> CloudapiK8ciListResultModel:
...
diff --git a/src/dynamix_sdk/api/cloudapi/k8ci/list_deleted.py b/src/dynamix_sdk/api/cloudapi/k8ci/list_deleted.py
index 2494789..24625cc 100644
--- a/src/dynamix_sdk/api/cloudapi/k8ci/list_deleted.py
+++ b/src/dynamix_sdk/api/cloudapi/k8ci/list_deleted.py
@@ -12,12 +12,10 @@ class CloudapiK8ciListDeletedProtocol(_base.BasePostAPIFunctionProtocol):
self,
*,
id: None | int = None,
- master_node_driver: _nested.Driver | None = None,
name: str | None = None,
network_plugin: _nested.K8sNetworkPlugin | None = None,
page_number: int | None = None,
page_size: int | None = None,
sort_by: str | None = None,
- worker_node_driver: _nested.Driver | None = None,
) -> CloudapiK8ciListDeletedResultModel:
...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/_api.py b/src/dynamix_sdk/api/cloudapi/k8s/_api.py
index 0338f59..6ff6b39 100644
--- a/src/dynamix_sdk/api/cloudapi/k8s/_api.py
+++ b/src/dynamix_sdk/api/cloudapi/k8s/_api.py
@@ -1,11 +1,24 @@
import dynamix_sdk.base as _base
from .create import *
from .delete import *
+from .delete_master_from_group import *
+from .delete_worker_from_group import *
+from .disable import *
+from .enable import *
from .get import *
from .get_config import *
+from .get_node_annotations import *
+from .get_node_labels import *
+from .get_node_taints import *
from .list import *
from .list_deleted import *
+from .migrate_to_zone import *
from .restore import *
+from .start import *
+from .stop import *
+from .update import *
+from .update_worker_nodes_meta_data import *
+from .worker_add import *
from .worker_reset import *
from .worker_restart import *
from .workers_group_add import *
@@ -16,12 +29,25 @@ from .workers_group_get_by_name import *
class CloudapiK8sAPI(
_base.BaseAPI,
CloudapiK8sCreateProtocol,
+ CloudapiK8sDeleteMasterFromGroupProtocol,
CloudapiK8sDeleteProtocol,
+ CloudapiK8sDeleteWorkerFromGroupProtocol,
+ CloudapiK8sDisableProtocol,
+ CloudapiK8sEnableProtocol,
CloudapiK8sGetConfigProtocol,
+ CloudapiK8sGetNodeAnnotationsProtocol,
+ CloudapiK8sGetNodeLabelsProtocol,
+ CloudapiK8sGetNodeTaintsProtocol,
CloudapiK8sGetProtocol,
CloudapiK8sListDeletedProtocol,
CloudapiK8sListProtocol,
+ CloudapiK8sMigrateToZoneProtocol,
CloudapiK8sRestoreProtocol,
+ CloudapiK8sStartProtocol,
+ CloudapiK8sStopProtocol,
+ CloudapiK8sUpdateProtocol,
+ CloudapiK8sUpdateWorkerNodesMetaDataProtocol,
+ CloudapiK8sWorkerAddProtocol,
CloudapiK8sWorkerResetProtocol,
CloudapiK8sWorkerRestartProtocol,
CloudapiK8sWorkersGroupAddProtocol,
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/create.py b/src/dynamix_sdk/api/cloudapi/k8s/create.py
index f31e5fd..00e63d6 100644
--- a/src/dynamix_sdk/api/cloudapi/k8s/create.py
+++ b/src/dynamix_sdk/api/cloudapi/k8s/create.py
@@ -15,6 +15,7 @@ class CloudapiK8sCreateProtocol(_base.BasePostAPIFunctionProtocol):
k8ci_id: int,
worker_group_name: str,
network_plugin: _nested.K8sNetworkPlugin,
+ storage_policy_id: int,
master_node_sep_id: int | None = None,
master_node_sep_pool_name: str | None = None,
worker_node_sep_id: int | None = None,
@@ -44,7 +45,7 @@ class CloudapiK8sCreateProtocol(_base.BasePostAPIFunctionProtocol):
ci_user_data: str | None = None,
additional_sans: list[str] | None = None,
chipset: _nested.Chipset = _nested.Chipset.i440fx,
- lb_sysctl_params: list[dict] | None = None,
+ lb_sysctl_params: list[dict[str, str]] | None = None,
zone_id: int | None = None,
) -> CloudapiK8sCreateResultStr:
...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/delete_master_from_group.py b/src/dynamix_sdk/api/cloudapi/k8s/delete_master_from_group.py
new file mode 100644
index 0000000..407f7d9
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/delete_master_from_group.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiK8sDeleteMasterFromGroupResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiK8sDeleteMasterFromGroupProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def delete_master_from_group(
+ self,
+ *,
+ k8s_id: int,
+ master_group_id: int,
+ master_node_ids: list[int],
+ ) -> CloudapiK8sDeleteMasterFromGroupResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/delete_worker_from_group.py b/src/dynamix_sdk/api/cloudapi/k8s/delete_worker_from_group.py
new file mode 100644
index 0000000..9724cfe
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/delete_worker_from_group.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiK8sDeleteWorkerFromGroupResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiK8sDeleteWorkerFromGroupProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def delete_worker_from_group(
+ self,
+ *,
+ k8s_id: int,
+ worker_group_id: int,
+ worker_node_id: int,
+ ) -> CloudapiK8sDeleteWorkerFromGroupResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/disable.py b/src/dynamix_sdk/api/cloudapi/k8s/disable.py
new file mode 100644
index 0000000..b3b3435
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/disable.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiK8sDisableResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiK8sDisableProtocol(_base.BasePostAPIFunctionProtocol):
+ def disable(
+ self,
+ *,
+ k8s_id: int,
+ ) -> CloudapiK8sDisableResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/enable.py b/src/dynamix_sdk/api/cloudapi/k8s/enable.py
new file mode 100644
index 0000000..e162bc2
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/enable.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiK8sEnableResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiK8sEnableProtocol(_base.BasePostAPIFunctionProtocol):
+ def enable(
+ self,
+ *,
+ k8s_id: int,
+ ) -> CloudapiK8sEnableResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/get_node_annotations.py b/src/dynamix_sdk/api/cloudapi/k8s/get_node_annotations.py
new file mode 100644
index 0000000..ae59aee
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/get_node_annotations.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiK8sGetNodeAnnotationsResultStr(_base.BaseAPIResultStr):
+ pass
+
+
+class CloudapiK8sGetNodeAnnotationsProtocol(_base.BasePostAPIFunctionProtocol):
+ def get_node_annotations(
+ self,
+ *,
+ k8s_id: int,
+ node_id: int,
+ ) -> CloudapiK8sGetNodeAnnotationsResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/get_node_labels.py b/src/dynamix_sdk/api/cloudapi/k8s/get_node_labels.py
new file mode 100644
index 0000000..b3d8dc0
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/get_node_labels.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiK8sGetNodeLabelsResultStr(_base.BaseAPIResultStr):
+ pass
+
+
+class CloudapiK8sGetNodeLabelsProtocol(_base.BasePostAPIFunctionProtocol):
+ def get_node_labels(
+ self,
+ *,
+ k8s_id: int,
+ node_id: int,
+ ) -> CloudapiK8sGetNodeLabelsResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/get_node_taints.py b/src/dynamix_sdk/api/cloudapi/k8s/get_node_taints.py
new file mode 100644
index 0000000..72202ba
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/get_node_taints.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiK8sGetNodeTaintsResultStr(_base.BaseAPIResultStr):
+ pass
+
+
+class CloudapiK8sGetNodeTaintsProtocol(_base.BasePostAPIFunctionProtocol):
+ def get_node_taints(
+ self,
+ *,
+ k8s_id: int,
+ node_id: int,
+ ) -> CloudapiK8sGetNodeTaintsResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/list.py b/src/dynamix_sdk/api/cloudapi/k8s/list.py
index c3ed4c3..123ff15 100644
--- a/src/dynamix_sdk/api/cloudapi/k8s/list.py
+++ b/src/dynamix_sdk/api/cloudapi/k8s/list.py
@@ -3,7 +3,7 @@ import dynamix_sdk.api._nested as _nested
class CloudapiK8sListResultModel(_base.BaseAPIResultModel):
- data: list[_nested.K8sListAPIResultNM]
+ data: list[_nested.K8sAPIResultNM]
entry_count: int
@@ -22,6 +22,7 @@ class CloudapiK8sListProtocol(_base.BasePostAPIFunctionProtocol):
rg_id: int | None = None,
sort_by: str | None = None,
status: _nested.K8sStatus | None = None,
+ zone_id: int | None = None,
tech_status: _nested.K8sTechStatus | None = None,
) -> CloudapiK8sListResultModel:
...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/list_deleted.py b/src/dynamix_sdk/api/cloudapi/k8s/list_deleted.py
index d2a0ac5..10c668b 100644
--- a/src/dynamix_sdk/api/cloudapi/k8s/list_deleted.py
+++ b/src/dynamix_sdk/api/cloudapi/k8s/list_deleted.py
@@ -3,7 +3,7 @@ import dynamix_sdk.api._nested as _nested
class CloudapiK8sListDeletedResultModel(_base.BaseAPIResultModel):
- data: list[_nested.K8sListDeletedAPIResultNM]
+ data: list[_nested.K8sAPIResultNM]
entry_count: int
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/migrate_to_zone.py b/src/dynamix_sdk/api/cloudapi/k8s/migrate_to_zone.py
new file mode 100644
index 0000000..a69846f
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/migrate_to_zone.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiK8sMigrateToZoneResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiK8sMigrateToZoneProtocol(_base.BasePostAPIFunctionProtocol):
+ def migrate_to_zone(
+ self,
+ *,
+ k8s_id: int,
+ zone_id: int,
+ ) -> CloudapiK8sMigrateToZoneResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/start.py b/src/dynamix_sdk/api/cloudapi/k8s/start.py
new file mode 100644
index 0000000..f9341de
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/start.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiK8sStartResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiK8sStartProtocol(_base.BasePostAPIFunctionProtocol):
+ def start(
+ self,
+ *,
+ k8s_id: int,
+ ) -> CloudapiK8sStartResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/stop.py b/src/dynamix_sdk/api/cloudapi/k8s/stop.py
new file mode 100644
index 0000000..f6f2f83
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/stop.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiK8sStopResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiK8sStopProtocol(_base.BasePostAPIFunctionProtocol):
+ def stop(
+ self,
+ *,
+ k8s_id: int,
+ ) -> CloudapiK8sStopResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/update.py b/src/dynamix_sdk/api/cloudapi/k8s/update.py
new file mode 100644
index 0000000..da1fd71
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/update.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiK8sUpdateResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiK8sUpdateProtocol(_base.BasePostAPIFunctionProtocol):
+ def update(
+ self,
+ *,
+ k8s_id: int,
+ description: str | None = None,
+ name: str | None = None,
+ ) -> CloudapiK8sUpdateResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/update_worker_nodes_meta_data.py b/src/dynamix_sdk/api/cloudapi/k8s/update_worker_nodes_meta_data.py
new file mode 100644
index 0000000..6953861
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/update_worker_nodes_meta_data.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiK8sUpdateWorkerNodesMetaDataResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiK8sUpdateWorkerNodesMetaDataProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def update_worker_nodes_meta_data(
+ self,
+ *,
+ k8s_id: int,
+ worker_group_id: int,
+ ci_user_data: str,
+ ) -> CloudapiK8sUpdateWorkerNodesMetaDataResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/worker_add.py b/src/dynamix_sdk/api/cloudapi/k8s/worker_add.py
new file mode 100644
index 0000000..20e54cc
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/k8s/worker_add.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiK8sWorkerAddResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiK8sWorkerAddProtocol(_base.BasePostAPIFunctionProtocol):
+ def worker_add(
+ self,
+ *,
+ k8s_id: int,
+ worker_group_id: int,
+ node_count: int = 1,
+ chipset: _nested.Chipset = _nested.Chipset.i440fx,
+ ) -> CloudapiK8sWorkerAddResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/k8s/workers_group_add.py b/src/dynamix_sdk/api/cloudapi/k8s/workers_group_add.py
index 030a63d..f534e1f 100644
--- a/src/dynamix_sdk/api/cloudapi/k8s/workers_group_add.py
+++ b/src/dynamix_sdk/api/cloudapi/k8s/workers_group_add.py
@@ -12,6 +12,7 @@ class CloudapiK8sWorkersGroupAddProtocol(_base.BasePostAPIFunctionProtocol):
*,
k8s_id: int,
name: str,
+ storage_policy_id: int,
sep_id: int | None = None,
sep_pool_name: str | None = None,
labels: list[str] | None = None,
diff --git a/src/dynamix_sdk/api/cloudapi/kvmx86/create.py b/src/dynamix_sdk/api/cloudapi/kvmx86/create.py
index 5757b32..e8c7506 100644
--- a/src/dynamix_sdk/api/cloudapi/kvmx86/create.py
+++ b/src/dynamix_sdk/api/cloudapi/kvmx86/create.py
@@ -14,6 +14,7 @@ class CloudapiKvmx86CreateProtocol(_base.BasePostAPIFunctionProtocol):
name: str,
ram_size_mb: int,
rg_id: int,
+ storage_policy_id: int,
boot_disk_size_gb: None | int = None,
chipset: _nested.Chipset = _nested.Chipset.i440fx,
ci_user_data: None | dict = None,
@@ -21,7 +22,6 @@ class CloudapiKvmx86CreateProtocol(_base.BasePostAPIFunctionProtocol):
custom_fields: None | str = None,
data_disks: None | list[_nested.DiskAPIParamsNM] = None,
description: None | str = None,
- driver: _nested.Driver = _nested.Driver.KVM_X86,
hp_backed: bool = False,
image_id: None | int = None,
interfaces: None | list[_nested.InterfaceAPIParamsNM] = None,
@@ -34,5 +34,6 @@ class CloudapiKvmx86CreateProtocol(_base.BasePostAPIFunctionProtocol):
system_name: None | str = None,
without_boot_disk: bool = False,
zone_id: None | int = None,
+ os_version: None | str = None,
) -> CloudapiKvmx86CreateResultInt:
...
diff --git a/src/dynamix_sdk/api/cloudapi/kvmx86/create_blank.py b/src/dynamix_sdk/api/cloudapi/kvmx86/create_blank.py
index e80dbad..1402337 100644
--- a/src/dynamix_sdk/api/cloudapi/kvmx86/create_blank.py
+++ b/src/dynamix_sdk/api/cloudapi/kvmx86/create_blank.py
@@ -14,11 +14,11 @@ class CloudapiKvmx86CreateBlankProtocol(_base.BasePostAPIFunctionProtocol):
name: str,
ram_size_mb: int,
rg_id: int,
+ storage_policy_id: int,
boot_disk_size_gb: None | int = None,
chipset: _nested.Chipset = _nested.Chipset.i440fx,
data_disks: None | list[_nested.DiskAPIParamsNM] = None,
description: None | str = None,
- driver: _nested.Driver = _nested.Driver.KVM_X86,
interfaces: None | list[_nested.InterfaceAPIParamsNM] = None,
preferred_cpu_cores: None | list[int] = None,
sep_id: None | int = None,
@@ -33,5 +33,6 @@ class CloudapiKvmx86CreateBlankProtocol(_base.BasePostAPIFunctionProtocol):
),
hot_resize: bool = False,
zone_id: None | int = None,
+ os_version: None | str = None,
) -> CloudapiKvmx86CreateBlankResultInt:
...
diff --git a/src/dynamix_sdk/api/cloudapi/lb/_api.py b/src/dynamix_sdk/api/cloudapi/lb/_api.py
index 66819a1..276a5e1 100644
--- a/src/dynamix_sdk/api/cloudapi/lb/_api.py
+++ b/src/dynamix_sdk/api/cloudapi/lb/_api.py
@@ -5,6 +5,7 @@ from .backend_server_add import *
from .backend_server_delete import *
from .backend_server_update import *
from .backend_update import *
+from .config_reset import *
from .create import *
from .delete import *
from .disable import *
@@ -18,6 +19,13 @@ from .get import *
from .list import *
from .list_deleted import *
from .make_highly_available import *
+from .migrate_to_zone import *
+from .restart import *
+from .restore import *
+from .start import *
+from .stop import *
+from .update import *
+from .update_sysctl_params import *
class CloudapiLbAPI(
@@ -28,6 +36,7 @@ class CloudapiLbAPI(
CloudapiLbBackendServerDeleteProtocol,
CloudapiLbBackendServerUpdateProtocol,
CloudapiLbBackendUpdateProtocol,
+ CloudapiLbConfigResetProtocol,
CloudapiLbCreateProtocol,
CloudapiLbDeleteProtocol,
CloudapiLbDisableProtocol,
@@ -41,5 +50,12 @@ class CloudapiLbAPI(
CloudapiLbListDeletedProtocol,
CloudapiLbListProtocol,
CloudapiLbMakeHighlyAvailableProtocol,
+ CloudapiLbMigrateToZoneProtocol,
+ CloudapiLbRestartProtocol,
+ CloudapiLbRestoreProtocol,
+ CloudapiLbStartProtocol,
+ CloudapiLbStopProtocol,
+ CloudapiLbUpdateProtocol,
+ CloudapiLbUpdateSysctlParamsProtocol,
):
pass
diff --git a/src/dynamix_sdk/api/cloudapi/lb/config_reset.py b/src/dynamix_sdk/api/cloudapi/lb/config_reset.py
new file mode 100644
index 0000000..ca66313
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/lb/config_reset.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiLbConfigResetResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiLbConfigResetProtocol(_base.BasePostAPIFunctionProtocol):
+ def config_reset(
+ self,
+ *,
+ lb_id: int,
+ ) -> CloudapiLbConfigResetResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/lb/create.py b/src/dynamix_sdk/api/cloudapi/lb/create.py
index eb6418e..286ba37 100644
--- a/src/dynamix_sdk/api/cloudapi/lb/create.py
+++ b/src/dynamix_sdk/api/cloudapi/lb/create.py
@@ -16,7 +16,7 @@ class CloudapiLbCreateProtocol(_base.BasePostAPIFunctionProtocol):
description: None | str = None,
ha_mode: bool = False,
start: bool = True,
- sysctl_params: None | list[str] = None,
+ sysctl_params: None | list[dict[str, str]] = None,
zone_id: None | int = None,
) -> CloudapiLbCreateResultInt:
...
diff --git a/src/dynamix_sdk/api/cloudapi/lb/list.py b/src/dynamix_sdk/api/cloudapi/lb/list.py
index 3b072ff..9f5b396 100644
--- a/src/dynamix_sdk/api/cloudapi/lb/list.py
+++ b/src/dynamix_sdk/api/cloudapi/lb/list.py
@@ -20,6 +20,7 @@ class CloudapiLbListProtocol(_base.BasePostAPIFunctionProtocol):
page_number: None | int = None,
page_size: None | int = None,
rg_id: None | int = None,
+ zone_id: None | int = None,
sort_by: None | str = None,
status: None | _nested.LBStatus = None,
tech_status: None | _nested.LBTechStatus = None,
diff --git a/src/dynamix_sdk/api/cloudapi/lb/migrate_to_zone.py b/src/dynamix_sdk/api/cloudapi/lb/migrate_to_zone.py
new file mode 100644
index 0000000..70d86a9
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/lb/migrate_to_zone.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiLbMigrateToZoneResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiLbMigrateToZoneProtocol(_base.BasePostAPIFunctionProtocol):
+ def migrate_to_zone(
+ self,
+ *,
+ lb_id: int,
+ zone_id: int,
+ ) -> CloudapiLbMigrateToZoneResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/lb/restart.py b/src/dynamix_sdk/api/cloudapi/lb/restart.py
new file mode 100644
index 0000000..1553b93
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/lb/restart.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiLbRestartResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiLbRestartProtocol(_base.BasePostAPIFunctionProtocol):
+ def restart(
+ self,
+ *,
+ lb_id: int,
+ safe: bool = True,
+ ) -> CloudapiLbRestartResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/lb/restore.py b/src/dynamix_sdk/api/cloudapi/lb/restore.py
new file mode 100644
index 0000000..99773b0
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/lb/restore.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiLbRestoreResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiLbRestoreProtocol(_base.BasePostAPIFunctionProtocol):
+ def restore(
+ self,
+ *,
+ lb_id: int,
+ ) -> CloudapiLbRestoreResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/lb/start.py b/src/dynamix_sdk/api/cloudapi/lb/start.py
new file mode 100644
index 0000000..e3f2c21
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/lb/start.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiLbStartResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiLbStartProtocol(_base.BasePostAPIFunctionProtocol):
+ def start(
+ self,
+ *,
+ lb_id: int,
+ ) -> CloudapiLbStartResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/lb/stop.py b/src/dynamix_sdk/api/cloudapi/lb/stop.py
new file mode 100644
index 0000000..77b6408
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/lb/stop.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiLbStopResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiLbStopProtocol(_base.BasePostAPIFunctionProtocol):
+ def stop(
+ self,
+ *,
+ lb_id: int,
+ ) -> CloudapiLbStopResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/lb/update.py b/src/dynamix_sdk/api/cloudapi/lb/update.py
new file mode 100644
index 0000000..7c6f210
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/lb/update.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiLbUpdateResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiLbUpdateProtocol(_base.BasePostAPIFunctionProtocol):
+ def update(
+ self,
+ *,
+ description: str,
+ lb_id: int,
+ ) -> CloudapiLbUpdateResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/lb/update_sysctl_params.py b/src/dynamix_sdk/api/cloudapi/lb/update_sysctl_params.py
new file mode 100644
index 0000000..a08aa77
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/lb/update_sysctl_params.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiLbUpdateSysctlParamsResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiLbUpdateSysctlParamsProtocol(_base.BasePostAPIFunctionProtocol):
+ def update_sysctl_params(
+ self,
+ *,
+ lb_id: int,
+ sysctl_params: list[dict[str, str]],
+ ) -> CloudapiLbUpdateSysctlParamsResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/pcidevice/__init__.py b/src/dynamix_sdk/api/cloudapi/pcidevice/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/pcidevice/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudapi/pcidevice/_api.py b/src/dynamix_sdk/api/cloudapi/pcidevice/_api.py
new file mode 100644
index 0000000..b1cb64f
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/pcidevice/_api.py
@@ -0,0 +1,9 @@
+import dynamix_sdk.base as _base
+from .list import *
+
+
+class CloudapiPcideviceAPI(
+ _base.BaseAPI,
+ CloudapiPcideviceListProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudapi/pcidevice/list.py b/src/dynamix_sdk/api/cloudapi/pcidevice/list.py
new file mode 100644
index 0000000..6615fac
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/pcidevice/list.py
@@ -0,0 +1,23 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiPcideviceListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.PCIDeviceAPIResultNM]
+ entry_count: int
+
+
+class CloudapiPcideviceListProtocol(_base.BasePostAPIFunctionProtocol):
+ def list(
+ self,
+ *,
+ id: int | None = None,
+ name: str | None = None,
+ status: _nested.PCIDeviceStatus | None = None,
+ vm_id: int | None = None,
+ rg_id: int | None = None,
+ sort_by: str | None = None,
+ page_number: int | None = None,
+ page_size: int | None = None,
+ ) -> CloudapiPcideviceListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/rg/_api.py b/src/dynamix_sdk/api/cloudapi/rg/_api.py
index dbe9350..c0b2e78 100644
--- a/src/dynamix_sdk/api/cloudapi/rg/_api.py
+++ b/src/dynamix_sdk/api/cloudapi/rg/_api.py
@@ -1,12 +1,16 @@
import dynamix_sdk.base as _base
from .access_grant import *
from .access_revoke import *
+from .add_storage_policy import *
from .create import *
+from .del_storage_policy import *
from .delete import *
from .disable import *
from .enable import *
from .get import *
+from .get_resource_consumption import *
from .list import *
+from .list_deleted import *
from .remove_def_net import *
from .restore import *
from .set_def_net import *
@@ -17,12 +21,16 @@ class CloudapiRgAPI(
_base.BaseAPI,
CloudapiRgAccessGrantProtocol,
CloudapiRgAccessRevokeProtocol,
+ CloudapiRgAddStoragePolicyProtocol,
CloudapiRgCreateProtocol,
+ CloudapiRgDelStoragePolicyProtocol,
CloudapiRgDeleteProtocol,
CloudapiRgDisableProtocol,
CloudapiRgEnableProtocol,
CloudapiRgGetProtocol,
+ CloudapiRgGetResourceConsumptionProtocol,
CloudapiRgListProtocol,
+ CloudapiRgListDeletedProtocol,
CloudapiRgRemoveDefNetProtocol,
CloudapiRgRestoreProtocol,
CloudapiRgSetDefNetProtocol,
diff --git a/src/dynamix_sdk/api/cloudapi/rg/add_storage_policy.py b/src/dynamix_sdk/api/cloudapi/rg/add_storage_policy.py
new file mode 100644
index 0000000..cbf77d1
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/rg/add_storage_policy.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiRgAddStoragePolicyResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiRgAddStoragePolicyProtocol(_base.BasePostAPIFunctionProtocol):
+ def add_storage_policy(
+ self,
+ *,
+ rg_id: int,
+ storage_policy_id: int,
+ storage_size_gb: None | int = None,
+ ) -> CloudapiRgAddStoragePolicyResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/rg/create.py b/src/dynamix_sdk/api/cloudapi/rg/create.py
index 238af51..8624ae1 100644
--- a/src/dynamix_sdk/api/cloudapi/rg/create.py
+++ b/src/dynamix_sdk/api/cloudapi/rg/create.py
@@ -13,6 +13,7 @@ class CloudapiRgCreateProtocol(_base.BasePostAPIFunctionProtocol):
account_id: int,
grid_id: int,
name: str,
+ storage_policy_quotas: list[_nested.StoragePolicyQuotasAPIParamsNM] | None = None, # noqa: E501
cpu_count_quota: int | None = None,
default_net_type: _nested.RGDefaultNetType = (
_nested.RGDefaultNetType.PRIVATE
@@ -23,7 +24,7 @@ class CloudapiRgCreateProtocol(_base.BasePostAPIFunctionProtocol):
ext_traffic_quota: int | None = None,
ip_cidr: str | None = None,
owner: str | None = None,
- public_ip_count_quota: int | None = None,
+ ext_ip_count_quota: int | None = None,
ram_size_quota_mb: int | None = None,
storage_size_quota_gb: int | None = None,
sdn_access_group_id: str | None = None,
diff --git a/src/dynamix_sdk/api/cloudapi/rg/del_storage_policy.py b/src/dynamix_sdk/api/cloudapi/rg/del_storage_policy.py
new file mode 100644
index 0000000..bda48ec
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/rg/del_storage_policy.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiRgDelStoragePolicyResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiRgDelStoragePolicyProtocol(_base.BasePostAPIFunctionProtocol):
+ def del_storage_policy(
+ self,
+ *,
+ rg_id: int,
+ storage_policy_id: int,
+ ) -> CloudapiRgDelStoragePolicyResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/rg/get_resource_consumption.py b/src/dynamix_sdk/api/cloudapi/rg/get_resource_consumption.py
new file mode 100644
index 0000000..953f3e3
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/rg/get_resource_consumption.py
@@ -0,0 +1,21 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiRgGetResourceConsumptionResultModel(
+ _base.BaseAPIResultModel,
+):
+ id: int
+ consumed: _nested.ResourceCountersAPIResultNM
+ reserved: _nested.ResourceCountersAPIResultNM
+ quotas: _nested.TenantQuotasForResourceConsumptionAPIResultNM
+
+
+class CloudapiRgGetResourceConsumptionProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def get_resource_consumption(
+ self,
+ *,
+ rg_id: int,
+ ) -> CloudapiRgGetResourceConsumptionResultModel: ...
diff --git a/src/dynamix_sdk/api/cloudapi/rg/list_deleted.py b/src/dynamix_sdk/api/cloudapi/rg/list_deleted.py
new file mode 100644
index 0000000..6397f7e
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/rg/list_deleted.py
@@ -0,0 +1,25 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiRgListDeletedResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.ResourceGroupForListDeletedAPIResultNM]
+ entry_count: int
+
+
+class CloudapiRgListDeletedProtocol(_base.BasePostAPIFunctionProtocol):
+ def list_deleted(
+ self,
+ *,
+ id: int | None = None,
+ name: str | None = None,
+ account_id: int | None = None,
+ account_name: str | None = None,
+ created_after_timestamp: int | None = None,
+ created_before_timestamp: int | None = None,
+ lock_status: _nested.LockStatus | None = None,
+ sort_by: str | None = None,
+ page_number: int | None = None,
+ page_size: int | None = None,
+ ) -> CloudapiRgListDeletedResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/rg/update.py b/src/dynamix_sdk/api/cloudapi/rg/update.py
index debeae8..b3758cd 100644
--- a/src/dynamix_sdk/api/cloudapi/rg/update.py
+++ b/src/dynamix_sdk/api/cloudapi/rg/update.py
@@ -1,4 +1,5 @@
import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
class CloudapiRgUpdateResultBool(_base.BaseAPIResultBool):
@@ -15,9 +16,10 @@ class CloudapiRgUpdateProtocol(_base.BasePostAPIFunctionProtocol):
description: None | str = None,
ext_traffic_quota: None | int = None,
name: None | str = None,
- public_ip_count_quota: None | int = None,
+ ext_ip_count_quota: None | int = None,
ram_size_quota_mb: None | int = None,
storage_size_quota_gb: None | int = None,
uniq_pools: None | list[str] = None,
+ storage_policies: None | list[_nested.StoragePolicyQuotasAPIParamsNM] = None, # noqa: E501
) -> CloudapiRgUpdateResultBool:
...
diff --git a/src/dynamix_sdk/api/cloudapi/security_group/__init__.py b/src/dynamix_sdk/api/cloudapi/security_group/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/security_group/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudapi/security_group/_api.py b/src/dynamix_sdk/api/cloudapi/security_group/_api.py
new file mode 100644
index 0000000..1453533
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/security_group/_api.py
@@ -0,0 +1,21 @@
+import dynamix_sdk.base as _base
+from .create import *
+from .create_rule import *
+from .delete import *
+from .delete_rule import *
+from .get import *
+from .list import *
+from .update import *
+
+
+class CloudapiSecurityGroupAPI(
+ _base.BaseAPI,
+ CloudapiSecurityGroupCreateProtocol,
+ CloudapiSecurityGroupCreateRuleProtocol,
+ CloudapiSecurityGroupDeleteProtocol,
+ CloudapiSecurityGroupDeleteRuleProtocol,
+ CloudapiSecurityGroupGetProtocol,
+ CloudapiSecurityGroupListProtocol,
+ CloudapiSecurityGroupUpdateProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudapi/security_group/create.py b/src/dynamix_sdk/api/cloudapi/security_group/create.py
new file mode 100644
index 0000000..252c571
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/security_group/create.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiSecurityGroupCreateResultInt(_base.BaseAPIResultInt):
+ pass
+
+
+class CloudapiSecurityGroupCreateProtocol(_base.BasePostAPIFunctionProtocol):
+ def create(
+ self,
+ *,
+ account_id: int,
+ name: str,
+ description: str | None = None,
+ ) -> CloudapiSecurityGroupCreateResultInt:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/security_group/create_rule.py b/src/dynamix_sdk/api/cloudapi/security_group/create_rule.py
new file mode 100644
index 0000000..ec0d63e
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/security_group/create_rule.py
@@ -0,0 +1,23 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiSecurityGroupCreateRuleResultInt(_base.BaseAPIResultInt):
+ pass
+
+
+class CloudapiSecurityGroupCreateRuleProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def create_rule(
+ self,
+ *,
+ security_group_id: int,
+ traffic_direction: _nested.TrafficDirection,
+ ethertype: _nested.SGRuleEthertype = _nested.SGRuleEthertype.IPV4,
+ protocol: _nested.SGRuleProtocol | None = None,
+ port_range_max: int | None = None,
+ port_range_min: int | None = None,
+ remote_ip_prefix: str | None = None,
+ ) -> CloudapiSecurityGroupCreateRuleResultInt:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/security_group/delete.py b/src/dynamix_sdk/api/cloudapi/security_group/delete.py
new file mode 100644
index 0000000..c63ff11
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/security_group/delete.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiSecurityGroupDeleteResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiSecurityGroupDeleteProtocol(_base.BasePostAPIFunctionProtocol):
+ def delete(
+ self,
+ *,
+ security_group_id: int,
+ ) -> CloudapiSecurityGroupDeleteResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/security_group/delete_rule.py b/src/dynamix_sdk/api/cloudapi/security_group/delete_rule.py
new file mode 100644
index 0000000..6ac902c
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/security_group/delete_rule.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiSecurityGroupDeleteRuleResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiSecurityGroupDeleteRuleProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def delete_rule(
+ self,
+ *,
+ security_group_id: int,
+ rule_id: int,
+ ) -> CloudapiSecurityGroupDeleteRuleResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/security_group/get.py b/src/dynamix_sdk/api/cloudapi/security_group/get.py
new file mode 100644
index 0000000..b602704
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/security_group/get.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiSecurityGroupGetResultModel(
+ _base.BaseAPIResultModel,
+ _nested.SecurityGroupAPIResultNM,
+):
+ pass
+
+
+class CloudapiSecurityGroupGetProtocol(_base.BaseGetAPIFunctionProtocol):
+ def get(
+ self,
+ *,
+ security_group_id: int,
+ ) -> CloudapiSecurityGroupGetResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/security_group/list.py b/src/dynamix_sdk/api/cloudapi/security_group/list.py
new file mode 100644
index 0000000..7e35e28
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/security_group/list.py
@@ -0,0 +1,26 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiSecurityGroupListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.SecurityGroupAPIResultNM]
+ entry_count: int
+
+
+class CloudapiSecurityGroupListProtocol(_base.BaseGetAPIFunctionProtocol):
+ def list(
+ self,
+ *,
+ account_id: int | None = None,
+ created_after_timestamp: int | None = None,
+ created_before_timestamp: int | None = None,
+ description: str | None = None,
+ id: int | None = None,
+ name: str | None = None,
+ page_number: int | None = None,
+ page_size: int | None = None,
+ sort_by: str | None = None,
+ updated_after_timestamp: int | None = None,
+ updated_before_timestamp: int | None = None,
+ ) -> CloudapiSecurityGroupListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/security_group/update.py b/src/dynamix_sdk/api/cloudapi/security_group/update.py
new file mode 100644
index 0000000..4492d5a
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/security_group/update.py
@@ -0,0 +1,20 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiSecurityGroupUpdateResultModel(
+ _base.BaseAPIResultModel,
+ _nested.SecurityGroupAPIResultNM,
+):
+ pass
+
+
+class CloudapiSecurityGroupUpdateProtocol(_base.BasePostAPIFunctionProtocol):
+ def update(
+ self,
+ *,
+ security_group_id: int,
+ name: str | None = None,
+ description: str | None = None,
+ ) -> CloudapiSecurityGroupUpdateResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/sep/__init__.py b/src/dynamix_sdk/api/cloudapi/sep/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/sep/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudapi/sep/_api.py b/src/dynamix_sdk/api/cloudapi/sep/_api.py
new file mode 100644
index 0000000..902756a
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/sep/_api.py
@@ -0,0 +1,10 @@
+import dynamix_sdk.base as _base
+from .list_available_sep_and_pools import *
+
+
+class CloudapiSepAPI(
+ _base.BaseAPI,
+ CloudapiSepListAvailableSepAndPoolsProtocol,
+
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudapi/sep/list_available_sep_and_pools.py b/src/dynamix_sdk/api/cloudapi/sep/list_available_sep_and_pools.py
new file mode 100644
index 0000000..33ee042
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/sep/list_available_sep_and_pools.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiSepListAvailableSepAndPoolsResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.AvailableSEPPoolsAPIResultNM]
+ entry_count: int
+
+
+class CloudapiSepListAvailableSepAndPoolsProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def list_available_sep_and_pools(
+ self,
+ *,
+ account_id: int,
+ rg_id: int | None = None,
+ ) -> CloudapiSepListAvailableSepAndPoolsResultModel: ...
diff --git a/src/dynamix_sdk/api/cloudapi/storage_policy/__init__.py b/src/dynamix_sdk/api/cloudapi/storage_policy/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/storage_policy/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudapi/storage_policy/_api.py b/src/dynamix_sdk/api/cloudapi/storage_policy/_api.py
new file mode 100644
index 0000000..bd5d3d2
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/storage_policy/_api.py
@@ -0,0 +1,11 @@
+import dynamix_sdk.base as _base
+from .get import *
+from .list import *
+
+
+class CloudapiStoragePolicyAPI(
+ _base.BaseAPI,
+ CloudapiStoragePolicyGetProtocol,
+ CloudapiStoragePolicyListProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudapi/storage_policy/get.py b/src/dynamix_sdk/api/cloudapi/storage_policy/get.py
new file mode 100644
index 0000000..9e17635
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/storage_policy/get.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiStoragePolicyGetResultModel(
+ _base.BaseAPIResultModel,
+ _nested.StoragePolicyAPIResultNM
+):
+ pass
+
+
+class CloudapiStoragePolicyGetProtocol(_base.BaseGetAPIFunctionProtocol):
+ def get(
+ self,
+ *,
+ id: int,
+ ) -> CloudapiStoragePolicyGetResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/storage_policy/list.py b/src/dynamix_sdk/api/cloudapi/storage_policy/list.py
new file mode 100644
index 0000000..767f7e8
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/storage_policy/list.py
@@ -0,0 +1,27 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiStoragePolicyListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.StoragePolicyAPIResultNM]
+ entry_count: int
+
+
+class CloudapiStoragePolicyListProtocol(_base.BaseGetAPIFunctionProtocol):
+ def list(
+ self,
+ *,
+ account_id: int | None = None,
+ description: str | None = None,
+ id: int | None = None,
+ iops_limit: int | None = None,
+ name: str | None = None,
+ page_number: int | None = None,
+ page_size: int | None = None,
+ rg_id: int | None = None,
+ sep_id: int | None = None,
+ sep_pool_name: str | None = None,
+ sort_by: str | None = None,
+ status: _nested.StoragePolicyStatus | None = None,
+ ) -> CloudapiStoragePolicyListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/trunk/__init__.py b/src/dynamix_sdk/api/cloudapi/trunk/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/trunk/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudapi/trunk/_api.py b/src/dynamix_sdk/api/cloudapi/trunk/_api.py
new file mode 100644
index 0000000..963e49e
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/trunk/_api.py
@@ -0,0 +1,11 @@
+import dynamix_sdk.base as _base
+from .get import *
+from .list import *
+
+
+class CloudapiTrunkAPI(
+ _base.BaseAPI,
+ CloudapiTrunkGetProtocol,
+ CloudapiTrunkListProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudapi/trunk/get.py b/src/dynamix_sdk/api/cloudapi/trunk/get.py
new file mode 100644
index 0000000..954f888
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/trunk/get.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiTrunkGetResultModel(
+ _base.BaseAPIResultModel,
+ _nested.TrunkAPIResultNM,
+):
+ pass
+
+
+class CloudapiTrunkGetProtocol(_base.BaseGetAPIFunctionProtocol):
+ def get(
+ self,
+ *,
+ id: int,
+ ) -> CloudapiTrunkGetResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/trunk/list.py b/src/dynamix_sdk/api/cloudapi/trunk/list.py
new file mode 100644
index 0000000..79c6abe
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/trunk/list.py
@@ -0,0 +1,22 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiTrunkListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.TrunkAPIResultNM]
+ entry_count: int
+
+
+class CloudapiTrunkListProtocol(_base.BaseGetAPIFunctionProtocol):
+ def list(
+ self,
+ *,
+ ids: list[int] | None = None,
+ account_ids: list[int] | None = None,
+ vlan_ids: str | None = None,
+ page_number: int | None = None,
+ page_size: int | None = None,
+ status: _nested.TrunkStatus | None = None,
+ sort_by: str | None = None,
+ ) -> CloudapiTrunkListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/user/_api.py b/src/dynamix_sdk/api/cloudapi/user/_api.py
index efc94ed..8648e4f 100644
--- a/src/dynamix_sdk/api/cloudapi/user/_api.py
+++ b/src/dynamix_sdk/api/cloudapi/user/_api.py
@@ -1,13 +1,17 @@
import dynamix_sdk.base as _base
from .api_list import *
+from .brief import *
from .get import *
-from .get_audit import *
+from .get_resource_consumption import *
+from .set_data import *
class CloudapiUserAPI(
_base.BaseAPI,
CloudapiUserApiListProtocol,
- CloudapiUserGetAuditProtocol,
+ CloudapiUserBriefProtocol,
CloudapiUserGetProtocol,
+ CloudapiUserGetResourceConsumptionProtocol,
+ CloudapiUserSetDataProtocol,
):
pass
diff --git a/src/dynamix_sdk/api/cloudapi/user/brief.py b/src/dynamix_sdk/api/cloudapi/user/brief.py
new file mode 100644
index 0000000..0e0091e
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/user/brief.py
@@ -0,0 +1,13 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiUserBriefResultModel(_base.BaseAPIResultModel):
+ accounts: _nested.TenantStatusCountersAPIResultNM
+ rgs: _nested.TenantStatusCountersAPIResultNM
+ vms: _nested.VMStatusCountersAPIResultNM
+
+
+class CloudapiUserBriefProtocol(_base.BasePostAPIFunctionProtocol):
+ def brief(self) -> CloudapiUserBriefResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/user/get_audit.py b/src/dynamix_sdk/api/cloudapi/user/get_audit.py
deleted file mode 100644
index 74eb114..0000000
--- a/src/dynamix_sdk/api/cloudapi/user/get_audit.py
+++ /dev/null
@@ -1,23 +0,0 @@
-import dynamix_sdk.base as _base
-import dynamix_sdk.api._nested as _nested
-
-
-class CloudapiUserGetAuditResultModel(_base.BaseAPIResultModel):
- data: list[_nested.UserAuditAPIResultNM]
- entry_count: int
-
-
-class CloudapiUserGetAuditProtocol(_base.BasePostAPIFunctionProtocol):
- def get_audit(
- self,
- *,
- api_url_path: str | None = None,
- min_status_code: int | None = None,
- max_status_code: int | None = None,
- request_timestamp_start: int | None = None,
- request_timestamp_end: int | None = None,
- page_number: int | None = None,
- page_size: int | None = None,
- sort_by: str = '-Time',
- ) -> CloudapiUserGetAuditResultModel:
- ...
diff --git a/src/dynamix_sdk/api/cloudapi/user/get_resource_consumption.py b/src/dynamix_sdk/api/cloudapi/user/get_resource_consumption.py
new file mode 100644
index 0000000..ebb664b
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/user/get_resource_consumption.py
@@ -0,0 +1,19 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiUserGetResourceConsumptionResultModel(
+ _base.BaseAPIResultModel,
+):
+ user_name: str
+ consumed: _nested.ResourceCountersAPIResultNM
+ reserved: _nested.ResourceCountersAPIResultNM
+
+
+class CloudapiUserGetResourceConsumptionProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def get_resource_consumption(
+ self
+ ) -> CloudapiUserGetResourceConsumptionResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/user/set_data.py b/src/dynamix_sdk/api/cloudapi/user/set_data.py
new file mode 100644
index 0000000..448a527
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/user/set_data.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiUserSetDataResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiUserSetDataProtocol(_base.BasePostAPIFunctionProtocol):
+ def set_data(
+ self,
+ *,
+ json_data: str,
+ ) -> CloudapiUserSetDataResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/vfpool/__init__.py b/src/dynamix_sdk/api/cloudapi/vfpool/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vfpool/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudapi/vfpool/_api.py b/src/dynamix_sdk/api/cloudapi/vfpool/_api.py
new file mode 100644
index 0000000..43c5542
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vfpool/_api.py
@@ -0,0 +1,11 @@
+import dynamix_sdk.base as _base
+from .get import *
+from .list import *
+
+
+class CloudapiVfpoolAPI(
+ _base.BaseAPI,
+ CloudapiVfpoolGetProtocol,
+ CloudapiVfpoolListProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudapi/vfpool/get.py b/src/dynamix_sdk/api/cloudapi/vfpool/get.py
new file mode 100644
index 0000000..f379bf2
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vfpool/get.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiVfpoolGetResultModel(
+ _base.BaseAPIResultModel,
+ _nested.VFPoolAPIResultNM,
+):
+ pass
+
+
+class CloudapiVfpoolGetProtocol(_base.BasePostAPIFunctionProtocol):
+ def get(
+ self,
+ *,
+ vfpool_id: int,
+ ) -> CloudapiVfpoolGetResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/vfpool/list.py b/src/dynamix_sdk/api/cloudapi/vfpool/list.py
new file mode 100644
index 0000000..c499050
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vfpool/list.py
@@ -0,0 +1,25 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiVfpoolListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.VFPoolAPIResultNM]
+ entry_count: int
+
+
+class CloudapiVfpoolListProtocol(_base.BasePostAPIFunctionProtocol):
+ def list(
+ self,
+ *,
+ account_id: int | None = None,
+ description: str | None = None,
+ grid_id: int | None = None,
+ id: int | None = None,
+ name: str | None = None,
+ page_number: int | None = None,
+ page_size: int | None = None,
+ rg_id: int | None = None,
+ sort_by: str | None = None,
+ status: _nested.VFPoolStatus | None = None,
+ ) -> CloudapiVfpoolListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/vgpu/__init__.py b/src/dynamix_sdk/api/cloudapi/vgpu/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vgpu/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudapi/vgpu/_api.py b/src/dynamix_sdk/api/cloudapi/vgpu/_api.py
new file mode 100644
index 0000000..c42f86b
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vgpu/_api.py
@@ -0,0 +1,9 @@
+import dynamix_sdk.base as _base
+from .list import *
+
+
+class CloudapiVgpuAPI(
+ _base.BaseAPI,
+ CloudapiVgpuListProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudapi/vgpu/list.py b/src/dynamix_sdk/api/cloudapi/vgpu/list.py
new file mode 100644
index 0000000..6ca7043
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vgpu/list.py
@@ -0,0 +1,26 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiVgpuListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.VGPUAPIResultNM]
+ entry_count: int
+
+
+class CloudapiVgpuListProtocol(_base.BasePostAPIFunctionProtocol):
+ def list(
+ self,
+ *,
+ id: int | None = None,
+ status: _nested.VGPUStatus | None = None,
+ pgpu_processor_type: _nested.PGPUProcessorType | None = None,
+ pgpu_mode: _nested.PGPUMode | None = None,
+ rg_id: int | None = None,
+ account_id: int | None = None,
+ vm_id: int | None = None,
+ pgpu_id: int | None = None,
+ sort_by: str | None = None,
+ page_number: int | None = None,
+ page_size: int | None = None,
+ ) -> CloudapiVgpuListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/vins/_api.py b/src/dynamix_sdk/api/cloudapi/vins/_api.py
index fd5de95..5a9ce2f 100644
--- a/src/dynamix_sdk/api/cloudapi/vins/_api.py
+++ b/src/dynamix_sdk/api/cloudapi/vins/_api.py
@@ -2,35 +2,51 @@ import dynamix_sdk.base as _base
from .create_in_account import *
from .create_in_rg import *
from .delete import *
+from .disable import *
+from .dns_apply import *
+from .enable import *
+from .ext_net_connect import *
+from .ext_net_disconnect import *
+from .ext_net_list import *
from .get import *
from .ip_list import *
from .ip_release import *
from .ip_reserve import *
from .list import *
from .list_deleted import *
+from .migrate_to_zone import *
+from .nat_rule_add import *
+from .nat_rule_del import *
+from .nat_rule_list import *
from .restore import *
from .static_route_add import *
from .static_route_del import *
from .static_route_list import *
from .vnfdev_redeploy import *
from .vnfdev_restart import *
-from .enable import *
-from .disable import *
class CloudapiVinsAPI(
_base.BaseAPI,
- CloudapiVinsEnableProtocol,
- CloudapiVinsDisableProtocol,
CloudapiVinsCreateInAccountProtocol,
CloudapiVinsCreateInRGProtocol,
CloudapiVinsDeleteProtocol,
+ CloudapiVinsDisableProtocol,
+ CloudapiVinsDnsApplyProtocol,
+ CloudapiVinsEnableProtocol,
+ CloudapiVinsExtNetConnectProtocol,
+ CloudapiVinsExtNetDisconnectProtocol,
+ CloudapiVinsExtNetListProtocol,
CloudapiVinsGetProtocol,
CloudapiVinsIpListProtocol,
CloudapiVinsIpReleaseProtocol,
CloudapiVinsIpReserveProtocol,
CloudapiVinsListDeletedProtocol,
CloudapiVinsListProtocol,
+ CloudapiVinsMigrateToZoneProtocol,
+ CloudapiVinsNatRuleAddProtocol,
+ CloudapiVinsNatRuleDelProtocol,
+ CloudapiVinsNatRuleListProtocol,
CloudapiVinsRestoreProtocol,
CloudapiVinsStaticRouteAddProtocol,
CloudapiVinsStaticRouteDelProtocol,
diff --git a/src/dynamix_sdk/api/cloudapi/vins/dns_apply.py b/src/dynamix_sdk/api/cloudapi/vins/dns_apply.py
new file mode 100644
index 0000000..496dabe
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vins/dns_apply.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiVinsDnsApplyResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiVinsDnsApplyProtocol(_base.BasePostAPIFunctionProtocol):
+ def dns_apply(
+ self,
+ *,
+ vins_id: int,
+ dns_servers: list[str] | None = None
+ ) -> CloudapiVinsDnsApplyResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/vins/ext_net_connect.py b/src/dynamix_sdk/api/cloudapi/vins/ext_net_connect.py
new file mode 100644
index 0000000..a0663dd
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vins/ext_net_connect.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiVinsExtNetConnectResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiVinsExtNetConnectProtocol(_base.BasePostAPIFunctionProtocol):
+ def ext_net_connect(
+ self,
+ *,
+ ext_net_id: int | None = None,
+ ip_addr: str | None = None,
+ vins_id: int,
+ ) -> CloudapiVinsExtNetConnectResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/vins/ext_net_disconnect.py b/src/dynamix_sdk/api/cloudapi/vins/ext_net_disconnect.py
new file mode 100644
index 0000000..b4f12d7
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vins/ext_net_disconnect.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiVinsExtNetDisconnectResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiVinsExtNetDisconnectProtocol(_base.BasePostAPIFunctionProtocol):
+ def ext_net_disconnect(
+ self,
+ *,
+ vins_id: int,
+ ) -> CloudapiVinsExtNetDisconnectResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/vins/ext_net_list.py b/src/dynamix_sdk/api/cloudapi/vins/ext_net_list.py
new file mode 100644
index 0000000..1358540
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vins/ext_net_list.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiVinsExtNetListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.VINSExtNetAPIResultNM]
+ entry_count: int
+
+
+class CloudapiVinsExtNetListProtocol(_base.BasePostAPIFunctionProtocol):
+ def ext_net_list(
+ self,
+ *,
+ vins_id: int,
+ ) -> CloudapiVinsExtNetListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/vins/get.py b/src/dynamix_sdk/api/cloudapi/vins/get.py
index 8e47ffc..81bd0b5 100644
--- a/src/dynamix_sdk/api/cloudapi/vins/get.py
+++ b/src/dynamix_sdk/api/cloudapi/vins/get.py
@@ -21,12 +21,13 @@ class CloudapiVinsGetResultModel(_base.BaseAPIResultModel):
milestones: int
name: str
net_ip: str
- net_mask: int
+ net_prefix: int
pre_reservation_count: int
redundant: bool
rg_id: int
rg_name: str
secondary_vnfdev_id: int
+ security_group_mode: bool
status: _nested.VINSStatus
updated_by: str
updated_timestamp: int
diff --git a/src/dynamix_sdk/api/cloudapi/vins/list.py b/src/dynamix_sdk/api/cloudapi/vins/list.py
index 47a2391..1d56ed3 100644
--- a/src/dynamix_sdk/api/cloudapi/vins/list.py
+++ b/src/dynamix_sdk/api/cloudapi/vins/list.py
@@ -19,6 +19,7 @@ class CloudapiVinsListProtocol(_base.BasePostAPIFunctionProtocol):
page_number: int | None = None,
page_size: int | None = None,
rg_id: int | None = None,
+ zone_id: int | None = None,
sort_by: str | None = None,
status: _nested.VINSStatus | None = None,
vnfdev_id: int | None = None
diff --git a/src/dynamix_sdk/api/cloudapi/vins/migrate_to_zone.py b/src/dynamix_sdk/api/cloudapi/vins/migrate_to_zone.py
new file mode 100644
index 0000000..f834935
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vins/migrate_to_zone.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiVinsMigrateToZoneResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiVinsMigrateToZoneProtocol(_base.BasePostAPIFunctionProtocol):
+ def migrate_to_zone(
+ self,
+ *,
+ vins_id: int,
+ zone_id: int,
+ ) -> CloudapiVinsMigrateToZoneResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/vins/nat_rule_add.py b/src/dynamix_sdk/api/cloudapi/vins/nat_rule_add.py
new file mode 100644
index 0000000..1050b85
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vins/nat_rule_add.py
@@ -0,0 +1,20 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiVinsNatRuleAddResultInt(_base.BaseAPIResultInt):
+ pass
+
+
+class CloudapiVinsNatRuleAddProtocol(_base.BasePostAPIFunctionProtocol):
+ def nat_rule_add(
+ self,
+ *,
+ local_ip: str,
+ public_port_start: int,
+ vins_id: int,
+ local_port: int | None = None,
+ protocol: _nested.NATRuleProtocol = _nested.NATRuleProtocol.tcp,
+ public_port_end: int | None = None,
+ ) -> CloudapiVinsNatRuleAddResultInt:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/vins/nat_rule_del.py b/src/dynamix_sdk/api/cloudapi/vins/nat_rule_del.py
new file mode 100644
index 0000000..56a73e1
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vins/nat_rule_del.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudapiVinsNatRuleDelResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudapiVinsNatRuleDelProtocol(_base.BasePostAPIFunctionProtocol):
+ def nat_rule_del(
+ self,
+ *,
+ vins_id: int,
+ rule_id: int,
+ ) -> CloudapiVinsNatRuleDelResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/vins/nat_rule_list.py b/src/dynamix_sdk/api/cloudapi/vins/nat_rule_list.py
new file mode 100644
index 0000000..7b321c8
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/vins/nat_rule_list.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiVinsNatRuleListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.NATRuleAPIResultNM]
+ entry_count: int
+
+
+class CloudapiVinsNatRuleListProtocol(_base.BasePostAPIFunctionProtocol):
+ def nat_rule_list(
+ self,
+ *,
+ vins_id: int,
+ ) -> CloudapiVinsNatRuleListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/zone/__init__.py b/src/dynamix_sdk/api/cloudapi/zone/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/zone/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudapi/zone/_api.py b/src/dynamix_sdk/api/cloudapi/zone/_api.py
new file mode 100644
index 0000000..b27986b
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/zone/_api.py
@@ -0,0 +1,11 @@
+import dynamix_sdk.base as _base
+from .get import *
+from .list import *
+
+
+class CloudapiZoneAPI(
+ _base.BaseAPI,
+ CloudapiZoneGetProtocol,
+ CloudapiZoneListProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudapi/zone/get.py b/src/dynamix_sdk/api/cloudapi/zone/get.py
new file mode 100644
index 0000000..1ae9321
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/zone/get.py
@@ -0,0 +1,39 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiZoneGetResultModel(_base.BaseAPIResultModel):
+ account_ids: list[int]
+ bservice_ids: list[int]
+ created_timestamp: int
+ deletable: bool
+ description: str
+ extnet_ids: list[int]
+ grid_id: int
+ guid: int
+ id: int
+ k8s_ids: list[int]
+ lb_ids: list[int]
+ name: str
+ node_ids: list[int]
+ status: _nested.ZoneStatus
+ updated_timestamp: int
+ vins_ids: list[int]
+ vm_ids: list[int]
+
+ @property
+ def created_datetime(self):
+ return self._get_datetime_from_timestamp(self.created_timestamp)
+
+ @property
+ def updated_datetime(self):
+ return self._get_datetime_from_timestamp(self.updated_timestamp)
+
+
+class CloudapiZoneGetProtocol(_base.BasePostAPIFunctionProtocol):
+ def get(
+ self,
+ *,
+ id: int,
+ ) -> CloudapiZoneGetResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudapi/zone/list.py b/src/dynamix_sdk/api/cloudapi/zone/list.py
new file mode 100644
index 0000000..d76fe7d
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudapi/zone/list.py
@@ -0,0 +1,25 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudapiZoneListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.ZoneForListAPIResultNM]
+ entry_count: int
+
+
+class CloudapiZoneListProtocol(_base.BasePostAPIFunctionProtocol):
+ def list(
+ self,
+ *,
+ deletable: bool | None = None,
+ description: str | None = None,
+ grid_id: int | None = None,
+ id: int | None = None,
+ name: str | None = None,
+ node_id: int | None = None,
+ page_number: int | None = None,
+ page_size: int | None = None,
+ sort_by: str | None = None,
+ status: _nested.ZoneStatus | None = None,
+ ) -> CloudapiZoneListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/_api.py b/src/dynamix_sdk/api/cloudbroker/_api.py
index 11fb30d..325c8cb 100644
--- a/src/dynamix_sdk/api/cloudbroker/_api.py
+++ b/src/dynamix_sdk/api/cloudbroker/_api.py
@@ -1,6 +1,28 @@
import dynamix_sdk.base as _base
from .account import *
+from .audit import *
+from .compute import *
+from .disks import *
+from .image import *
+from .node import *
+from .rg import *
+from .security_group import *
+from .storage_policy import *
+from .user import *
+from .vins import *
+from .vnfdev import *
class CloudbrokerAPI(_base.BaseAPI):
account: CloudbrokerAccountAPI
+ audit: CloudbrokerAuditAPI
+ compute: CloudbrokerComputeAPI
+ disks: CloudbrokerDisksAPI
+ image: CloudbrokerImageAPI
+ node: CloudbrokerNodeAPI
+ rg: CloudbrokerRgAPI
+ security_group: CloudbrokerSecurityGroupAPI
+ storage_policy: CloudbrokerStoragePolicyAPI
+ user: CloudbrokerUserAPI
+ vins: CloudbrokerVinsAPI
+ vnfdev: CloudbrokerVnfdevAPI
diff --git a/src/dynamix_sdk/api/cloudbroker/account/_api.py b/src/dynamix_sdk/api/cloudbroker/account/_api.py
index 0ac481d..860a489 100644
--- a/src/dynamix_sdk/api/cloudbroker/account/_api.py
+++ b/src/dynamix_sdk/api/cloudbroker/account/_api.py
@@ -1,9 +1,43 @@
import dynamix_sdk.base as _base
+from .add_storage_policy import *
+from .add_user import *
+from .add_zone import *
from .create import *
+from .del_storage_policy import *
+from .delete import *
+from .delete_accounts import *
+from .delete_user import *
+from .disable import *
+from .disable_accounts import *
+from .enable import *
+from .enable_accounts import *
+from .get import *
+from .get_resource_consumption import *
+from .list import *
+from .list_deleted import *
+from .remove_zone import *
+from .restore import *
class CloudbrokerAccountAPI(
_base.BaseAPI,
+ CloudbrokerAccountAddStoragePolicyProtocol,
+ CloudbrokerAccountAddUserProtocol,
+ CloudbrokerAccountAddZoneProtocol,
CloudbrokerAccountCreateProtocol,
+ CloudbrokerAccountDeleteAccountsProtocol,
+ CloudbrokerAccountDeleteProtocol,
+ CloudbrokerAccountDeleteUserProtocol,
+ CloudbrokerAccountDelStoragePolicyProtocol,
+ CloudbrokerAccountDisableAccountsProtocol,
+ CloudbrokerAccountDisableProtocol,
+ CloudbrokerAccountEnableAccountsProtocol,
+ CloudbrokerAccountEnableProtocol,
+ CloudbrokerAccountGetProtocol,
+ CloudbrokerAccountGetResourceConsumptionProtocol,
+ CloudbrokerAccountListDeletedProtocol,
+ CloudbrokerAccountListProtocol,
+ CloudbrokerAccountRemoveZoneProtocol,
+ CloudbrokerAccountRestoreProtocol,
):
pass
diff --git a/src/dynamix_sdk/api/cloudbroker/account/add_storage_policy.py b/src/dynamix_sdk/api/cloudbroker/account/add_storage_policy.py
new file mode 100644
index 0000000..00409e0
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/add_storage_policy.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerAccountAddStoragePolicyResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerAccountAddStoragePolicyProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def add_storage_policy(
+ self,
+ *,
+ account_id: int,
+ storage_policy_id: int,
+ storage_size_gb: int | None = None,
+ ) -> CloudbrokerAccountAddStoragePolicyResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/add_user.py b/src/dynamix_sdk/api/cloudbroker/account/add_user.py
new file mode 100644
index 0000000..913eddd
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/add_user.py
@@ -0,0 +1,19 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerAccountAddUserResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerAccountAddUserProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def add_user(
+ self,
+ *,
+ account_id: int,
+ user_name: str,
+ access_type: _nested.AccessType,
+ ) -> CloudbrokerAccountAddUserResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/add_zone.py b/src/dynamix_sdk/api/cloudbroker/account/add_zone.py
new file mode 100644
index 0000000..6428acb
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/add_zone.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerAccountAddZoneResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerAccountAddZoneProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def add_zone(
+ self,
+ *,
+ account_id: int,
+ zone_ids: list[int],
+ ) -> CloudbrokerAccountAddZoneResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/create.py b/src/dynamix_sdk/api/cloudbroker/account/create.py
index eeb41f8..f6ee36e 100644
--- a/src/dynamix_sdk/api/cloudbroker/account/create.py
+++ b/src/dynamix_sdk/api/cloudbroker/account/create.py
@@ -15,9 +15,10 @@ class CloudbrokerAccountCreateProtocol(_base.BasePostAPIFunctionProtocol):
vm_features: None | list[_nested.VMFeature] = None,
cpu_count_quota: None | int = None,
email_address: None | str = None,
+ storage_policy_quotas: list[_nested.StoragePolicyQuotasAPIParamsNM] | None = None, # noqa: E501
ext_traffic_quota: None | int = None,
gpu_count_quota: None | int = None,
- public_ip_count_quota: None | int = 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,
diff --git a/src/dynamix_sdk/api/cloudbroker/account/del_storage_policy.py b/src/dynamix_sdk/api/cloudbroker/account/del_storage_policy.py
new file mode 100644
index 0000000..53e694f
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/del_storage_policy.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerAccountDelStoragePolicyResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerAccountDelStoragePolicyProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def del_storage_policy(
+ self,
+ *,
+ account_id: int,
+ storage_policy_id: int,
+ ) -> CloudbrokerAccountDelStoragePolicyResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/delete.py b/src/dynamix_sdk/api/cloudbroker/account/delete.py
new file mode 100644
index 0000000..8ba1651
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/delete.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerAccountDeleteResultStr(_base.BaseAPIResultStr):
+ pass
+
+
+class CloudbrokerAccountDeleteProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def delete(
+ self,
+ *,
+ account_id: int,
+ permanently: bool = False,
+ account_name: str | None = None,
+ ) -> CloudbrokerAccountDeleteResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/delete_accounts.py b/src/dynamix_sdk/api/cloudbroker/account/delete_accounts.py
new file mode 100644
index 0000000..01c7163
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/delete_accounts.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerAccountDeleteAccountsResultStr(_base.BaseAPIResultStr):
+ pass
+
+
+class CloudbrokerAccountDeleteAccountsProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def delete_accounts(
+ self,
+ *,
+ account_ids: list[int],
+ permanently: bool = False,
+ ) -> CloudbrokerAccountDeleteAccountsResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/delete_user.py b/src/dynamix_sdk/api/cloudbroker/account/delete_user.py
new file mode 100644
index 0000000..b345cff
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/delete_user.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerAccountDeleteUserResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerAccountDeleteUserProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def delete_user(
+ self,
+ *,
+ account_id: int,
+ user_name: str,
+ ) -> CloudbrokerAccountDeleteUserResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/disable.py b/src/dynamix_sdk/api/cloudbroker/account/disable.py
new file mode 100644
index 0000000..5843056
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/disable.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerAccountDisableResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerAccountDisableProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def disable(
+ self,
+ *,
+ account_id: int,
+ ) -> CloudbrokerAccountDisableResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/disable_accounts.py b/src/dynamix_sdk/api/cloudbroker/account/disable_accounts.py
new file mode 100644
index 0000000..7018677
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/disable_accounts.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerAccountDisableAccountsResultStr(_base.BaseAPIResultStr):
+ pass
+
+
+class CloudbrokerAccountDisableAccountsProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def disable_accounts(
+ self,
+ *,
+ account_ids: list[int],
+ ) -> CloudbrokerAccountDisableAccountsResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/enable.py b/src/dynamix_sdk/api/cloudbroker/account/enable.py
new file mode 100644
index 0000000..267dbaf
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/enable.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerAccountEnableResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerAccountEnableProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def enable(
+ self,
+ *,
+ account_id: int,
+ ) -> CloudbrokerAccountEnableResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/enable_accounts.py b/src/dynamix_sdk/api/cloudbroker/account/enable_accounts.py
new file mode 100644
index 0000000..35fd3b6
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/enable_accounts.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerAccountEnableAccountsResultStr(_base.BaseAPIResultStr):
+ pass
+
+
+class CloudbrokerAccountEnableAccountsProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def enable_accounts(
+ self,
+ *,
+ account_ids: list[int],
+ ) -> CloudbrokerAccountEnableAccountsResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/get.py b/src/dynamix_sdk/api/cloudbroker/account/get.py
new file mode 100644
index 0000000..804a5af
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/get.py
@@ -0,0 +1,58 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerAccountGetResultModel(_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
+ 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 CloudbrokerAccountGetProtocol(_base.BasePostAPIFunctionProtocol):
+ def get(
+ self,
+ *,
+ account_id: int,
+ ) -> CloudbrokerAccountGetResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/get_resource_consumption.py b/src/dynamix_sdk/api/cloudbroker/account/get_resource_consumption.py
new file mode 100644
index 0000000..5d5fb3d
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/get_resource_consumption.py
@@ -0,0 +1,21 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerAccountGetResourceConsumptionResultModel(
+ _base.BaseAPIResultModel,
+):
+ id: int
+ consumed: _nested.ResourceCountersAPIResultNM
+ reserved: _nested.ResourceCountersAPIResultNM
+ quotas: _nested.TenantQuotasForResourceConsumptionAPIResultNM
+
+
+class CloudbrokerAccountGetResourceConsumptionProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def get_resource_consumption(
+ self,
+ *,
+ account_id: int,
+ ) -> CloudbrokerAccountGetResourceConsumptionResultModel: ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/list.py b/src/dynamix_sdk/api/cloudbroker/account/list.py
new file mode 100644
index 0000000..d9f5cce
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/list.py
@@ -0,0 +1,23 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerAccountListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.AccountForCBAPIResultNM]
+ entry_count: int
+
+
+class CloudbrokerAccountListProtocol(_base.BasePostAPIFunctionProtocol):
+ def list(
+ self,
+ *,
+ id: None | int = None,
+ name: None | str = None,
+ access_type: None | _nested.AccessType = None,
+ status: None | _nested.AccountStatus = None,
+ zone_id: None | int = None,
+ page_number: None | int = None,
+ page_size: None | int = None,
+ sort_by: None | str = None,
+ ) -> CloudbrokerAccountListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/list_deleted.py b/src/dynamix_sdk/api/cloudbroker/account/list_deleted.py
new file mode 100644
index 0000000..c2dc2f1
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/list_deleted.py
@@ -0,0 +1,21 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerAccountListDeletedResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.AccountForCBAPIResultNM]
+ entry_count: int
+
+
+class CloudbrokerAccountListDeletedProtocol(_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,
+ ) -> CloudbrokerAccountListDeletedResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/remove_zone.py b/src/dynamix_sdk/api/cloudbroker/account/remove_zone.py
new file mode 100644
index 0000000..7cc4c69
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/remove_zone.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerAccountRemoveZoneResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerAccountRemoveZoneProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def remove_zone(
+ self,
+ *,
+ account_id: int,
+ zone_ids: list[int],
+ ) -> CloudbrokerAccountRemoveZoneResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/account/restore.py b/src/dynamix_sdk/api/cloudbroker/account/restore.py
new file mode 100644
index 0000000..d58dead
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/account/restore.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerAccountRestoreResultStr(_base.BaseAPIResultStr):
+ pass
+
+
+class CloudbrokerAccountRestoreProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def restore(
+ self,
+ *,
+ account_id: int,
+ ) -> CloudbrokerAccountRestoreResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/audit/__init__.py b/src/dynamix_sdk/api/cloudbroker/audit/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/audit/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudbroker/audit/_api.py b/src/dynamix_sdk/api/cloudbroker/audit/_api.py
new file mode 100644
index 0000000..4b84a10
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/audit/_api.py
@@ -0,0 +1,9 @@
+import dynamix_sdk.base as _base
+from .list import *
+
+
+class CloudbrokerAuditAPI(
+ _base.BaseAPI,
+ CloudbrokerAuditListProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudbroker/audit/list.py b/src/dynamix_sdk/api/cloudbroker/audit/list.py
new file mode 100644
index 0000000..bc5662a
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/audit/list.py
@@ -0,0 +1,36 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerAuditListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.AuditAPIResultNM]
+ entry_count: int
+
+
+class CloudbrokerAuditListProtocol(_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,
+ node_id: 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,
+ ) -> CloudbrokerAuditListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/compute/__init__.py b/src/dynamix_sdk/api/cloudbroker/compute/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/compute/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudbroker/compute/_api.py b/src/dynamix_sdk/api/cloudbroker/compute/_api.py
new file mode 100644
index 0000000..5490860
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/compute/_api.py
@@ -0,0 +1,23 @@
+import dynamix_sdk.base as _base
+from .change_security_groups import *
+from .clone import *
+from .clone_abort import *
+from .migrate_storage_list import *
+from .start_migration_in import *
+from .start_migration_out import *
+from .stop_migration_in import *
+from .stop_migration_out import *
+
+
+class CloudbrokerComputeAPI(
+ _base.BaseAPI,
+ CloudbrokerComputeChangeSecurityGroupsProtocol,
+ CloudbrokerComputeCloneProtocol,
+ CloudbrokerComputeCloneAbortProtocol,
+ CloudbrokerComputeMigrateStorageListProtocol,
+ CloudbrokerComputeStartMigrationInProtocol,
+ CloudbrokerComputeStartMigrationOutProtocol,
+ CloudbrokerComputeStopMigrationInProtocol,
+ CloudbrokerComputeStopMigrationOutProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudbroker/compute/change_security_groups.py b/src/dynamix_sdk/api/cloudbroker/compute/change_security_groups.py
new file mode 100644
index 0000000..960d211
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/compute/change_security_groups.py
@@ -0,0 +1,21 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerComputeChangeSecurityGroupsResultBool(
+ _base.BaseAPIResultBool,
+):
+ pass
+
+
+class CloudbrokerComputeChangeSecurityGroupsProtocol(
+ _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,
+ ) -> CloudbrokerComputeChangeSecurityGroupsResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/compute/clone.py b/src/dynamix_sdk/api/cloudbroker/compute/clone.py
new file mode 100644
index 0000000..a264fda
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/compute/clone.py
@@ -0,0 +1,21 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerComputeCloneResultStr(_base.BaseAPIResultStr):
+ pass
+
+
+class CloudbrokerComputeCloneProtocol(_base.BasePostAPIFunctionProtocol):
+ def clone(
+ self,
+ *,
+ vm_id: int,
+ name: str,
+ force: bool = False,
+ snapshot_timestamp: int | None = None,
+ snapshot_name: str | None = None,
+ sep_pool_name: str | None = None,
+ sep_id: int | None = None,
+ storage_policy_id: int | None = None,
+ ) -> CloudbrokerComputeCloneResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/compute/clone_abort.py b/src/dynamix_sdk/api/cloudbroker/compute/clone_abort.py
new file mode 100644
index 0000000..2ecaa4c
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/compute/clone_abort.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerComputeCloneAbortResultBool(
+ _base.BaseAPIResultBool,
+):
+ pass
+
+
+class CloudbrokerComputeCloneAbortProtocol(
+ _base.BasePostAPIFunctionProtocol
+):
+ def clone_abort(
+ self,
+ *,
+ vm_id: int,
+ ) -> CloudbrokerComputeCloneAbortResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/compute/migrate_storage_list.py b/src/dynamix_sdk/api/cloudbroker/compute/migrate_storage_list.py
new file mode 100644
index 0000000..6510430
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/compute/migrate_storage_list.py
@@ -0,0 +1,24 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerComputeMigrateStorageListResultModel(
+ _base.BaseAPIResultModel,
+):
+ data: list[_nested.MigrateStorageJobAPIResultNM]
+ entry_count: int
+
+
+class CloudbrokerComputeMigrateStorageListProtocol(
+ _base.BaseGetAPIFunctionProtocol
+):
+ def migrate_storage_list(
+ self,
+ *,
+ migration_job_id: int | None = None,
+ completed: bool | None = None,
+ page_number: int | None = None,
+ page_size: int | None = None,
+ sort_by: str | None = None,
+ ) -> CloudbrokerComputeMigrateStorageListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/compute/start_migration_in.py b/src/dynamix_sdk/api/cloudbroker/compute/start_migration_in.py
new file mode 100644
index 0000000..a6dd09f
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/compute/start_migration_in.py
@@ -0,0 +1,19 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerComputeStartMigrationInResultStr(
+ _base.BaseAPIResultStr,
+):
+ pass
+
+
+class CloudbrokerComputeStartMigrationInProtocol(
+ _base.BasePostAPIFunctionProtocol
+):
+ def start_migration_in(
+ self,
+ *,
+ vm_id: int,
+ stack_id: int | None = None,
+ ) -> CloudbrokerComputeStartMigrationInResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/compute/start_migration_out.py b/src/dynamix_sdk/api/cloudbroker/compute/start_migration_out.py
new file mode 100644
index 0000000..8d2ec44
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/compute/start_migration_out.py
@@ -0,0 +1,26 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerComputeStartMigrationOutResultStr(
+ _base.BaseAPIResultStr,
+):
+ pass
+
+
+class CloudbrokerComputeStartMigrationOutProtocol(
+ _base.BasePostAPIFunctionProtocol
+):
+ def start_migration_out(
+ self,
+ *,
+ vm_id: int,
+ target: str,
+ graphics_listen_addr: str,
+ new_name: str | None = None,
+ use_unsafe: bool = False,
+ disk_mapping: dict[str, str] | None = None,
+ cdrom_mapping: dict[str, str] | None = None,
+ net_mapping: dict[str, _nested.NetMapConfigAPIParamsNM] | None = None,
+ ) -> CloudbrokerComputeStartMigrationOutResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/compute/stop_migration_in.py b/src/dynamix_sdk/api/cloudbroker/compute/stop_migration_in.py
new file mode 100644
index 0000000..e1bd448
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/compute/stop_migration_in.py
@@ -0,0 +1,21 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerComputeStopMigrationInResultStr(
+ _base.BaseAPIResultStr,
+):
+ pass
+
+
+class CloudbrokerComputeStopMigrationInProtocol(
+ _base.BasePostAPIFunctionProtocol
+):
+ def stop_migration_in(
+ self,
+ *,
+ vm_id: int,
+ new_vm_uuid: str | None = None,
+ os_users: list[_nested.OSUserAPIParamsNM] | None = None,
+ ) -> CloudbrokerComputeStopMigrationInResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/compute/stop_migration_out.py b/src/dynamix_sdk/api/cloudbroker/compute/stop_migration_out.py
new file mode 100644
index 0000000..b11955f
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/compute/stop_migration_out.py
@@ -0,0 +1,19 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerComputeStopMigrationOutResultStr(
+ _base.BaseAPIResultStr,
+):
+ pass
+
+
+class CloudbrokerComputeStopMigrationOutProtocol(
+ _base.BasePostAPIFunctionProtocol
+):
+ def stop_migration_out(
+ self,
+ *,
+ vm_id: int,
+ migrate_to_uri3_job_id: str | None = None,
+ ) -> CloudbrokerComputeStopMigrationOutResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/disks/__init__.py b/src/dynamix_sdk/api/cloudbroker/disks/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/disks/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudbroker/disks/_api.py b/src/dynamix_sdk/api/cloudbroker/disks/_api.py
new file mode 100644
index 0000000..ace5209
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/disks/_api.py
@@ -0,0 +1,13 @@
+import dynamix_sdk.base as _base
+from .migrate import *
+from .migrate_abort import *
+from .migrate_status import *
+
+
+class CloudbrokerDisksAPI(
+ _base.BaseAPI,
+ CloudbrokerDisksMigrateAbortProtocol,
+ CloudbrokerDisksMigrateProtocol,
+ CloudbrokerDisksMigrateStatusProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudbroker/disks/migrate.py b/src/dynamix_sdk/api/cloudbroker/disks/migrate.py
new file mode 100644
index 0000000..9eb8fb3
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/disks/migrate.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerDisksMigrateResultStr(_base.BaseAPIResultStr):
+ pass
+
+
+class CloudbrokerDisksMigrateProtocol(_base.BasePostAPIFunctionProtocol):
+ def migrate(
+ self,
+ *,
+ disk_id: int,
+ sep_id: int,
+ sep_pool_name: str,
+ storage_policy_id: int | None = None,
+ ) -> CloudbrokerDisksMigrateResultStr:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/disks/migrate_abort.py b/src/dynamix_sdk/api/cloudbroker/disks/migrate_abort.py
new file mode 100644
index 0000000..bc058ea
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/disks/migrate_abort.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerDisksMigrateAbortResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerDisksMigrateAbortProtocol(_base.BasePostAPIFunctionProtocol):
+ def migrate_abort(
+ self,
+ *,
+ disk_id: int,
+ ) -> CloudbrokerDisksMigrateAbortResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/disks/migrate_status.py b/src/dynamix_sdk/api/cloudbroker/disks/migrate_status.py
new file mode 100644
index 0000000..3df2f71
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/disks/migrate_status.py
@@ -0,0 +1,21 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerDisksMigrateStatusResultModel(_base.BaseAPIResultModel):
+ bandwidth_limit: int | None = None
+ current_bytes: int | str | None = None # BDX-9583
+ progress_percent: int | None = None
+ total_bytes: str | None = None # BDX-9583
+ type: _nested.DiskMigrateJobType | None = None
+
+
+class CloudbrokerDisksMigrateStatusProtocol(
+ _base.BaseGetAPIFunctionProtocol
+):
+ def migrate_status(
+ self,
+ *,
+ disk_id: int,
+ ) -> CloudbrokerDisksMigrateStatusResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/image/__init__.py b/src/dynamix_sdk/api/cloudbroker/image/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/image/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudbroker/image/_api.py b/src/dynamix_sdk/api/cloudbroker/image/_api.py
new file mode 100644
index 0000000..54db094
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/image/_api.py
@@ -0,0 +1,9 @@
+import dynamix_sdk.base as _base
+from .change_storage_policy import *
+
+
+class CloudbrokerImageAPI(
+ _base.BaseAPI,
+ CloudbrokerImageChangeStoragePolicyProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudbroker/image/change_storage_policy.py b/src/dynamix_sdk/api/cloudbroker/image/change_storage_policy.py
new file mode 100644
index 0000000..445b9fe
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/image/change_storage_policy.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerImageChangeStoragePolicyResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerImageChangeStoragePolicyProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def change_storage_policy(
+ self,
+ *,
+ image_id: int,
+ storage_policy_id: int,
+ ) -> CloudbrokerImageChangeStoragePolicyResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/node/__init__.py b/src/dynamix_sdk/api/cloudbroker/node/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/node/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudbroker/node/_api.py b/src/dynamix_sdk/api/cloudbroker/node/_api.py
new file mode 100644
index 0000000..3caf476
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/node/_api.py
@@ -0,0 +1,13 @@
+import dynamix_sdk.base as _base
+from .add_ssh_identity import *
+from .get_ssh_identity import *
+from .update_description import *
+
+
+class CloudbrokerNodeAPI(
+ _base.BaseAPI,
+ CloudbrokerNodeAddSshIdentityProtocol,
+ CloudbrokerNodeGetSshIdentityProtocol,
+ CloudbrokerNodeUpdateDescriptionProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudbroker/node/add_ssh_identity.py b/src/dynamix_sdk/api/cloudbroker/node/add_ssh_identity.py
new file mode 100644
index 0000000..0a009ff
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/node/add_ssh_identity.py
@@ -0,0 +1,22 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerNodeAddSshIdentityResultBool(
+ _base.BaseAPIResultBool,
+):
+ pass
+
+
+class CloudbrokerNodeAddSshIdentityProtocol(
+ _base.BasePostAPIFunctionProtocol
+):
+ def add_ssh_identity(
+ self,
+ *,
+ node_id: int,
+ client_hostname: str,
+ client_host_key: str,
+ client_public_key: str,
+ client_ip_addr: str,
+ ) -> CloudbrokerNodeAddSshIdentityResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/node/get_ssh_identity.py b/src/dynamix_sdk/api/cloudbroker/node/get_ssh_identity.py
new file mode 100644
index 0000000..dd123ad
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/node/get_ssh_identity.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerNodeGetSshIdentityResultModel(_base.BaseAPIResultModel):
+ hostname: str
+ host_key: str
+ public_keys: list[str]
+
+
+class CloudbrokerNodeGetSshIdentityProtocol(
+ _base.BaseGetAPIFunctionProtocol,
+):
+ def get_ssh_identity(
+ self,
+ *,
+ node_id: int,
+ ) -> CloudbrokerNodeGetSshIdentityResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/node/update_description.py b/src/dynamix_sdk/api/cloudbroker/node/update_description.py
new file mode 100644
index 0000000..cf833aa
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/node/update_description.py
@@ -0,0 +1,19 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerNodeUpdateDescriptionResultBool(
+ _base.BaseAPIResultBool,
+):
+ pass
+
+
+class CloudbrokerNodeUpdateDescriptionProtocol(
+ _base.BasePostAPIFunctionProtocol
+):
+ def update_description(
+ self,
+ *,
+ node_id: int,
+ description: str,
+ ) -> CloudbrokerNodeUpdateDescriptionResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/rg/__init__.py b/src/dynamix_sdk/api/cloudbroker/rg/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/rg/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudbroker/rg/_api.py b/src/dynamix_sdk/api/cloudbroker/rg/_api.py
new file mode 100644
index 0000000..6a64c53
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/rg/_api.py
@@ -0,0 +1,11 @@
+import dynamix_sdk.base as _base
+from .add_storage_policy import *
+from .del_storage_policy import *
+
+
+class CloudbrokerRgAPI(
+ _base.BaseAPI,
+ CloudbrokerRgAddStoragePolicyProtocol,
+ CloudbrokerRgDelStoragePolicyProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudbroker/rg/add_storage_policy.py b/src/dynamix_sdk/api/cloudbroker/rg/add_storage_policy.py
new file mode 100644
index 0000000..2b16a79
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/rg/add_storage_policy.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerRgAddStoragePolicyResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerRgAddStoragePolicyProtocol(_base.BasePostAPIFunctionProtocol):
+ def add_storage_policy(
+ self,
+ *,
+ rg_id: int,
+ storage_policy_id: int,
+ storage_size_gb: int | None = None,
+ ) -> CloudbrokerRgAddStoragePolicyResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/rg/del_storage_policy.py b/src/dynamix_sdk/api/cloudbroker/rg/del_storage_policy.py
new file mode 100644
index 0000000..613bf4e
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/rg/del_storage_policy.py
@@ -0,0 +1,15 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerRgDelStoragePolicyResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerRgDelStoragePolicyProtocol(_base.BasePostAPIFunctionProtocol):
+ def del_storage_policy(
+ self,
+ *,
+ rg_id: int,
+ storage_policy_id: int,
+ ) -> CloudbrokerRgDelStoragePolicyResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/security_group/__init__.py b/src/dynamix_sdk/api/cloudbroker/security_group/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/security_group/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudbroker/security_group/_api.py b/src/dynamix_sdk/api/cloudbroker/security_group/_api.py
new file mode 100644
index 0000000..1ef20db
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/security_group/_api.py
@@ -0,0 +1,21 @@
+import dynamix_sdk.base as _base
+from .create import *
+from .create_rule import *
+from .delete import *
+from .delete_rule import *
+from .get import *
+from .list import *
+from .update import *
+
+
+class CloudbrokerSecurityGroupAPI(
+ _base.BaseAPI,
+ CloudbrokerSecurityGroupCreateProtocol,
+ CloudbrokerSecurityGroupCreateRuleProtocol,
+ CloudbrokerSecurityGroupDeleteProtocol,
+ CloudbrokerSecurityGroupDeleteRuleProtocol,
+ CloudbrokerSecurityGroupGetProtocol,
+ CloudbrokerSecurityGroupListProtocol,
+ CloudbrokerSecurityGroupUpdateProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudbroker/security_group/create.py b/src/dynamix_sdk/api/cloudbroker/security_group/create.py
new file mode 100644
index 0000000..c433738
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/security_group/create.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerSecurityGroupCreateResultInt(_base.BaseAPIResultInt):
+ pass
+
+
+class CloudbrokerSecurityGroupCreateProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def create(
+ self,
+ *,
+ account_id: int,
+ name: str,
+ description: str | None = None,
+ ) -> CloudbrokerSecurityGroupCreateResultInt:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/security_group/create_rule.py b/src/dynamix_sdk/api/cloudbroker/security_group/create_rule.py
new file mode 100644
index 0000000..2caed92
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/security_group/create_rule.py
@@ -0,0 +1,23 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerSecurityGroupCreateRuleResultInt(_base.BaseAPIResultInt):
+ pass
+
+
+class CloudbrokerSecurityGroupCreateRuleProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def create_rule(
+ self,
+ *,
+ security_group_id: int,
+ traffic_direction: _nested.TrafficDirection,
+ ethertype: _nested.SGRuleEthertype = _nested.SGRuleEthertype.IPV4,
+ protocol: _nested.SGRuleProtocol | None = None,
+ port_range_max: int | None = None,
+ port_range_min: int | None = None,
+ remote_ip_prefix: str | None = None,
+ ) -> CloudbrokerSecurityGroupCreateRuleResultInt:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/security_group/delete.py b/src/dynamix_sdk/api/cloudbroker/security_group/delete.py
new file mode 100644
index 0000000..7cc9118
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/security_group/delete.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerSecurityGroupDeleteResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerSecurityGroupDeleteProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def delete(
+ self,
+ *,
+ security_group_id: int,
+ ) -> CloudbrokerSecurityGroupDeleteResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/security_group/delete_rule.py b/src/dynamix_sdk/api/cloudbroker/security_group/delete_rule.py
new file mode 100644
index 0000000..c5fbb76
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/security_group/delete_rule.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerSecurityGroupDeleteRuleResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerSecurityGroupDeleteRuleProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def delete_rule(
+ self,
+ *,
+ security_group_id: int,
+ rule_id: int,
+ ) -> CloudbrokerSecurityGroupDeleteRuleResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/security_group/get.py b/src/dynamix_sdk/api/cloudbroker/security_group/get.py
new file mode 100644
index 0000000..14e5f4b
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/security_group/get.py
@@ -0,0 +1,18 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerSecurityGroupGetResultModel(
+ _base.BaseAPIResultModel,
+ _nested.SecurityGroupAPIResultNM,
+):
+ pass
+
+
+class CloudbrokerSecurityGroupGetProtocol(_base.BaseGetAPIFunctionProtocol):
+ def get(
+ self,
+ *,
+ security_group_id: int,
+ ) -> CloudbrokerSecurityGroupGetResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/security_group/list.py b/src/dynamix_sdk/api/cloudbroker/security_group/list.py
new file mode 100644
index 0000000..64195a0
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/security_group/list.py
@@ -0,0 +1,26 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerSecurityGroupListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.SecurityGroupAPIResultNM]
+ entry_count: int
+
+
+class CloudbrokerSecurityGroupListProtocol(_base.BaseGetAPIFunctionProtocol):
+ def list(
+ self,
+ *,
+ account_id: int | None = None,
+ created_after_timestamp: int | None = None,
+ created_before_timestamp: int | None = None,
+ description: str | None = None,
+ id: int | None = None,
+ name: str | None = None,
+ page_number: int | None = None,
+ page_size: int | None = None,
+ sort_by: str | None = None,
+ updated_after_timestamp: int | None = None,
+ updated_before_timestamp: int | None = None,
+ ) -> CloudbrokerSecurityGroupListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/security_group/update.py b/src/dynamix_sdk/api/cloudbroker/security_group/update.py
new file mode 100644
index 0000000..cdc67ad
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/security_group/update.py
@@ -0,0 +1,22 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerSecurityGroupUpdateResultModel(
+ _base.BaseAPIResultModel,
+ _nested.SecurityGroupAPIResultNM,
+):
+ pass
+
+
+class CloudbrokerSecurityGroupUpdateProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def update(
+ self,
+ *,
+ security_group_id: int,
+ name: str | None = None,
+ description: str | None = None,
+ ) -> CloudbrokerSecurityGroupUpdateResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/storage_policy/__init__.py b/src/dynamix_sdk/api/cloudbroker/storage_policy/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/storage_policy/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudbroker/storage_policy/_api.py b/src/dynamix_sdk/api/cloudbroker/storage_policy/_api.py
new file mode 100644
index 0000000..909d1d6
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/storage_policy/_api.py
@@ -0,0 +1,25 @@
+import dynamix_sdk.base as _base
+from .add_pool import *
+from .create import *
+from .delete import *
+from .delete_pool import *
+from .disable import *
+from .enable import *
+from .get import *
+from .list import *
+from .update import *
+
+
+class CloudbrokerStoragePolicyAPI(
+ _base.BaseAPI,
+ CloudbrokerStoragePolicyAddPoolProtocol,
+ CloudbrokerStoragePolicyCreateProtocol,
+ CloudbrokerStoragePolicyDeletePoolProtocol,
+ CloudbrokerStoragePolicyDeleteProtocol,
+ CloudbrokerStoragePolicyDisableProtocol,
+ CloudbrokerStoragePolicyEnableProtocol,
+ CloudbrokerStoragePolicyGetProtocol,
+ CloudbrokerStoragePolicyListProtocol,
+ CloudbrokerStoragePolicyUpdateProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudbroker/storage_policy/add_pool.py b/src/dynamix_sdk/api/cloudbroker/storage_policy/add_pool.py
new file mode 100644
index 0000000..e1c648c
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/storage_policy/add_pool.py
@@ -0,0 +1,25 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerStoragePolicyAddPoolResultModel(_base.BaseAPIResultModel):
+ description: str
+ guid: int
+ id: int
+ iops_limit: int
+ name: str
+ sep_pools: list[_nested.SEPPoolsAPIResultNM]
+ status: _nested.StoragePolicyStatus
+
+
+class CloudbrokerStoragePolicyAddPoolProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def add_pool(
+ self,
+ *,
+ storage_policy_id: int,
+ sep_id: int,
+ sep_pool_name: str,
+ ) -> CloudbrokerStoragePolicyAddPoolResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/storage_policy/create.py b/src/dynamix_sdk/api/cloudbroker/storage_policy/create.py
new file mode 100644
index 0000000..f614184
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/storage_policy/create.py
@@ -0,0 +1,20 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerStoragePolicyCreateResultInt(_base.BaseAPIResultInt):
+ pass
+
+
+class CloudbrokerStoragePolicyCreateProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def create(
+ self,
+ *,
+ name: str,
+ sep_pools: list[_nested.SEPPoolsAPIParamsNM],
+ description: str | None = None,
+ iops_limit: int = 2000,
+ ) -> CloudbrokerStoragePolicyCreateResultInt:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/storage_policy/delete.py b/src/dynamix_sdk/api/cloudbroker/storage_policy/delete.py
new file mode 100644
index 0000000..8e3ff73
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/storage_policy/delete.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerStoragePolicyDeleteResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerStoragePolicyDeleteProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def delete(
+ self,
+ *,
+ storage_policy_id: int,
+ ) -> CloudbrokerStoragePolicyDeleteResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/storage_policy/delete_pool.py b/src/dynamix_sdk/api/cloudbroker/storage_policy/delete_pool.py
new file mode 100644
index 0000000..be730b2
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/storage_policy/delete_pool.py
@@ -0,0 +1,25 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerStoragePolicyDeletePoolResultModel(_base.BaseAPIResultModel):
+ description: str
+ guid: int
+ id: int
+ iops_limit: int
+ name: str
+ sep_pools: list[_nested.SEPPoolsAPIResultNM]
+ status: _nested.StoragePolicyStatus
+
+
+class CloudbrokerStoragePolicyDeletePoolProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def delete_pool(
+ self,
+ *,
+ storage_policy_id: int,
+ sep_id: int,
+ sep_pool_name: str,
+ ) -> CloudbrokerStoragePolicyDeletePoolResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/storage_policy/disable.py b/src/dynamix_sdk/api/cloudbroker/storage_policy/disable.py
new file mode 100644
index 0000000..6957983
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/storage_policy/disable.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerStoragePolicyDisableResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerStoragePolicyDisableProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def disable(
+ self,
+ *,
+ storage_policy_id: int,
+ ) -> CloudbrokerStoragePolicyDisableResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/storage_policy/enable.py b/src/dynamix_sdk/api/cloudbroker/storage_policy/enable.py
new file mode 100644
index 0000000..a4f2502
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/storage_policy/enable.py
@@ -0,0 +1,16 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerStoragePolicyEnableResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerStoragePolicyEnableProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def enable(
+ self,
+ *,
+ storage_policy_id: int,
+ ) -> CloudbrokerStoragePolicyEnableResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/storage_policy/get.py b/src/dynamix_sdk/api/cloudbroker/storage_policy/get.py
new file mode 100644
index 0000000..c9cbeda
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/storage_policy/get.py
@@ -0,0 +1,20 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerStoragePolicyGetResultModel(
+ _base.BaseAPIResultModel,
+ _nested.StoragePolicyAPIResultNM,
+):
+ pass
+
+
+class CloudbrokerStoragePolicyGetProtocol(
+ _base.BaseGetAPIFunctionProtocol,
+):
+ def get(
+ self,
+ *,
+ storage_policy_id: int,
+ ) -> CloudbrokerStoragePolicyGetResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/storage_policy/list.py b/src/dynamix_sdk/api/cloudbroker/storage_policy/list.py
new file mode 100644
index 0000000..3d24a0d
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/storage_policy/list.py
@@ -0,0 +1,27 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerStoragePolicyListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.StoragePolicyAPIResultNM]
+ entry_count: int
+
+
+class CloudbrokerStoragePolicyListProtocol(_base.BaseGetAPIFunctionProtocol):
+ def list(
+ self,
+ *,
+ account_id: int | None = None,
+ description: str | None = None,
+ id: int | None = None,
+ iops_limit: int | None = None,
+ name: str | None = None,
+ page_number: int | None = None,
+ page_size: int | None = None,
+ rg_id: int | None = None,
+ sep_id: int | None = None,
+ sep_pool_name: str | None = None,
+ sort_by: str | None = None,
+ status: _nested.StoragePolicyStatus | None = None,
+ ) -> CloudbrokerStoragePolicyListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/storage_policy/update.py b/src/dynamix_sdk/api/cloudbroker/storage_policy/update.py
new file mode 100644
index 0000000..57c0021
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/storage_policy/update.py
@@ -0,0 +1,27 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerStoragePolicyUpdateResultModel(_base.BaseAPIResultModel):
+ description: str
+ guid: int
+ id: int
+ iops_limit: int
+ name: str
+ sep_pools: list[_nested.SEPPoolsAPIResultNM]
+ status: _nested.StoragePolicyStatus
+
+
+class CloudbrokerStoragePolicyUpdateProtocol(
+ _base.BasePostAPIFunctionProtocol,
+):
+ def update(
+ self,
+ *,
+ storage_policy_id: int,
+ name: str | None = None,
+ iops_limit: int | None = None,
+ description: str | None = None,
+ sep_pools: list[_nested.SEPPoolsAPIParamsNM] | None = None,
+ ) -> CloudbrokerStoragePolicyUpdateResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/user/__init__.py b/src/dynamix_sdk/api/cloudbroker/user/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/user/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudbroker/user/_api.py b/src/dynamix_sdk/api/cloudbroker/user/_api.py
new file mode 100644
index 0000000..862ad37
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/user/_api.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+from .block import *
+from .create import *
+from .get import *
+from .list import *
+from .unblock import *
+
+
+class CloudbrokerUserAPI(
+ _base.BaseAPI,
+ CloudbrokerUserBlockProtocol,
+ CloudbrokerUserCreateProtocol,
+ CloudbrokerUserGetProtocol,
+ CloudbrokerUserListProtocol,
+ CloudbrokerUserUnblockProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudbroker/user/block.py b/src/dynamix_sdk/api/cloudbroker/user/block.py
new file mode 100644
index 0000000..0342e39
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/user/block.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerUserBlockResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerUserBlockProtocol(_base.BasePostAPIFunctionProtocol):
+ def block(
+ self,
+ *,
+ user_name: str,
+ ) -> CloudbrokerUserBlockResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/user/create.py b/src/dynamix_sdk/api/cloudbroker/user/create.py
new file mode 100644
index 0000000..3a928bc
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/user/create.py
@@ -0,0 +1,19 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerUserCreateResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerUserCreateProtocol(_base.BasePostAPIFunctionProtocol):
+ def create(
+ self,
+ *,
+ user_name: str,
+ email_addresses: list[str],
+ password: str,
+ api_access_group_ids: list[int] | None = None,
+ auth_broker: _nested.AuthBroker | None = None,
+ ) -> CloudbrokerUserCreateResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/user/get.py b/src/dynamix_sdk/api/cloudbroker/user/get.py
new file mode 100644
index 0000000..2ff52a8
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/user/get.py
@@ -0,0 +1,36 @@
+import typing as _typing
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerUserGetResultModel(_base.BaseAPIResultModel):
+ active: bool
+ api_access_groups: dict[str, str]
+ auth_key: str
+ auth_keys: list[_typing.Any]
+ blocked: bool | None = None
+ ckey: str
+ data: str
+ description: str
+ domain_name: str | None
+ emails: list[str]
+ grid_id: int
+ groups: list[str]
+ guid: str
+ id: str
+ last_check_timestamp: int
+ meta: list[_typing.Any]
+ mobile: list[_typing.Any]
+ password: str
+ protected: bool | None = None
+ roles: list[_typing.Any]
+ service_account: bool
+ xmpp: list[_typing.Any]
+
+ @property
+ def last_check_datetime(self):
+ return self._get_datetime_from_timestamp(self.last_check_timestamp)
+
+
+class CloudbrokerUserGetProtocol(_base.BasePostAPIFunctionProtocol):
+ def get(self, *, user_name: str) -> CloudbrokerUserGetResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/user/list.py b/src/dynamix_sdk/api/cloudbroker/user/list.py
new file mode 100644
index 0000000..4dfb7af
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/user/list.py
@@ -0,0 +1,22 @@
+import dynamix_sdk.base as _base
+import dynamix_sdk.api._nested as _nested
+
+
+class CloudbrokerUserListResultModel(_base.BaseAPIResultModel):
+ data: list[_nested.UserAPIResultNM]
+ entry_count: int
+
+
+class CloudbrokerUserListProtocol(_base.BasePostAPIFunctionProtocol):
+ def list(
+ self,
+ *,
+ active: bool | None = None,
+ email: str | None = None,
+ name: str | None = None,
+ page_number: int | None = None,
+ page_size: int | None = None,
+ service_account: bool | None = None,
+ sort_by: str | None = None,
+ ) -> CloudbrokerUserListResultModel:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/user/unblock.py b/src/dynamix_sdk/api/cloudbroker/user/unblock.py
new file mode 100644
index 0000000..7a9bfe3
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/user/unblock.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerUserUnblockResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerUserUnblockProtocol(_base.BasePostAPIFunctionProtocol):
+ def unblock(
+ self,
+ *,
+ user_name: str,
+ ) -> CloudbrokerUserUnblockResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/vins/__init__.py b/src/dynamix_sdk/api/cloudbroker/vins/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/vins/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudbroker/vins/_api.py b/src/dynamix_sdk/api/cloudbroker/vins/_api.py
new file mode 100644
index 0000000..5483ef7
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/vins/_api.py
@@ -0,0 +1,9 @@
+import dynamix_sdk.base as _base
+from .update import *
+
+
+class CloudbrokerVinsAPI(
+ _base.BaseAPI,
+ CloudbrokerVinsUpdateProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudbroker/vins/update.py b/src/dynamix_sdk/api/cloudbroker/vins/update.py
new file mode 100644
index 0000000..2f3d206
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/vins/update.py
@@ -0,0 +1,17 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerVinsUpdateResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerVinsUpdateProtocol(_base.BasePostAPIFunctionProtocol):
+ def update(
+ self,
+ *,
+ vins_id: int,
+ name: str | None = None,
+ description: str | None = None,
+ security_group_mode: bool | None = None,
+ ) -> CloudbrokerVinsUpdateResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/cloudbroker/vnfdev/__init__.py b/src/dynamix_sdk/api/cloudbroker/vnfdev/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/vnfdev/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/cloudbroker/vnfdev/_api.py b/src/dynamix_sdk/api/cloudbroker/vnfdev/_api.py
new file mode 100644
index 0000000..6d8b676
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/vnfdev/_api.py
@@ -0,0 +1,9 @@
+import dynamix_sdk.base as _base
+from .migrate_abort import *
+
+
+class CloudbrokerVnfdevAPI(
+ _base.BaseAPI,
+ CloudbrokerVnfdevMigrateAbortProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/cloudbroker/vnfdev/migrate_abort.py b/src/dynamix_sdk/api/cloudbroker/vnfdev/migrate_abort.py
new file mode 100644
index 0000000..2a7953c
--- /dev/null
+++ b/src/dynamix_sdk/api/cloudbroker/vnfdev/migrate_abort.py
@@ -0,0 +1,14 @@
+import dynamix_sdk.base as _base
+
+
+class CloudbrokerVnfdevMigrateAbortResultBool(_base.BaseAPIResultBool):
+ pass
+
+
+class CloudbrokerVnfdevMigrateAbortProtocol(_base.BasePostAPIFunctionProtocol):
+ def migrate_abort(
+ self,
+ *,
+ vnfdev_id: int,
+ ) -> CloudbrokerVnfdevMigrateAbortResultBool:
+ ...
diff --git a/src/dynamix_sdk/api/name_mapping.yml b/src/dynamix_sdk/api/name_mapping.yml
index 0514356..095046f 100644
--- a/src/dynamix_sdk/api/name_mapping.yml
+++ b/src/dynamix_sdk/api/name_mapping.yml
@@ -1,19 +1,48 @@
# sdk_name[__model_class_name]: dynamix_name
+acc_lvl_vins_ids__AccountForCBAPIResultNM: vins
acc_lvl_vins_ids__CloudapiAccountGetResultModel: vins
+acc_lvl_vins_ids__CloudbrokerAccountGetResultModel: vins
access_type: accesstype
access_type__AccessAPIResultNM: right
access_type__CloudapiAccountListDeletedParamsModel: acl
access_type__CloudapiAccountListParamsModel: acl
access_type__CloudapiRgAccessGrantParamsModel: right
+access_type__CloudbrokerAccountListDeletedParamsModel: acl
+access_type__CloudbrokerAccountListParamsModel: acl
account: accountACL
account__K8sACLAPIResultNM: accountAcl
+account_acl__ResourceGroupForListDeletedAPIResultNM: accountAcl
account_id: accountId
+account_id__AuditAPIResultNM: account_id
+account_id__CloudapiAuditListParamsModel: account_id
+account_id__CloudapiSecurityGroupCreateParamsModel: account_id
+account_id__CloudapiSecurityGroupListParamsModel: account_id
+account_id__CloudapiSepListAvailableSepAndPoolsParamsModel: account_id
+account_id__CloudapiStoragePolicyListParamsModel: account_id
+account_id__CloudapiVfpoolListParamsModel: accountAccess
+account_id__CloudbrokerAccountAddStoragePolicyParamsModel: account_id
+account_id__CloudbrokerAccountDelStoragePolicyParamsModel: account_id
+account_id__CloudbrokerAuditListParamsModel: account_id
+account_id__CloudbrokerSecurityGroupCreateParamsModel: account_id
+account_id__CloudbrokerSecurityGroupListParamsModel: account_id
+account_id__CloudbrokerStoragePolicyListParamsModel: account_id
account_id__DHCPReservationAPIResultNM: account_id
+account_id__SecurityGroupAPIResultNM: account_id
account_ids: accountAccess
+account_ids__CloudapiTrunkListParamsModel: account_ids
+account_ids__CloudapiZoneGetResultModel: accountIds
+account_ids__CloudbrokerAccountDeleteAccountsParamsModel: accountIds
+account_ids__CloudbrokerAccountDisableAccountsParamsModel: accountIds
+account_ids__CloudbrokerAccountEnableAccountsParamsModel: accountIds
+account_ids__TenantIDsAPIResultNM: accounts
+account_ids__TrunkAPIResultNM: accountIds
account_name: accountName
+account_name__CloudbrokerAccountDeleteParamsModel: name
+accounts__CloudapiUserBriefResultModel: Accounts
acl: acl
acl__CloudapiComputeGetResultModel: ACL
acl__CloudapiK8sGetResultModel: ACL
+active: active
additional_sans: additionalSANs
admin: admin
affinity_label: affinityLabel
@@ -22,15 +51,23 @@ affinity_weight: affinityWeight
algorithm: algorithm
annotations: annotations
anti_affinity_rules: antiAffinityRules
-api_url_path: call
-api_url_path__UserAuditAPIResultNM: Call
+api_access_group_ids: apiaccess
+api_access_groups__CloudbrokerUserGetResultModel: apiaccess
+api_access_groups__UserAPIResultNM: apiaccess
+api_url_path: call
arch: arch
arch__CloudapiImageGetResultModel: architecture
args: args
+args__CloudapiComputeGuestAgentExecuteParamsModel: arguments
+async_request_task_id: apitask
audit_guid: auditId
audit_guid__CloudapiAuditGetParamsModel: audit_guid
auth_broker: authBroker
+auth_broker__CloudbrokerUserCreateParamsModel: provider
+auth_key: authkey
+auth_keys: authkeys
auto_start: autoStart
+auto_start__CloudapiComputeMoveToRgParamsModel: autostart
available_commands: enabled_agent_features
backend__LBHAIPsAPIResultNM: backendIp
backend_ha_ip_addr: backendHAIP
@@ -46,9 +83,11 @@ backend_name__CloudapiLbBackendServerUpdateParamsModel: backendName
backend_name__CloudapiLbBackendUpdateParamsModel: backendName
backend_name__CloudapiLbFrontendCreateParamsModel: backendName
backends: backends
+bandwidth_limit: bandwidth
base_domain: baseDomain
binding_name: bindingName
bindings: bindings
+blocked: blocked
boot_cdrom_image_id: altBootId
boot_disk_size_gb: bootdiskSize
boot_disk_size_gb__CloudapiBserviceGroupAddParamsModel: disk
@@ -57,6 +96,8 @@ boot_disk_size_gb__CloudapiBserviceGroupUpdateParamsModel: disk
boot_disk_size_gb__CloudapiComputeRedeployParamsModel: diskSize
boot_disk_size_gb__CloudapiKvmx86CreateBlankParamsModel: bootDisk
boot_disk_size_gb__CloudapiKvmx86CreateParamsModel: bootDisk
+boot_image_id: boot_image_id
+boot_loader_metaiso: loaderMetaIso
boot_loader_type: imagetype
boot_loader_type__CloudapiComputeGetResultModel: loaderType
boot_loader_type__CloudapiComputeUpdateParamsModel: loaderType
@@ -68,15 +109,21 @@ boot_order: bootOrder
boot_partition: bootPartition
bootable: bootable
bservice_id: serviceId
+bservice_id__AuditAPIResultNM: service_id
+bservice_id__CloudapiAuditListParamsModel: service_id
bservice_id__CloudapiK8sGetResultModel: bserviceId
bservice_id__CloudapiK8sListDeletedParamsModel: basicServiceId
bservice_id__CloudapiK8sListParamsModel: basicServiceId
-bservice_id__K8sListAPIResultNM: bserviceId
-bservice_id__K8sListDeletedAPIResultNM: bserviceId
+bservice_id__CloudbrokerAuditListParamsModel: service_id
+bservice_id__K8sAPIResultNM: bserviceId
+bservice_ids: bserviceIds
bsgroup_id: compgroupId
bsgroup_name: compgroupName
bsgroup_role: compgroupRole
-bus_number: bus_number
+bus_num: bus_number
+bus_num__VGPUAPIResultNM: bus_number
+bus_num_hex__CloudapiComputeDiskAddParamsModel: bus_number
+bus_num_hex__CloudapiComputeDiskAttachParamsModel: bus_number
can_be_deleted: canBeDeleted
capabilities: capabilities
cd_presented_to: cdPresentedTo
@@ -84,24 +131,32 @@ cdrom: cdrom
cdrom_image_id: cdromId
cdrom_image_id__CloudapiComputeGetResultModel: cdImageId
cdrom_image_id__VMAPIResultNM: cdImageId
+cdrom_mapping: cdrommap
check: check
check_ips: checkIps
chipset: chipset
ci_user_data: userdata
ci_user_data__CloudapiBserviceGroupAddParamsModel: userData
ci_user_data__CloudapiK8sCreateParamsModel: userData
+ci_user_data__CloudapiK8sUpdateWorkerNodesMetaDataParamsModel: userData
ci_user_data__CloudapiK8sWorkersGroupAddParamsModel: userData
ckey: _ckey
+claimed: claimed
clear_uniq_pools: clearUniqPools
+client_host_key__CloudbrokerNodeAddSshIdentityParamsModel: client_host_key
+client_hostname__CloudbrokerNodeAddSshIdentityParamsModel: client_host_name
client_ids: clientIds
client_ip_addr: remote_addr
+client_ip_addr__CloudbrokerNodeAddSshIdentityParamsModel: client_ip_address
client_names: clientNames
+client_public_key__CloudbrokerNodeAddSshIdentityParamsModel: client_public_key
client_type: clientType
clone_ids: clones
clone_reference: cloneReference
cloudapi: cloudapi
cloudbroker: cloudbroker
cluster_config: clusterConfiguration
+cmd: command
company: company
company_url: companyurl
completed: completed
@@ -110,23 +165,36 @@ config_saved: configSaved
conn_id: connId
conn_type: connType
consistency: consistency
+consumed: Consumed
+correlation_id: correlation_id
count_change_mode__CloudapiBserviceGroupResizeParamsModel: mode
cpu_allocation_parameter: cpu_allocation_parameter
cpu_allocation_ratio: cpu_allocation_ratio
cpu_count: cpu
cpu_count__CloudapiComputeGetResultModel: cpus
cpu_count__TenantQuotasAPIResultNM: CU_C
+cpu_count__TenantQuotasForResourceConsumptionAPIResultNM: CU_C
cpu_count__VMAPIResultNM: cpus
cpu_count_quota: maxCPUCapacity
cpu_count_total: cpuTotal
cpu_pin: cpupin
created_after_timestamp: createdAfter
+created_after_timestamp__CloudapiSecurityGroupListParamsModel: created_min
created_after_timestamp__CloudapiTasksListParamsModel: updateTimeAt
+created_after_timestamp__CloudbrokerSecurityGroupListParamsModel: created_min
created_before_timestamp: createdBefore
+created_before_timestamp__CloudapiSecurityGroupListParamsModel: created_max
created_before_timestamp__CloudapiTasksListParamsModel: updateTimeTo
+created_before_timestamp__CloudbrokerSecurityGroupListParamsModel: created_max
created_by: createdBy
+created_by__SecurityGroupAPIResultNM: created_by
+created_by__TrunkAPIResultNM: created_by
created_timestamp: createdTime
+created_timestamp__SecurityGroupAPIResultNM: created_at
created_timestamp__TaskAPIResultNM: updateTime
+created_timestamp__TrunkAPIResultNM: created_at
+current_bytes: cur
+current_mac: current_mac_address
custom_fields: customFields
custom_pre_cfg: customPrecfg
data: data
@@ -140,19 +208,46 @@ default_gw__DHCPVNFConfigAPIResultNM: default_gw
default_gw__GWVNFConfigAPIResultNM: default_gw
default_gw__InterfaceForComputeGetAPIResultNM: defGw
default_gw__InterfaceForComputeListAPIResultNM: defGw
+default_gw__VINSExtNetAPIResultNM: default_gw
default_gw__VNFDevInterfaceAPIResultNM: defGw
default_net_id: def_net_id
default_net_type: def_net_type
default_net_type__CloudapiRgCreateParamsModel: def_net
default_qos: defaultQos
default_zone_id: defaultZoneId
+deletable: deletable
deleted_by: deletedBy
+deleted_by__TrunkAPIResultNM: deleted_by
deleted_timestamp: deletedTime
+deleted_timestamp__TrunkAPIResultNM: deleted_at
description: desc
description__CloudapiDisksCreateParamsModel: description
description__CloudapiDpdknetListParamsModel: description
+description__CloudapiSecurityGroupCreateParamsModel: description
+description__CloudapiSecurityGroupListParamsModel: description
+description__CloudapiSecurityGroupUpdateParamsModel: description
description__CloudapiStackGetResultModel: descr
+description__CloudapiVfpoolListParamsModel: description
+description__CloudapiZoneGetResultModel: description
+description__CloudapiZoneListParamsModel: description
+description__CloudbrokerNodeUpdateDescriptionParamsModel: description
+description__CloudbrokerSecurityGroupCreateParamsModel: description
+description__CloudbrokerSecurityGroupListParamsModel: description
+description__CloudbrokerSecurityGroupUpdateParamsModel: description
+description__CloudbrokerStoragePolicyAddPoolResultModel: description
+description__CloudbrokerStoragePolicyCreateParamsModel: description
+description__CloudbrokerStoragePolicyDeletePoolResultModel: description
+description__CloudbrokerStoragePolicyUpdateParamsModel: description
+description__CloudbrokerStoragePolicyUpdateResultModel: description
+description__CloudbrokerUserGetResultModel: description
description__DPDKNetAPIResultNM: description
+description__PCIDeviceAPIResultNM: description
+description__SecurityGroupAPIResultNM: description
+description__StoragePolicyAPIResultNM: description
+description__TrunkAPIResultNM: description
+description__UserAPIResultNM: description
+description__VFPoolAPIResultNM: description
+description__ZoneForListAPIResultNM: description
destruction_timestamp: destructionTime
detach: detach
detach_disks: detachDisks
@@ -164,13 +259,18 @@ dhcp: DHCP
dhcp_excluded_reservations: excluded
dhcp_reservations__CloudapiExtnetGetResultModel: reservations
dirty: dirty
+disabled: DISABLED
disk_id: diskId
+disk_id__CloudapiDisksChangeDiskStoragePolicyParamsModel: disk_id
+disk_id__CloudbrokerDisksMigrateAbortParamsModel: disk_id
+disk_id__CloudbrokerDisksMigrateParamsModel: disk_id
+disk_id__CloudbrokerDisksMigrateStatusParamsModel: disk_id
disk_ids: diskIds
+disk_mapping: diskmap
disk_max_size_gb: diskMaxSize
disk_path: diskPath
disk_size_gb: CU_D
disk_size_gb__CloudapiComputeDiskAddParamsModel: size
-disk_size_gb__CloudapiComputeDiskResizeParamsModel: size
disk_size_gb__CloudapiDisksResize2ParamsModel: size
disk_size_total_gb__CloudapiBserviceGetResultModel: diskTotal
disk_type__CloudapiComputeDiskAddParamsModel: diskType
@@ -180,7 +280,11 @@ display_name: displayname
dns_servers: dns
dns_servers__CloudapiVinsCreateInAccountParamsModel: dnsList
dns_servers__CloudapiVinsCreateInRGParamsModel: dnsList
+dns_servers__CloudapiVinsDnsApplyParamsModel: dnsList
domain_name: domainname
+domain_name__CloudbrokerUserGetResultModel: domain
+domain_name__MigrateStorageJobAPIResultNM: domainName
+domain_name__UserAPIResultNM: domain
downinter: downinter
download_password: passwordDL
download_url: url
@@ -194,35 +298,51 @@ dst_net_mask__CloudapiVinsStaticRouteAddParamsModel: netmask
dst_net_mask__RouteAPIParamsNM: netmask
dst_net_mask__RouteAPIResultNM: netmask
egress_rate: eRate
+email: email
email_address: emailaddress
email_addresses: emailaddresses
+email_addresses__CloudbrokerUserCreateParamsModel: emailaddress
emails: emails
enabled: enabled
+enabled__TenantStatusCountersAPIResultNM: ENABLED
entry_count: entryCount
error: error
+ethertype: ethertype
event_idx: event_idx
-execution_time_sec: Response Time
-execution_time_sec__CloudapiAuditGetResultModel: responsetime
+exclude_audit_lines: exclude_audit_lines
+exec_result: return
+execution_time_sec: responsetime
explicit: explicit
+ext_ip__K8sVMAPIResultNM: externalip
+ext_ip_count: CU_I
+ext_ip_count__ResourceCountersAPIResultNM: extips
+ext_ip_count_quota: maxNumPublicIP
ext_net_id: extnetId
+ext_net_id__CloudapiComputeListDeletedParamsModel: extNetId
ext_net_id__CloudapiComputeListParamsModel: extNetId
ext_net_id__CloudapiExtnetGetParamsModel: net_id
ext_net_id__CloudapiRgCreateParamsModel: extNetId
ext_net_id__CloudapiVinsCreateInRGParamsModel: extNetId
+ext_net_id__CloudapiVinsExtNetConnectParamsModel: netId
ext_net_id__GWVNFConfigAPIResultNM: ext_net_id
ext_net_ip: extIp
ext_net_ip__GWVNFConfigAPIResultNM: ext_net_ip
ext_net_ip__VINSForListAPIResultNM: externalIP
ext_net_ip__VINSForListDeletedAPIResultNM: externalIP
-ext_net_mask: ext_netmask
ext_net_name: extNetName
+ext_net_prefix: ext_netmask
ext_traffic: CU_NP
+ext_traffic__ResourceCountersAPIResultNM: exttraffic
ext_traffic_quota: maxNetworkPeerTransfer
extnet_ids: extnets
+extnet_ids__CloudapiZoneGetResultModel: extnetIds
extnet_only: extnetOnly
fall: fall
flag: flag
flip_group_id: flipgroupId
+flip_group_id__AuditAPIResultNM: flipgroup_id
+flip_group_id__CloudapiAuditListParamsModel: flipgroup_id
+flip_group_id__CloudbrokerAuditListParamsModel: flipgroup_id
force: force
force_stop: forceStop
free_ip_count: freeIPs
@@ -236,26 +356,31 @@ frontend_name: frontendName
frontends: frontends
gateway: gateway
gpu_count: gpu_units
+gpu_count__ResourceCountersAPIResultNM: gpu
gpu_count_quota__CloudapiAccountUpdateParamsModel: gpu_units
gpu_count_quota__CloudbrokerAccountCreateParamsModel: gpu_units
+graphics_listen_addr: graphics
grid_id: gid
group_ids__BServiceAPIResultNM: groups
groups: groups
guest_agent: qemu_guest
guid: guid
-guid__UserAuditAPIResultNM: Guid
gw: GW
ha_mode: HAmode
ha_mode__CloudapiLbCreateParamsModel: highlyAvailable
history: history
+host_key: host_key
hostname: hostname
+hostname__CloudbrokerNodeGetSshIdentityResultModel: host_name
hot_resize: hotResize
hot_resize__CloudapiImageCreateParamsModel: hotresize
hp_backed: hpBacked
+hw_path: hwPath
id: id
id__CloudapiAccountListDeletedParamsModel: by_id
id__CloudapiAccountListParamsModel: by_id
id__CloudapiBserviceListParamsModel: by_id
+id__CloudapiComputeListDeletedParamsModel: by_id
id__CloudapiComputeListParamsModel: by_id
id__CloudapiDisksListDeletedParamsModel: by_id
id__CloudapiDisksListParamsModel: by_id
@@ -271,13 +396,30 @@ id__CloudapiK8sListParamsModel: by_id
id__CloudapiLbListDeletedParamsModel: by_id
id__CloudapiLbListParamsModel: by_id
id__CloudapiLocationsListParamsModel: by_id
+id__CloudapiPcideviceListParamsModel: by_id
+id__CloudapiRgListDeletedParamsModel: by_id
id__CloudapiRgListParamsModel: by_id
+id__CloudapiSecurityGroupListParamsModel: by_id
id__CloudapiStackListParamsModel: by_id
+id__CloudapiStoragePolicyGetParamsModel: storage_policy_id
+id__CloudapiStoragePolicyListParamsModel: by_id
+id__CloudapiVfpoolListParamsModel: by_id
+id__CloudapiVgpuListParamsModel: by_id
id__CloudapiVinsListDeletedParamsModel: by_id
id__CloudapiVinsListParamsModel: by_id
+id__CloudapiZoneListParamsModel: by_id
+id__CloudbrokerAccountListDeletedParamsModel: by_id
+id__CloudbrokerAccountListParamsModel: by_id
+id__CloudbrokerSecurityGroupListParamsModel: by_id
+id__CloudbrokerStoragePolicyListParamsModel: by_id
+id__VFPoolNodeAPIResultNM: nodeId
+id__VINSExtNetAPIResultNM: ext_net_id
+ids: ids
iface01_name: iface01
iface02_name: iface02
image_id: imageId
+image_id__CloudapiImageChangeStoragePolicyParamsModel: image_id
+image_id__CloudbrokerImageChangeStoragePolicyParamsModel: image_id
image_ids: images
image_name: imageName
include_deleted: includedeleted
@@ -288,12 +430,15 @@ ingress_burst: inBurst
ingress_rate: inRate
init_config: initConfiguration
inter: inter
+interface: interface
interfaces: interfaces
+interfaces__VFPoolNodeAPIResultNM: vfList
io_tune: iotune
ioeventfd: ioeventfd
-iops: iops
+iops_limit: limit_iops
ip_addr: ipAddr
ip_addr__CloudapiComputeChangeIpParamsModel: ip_addr
+ip_addr__CloudapiComputeListDeletedParamsModel: ipAddress
ip_addr__CloudapiComputeListParamsModel: ipAddress
ip_addr__CloudapiFlipgroupCreateParamsModel: ip
ip_addr__CloudapiFlipgroupCreateResultModel: ip
@@ -305,12 +450,14 @@ ip_addr__CloudapiLbBackendServerAddParamsModel: address
ip_addr__CloudapiLbBackendServerUpdateParamsModel: address
ip_addr__CloudapiLbFrontendBindParamsModel: bindingAddress
ip_addr__CloudapiLbFrontendBindingUpdateParamsModel: bindingAddress
+ip_addr__CloudapiVinsExtNetConnectParamsModel: ip
ip_addr__DHCPReservationAPIResultNM: ip
ip_addr__FlipGroupForListAPIResultNM: ip
ip_addr__InterfaceForComputeGetAPIResultNM: ipAddress
ip_addr__InterfaceForComputeListAPIResultNM: ipAddress
ip_addr__LBFrontendBindingAPIResultNM: address
ip_addr__LBServerAPIResultNM: address
+ip_addr__VINSExtNetAPIResultNM: ip
ip_addr__VNFDevInterfaceAPIResultNM: ipAddress
ip_addr__VNFDevMGMTConfigAPIResultNM: ipaddr
ip_addresses: ipAddresses
@@ -320,24 +467,35 @@ ip_pool_start: ip_start
ipa_type: ipaType
iqn: iqn
join_config: joinConfiguration
+json_data__CloudapiUserSetDataParamsModel: data
k8ci_id: k8ciId
k8ci_id__CloudapiK8sGetResultModel: ciId
-k8ci_id__K8sListAPIResultNM: ciId
-k8ci_id__K8sListDeletedAPIResultNM: ciId
+k8ci_id__K8sAPIResultNM: ciId
k8ci_name: k8ciName
k8s: k8sAcl
k8s_id: k8sId
+k8s_id__AuditAPIResultNM: k8s_id
+k8s_id__CloudapiAuditListParamsModel: k8s_id
+k8s_id__CloudbrokerAuditListParamsModel: k8s_id
+k8s_ids: k8sIds
key: key
kube_proxy_config: kubeProxyConfiguration
kubelet_config: kubeletConfiguration
kwargs: kwargs
label: label
labels: labels
+last_check_timestamp: lastcheck
+last_claimed_by: lastClaimedBy
last_modified: lastModified
last_update_timestamp: last_update
+last_update_timestamp__VGPUAPIResultNM: lastUpdateTime
lb_ha_ips: addressVip
lb_ha_mode: highlyAvailableLB
lb_id: lbId
+lb_id__AuditAPIResultNM: lb_id
+lb_id__CloudapiAuditListParamsModel: lb_id
+lb_id__CloudbrokerAuditListParamsModel: lb_id
+lb_ids: lbIds
lb_sysctl_params: lbSysctlParams
lease_time: lease
libvirt_settings: libvirtSettings
@@ -345,9 +503,11 @@ link_to: linkTo
listen_ssh: listenSsh
live_migration_job_id: live_migration_job_id
local_ip: localIp
+local_ip__CloudapiVinsNatRuleAddParamsModel: intIp
local_port: localPort
local_port__CloudapiComputePfwAddParamsModel: localBasePort
local_port__CloudapiComputePfwDelParamsModel: localBasePort
+local_port__CloudapiVinsNatRuleAddParamsModel: intPort
location_code: locationCode
lock_status: lockStatus
log: log
@@ -357,33 +517,44 @@ mac__CloudapiComputeNetAttachParamsModel: mac_addr
manager_id: managerId
manager_type: managerType
master: masters
+master_group_id: masterGroupId
master_node_count: masterNum
master_node_cpu_count: masterCpu
master_node_disk_size_gb: masterDisk
-master_node_driver: masterDriver
+master_node_ids: masterIds
master_node_ram_size_mb: masterRam
master_node_sep_id: masterSepId
master_node_sep_pool_name: masterSepPool
-max_status_code: maxStatusCode
+max_status_code__CloudapiAuditListParamsModel: max_status_code
+max_status_code__CloudbrokerAuditListParamsModel: max_status_code
maxconn: maxconn
maxqueue: maxqueue
mem_allocation_ratio: mem_allocation_ratio
+meta: _meta
mgmt: mgmt
mgmt_ip: mgmtIp
-migration_job: migrationjob
+migrate_to_uri3_job_id: migrate_to_uri3_job_id
+migration_job_id: migration_job_id
+migration_job_id__CloudapiComputeGetResultModel: migrationjob
+migration_job_id__VMAPIResultNM: migrationjob
milestones: milestones
-min_status_code: minStatusCode
+min_status_code__CloudapiAuditListParamsModel: min_status_code
+min_status_code__CloudbrokerAuditListParamsModel: min_status_code
+mobile: mobile
mode: mode
mtu: mtu
name: name
name__CloudapiComputeDiskAddParamsModel: diskName
+name__CloudbrokerUserListParamsModel: by_id
name__DiskAPIParamsNM: diskName
+name__VFPoolNodeInterfaceAPIResultNM: nicName
nat: NAT
natable_vins_id: natableVinsId
natable_vins_ip: natableVinsIp
natable_vins_name: natableVinsName
natable_vins_network: natableVinsNetwork
natable_vins_network_name: natableVinsNetworkName
+native_vlan_id: nativeVlanId
need_reboot: needReboot
net_cidr__CloudapiFlipgroupGetResultModel: network
net_id: netId
@@ -391,12 +562,14 @@ net_id__CloudapiComputeChangeIpParamsModel: net_id
net_id__LBNodeAPIResultNM: networkId
net_ip: network
net_ip__CloudapiExtnetListParamsModel: network
-net_mask: netmask
-net_mask__CloudapiExtnetGetResultModel: prefix
-net_mask__CloudapiVinsGetResultModel: netMask
-net_mask__InterfaceForComputeGetAPIResultNM: netMask
-net_mask__InterfaceForComputeListAPIResultNM: netMask
-net_mask__VNFDevInterfaceAPIResultNM: netMask
+net_mapping: netmap
+net_prefix: netmask
+net_prefix__CloudapiExtnetGetResultModel: prefix
+net_prefix__CloudapiVinsGetResultModel: netMask
+net_prefix__InterfaceForComputeGetAPIResultNM: netMask
+net_prefix__InterfaceForComputeListAPIResultNM: netMask
+net_prefix__VINSExtNetAPIResultNM: prefixlen
+net_prefix__VNFDevInterfaceAPIResultNM: netMask
net_type: netType
net_type__CloudapiComputeChangeIpParamsModel: net_type
network_ids: networkIds
@@ -406,8 +579,13 @@ network_plugin: networkPlugin
network_plugin__CloudapiK8ciListDeletedParamsModel: netPlugins
network_plugin__CloudapiK8ciListParamsModel: netPlugins
network_plugins: networkPlugins
+new_mac: new_mac_address
+new_name: new_name
+new_vm_name__CloudapiComputeMoveToRgParamsModel: name
+new_vm_uuid: new_vm_uuid
node_boot_disk_size_gb__CloudapiK8sWorkersGroupGetByNameResultModel: disk
node_boot_disk_size_gb__K8sNodeGroupAPIResultNM: disk
+node_count__CloudapiK8sWorkerAddParamsModel: num
node_count__CloudapiK8sWorkersGroupAddParamsModel: workerNum
node_count__CloudapiK8sWorkersGroupGetByNameResultModel: num
node_count__K8sNodeGroupAPIResultNM: num
@@ -417,9 +595,16 @@ node_cpu_count__K8sNodeGroupAPIResultNM: cpu
node_disk_size_gb__CloudapiK8sWorkersGroupAddParamsModel: workerDisk
node_groups: k8sGroups
node_id: nodeId
+node_id__CloudbrokerAuditListParamsModel: node_id
+node_id__CloudbrokerNodeAddSshIdentityParamsModel: node_id
+node_id__CloudbrokerNodeGetSshIdentityParamsModel: node_id
+node_id__CloudbrokerNodeUpdateDescriptionParamsModel: nid
+node_ids: nodeIds
+node_ids__AuditAPIResultNM: node_ids
node_ram_size_mb__CloudapiK8sWorkersGroupAddParamsModel: workerRam
node_ram_size_mb__CloudapiK8sWorkersGroupGetByNameResultModel: ram
node_ram_size_mb__K8sNodeGroupAPIResultNM: ram
+nodes: vfs
ntp_servers: ntp
numa_affinity: numaAffinity
numa_node_id: numaNodeId
@@ -429,6 +614,8 @@ os_user_name__CloudapiImageCreateParamsModel: username
os_user_name__CloudapiImageGetResultModel: username
os_user_name__ImageForListAPIResultNM: username
os_users: osUsers
+os_users__CloudbrokerComputeStopMigrationInParamsModel: os_users
+os_version: os_version
other_node: otherNode
other_node_indirect: otherNodeIndirect
other_node_indirect_soft: otherNodeIndirectSoft
@@ -446,18 +633,34 @@ parent_service_id: parentSrvId
parent_service_type: parentSrvType
part_of_k8s: partK8s
password: password
+password__CloudbrokerUserGetResultModel: passwd
password__DiskForCAComputeGetAPIResultNM: passwd
password__DiskForListUnattachedAPIResultNM: passwd
-pci_slot: pciSlot
-pci_slot__DiskForCAComputeGetAPIResultNM: pci_slot
+password__UserAPIResultNM: passwd
+path: path
+pci_device_id: deviceId
+pci_slot_num: pciSlot
+pci_slot_num__DiskForCAComputeGetAPIResultNM: pci_slot
+pci_slot_num__VGPUAPIResultNM: pciSlot
+pci_slot_num_hex: pci_slot
+pci_slot_num_hex__CloudapiComputeDiskAddParamsModel: pci_slot
permanently: permanently
+pgpu_id: pgpuid
+pgpu_id__CloudapiVgpuListParamsModel: pgpuId
+pgpu_mode__CloudapiVgpuListParamsModel: mode
+pgpu_mode__VGPUAPIResultNM: mode
+pgpu_processor_type__CloudapiVgpuListParamsModel: type
+pgpu_processor_type__VGPUAPIResultNM: type
pinned_to_stack: pinnedToStack
policy: policy
pool_id: poolId
+pool_names: pool_names
pools: pools
port: port
port__CloudapiLbFrontendBindParamsModel: bindingPort
port__CloudapiLbFrontendBindingUpdateParamsModel: bindingPort
+port_range_max: port_range_max
+port_range_min: port_range_min
pre_reservation_count: preReservationsNum
pre_reservations: pre-reservations
preferred_cpu_cores: preferredCpu
@@ -465,16 +668,20 @@ present_to: presentTo
primary: primary
primary_node: primaryNode
primary_vnfdev_id: priVnfDevId
+profile_id: profileId
+progress_percent: progress_percent
+protected: protected
protocol: protocol
protocol__CloudapiComputePfwAddParamsModel: proto
protocol__CloudapiComputePfwDelParamsModel: proto
+protocol__CloudapiVinsNatRuleAddParamsModel: proto
provider_name: provider_name
-pub_key: pubkey
public: public
-public_ip_count: CU_I
-public_ip_count_quota: maxNumPublicIP
+public_keys: public_keys
public_port_end: publicPortEnd
+public_port_end__CloudapiVinsNatRuleAddParamsModel: extPortEnd
public_port_start: publicPortStart
+public_port_start__CloudapiVinsNatRuleAddParamsModel: extPortStart
pure_virtual: pureVirtual
purge_attempt_count: purgeAttempts
purge_timestamp: purgeTime
@@ -483,6 +690,7 @@ queues: queues
quotas: resourceLimits
ram_size_mb: ram
ram_size_mb__TenantQuotasAPIResultNM: CU_M
+ram_size_mb__TenantQuotasForResourceConsumptionAPIResultNM: CU_M
ram_size_quota_mb: maxMemoryCapacity
ram_size_total_mb: ramTotal
read_bytes_sec: read_bytes_sec
@@ -493,16 +701,21 @@ reality_device_number: realityDeviceNumber
recursively__CloudapiRgDeleteParamsModel: force
redundant: redundant
reference_id: referenceId
+remote_group_id: remote_group_id
+remote_ip_prefix: remote_ip_prefix
replication: replication
request_datetime_iso8601: _ttl
-request_timestamp: Time
-request_timestamp__CloudapiAuditGetResultModel: timestamp
-request_timestamp_end: timestampTo
-request_timestamp_start: timestampAt
+request_id: request_id
+request_timestamp__AuditAPIResultNM: timestamp
+request_timestamp_end__CloudapiAuditListParamsModel: timestamp_to
+request_timestamp_end__CloudbrokerAuditListParamsModel: timestamp_to
+request_timestamp_start__CloudapiAuditListParamsModel: timestamp_at
+request_timestamp_start__CloudbrokerAuditListParamsModel: timestamp_at
res_id: resId
res_name: resName
rescue_cd: rescuecd
reservations: reservations
+reserved: Reserved
reserved_cpu_cores: reservedNodeCpus
resource_types: resourceTypes
resources: resources
@@ -511,16 +724,32 @@ result: result
rg: rgACL
rg__K8sACLAPIResultNM: rgAcl
rg_id: rgId
+rg_id__AuditAPIResultNM: resgroup_id
+rg_id__CloudapiAuditListParamsModel: resgroup_id
+rg_id__CloudapiRgAddStoragePolicyParamsModel: resgroup_id
+rg_id__CloudapiRgDelStoragePolicyParamsModel: resgroup_id
+rg_id__CloudapiSepListAvailableSepAndPoolsParamsModel: rg_id
+rg_id__CloudapiStoragePolicyListParamsModel: resgroup_id
+rg_id__CloudapiVfpoolListParamsModel: rgAccess
+rg_id__CloudbrokerAuditListParamsModel: resgroup_id
+rg_id__CloudbrokerRgAddStoragePolicyParamsModel: resgroup_id
+rg_id__CloudbrokerRgDelStoragePolicyParamsModel: resgroup_id
+rg_id__CloudbrokerStoragePolicyListParamsModel: resgroup_id
rg_ids: rgAccess
+rg_ids__TenantIDsAPIResultNM: resgroups
rg_name: rgName
+rgs__CloudapiUserBriefResultModel: RGs
rise: rise
role: role
roles: roles
route_id: routeId
routes: routes
rule_id: ruleId
+rule_id__CloudapiSecurityGroupDeleteRuleParamsModel: rule_id
+rule_id__CloudbrokerSecurityGroupDeleteRuleParamsModel: rule_id
rules: rules
rx_queue_size: rx_queue_size
+safe: safe
same_node: sameNode
same_node_soft: sameNodeSoft
sdn: sdn
@@ -531,17 +760,43 @@ secondary: secondary
secondary_node: secondaryNode
secondary_vnfdev_id: secVnfDevId
secret: secret
+security_group_id: security_group_id
+security_group_ids: security_groups
+security_group_mode: enable_secgroups
self_volume_id: selfVolumeId
send_access_emails: sendAccessEmails
sep_id: sepId
+sep_id__AuditAPIResultNM: sep_id
+sep_id__CloudapiAuditListParamsModel: sep_id
+sep_id__CloudapiComputeCloneParamsModel: sep_id
sep_id__CloudapiDisksCreateParamsModel: sep_id
sep_id__CloudapiK8sWorkersGroupAddParamsModel: workerSepId
+sep_id__CloudapiStoragePolicyListParamsModel: sep_id
+sep_id__CloudbrokerAuditListParamsModel: sep_id
+sep_id__CloudbrokerComputeCloneParamsModel: sep_id
+sep_id__CloudbrokerDisksMigrateParamsModel: sep_id
+sep_id__CloudbrokerStoragePolicyAddPoolParamsModel: sep_id
+sep_id__CloudbrokerStoragePolicyDeletePoolParamsModel: sep_id
+sep_id__CloudbrokerStoragePolicyListParamsModel: sep_id
+sep_id__SEPPoolsAPIParamsNM: sep_id
+sep_id__SEPPoolsAPIResultNM: sep_id
sep_name: sepName
+sep_name__SEPPoolsAPIResultNM: sep_name
sep_pool_name: pool
sep_pool_name__CloudapiBserviceGroupAddParamsModel: sepPool
sep_pool_name__CloudapiBserviceGroupGetResultModel: poolName
+sep_pool_name__CloudapiComputeCloneParamsModel: pool_name
sep_pool_name__CloudapiImageCreateParamsModel: poolName
sep_pool_name__CloudapiK8sWorkersGroupAddParamsModel: workerSepPool
+sep_pool_name__CloudapiStoragePolicyListParamsModel: pool_name
+sep_pool_name__CloudbrokerComputeCloneParamsModel: pool_name
+sep_pool_name__CloudbrokerDisksMigrateParamsModel: pool_name
+sep_pool_name__CloudbrokerStoragePolicyAddPoolParamsModel: pool_name
+sep_pool_name__CloudbrokerStoragePolicyDeletePoolParamsModel: pool_name
+sep_pool_name__CloudbrokerStoragePolicyListParamsModel: pool_name
+sep_pools: access_seps_pools
+sep_pools__ResourceCountersAPIResultNM: seps
+sep_pools__StoragePolicyCountersAPIResultNM: seps
sep_type: sepType
seq_no: seqNo
server_default_settings: serverDefaultSettings
@@ -549,6 +804,9 @@ server_name: serverName
server_settings: serverSettings
servers: servers
service_account: serviceAccount
+service_account__CloudbrokerUserGetResultModel: serviceaccount
+service_account__CloudbrokerUserListParamsModel: serviceaccount
+service_account__UserAPIResultNM: serviceaccount
shared: shareable
shared__CloudapiDisksListDeletedParamsModel: shared
shared__CloudapiDisksListParamsModel: shared
@@ -572,41 +830,82 @@ snapshot_sets: snapSets
snapshot_timestamp: snapshotTimestamp
snapshots: snapshots
sort_by: sortBy
-ssh_key: sshkey
-ssh_key__CloudapiBserviceCreateParamsModel: sshKey
-ssh_key__CloudapiBserviceGetResultModel: sshKey
-ssh_user: sshUser
+sort_by__CloudapiAuditListParamsModel: sort_by
+sort_by__CloudapiSecurityGroupListParamsModel: sort_by
+sort_by__CloudapiStoragePolicyListParamsModel: sort_by
+sort_by__CloudapiTrunkListParamsModel: sort_by
+sort_by__CloudbrokerAuditListParamsModel: sort_by
+sort_by__CloudbrokerComputeMigrateStorageListParamsModel: sort_by
+sort_by__CloudbrokerSecurityGroupListParamsModel: sort_by
+sort_by__CloudbrokerStoragePolicyListParamsModel: sort_by
+source_stack_id: sourceStackId
+source_type: source_type
+source_value: source_value
+ssh_public_key: pubkey
+ssh_public_key__CloudapiBserviceCreateParamsModel: sshKey
+ssh_public_key__CloudapiBserviceGetResultModel: sshKey
+ssh_public_key__VNFDevMGMTConfigAPIResultNM: sshkey
+ssh_user_name: sshUser
stack_id: stackId
stage: stage
start: start
start__CloudapiComputeRedeployParamsModel: autoStart
start_timeout: timeoutStart
started: started
+started__VMStatusCountersAPIResultNM: Started
+state: state
stateless_sep_id: statelessSepId
stateless_sep_type: statelessSepType
status: status
status_code: statuscode
-status_code__UserAuditAPIResultNM: Status Code
+stop_replication: stopReplication
stopped: stopped
+stopped__VMStatusCountersAPIResultNM: Stopped
storage_id: storageId
+storage_policies: storage_policy
+storage_policies__CloudapiRgUpdateParamsModel: storage_policies
+storage_policies__ResourceCountersAPIResultNM: policies
+storage_policy_id: storage_policy_id
+storage_policy_ids: storage_policy_ids
+storage_policy_quotas__CloudapiRgCreateParamsModel: storage_policies
+storage_policy_quotas__CloudbrokerAccountCreateParamsModel: storage_policies
storage_size_gb: CU_DM
+storage_size_gb__CloudapiRgAddStoragePolicyParamsModel: limit
+storage_size_gb__CloudbrokerAccountAddStoragePolicyParamsModel: limit
+storage_size_gb__CloudbrokerRgAddStoragePolicyParamsModel: limit
+storage_size_gb__StoragePolicyQuotasAPIParamsNM: limit
+storage_size_gb__StoragePolicyQuotasAPIResultNM: limit
+storage_size_gb_by_disk_max__ResourceCountersAPIResultNM: disksizemax
+storage_size_gb_by_disk_max__StorageCountersAPIResultNM: disksizemax
+storage_size_gb_by_disk_max__StoragePolicyCountersAPIResultNM: disksizemax
+storage_size_gb_by_real_usage__ResourceCountersAPIResultNM: disksize
+storage_size_gb_by_real_usage__StorageCountersAPIResultNM: disksize
+storage_size_gb_by_real_usage__StoragePolicyCountersAPIResultNM: disksize
storage_size_quota_gb: maxVDiskCapacity
+storage_size_quota_gb__StoragePolicyCountersAPIResultNM: limit
sysctl_params: sysctlParams
system: system
system_name: IS
+system_name__PCIDeviceAPIResultNM: systemName
tags: tags
taints: taints
target: target
+target_dev: target_dev
+target_disk_id: targetDiskId
target_image_id: targetId
+target_stack_id: targetStackId
task_guid: taskId
tech_status: techStatus
timestamp: timestamp
+to_clean: to_clean
topology: topology
+total_bytes : end
total_bytes_sec: total_bytes_sec
total_bytes_sec_max: total_bytes_sec_max
total_disks_size: totalDisksSize
total_iops_sec: total_iops_sec
total_iops_sec_max: total_iops_sec_max
+traffic_direction: direction
trunk_vlan_ids: trunk_tags
tx_mode: txmode
tx_queue_size: tx_queue_size
@@ -615,41 +914,66 @@ type__CloudapiImageListParamsModel: typeImage
types: types
unc_path: UNCPath
uniq_pools: uniqPools
+updated_after_timestamp__CloudapiSecurityGroupListParamsModel: updated_min
+updated_after_timestamp__CloudbrokerSecurityGroupListParamsModel: updated_min
+updated_before_timestamp__CloudapiSecurityGroupListParamsModel: updated_max
+updated_before_timestamp__CloudbrokerSecurityGroupListParamsModel: updated_max
updated_by: updatedBy
+updated_by__SecurityGroupAPIResultNM: updated_by
+updated_by__TrunkAPIResultNM: updated_by
updated_timestamp: updatedTime
+updated_timestamp__SecurityGroupAPIResultNM: updated_at
+updated_timestamp__TrunkAPIResultNM: updated_at
+usage: usage
+use_unsafe: use_unsafe
user: user
user_group_id: userGroupId
user_managed: userManaged
user_name: username
+user_name__AuditAPIResultNM: user
user_name__CloudapiAccountAddUserParamsModel: userId
user_name__CloudapiAccountDeleteUserParamsModel: userId
user_name__CloudapiAccountUpdateUserParamsModel: userId
-user_name__CloudapiAuditGetResultModel: user
+user_name__CloudapiAuditListParamsModel: user
user_name__CloudapiComputeUserGrantParamsModel: userName
user_name__CloudapiComputeUserRevokeParamsModel: userName
user_name__CloudapiComputeUserUpdateParamsModel: userName
user_name__CloudapiRgAccessGrantParamsModel: user
user_name__CloudapiRgAccessRevokeParamsModel: user
user_name__CloudapiUserApiListParamsModel: userId
+user_name__CloudbrokerAuditListParamsModel: user
+user_name__CloudbrokerUserBlockParamsModel: user_id
+user_name__CloudbrokerUserGetParamsModel: userId
+user_name__CloudbrokerUserUnblockParamsModel: user_id
user_name__GuestAgentAPIResultNM: user
uuid: uuid
valid: valid
value: value
version: version
+vfpool_id__CloudapiVfpoolGetParamsModel: id
+vfs: vfsInfo
+vgpu_id: vgpuId
+vgpu_ids__VMAPIResultNM: vgpus
vgpus: vgpus
vins_count: vinsConnected
vins_count__CloudapiAccountGetResultModel: vinses
vins_id: vinsId
+vins_id__AuditAPIResultNM: vins_id
+vins_id__CloudapiAuditListParamsModel: vins_id
+vins_id__CloudapiVinsMigrateToZoneParamsModel: net_id
+vins_id__CloudbrokerAuditListParamsModel: vins_id
+vins_id__CloudbrokerVinsUpdateParamsModel: vins_id
vins_ids: vins
vins_ids__CloudapiBserviceGroupAddParamsModel: vinses
vins_ids__CloudapiBserviceGroupGetResultModel: vinses
vins_ids__CloudapiBserviceGroupUpdateVinsParamsModel: vinses
+vins_ids__CloudapiZoneGetResultModel: vinsIds
vins_name: vinsName
virtual: virtual
-virtual_image_id: virtualImageId
virtual_image_id__CloudapiImageLinkParamsModel: imageId
-virtual_image_name: virtualImageName
vlan_id: vlanId
+vlan_ids: trunkTags
+vlan_ids__CloudapiTrunkListParamsModel: trunk_tags
vm: computeACL
vm_ci_id: computeciId
vm_count__BServiceGroupAPIResultNM: computes
@@ -658,21 +982,41 @@ vm_count__CloudapiBserviceGroupResizeParamsModel: count
vm_counts: computes
vm_features: computeFeatures
vm_id: computeId
+vm_id__AuditAPIResultNM: compute_id
+vm_id__CloudapiAuditListParamsModel: compute_id
+vm_id__CloudapiComputeAbortSharedSnapshotMergeParamsModel: compute_id
vm_id__CloudapiComputeChangeIpParamsModel: compute_id
+vm_id__CloudapiComputeChangeMacParamsModel: compute_id
+vm_id__CloudapiComputeChangeMtuParamsModel: compute_id
+vm_id__CloudapiComputeChangeSecurityGroupsParamsModel: compute_id
+vm_id__CloudapiComputeCloneAbortParamsModel: compute_id
+vm_id__CloudapiComputeGuestAgentDisableParamsModel: compute_id
+vm_id__CloudapiComputeGuestAgentEnableParamsModel: compute_id
+vm_id__CloudapiComputeGuestAgentExecuteParamsModel: compute_id
+vm_id__CloudapiComputeGuestAgentFeatureUpdateParamsModel: compute_id
vm_id__CloudapiDisksGetResultModel: machineId
+vm_id__CloudbrokerAuditListParamsModel: compute_id
+vm_id__CloudbrokerComputeChangeSecurityGroupsParamsModel: compute_id
+vm_id__CloudbrokerComputeCloneAbortParamsModel: compute_id
+vm_id__CloudbrokerComputeStartMigrationOutParamsModel: compute_id
vm_id__DHCPReservationAPIResultNM: vmId
vm_id__DiskForListAndListDeletedAPIResultNM: machineId
vm_id__NATRuleAPIResultNM: vmId
+vm_id__VGPUAPIResultNM: vmid
+vm_id__VirtualFunctionAPIResultNM: vmId
vm_ids: vms
vm_ids__CloudapiDpdknetListParamsModel: computeIds
+vm_ids__CloudapiZoneGetResultModel: computeIds
vm_ids__DPDKNetAPIResultNM: computeIds
vm_ids__RouteAPIResultNM: computeIds
vm_name__CloudapiDisksGetResultModel: machineName
vm_name__DiskForListAndListDeletedAPIResultNM: machineName
+vm_name__NATRuleAPIResultNM: vmName
vms__CloudapiBserviceGetResultModel: computes
vms__CloudapiBserviceGroupGetResultModel: computes
vms__CloudapiDisksGetResultModel: computes
vms__CloudapiK8sWorkersGroupGetByNameResultModel: detailedInfo
+vms__CloudapiUserBriefResultModel: Computes
vms__CloudapiVinsGetResultModel: computes
vms__DiskForListAndListDeletedAPIResultNM: computes
vms__K8sNodeGroupAPIResultNM: detailedInfo
@@ -682,6 +1026,7 @@ vnf_ids_by_type__CloudapiExtnetGetResultModel: vnfs
vnfdev: VNFDev
vnfdev_id: vnfdevId
vnfdev_id__CloudapiExtnetListParamsModel: vnfDevId
+vnfdev_id__CloudbrokerVnfdevMigrateAbortParamsModel: vnfdev_id
vnfs__CloudapiVinsGetResultModel: vnfs
volume_id: volumeId
vxlan_id: vxlanId
@@ -696,7 +1041,6 @@ worker_groups: workersGroups
worker_node_count: workerNum
worker_node_cpu_count: workerCpu
worker_node_disk_size_gb: workerDisk
-worker_node_driver: workerDriver
worker_node_id: workerId
worker_node_ram_size_mb: workerRam
worker_node_sep_id: workerSepId
@@ -705,6 +1049,18 @@ write_bytes_sec: write_bytes_sec
write_bytes_sec_max: write_bytes_sec_max
write_iops_sec: write_iops_sec
write_iops_sec_max: write_iops_sec_max
+xmpp: xmpp
zone_id: zoneId
+zone_id__CloudapiAccountListParamsModel: zone_id
+zone_id__CloudapiBserviceListParamsModel: zone_id
+zone_id__CloudapiComputeListParamsModel: zone_id
+zone_id__CloudapiExtnetListParamsModel: zone_id
+zone_id__CloudapiK8sListParamsModel: zone_id
+zone_id__CloudapiLbListParamsModel: zone_id
+zone_id__CloudapiVinsListParamsModel: zone_id
+zone_id__CloudapiVinsMigrateToZoneParamsModel: zone_id
+zone_id__CloudbrokerAccountListParamsModel: zone_id
zone_ids: zoneIds
+zones__AccountForCBAPIResultNM: zoneIds
zones__CloudapiAccountGetResultModel: zoneIds
+zones__CloudbrokerAccountGetResultModel: zoneIds
diff --git a/src/dynamix_sdk/api/path_mapping.yml b/src/dynamix_sdk/api/path_mapping.yml
index 524edaa..6d24202 100644
--- a/src/dynamix_sdk/api/path_mapping.yml
+++ b/src/dynamix_sdk/api/path_mapping.yml
@@ -2,6 +2,7 @@
access_grant: accessGrant
access_revoke: accessRevoke
add_user: addUser
+add_zone: addZone
affinity_label_remove: affinityLabelRemove
affinity_label_set: affinityLabelSet
affinity_relations: affinityRelations
@@ -12,37 +13,60 @@ anti_affinity_rule_add: antiAffinityRuleAdd
anti_affinity_rule_remove: antiAffinityRuleRemove
anti_affinity_rules_clear: antiAffinityRulesClear
api_list: apiList
+attach_gpu: attachGpu
+attach_pci_device: attachPciDevice
backend_create: backendCreate
backend_delete: backendDelete
backend_server_add: backendServerAdd
backend_server_delete: backendServerDelete
backend_server_update: backendServerUpdate
backend_update: backendUpdate
+boot_disk_set: bootDiskSet
cd_eject: cdEject
cd_insert: cdInsert
change_ip: changeIp
+change_link_state: changeLinkState
+change_mac: changeMac
compute_add: computeAdd
compute_remove: computeRemove
+config_reset: configReset
create_blank: createBlank
create_in_account: createInAccount
create_in_rg: createInRG
+create_template: createTemplate
create_virtual: createVirtual
+delete_accounts: deleteAccounts
delete_custom_fields: deleteCustomFields
delete_disks: deleteDisks
+delete_master_from_group: deleteMasterFromGroup
delete_user: deleteUser
+delete_worker_from_group: deleteWorkerFromGroup
+detach_gpu: detachGpu
+detach_pci_device: detachPciDevice
+disable_accounts: disableAccounts
disk_add: diskAdd
disk_attach: diskAttach
disk_del: diskDel
disk_detach: diskDetach
-disk_resize: diskResize
+disk_migrate: diskMigrate
+disk_switch_to_replication: diskSwitchToReplication
+dns_apply: dnsApply
+enable_accounts: enableAccounts
+ext_net_connect: extNetConnect
+ext_net_disconnect: extNetDisconnect
+ext_net_list: extNetList
frontend_bind: frontendBind
frontend_bind_delete: frontendBindDelete
frontend_binding_update: frontendBindingUpdate
frontend_create: frontendCreate
frontend_delete: frontendDelete
-get_audit: getAudit
get_config: getConfig
+get_console_url: getConsoleUrl
get_default: getDefault
+get_node_annotations: getNodeAnnotations
+get_node_labels: getNodeLabels
+get_node_taints: getNodeTaints
+get_resource_consumption: getResourceConsumption
get_url: getUrl
group_add: groupAdd
group_compute_remove: groupComputeRemove
@@ -60,18 +84,27 @@ ip_list: ipList
ip_release: ipRelease
ip_reserve: ipReserve
limit_io: limitIO
+list_available_sep_and_pools: listAvailableSepAndPools
list_deleted: listDeleted
list_types: listTypes
list_unattached: listUnattached
make_highly_available: makeHighlyAvailable
+migrate_to_zone: migrateToZone
+move_to_rg: moveToRg
+nat_rule_add: natRuleAdd
+nat_rule_del: natRuleDel
+nat_rule_list: natRuleList
net_attach: netAttach
net_detach: netDetach
pfw_add: pfwAdd
pfw_del: pfwDel
pfw_list: pfwList
pin_to_stack: pinToStack
+power_cycle: powerCycle
remove_def_net: removeDefNet
+remove_zone: removeZone
set_custom_fields: setCustomFields
+set_data: setData
set_def_net: setDefNet
snapshot_create: snapshotCreate
snapshot_delete: snapshotDelete
@@ -83,13 +116,16 @@ static_route_list: staticRouteList
tag_add: tagAdd
tag_remove: tagRemove
unpin_from_stack: unpinFromStack
+update_sysctl_params: updateSysctlParams
update_user: updateUser
+update_worker_nodes_meta_data: updateWorkerNodesMetaData
user_grant: userGrant
user_list: userList
user_revoke: userRevoke
user_update: userUpdate
vnfdev_redeploy: vnfdevRedeploy
vnfdev_restart: vnfdevRestart
+worker_add: workerAdd
worker_reset: workerReset
worker_restart: workerRestart
workers_group_add: workersGroupAdd
diff --git a/src/dynamix_sdk/api/system/_api.py b/src/dynamix_sdk/api/system/_api.py
index bc93d79..478a7df 100644
--- a/src/dynamix_sdk/api/system/_api.py
+++ b/src/dynamix_sdk/api/system/_api.py
@@ -1,6 +1,8 @@
import dynamix_sdk.base as _base
+from .info import *
from .usermanager import *
class SystemAPI(_base.BaseAPI):
+ info: SystemInfoAPI
usermanager: SystemUsermanagerAPI
diff --git a/src/dynamix_sdk/api/system/info/__init__.py b/src/dynamix_sdk/api/system/info/__init__.py
new file mode 100644
index 0000000..24a9928
--- /dev/null
+++ b/src/dynamix_sdk/api/system/info/__init__.py
@@ -0,0 +1 @@
+from ._api import *
diff --git a/src/dynamix_sdk/api/system/info/_api.py b/src/dynamix_sdk/api/system/info/_api.py
new file mode 100644
index 0000000..4554880
--- /dev/null
+++ b/src/dynamix_sdk/api/system/info/_api.py
@@ -0,0 +1,9 @@
+import dynamix_sdk.base as _base
+from .version import *
+
+
+class SystemInfoAPI(
+ _base.BaseAPI,
+ SystemInfoVersionProtocol,
+):
+ pass
diff --git a/src/dynamix_sdk/api/system/info/version.py b/src/dynamix_sdk/api/system/info/version.py
new file mode 100644
index 0000000..631dce3
--- /dev/null
+++ b/src/dynamix_sdk/api/system/info/version.py
@@ -0,0 +1,10 @@
+import dynamix_sdk.base as _base
+
+
+class SystemInfoVersionResultStr(_base.BaseAPIResultStr):
+ pass
+
+
+class SystemInfoVersionProtocol(_base.BaseGetAPIFunctionProtocol):
+ def version(self) -> SystemInfoVersionResultStr:
+ ...
diff --git a/src/dynamix_sdk/base.py b/src/dynamix_sdk/base.py
index 9864e49..351a514 100644
--- a/src/dynamix_sdk/base.py
+++ b/src/dynamix_sdk/base.py
@@ -28,6 +28,7 @@ from pydantic import (
import yaml
from dynamix_sdk.config import Config, ConfigWithAuth
+from dynamix_sdk.exceptions import RequestException
from dynamix_sdk.utils import HTTPMethod, gen_cls_name_from_url_path
@@ -98,9 +99,24 @@ class BaseGetAPIFunctionProtocol(BaseAPIFunctionProtocol):
pass
+class BaseDeleteAPIFunctionProtocol(BaseAPIFunctionProtocol):
+ pass
+
+
+class BasePatchAPIFunctionProtocol(BaseAPIFunctionProtocol):
+ pass
+
+
+class BasePutAPIFunctionProtocol(BaseAPIFunctionProtocol):
+ pass
+
+
base_proto_to_http_method: dict[type[BaseAPIFunctionProtocol], HTTPMethod] = {
BasePostAPIFunctionProtocol: HTTPMethod.POST,
BaseGetAPIFunctionProtocol: HTTPMethod.GET,
+ BaseDeleteAPIFunctionProtocol: HTTPMethod.DELETE,
+ BasePatchAPIFunctionProtocol: HTTPMethod.PATCH,
+ BasePutAPIFunctionProtocol: HTTPMethod.PUT,
}
@@ -328,6 +344,15 @@ def create_api_params_cls(
)
+def get_func_api_path(*, func_name: str, path_mapping: dict) -> str:
+ api_path_parts = []
+ for func_part in func_name.split('.'):
+ api_path_parts.append(
+ path_mapping.get(func_part, func_part)
+ )
+ return f'/{"/".join(api_path_parts)}'
+
+
APIParamsP = ParamSpec('APIParamsP')
APIResultT = TypeVar(
'APIResultT',
@@ -337,10 +362,9 @@ APIResultT = TypeVar(
class BaseAPI(ABC):
_config: Config
- _base_api_path: None | str
- _path_mapping_dict: dict[str, str] = path_mapping_dict
- _last_call_api_path: None | str = None
+ _parent_api_group_names: list[str]
_name_mapping_dict: dict[str, str] = name_mapping_dict
+ _path_mapping_dict: dict[str, str] = path_mapping_dict
_post_json: bool = True
def __init_subclass__(
@@ -359,31 +383,26 @@ class BaseAPI(ABC):
def __init__(
self,
config: Config,
- base_api_path: None | str = None
+ parent_api_group_names: None | list = None,
):
self._config = config
- self._base_api_path = base_api_path
+ self._parent_api_group_names = parent_api_group_names or []
def __getattribute__(self, name: str) -> Any:
if name.startswith('_'):
return super().__getattribute__(name)
else:
- path_part = self._path_mapping_dict.get(name, name)
if name in self.__annotations__:
annotation = self.__annotations__[name]
if issubclass(annotation, BaseAPI):
api_cls = annotation
return api_cls(
config=self._config,
- base_api_path=(
- f'{self._base_api_path or ""}/{path_part}'
+ parent_api_group_names=(
+ self._parent_api_group_names + [name]
)
)
else:
- self._last_call_api_path = (
- f'{self._base_api_path or ""}/{path_part}'
- )
-
attr_value = super().__getattribute__(name)
if not inspect.ismethod(attr_value):
raise ValueError
@@ -406,16 +425,21 @@ class BaseAPI(ABC):
if not isinstance(protocol_method, MethodType):
raise TypeError
+ func_name_parts = (
+ self._parent_api_group_names + [protocol_method.__name__]
+ )
+ func_name = '.'.join(func_name_parts)
+
def api_function(
*args: APIParamsP.args,
**kwargs: APIParamsP.kwargs,
):
config = self._config
- if self._last_call_api_path:
- api_path = self._last_call_api_path
- else:
- raise ValueError
+ api_path = get_func_api_path(
+ func_name=func_name,
+ path_mapping=self._path_mapping_dict,
+ )
api_params_cls_name = gen_api_params_cls_name(
api_path=api_path,
@@ -476,7 +500,12 @@ class BaseAPI(ABC):
match http_method:
case HTTPMethod.GET:
req_params = model_data
- case HTTPMethod.POST:
+ case (
+ HTTPMethod.POST
+ | HTTPMethod.DELETE
+ | HTTPMethod.PATCH
+ | HTTPMethod.PUT
+ ):
if self._post_json:
req_json = model_data
else:
@@ -494,23 +523,33 @@ class BaseAPI(ABC):
).prepare()
attempts = config.http503_attempts
- with requests.Session() as session:
- while True:
- http_response = session.send(
- request=http_request,
- verify=config.verify_ssl,
- )
+ try:
+ with requests.Session() as session:
+ while True:
+ http_response = session.send(
+ request=http_request,
+ verify=config.verify_ssl,
+ )
- if http_response.status_code == 503:
- if attempts < 1:
- break
+ if http_response.status_code == 503:
+ if attempts < 1:
+ break
+ else:
+ attempts -= 1
+ time.sleep(config.http503_attempts_interval)
else:
- attempts -= 1
- time.sleep(config.http503_attempts_interval)
- else:
- break
+ break
- http_response.raise_for_status()
+ http_response.raise_for_status()
+ except requests.exceptions.RequestException as e:
+ if config.wrap_request_exceptions:
+ raise RequestException(
+ orig_exception=e,
+ func_name=func_name,
+ func_kwargs=kwargs,
+ )
+ else:
+ raise e
api_result_context = APIResultContext(
api_params=api_params,
@@ -553,4 +592,10 @@ class BaseAPI(ABC):
return api_result
+ api_function.__name__ = func_name.replace('.', '__')
+
+ if self._config.f_decorators:
+ for decorator in reversed(self._config.f_decorators):
+ api_function = decorator(api_function)
+
return api_function
diff --git a/src/dynamix_sdk/bvs.py b/src/dynamix_sdk/bvs.py
index 45d92dc..8d4fa49 100644
--- a/src/dynamix_sdk/bvs.py
+++ b/src/dynamix_sdk/bvs.py
@@ -1,4 +1,5 @@
from dynamix_sdk import base, config
+from dynamix_sdk.utils import F_DECORATOR
class BVSAuth(config.AuthenticatorProtocol):
@@ -20,6 +21,8 @@ class BVSAuth(config.AuthenticatorProtocol):
http503_attempts: int = 10,
http503_attempts_interval: int = 5,
result_extra_allow: bool = True,
+ wrap_request_exceptions: bool = False,
+ f_decorators: list[F_DECORATOR] | None = None,
):
self._config = config.BaseConfigWithDomain(
url=url,
@@ -28,6 +31,8 @@ class BVSAuth(config.AuthenticatorProtocol):
http503_attempts=http503_attempts,
http503_attempts_interval=http503_attempts_interval,
result_extra_allow=result_extra_allow,
+ wrap_request_exceptions=wrap_request_exceptions,
+ f_decorators=f_decorators,
)
self.client_id = client_id
diff --git a/src/dynamix_sdk/config.py b/src/dynamix_sdk/config.py
index 5f92b00..6d4cdc9 100644
--- a/src/dynamix_sdk/config.py
+++ b/src/dynamix_sdk/config.py
@@ -2,6 +2,8 @@ from dataclasses import dataclass
import re
from typing import Protocol
+from dynamix_sdk.utils import F_DECORATOR
+
@dataclass(kw_only=True)
class Config:
@@ -11,6 +13,8 @@ class Config:
http503_attempts: int = 10
http503_attempts_interval: int = 5
result_extra_allow: bool = False
+ wrap_request_exceptions: bool = False
+ f_decorators: list[F_DECORATOR] | None = None
def get_api_url(self, api_path: str):
substitutions = re.findall(r'\[\w+\]', api_path)
diff --git a/src/dynamix_sdk/decs3o.py b/src/dynamix_sdk/decs3o.py
index cdac3c5..5a2b1f5 100644
--- a/src/dynamix_sdk/decs3o.py
+++ b/src/dynamix_sdk/decs3o.py
@@ -1,4 +1,5 @@
from dynamix_sdk import base, config
+from dynamix_sdk.utils import F_DECORATOR
class DECS3OAuth(config.AuthenticatorProtocol):
@@ -15,6 +16,8 @@ class DECS3OAuth(config.AuthenticatorProtocol):
http503_attempts: int = 10,
http503_attempts_interval: int = 5,
result_extra_allow: bool = True,
+ wrap_request_exceptions: bool = False,
+ f_decorators: list[F_DECORATOR] | None = None,
):
self._config = config.Config(
base_api_path='/v1',
@@ -23,6 +26,8 @@ class DECS3OAuth(config.AuthenticatorProtocol):
http503_attempts=http503_attempts,
http503_attempts_interval=http503_attempts_interval,
result_extra_allow=result_extra_allow,
+ wrap_request_exceptions=wrap_request_exceptions,
+ f_decorators=f_decorators,
)
self.client_id = client_id
diff --git a/src/dynamix_sdk/dynamix.py b/src/dynamix_sdk/dynamix.py
index 2d91835..a902178 100644
--- a/src/dynamix_sdk/dynamix.py
+++ b/src/dynamix_sdk/dynamix.py
@@ -1,9 +1,15 @@
+import json
+from warnings import warn
from dynamix_sdk import config
+from dynamix_sdk.exceptions import IncompatibleAPIError
+from dynamix_sdk.utils import F_DECORATOR
from .api import API
class Dynamix:
_config: config.ConfigWithAuth
+ _COMPATIBLE_DX_BUILD = 1145
+ _dx_build: int
def __init__(
self,
@@ -14,6 +20,9 @@ class Dynamix:
http503_attempts: int = 10,
http503_attempts_interval: int = 5,
result_extra_allow: bool = False,
+ ignore_api_compatibility: bool = False,
+ wrap_request_exceptions: bool = False,
+ f_decorators: list[F_DECORATOR] | None = None,
):
self._config = config.ConfigWithAuth(
base_api_path='/restmachine',
@@ -23,8 +32,39 @@ class Dynamix:
http503_attempts=http503_attempts,
http503_attempts_interval=http503_attempts_interval,
result_extra_allow=result_extra_allow,
+ wrap_request_exceptions=wrap_request_exceptions,
+ f_decorators=f_decorators,
)
+ self._dx_build = self._get_dx_build()
+ self._check_dx_compatibility(ignore_api_compatibility)
@property
def api(self):
return API(config=self._config)
+
+ @property
+ def compatible_dx_build(self) -> int:
+ return self._COMPATIBLE_DX_BUILD
+
+ @property
+ def dx_build(self) -> int:
+ return self._dx_build
+
+ def _get_dx_build(self) -> int:
+ result = self.api.system.info.version()
+ dx_build = json.loads(result.replace("'", '"'))['build']
+ if not isinstance(dx_build, int):
+ raise TypeError(f'DX build must be an int, got {type(dx_build)}')
+ return dx_build
+
+ def _check_dx_compatibility(self, ignore_api_compatibility: bool):
+ if self.dx_build != self.compatible_dx_build:
+ message = (
+ f'Incompatible Dynamix build. '
+ f'Dynamix build: {self.dx_build}. '
+ f'Compatible build: {self.compatible_dx_build}'
+ )
+ if ignore_api_compatibility:
+ warn(message=message)
+ else:
+ raise IncompatibleAPIError(message=message)
diff --git a/src/dynamix_sdk/exceptions.py b/src/dynamix_sdk/exceptions.py
new file mode 100644
index 0000000..024cdd7
--- /dev/null
+++ b/src/dynamix_sdk/exceptions.py
@@ -0,0 +1,29 @@
+import requests
+
+
+class IncompatibleAPIError(Exception):
+ """Raised when the API is incompatible"""
+ message: str
+
+ def __init__(
+ self,
+ message: str,
+ ):
+ self.message = message
+ super().__init__(message)
+
+
+class RequestException(Exception):
+ orig_exception: requests.exceptions.RequestException
+ func_name: str
+ func_kwargs: None | dict = None
+
+ def __init__(
+ self,
+ orig_exception: requests.exceptions.RequestException,
+ func_name: str,
+ func_kwargs: None | dict,
+ ):
+ self.orig_exception = orig_exception
+ self.func_name = func_name
+ self.func_kwargs = func_kwargs
diff --git a/src/dynamix_sdk/utils.py b/src/dynamix_sdk/utils.py
index a83c365..e96aaaf 100644
--- a/src/dynamix_sdk/utils.py
+++ b/src/dynamix_sdk/utils.py
@@ -1,9 +1,14 @@
from enum import Enum, auto as enum_auto
-from typing import Any
-from collections.abc import Sequence
+from typing import Any, ParamSpec, TypeVar
+from collections.abc import Callable, Sequence
+
+
+P = ParamSpec('P')
+T = TypeVar('T')
JSON = int | str | bool | list['JSON'] | dict[str, 'JSON'] | None
+F_DECORATOR = Callable[[Callable[P, T]], Callable[P, T]]
class AutoNameEnum(Enum):
@@ -17,12 +22,15 @@ class EmptyStr(str, Enum):
class HTTPMethod(str, AutoNameEnum):
+ DELETE = enum_auto()
+ PATCH = enum_auto()
+ PUT = enum_auto()
POST = enum_auto()
GET = enum_auto()
def gen_cls_name_from_url_path(url_path: str, postfix: str = ''):
- parts = url_path.strip('/').replace('-', '').split('/')
+ parts = url_path.strip('/').replace('-', '').replace('_', '/').split('/')
base = ''.join(f'{p[0].upper()}{p[1:]}' for p in parts)
return f'{base}{postfix}'
diff --git a/tests/local/test_class_naming.py b/tests/local/test_class_naming.py
index 6a7ed65..64281d7 100644
--- a/tests/local/test_class_naming.py
+++ b/tests/local/test_class_naming.py
@@ -4,17 +4,19 @@ from dynamix_sdk.utils import gen_cls_name_from_url_path
def test_api_class_naming(api_groups):
for api_group in api_groups:
- correct_class_name = f'{api_group.name.capitalize()}API'
+ correct_class_name = gen_cls_name_from_url_path(
+ url_path=api_group.name,
+ postfix='API',
+ )
assert api_group.cls.__qualname__ == correct_class_name, (
f'\nAPI group: {api_group.name}'
f'\nCorrect API class name: {correct_class_name}'
)
for api_subgroup in api_group.subgroups:
- correct_class_name = (
- f'{api_group.name.capitalize()}'
- f'{api_subgroup.name.capitalize()}'
- f'API'
+ correct_class_name = gen_cls_name_from_url_path(
+ url_path=f'{api_group.name}/{api_subgroup.name}',
+ postfix='API',
)
assert api_subgroup.cls.__qualname__ == correct_class_name, (
f'\nAPI group: {api_group.name}'
diff --git a/tests/test_with_api_definition.py b/tests/test_with_api_definition.py
index f02eb77..00bf90b 100644
--- a/tests/test_with_api_definition.py
+++ b/tests/test_with_api_definition.py
@@ -15,21 +15,257 @@ from tests.conftest import SDKFunction
expected_inconsistencies: list[str] = [
+ '''cloudapi.sep.list_available_sep_and_pools: result type must be child of BaseAPIParamsNestedModel.''', # noqa E501
+ '''cloudapi.k8s.create: parameter "lb_sysctl_params", target_annotation = dict[str, str], expected_annot = ''', # noqa E501
+ 'cloudbroker.storage_policy.get: result type must be child of BaseAPIParamsNestedModel.', # noqa: E501
+ 'cloudbroker.storage_policy.add_pool: result type must be child of BaseAPIParamsNestedModel.', # noqa: E501
+ '''cloudapi.lb.create: parameter "sysctl_params", target_annotation = dict[str, str], expected_annot = ''', # noqa E501
+ 'cloudbroker.storage_policy.delete_pool: result type must be child of BaseAPIParamsNestedModel.', # noqa: E501
+ 'cloudbroker.storage_policy.update: result type must be child of BaseAPIParamsNestedModel.', # noqa: E501
+ 'cloudapi.zone.list: result type must be child of BaseAPIParamsNestedModel.', # noqa: E501
+ 'cloudapi.storage_policy.get: result type must be child of BaseAPIParamsNestedModel.', # noqa: E501
+ '''cloudapi.compute.guest_agent_execute: parameter "args", target_annotation = dict[str, typing.Any], expected_annot = ''', # noqa: E501
'''cloudapi.image.create: API has parameter "asyncMode" but this SDK function doesn't have corresponding parameter.''', # noqa: E501
'''cloudapi.flipgroup.create: API has parameter "clientType" but this SDK function doesn't have corresponding parameter.''', # noqa: E501
'''cloudapi.k8s.create: API has parameter "oidcCertificate" but this SDK function doesn't have corresponding parameter.''', # noqa: E501
- 'cloudapi.k8s.create: annotation of parameter "lb_sysctl_params" must contain BaseAPIParamsNestedModel.', # noqa: E501
- 'cloudapi.user.get_audit: result type must be child of BaseAPIParamsNestedModel.', # noqa: E501
'cloudapi.disks.limit_io: API has parameter "iops" but this SDK function doesn\'t have corresponding parameter.', # noqa: E501
'cloudapi.bservice.group_stop: default value of parameter "force" must be None.', # noqa: E501
'cloudapi.bservice.group_stop: annotation of parameter "force" must be Union.', # noqa: E501
- 'cloudapi.compute.net_attach: result type must be child of BaseAPIResultBool.', # noqa: E501
'cloudapi.compute.net_attach: default value of parameter "mtu" must be 1500.', # noqa: E501
'cloudapi.disks.create: default value of parameter "size_gb" must be 10.',
'cloudapi.kvmx86.create: annotation of parameter "ci_user_data" must contain BaseAPIParamsNestedModel.', # noqa: E501
- 'cloudapi.lb.create: annotation of parameter "sysctl_params" must contain BaseAPIParamsNestedModel.', # noqa: E501
+ '''cloudapi.lb.update_sysctl_params: parameter "sysctl_params", target_annotation = dict[str, str], expected_annot = ''', # noqa: E501
+ '''cloudbroker.compute.start_migration_out: parameter "disk_mapping", target_annotation = dict[str, str], expected_annot = ''', # noqa E501
+ '''cloudbroker.compute.start_migration_out: parameter "cdrom_mapping", target_annotation = dict[str, str], expected_annot = ''', # noqa E501
+ '''cloudbroker.compute.start_migration_out: parameter "net_mapping", target_annotation = dict[str, dynamix_sdk.api._nested.params.NetMapConfigAPIParamsNM], expected_annot = ''', # noqa E501
+ 'cloudbroker.user.create: default value of parameter "password" must be strongpassword.', # noqa: E501
]
+type_mappings = {
+ 'integer': int,
+ 'string': str,
+ 'boolean': bool,
+ 'object': sdk_types.BaseAPIParamsNestedModel,
+ 'number': float,
+ 'dict': sdk_types.BaseAPIResultModel,
+ 'array': list,
+}
+
+
+def check_param(
+ *,
+ sdk_func_name: str,
+ sdk_func_params: dict[str, inspect.Parameter],
+ param_name: str,
+ param_def: dict,
+ required: bool,
+) -> list[str]:
+ inconsistencies: list[str] = []
+ api_def_param_enum = param_def.get('enum')
+ if (
+ api_def_param_enum is not None
+ and not isinstance(api_def_param_enum, list)
+ ):
+ raise TypeError
+
+ api_def_param_default = param_def.get('default')
+ api_def_param_type = param_def.get('type')
+ if (
+ api_def_param_type is not None
+ and not isinstance(api_def_param_type, str)
+ ):
+ raise TypeError
+
+ api_def_param_items = param_def.get('items')
+ if (
+ api_def_param_items is not None
+ and not isinstance(api_def_param_items, dict)
+ ):
+ raise TypeError
+
+ necessary_dx_param = required or not (
+ api_def_param_enum
+ and len(api_def_param_enum) == 1
+ and api_def_param_default is not None
+ )
+
+ if not isinstance(param_name, str):
+ raise TypeError
+
+ param_exists_in_sdk = param_name in sdk_func_params.keys()
+
+ if not param_exists_in_sdk:
+ if necessary_dx_param:
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' API has parameter "{param_name}"'
+ f" but this SDK function doesn't have"
+ f' corresponding parameter.'
+ )
+ return inconsistencies
+
+ sdk_func_param = sdk_func_params[param_name]
+ sdk_param_name = sdk_func_param.name
+
+ if not necessary_dx_param:
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' parameter "{sdk_param_name} is unnecessary in SDK.'
+ )
+ return inconsistencies
+
+ if sdk_func_param.annotation is Any:
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' annotation of parameter "{sdk_param_name}"'
+ f' must not be Any.'
+ )
+ return inconsistencies
+
+ if api_def_param_default and api_def_param_default != -1:
+ if sdk_func_param.default != api_def_param_default:
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' default value of parameter "{sdk_param_name}"'
+ f' must be {api_def_param_default}.'
+ )
+
+ target_annotation = sdk_func_param.annotation
+ if not required and (
+ api_def_param_default is None
+ or (api_def_param_default == 0 and api_def_param_default is not False)
+ or api_def_param_default == ''
+ or api_def_param_default == -1
+ or api_def_param_default == []
+ ):
+ if sdk_func_param.default is not None:
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' default value of parameter "{sdk_param_name}"'
+ f' must be None.'
+ )
+
+ if not isinstance(sdk_func_param.annotation, UnionType):
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' annotation of parameter "{sdk_param_name}"'
+ f' must be Union.'
+ )
+ return inconsistencies
+
+ annot_union_args = get_args(sdk_func_param.annotation)
+ if NoneType not in annot_union_args:
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' annotation of parameter "{sdk_param_name}"'
+ f' must contain None.'
+ )
+ return inconsistencies
+
+ if not len(annot_union_args) == 2:
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' annotation of parameter "{sdk_param_name}"'
+ f' must contain two types.'
+ )
+ return inconsistencies
+
+ if annot_union_args[0] is NoneType:
+ target_annotation = annot_union_args[1]
+ else:
+ target_annotation = annot_union_args[0]
+
+ if api_def_param_type == 'array':
+ if (
+ not isinstance(target_annotation, GenericAlias)
+ or target_annotation.__origin__ is not list
+ ):
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' annotation of parameter "{sdk_param_name}"'
+ f' must contain list[...]'
+ )
+ return inconsistencies
+
+ if api_def_param_items is not None:
+ api_def_param_items_type = api_def_param_items.get('type')
+ if api_def_param_items_type is None:
+ return inconsistencies
+ if not isinstance(api_def_param_items_type, str):
+ raise TypeError
+
+ target_annotation = get_args(target_annotation)[0]
+ expected_annot = type_mappings.get(api_def_param_items_type)
+ if expected_annot is None:
+ return inconsistencies
+
+ elif api_def_param_type is not None:
+ expected_annot = type_mappings.get(api_def_param_type)
+ if expected_annot is None:
+ return inconsistencies
+
+ if (
+ not inspect.isclass(target_annotation)
+ or isinstance(target_annotation, GenericAlias)
+ ):
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' parameter "{sdk_param_name}",'
+ f' {target_annotation = },' # noqa: E202, E251
+ f' {expected_annot = }' # noqa: E202, E251
+ )
+ return inconsistencies
+
+ if api_def_param_enum:
+ if not issubclass(target_annotation, Enum):
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' annotation of parameter "{sdk_param_name}"'
+ f' must contain enum.'
+ )
+ return inconsistencies
+
+ enum_from_annot = target_annotation
+ enum_values = [e.value for e in enum_from_annot]
+ if sorted(api_def_param_enum) != sorted(enum_values):
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' parameter "{sdk_param_name}":'
+ f' enum {enum_from_annot.__qualname__}'
+ f' must contain these values:'
+ f' {api_def_param_enum}.'
+ )
+ elif not issubclass(target_annotation, expected_annot):
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' annotation of parameter "{sdk_param_name}"'
+ f' must contain {expected_annot.__qualname__}.'
+ )
+
+ return inconsistencies
+
+
+def find_unused_sdk_params(
+ *,
+ sdk_func_name: str,
+ sdk_func_params: dict[str, inspect.Parameter],
+ dx_param_names: set[str],
+) -> list[str]:
+ inconsistencies: list[str] = []
+ unused_sdk_param_names = [
+ sdk_param.name
+ for alias, sdk_param in sdk_func_params.items()
+ if alias not in dx_param_names
+ ]
+
+ if unused_sdk_param_names:
+ inconsistencies.append(
+ f'{sdk_func_name}:'
+ f' unused parameters:'
+ f' {", ".join(sorted(unused_sdk_param_names))}'
+ )
+ return inconsistencies
+
def test_with_api_definition(
dx_api_definition: JSON,
@@ -37,6 +273,7 @@ def test_with_api_definition(
):
inconsistencies: list[str] = []
for sdk_func in sdk_dx_functions:
+ sdk_func_name = ".".join(sdk_func.call_attrs)
func_full_api_path = f'/restmachine{sdk_func.url_path}'
if not isinstance(dx_api_definition, dict):
@@ -49,7 +286,7 @@ def test_with_api_definition(
if func_full_api_path not in dx_api_definition_paths:
inconsistencies.append(
- f"{'.'.join(sdk_func.call_attrs)}:"
+ f"{sdk_func_name}:"
f' url path {sdk_func.url_path} not found in'
f' DX API definition.'
)
@@ -66,7 +303,7 @@ def test_with_api_definition(
m.upper() for m in func_api_definition.keys()
]
inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
+ f'{sdk_func_name}:'
f' HTTP method {sdk_func.http_method} not found.'
f' DX API definition for {sdk_func.url_path} has'
f' only these HTTP methods:'
@@ -78,14 +315,6 @@ def test_with_api_definition(
if not isinstance(func_api_def_method, dict):
raise TypeError
- type_mappings = {
- 'integer': int,
- 'string': str,
- 'boolean': bool,
- 'object': sdk_types.BaseAPIParamsNestedModel,
- 'number': float,
- }
-
if api_def_result_type := get_nested_value(
d=func_api_def_method,
keys=('responses', '200', 'schema', 'type'),
@@ -95,7 +324,7 @@ def test_with_api_definition(
expected_result_type = sdk_types.BaseAPIResultBool
if not issubclass(sdk_func.result_cls, expected_result_type):
inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
+ f'{sdk_func_name}:'
f' result type must be child of'
f' {expected_result_type.__qualname__}.'
)
@@ -111,222 +340,86 @@ def test_with_api_definition(
)
sdk_func_params[alias] = p
- api_definition_params = func_api_def_method.get('parameters')
- if not api_definition_params:
- if sdk_func_params:
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' this function must not have parameters.'
- )
- continue
+ api_definition_params = func_api_def_method.get('parameters') or []
+ body_schema = None
if not isinstance(api_definition_params, list):
raise TypeError
- dx_param_names = set()
for p in api_definition_params:
- if not isinstance(p, dict):
- raise TypeError
- dx_param_names.add(p['name'])
-
- if len(sdk_func_params) > len(dx_param_names):
- unused_sdk_param_names = []
- for sdk_param_alias, sdk_param in sdk_func_params.items():
- if sdk_param_alias not in dx_param_names:
- unused_sdk_param_names.append(sdk_param.name)
- if unused_sdk_param_names:
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' unused parameters:'
- f' {", ".join(sorted(unused_sdk_param_names))}'
- )
-
- for api_def_param in api_definition_params:
- if not isinstance(api_def_param, dict):
- raise TypeError
-
- api_def_param_enum = api_def_param.get('enum')
if (
- api_def_param_enum is not None
- and not isinstance(api_def_param_enum, list)
+ isinstance(p, dict)
+ and p.get('name') == 'body' and 'schema' in p
):
- raise TypeError
+ body_schema = p['schema']
+ break
- api_def_param_default = api_def_param.get('default')
+ dx_param_names = set()
+ param_defs = dict()
+ required_params = set()
- api_def_param_type = api_def_param.get('type')
- if (
- api_def_param_type is not None
- and not isinstance(api_def_param_type, str)
- ):
- raise TypeError
+ if isinstance(body_schema, dict) and 'properties' in body_schema:
+ properties = body_schema['properties']
- api_def_param_items = api_def_param.get('items')
- if (
- api_def_param_items is not None
- and not isinstance(api_def_param_items, dict)
- ):
+ if not isinstance(properties, dict):
raise TypeError
- necessary_dx_param = not (
- api_def_param_enum
- and len(api_def_param_enum) == 1
- and api_def_param_default is not None
- )
-
- sdk_param_alias = api_def_param['name']
- if not isinstance(sdk_param_alias, str):
+ required = body_schema.get('required', [])
+ if not isinstance(required, list):
raise TypeError
- param_exists_in_sdk = sdk_param_alias in sdk_func_params.keys()
+ dx_param_names.update(properties.keys())
+ param_defs.update(properties)
+ required_params.update(required)
- if not param_exists_in_sdk:
- if necessary_dx_param:
+ else:
+ if not api_definition_params:
+ if sdk_func_params:
inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' API has parameter "{sdk_param_alias}"'
- f" but this SDK function doesn't have"
- f' corresponding parameter.'
+ f'{sdk_func_name}: this function '
+ f'must not have parameters.'
)
continue
- sdk_param_name = sdk_func_params[sdk_param_alias].name
+ for p in api_definition_params:
+ if not isinstance(p, dict):
+ raise TypeError
+ param_name = p['name']
+ if not isinstance(param_name, str):
+ raise TypeError
- if not necessary_dx_param:
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' parameter "{sdk_param_name} is unnecessary in SDK.'
- )
- continue
+ dx_param_names.add(param_name)
+ param_defs[param_name] = p
+ if p.get('required', False):
+ required_params.add(param_name)
- sdk_func_param = sdk_func_params[sdk_param_alias]
-
- if sdk_func_param.annotation is Any:
+ if not dx_param_names:
+ if sdk_func_params:
inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' annotation of parameter "{sdk_param_name}"'
- f' must not be Any.'
+ f"{sdk_func_name}: this function must not have parameters."
)
- continue
-
- if api_def_param_default and api_def_param_default != -1:
- if sdk_func_param.default != api_def_param_default:
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' default value of parameter "{sdk_param_name}"'
- f' must be {api_def_param_default}.'
- )
-
- target_annotation = sdk_func_param.annotation
- if not api_def_param.get('required') and (
- api_def_param_default is None
- or (
- api_def_param_default == 0
- and api_def_param_default is not False
- )
- or api_def_param_default == ''
- or api_def_param_default == -1
- ):
- if sdk_func_param.default is not None:
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' default value of parameter "{sdk_param_name}"'
- f' must be None.'
- )
-
- if not isinstance(sdk_func_param.annotation, UnionType):
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' annotation of parameter "{sdk_param_name}"'
- f' must be Union.'
- )
- continue
-
- annot_union_args = get_args(sdk_func_param.annotation)
- if NoneType not in annot_union_args:
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' annotation of parameter "{sdk_param_name}"'
- f' must contain None.'
- )
- continue
-
- if not len(annot_union_args) == 2:
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' annotation of parameter "{sdk_param_name}"'
- f' must contain two types.'
- )
- continue
-
- if annot_union_args[0] is NoneType:
- target_annotation = annot_union_args[1]
- else:
- target_annotation = annot_union_args[0]
-
- if api_def_param_type == 'array':
- if (
- not isinstance(target_annotation, GenericAlias)
- or target_annotation.__origin__ is not list
- ):
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' annotation of parameter "{sdk_param_name}"'
- f' must contain list[...].'
- )
- continue
-
- if api_def_param_items is not None:
- api_def_param_items_type = api_def_param_items.get('type')
- if api_def_param_items_type is None:
- continue
- if not isinstance(api_def_param_items_type, str):
- raise TypeError
-
- target_annotation = get_args(target_annotation)[0]
- expected_annot = type_mappings.get(
- api_def_param_items_type
- )
- if expected_annot is None:
- continue
- elif api_def_param_type is not None:
- expected_annot = type_mappings.get(api_def_param_type)
- if expected_annot is None:
- continue
-
- if not inspect.isclass(target_annotation):
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' parameter "{sdk_param_name}",'
- f' {target_annotation = },' # noqa: E202, E251
- f' {expected_annot = }' # noqa: E202, E251
+ else:
+ inconsistencies.extend(
+ find_unused_sdk_params(
+ sdk_func_name=sdk_func_name,
+ sdk_func_params=sdk_func_params,
+ dx_param_names=dx_param_names,
)
- continue
+ )
- if api_def_param_enum:
- if not issubclass(target_annotation, Enum):
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' annotation of parameter "{sdk_param_name}"'
- f' must contain enum.'
- )
- continue
- enum_from_annot = target_annotation
- enum_values = enum_from_annot.__members__.values()
- if sorted(api_def_param_enum) != sorted(enum_values):
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' parameter "{sdk_param_name}":'
- f' enum {enum_from_annot.__qualname__}'
- f' must contain these values: {api_def_param_enum}.'
+ for param_name, param_def in param_defs.items():
+ if not isinstance(param_def, dict):
+ raise TypeError
+
+ inconsistencies.extend(
+ check_param(
+ sdk_func_name=sdk_func_name,
+ sdk_func_params=sdk_func_params,
+ param_name=param_name,
+ param_def=param_def,
+ required=param_name in required_params,
)
- elif not issubclass(target_annotation, expected_annot):
- inconsistencies.append(
- f'{".".join(sdk_func.call_attrs)}:'
- f' annotation of parameter "{sdk_param_name}"'
- f' must contain {expected_annot.__qualname__}.'
)
- continue
for expected_inconsistency in expected_inconsistencies:
if expected_inconsistency in inconsistencies: