Compare commits

...

17 Commits

Author SHA1 Message Date
3c5157281e v16.0.0 2026-08-21 19:04:19 +04:00
f34fa6055c v15.7.0 2026-07-31 16:32:54 +04:00
1bf30e8778 v15.6.0 2026-07-17 16:22:51 +04:00
77cbe6952b upd CHANGELOG 2026-07-10 12:47:34 +00:00
dayterr
0595b5ae39 v15.5.0
v15.5.0
2026-07-10 15:44:33 +03:00
55fe76d12e v15.4.0 2026-07-02 14:30:23 +03:00
db594a9d81 v15.3.0 2026-06-26 16:56:08 +04:00
dayterr
538f5cf026 v15.2.0
v15.2.0
2026-06-19 16:49:23 +03:00
f6acddaa8d v15.1.0 2026-06-11 16:54:48 +04:00
f1112e5a11 v15.0.0 2026-06-05 17:30:36 +03:00
dayterr
3e2edf53a5 v14.11.0 2026-05-29 17:54:28 +03:00
8f8a81eea4 v14.10.0 2026-05-22 19:20:44 +03:00
dayterr
d82ae52951 v14.9.0 2026-05-08 14:18:23 +03:00
dayterr
5e5d90e24f v14.8.0 2026-04-17 17:10:10 +03:00
dayterr
cd67633a52 v14.7.0 2026-04-10 16:47:00 +03:00
0812c5a8af v14.6.0 2026-04-03 16:41:45 +03:00
8abb20dcde v14.5.0 2026-03-27 17:48:48 +03:00
1310 changed files with 11684 additions and 4132 deletions

View File

@@ -1,34 +1,209 @@
## Version 14.4.0 ## Version 16.0.0
Методы `Audits` в cloudapi/compute, cloudbroker/compute, cloudapi/account, cloudbroker/account, cloudapi/vins, cloudbroker/vins, cloudapi/rg и cloudbroker/rg стали deprecated и в следующих версиях будут удалены, вместо них необходимо использовать метод `List` в cloudapi/audit и cloudbroker/audit с соответствующими фильтрами Метод `ConfigFieldEdit` в cloudbroker/sep стал deprecated и в следующих версиях будет удалён
Методы `AccessGrant`, `AccessGrantToPool`, `AccessRevoke`, `AccessRevokeToPool` в cloudbroker/sep стали deprecated и в следующих версиях будут удалены
Методы `ComputeCISet`, `ComputeCIUnset`, `GetAudits` в cloudbroker/compute и `GetAudits` в cloudapi/compute стали deprecated и будут удалены в следующих версиях
Методы `ComputeCISet`, `ComputeCIUnset` в cloudbroker/image стали deprecated и будут удалены в следующих версиях
Все методы группы `.SDN()` находятся в альфа-версии.
### Добавлено ### Добавлено
#### image #### Общее
| Идентификатор<br>задачи | Описание | | Идентификатор задачи | Описание |
| --- | --- | | --- | --- |
| BGOS-812 | Методы `CreateMultiImage`, `MultiImageAddLinks`, `MultiImageDelLinks` и `MultiImageExport` в cloudbroker/image | | BGOS-991 | Допустимые значения `vgpu` и `pcidevice` в валидатор возможностей гипервизора ComputeFeatures |
| BGOS-812 | Структуры запросов `CreateMultiImageRequest`, `MultiImageAddLinksRequest`, `MultiImageDelLinksRequest` и `MultiImageExportRequest` в cloudbroker/image |
| BGOS-813 | Вычисляемое поле `LinksTo` в структуры ответа `RecordImage` и `ItemImage` в cloudbroker/image и в структуру ответа `RecordImage` в cloudapi/image |
### node #### account
| Идентификатор<br>задачи | Описание | | Идентификатор задачи | Описание |
| --- | --- | | --- | --- |
| BGOS-811 | Вычисляемое поле `ThreadCount` в структуру ответа `CpuInfo` в cloudbroker/node | | BGOS-986 | Вычисляемое поле `EnableDefaultGateway` в структуру ответа `ItemVINS` в cloudbroker/account и cloudapi/account |
| BGOS-989 | Вычисляемые поля `Starting`, `Stopping`, `Paused`, `Pausing`, `Merge`, `Migrating`, `MigratingIn`, `MigratingOut`, `Down`, `Scheduled`, `BackupStopped`, `BackupRunning`, `Snapcreate`, `Cloning` и `Rollback` в структуры ответа `Computes` и `RGComputes` в cloudapi/account |
| BGOS-989 | Вычисляемые поля `Starting`, `Stopping`, `Paused`, `Pausing`, `Merge`, `Migrating`, `MigratingIn`, `MigratingOut`, `Down`, `Scheduled`, `BackupStopped`, `BackupRunning`, `Snapcreate`, `Cloning` и `Rollback` в структуру ответа `Computes` в cloudbroker/account |
#### compute
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-977 | Вычисляемое поле `ImageID` в структуру ответа `InfoDisk` в cloudbroker/compute и cloudapi/compute |
| BGOS-978 | Вычисляемое поле `WatchdogAction` в структуры ответа `RecordCompute` и `ItemCompute` в cloudapi/compute |
| BGOS-978 | Вычисляемое поле `WatchdogAction` в структуры ответа `RecordCompute` и `InfoCompute` в cloudbroker/compute |
| BGOS-979 | Опциональное поле `WatchdogAction` в структуру запроса `UpdateRequest` в cloudapi/compute и cloudbroker/compute |
| BGOS-994 | Вычисляемое поле `QoSPolicies` в структуру ответа `ItemVNFInterface` в cloudapi/compute |
| BGOS-994 | Вычисляемое поле `QoSPolicies` в структуру ответа `ItemInterface` в cloudbroker/compute |
| BGOS-994 | Опциональное поле `QoSPolicies` в структуру запроса `NetAttachRequest` в cloudapi/compute и cloudbroker/compute |
| BGOS-994 | Методы `ChangeQoSPolicies` и `ChangeQoSPoliciesAsync` в cloudbroker/compute и cloudapi/compute |
| BGOS-995 | Вычисляемые поля `ComputeID`, `BusNumber`, `DeviceReference`, `MdevUUID`, `ParentPCIAddress`, `ProfileReference` и `SplitMode` в структуру ответа `ItemVGPU` в cloudbroker/compute и cloudapi/compute |
| BGOS-999 | Вычисляемое поле `AccountIDs` в структуру ответа `ItemPCIDevice` в cloudbroker/compute и cloudapi/compute |
#### disks
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-976 | Метод `CreateAsync` в cloudapi/disks |
| BGOS-976 | Методы `CreateAsync` и `MigrateAsync` в cloudbroker/disks |
#### grid
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-1000 | Вычисляемые поля `ReservedCPU` и `ReservedRAM` в структуру ответа `RecordSettingsGrid` в cloudbroker/grid |
#### kvmx86
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-979 | Опциональное поле `WatchdogAction` в структуры запроса `CreateRequest` и `CreateBlankRequest` в cloudapi/kvmx86 |
| BGOS-979 | Опциональное поле `WatchdogAction` в структуры запроса `CreateRequest`, `CreateBlankRequest` и `MassCreateRequest` в cloudbroker/kvmx86 |
| BGOS-983 | Метод `CreateAsync` в cloudbroker/kvmx86 и cloudapi/kvmx86 |
| BGOS-984 | Опциональное поле `ReadOnly` в структуру запроса `DataDisk` в cloudbroker/kvmx86 и cloudapi/kvmx86 |
| BGOS-994 | Опциональное поле `QoSPolicies` в структуру запроса `Interface` в cloudbroker/kvmx86 и cloudapi/kvmx86 |
| BGOS-994 | Опциональное поле `QoSPolicies` в структуру запроса `InterfaceMassCreate` в cloudbroker/kvmx86 |
#### locations
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-992 | Вычисляемое поле `Budget` в структуру ответа `ItemLocation` в cloudapi/locations |
#### network qos policy
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-993 | Группа ручек `QoSPolicy` в cloudbroker/qospolicy и cloudapi/qospolicy |
#### resmon
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-981 | Вычисляемое поле `TotalVCPUs` в структуру ответа `GetByNodePoint` в cloudbroker/resmon |
#### rg
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-998 | Опциональное поле `IPCIDR` в структуру запроса `CreateRequest` в cloudbroker/rg |
#### tasks
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-996 | Опицональные поля `CreatedTimeAt` и `CreatedTimeTo` в структуру запроса `ListRequest` в cloudapi/tasks и cloudbroker/tasks |
| BGOS-996 | Вычисляемое поле `CreatedTime` в структуру ответа `RecordAsyncTask` в cloudapi/tasks |
| BGOS-996 | Вычисляемое поле `CreatedTime` в структуру ответа `ItemTask` в cloudbroker/tasks |
#### user
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-988 | Вычисляемые поля `Destroying`, `Confirmed` и `Deleted` в структуру ответа `Accounts` в cloudapi/user |
| BGOS-988 | Вычисляемые поля `Starting`, `Stopping`, `Paused`, `Pausing`, `Merge`, `Migrating`, `MigratingIn`, `MigratingOut`, `Down`, `Scheduled`, `BackupStopped`, `BackupRunning`, `Snapcreate`, `Cloning` и `Rollback` в структуру ответа `Computes` в cloudapi/user |
| BGOS-988 | Вычисляемые поля `Modeled`, `Created`, `Deleted`, `Deleting`, `Destroying`, `Disabling`, `Enabling` и `Restoring` в структуру ответа `RGs` в cloudapi/user |
#### vins
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-986 | Вычисляемое поле `EnableDefaultGateway` в структуру ответа `ItemVINS` в cloudapi/vins |
#### vgpu
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-980 | Опциональные поля `AccountIDs`, `MDEVType` и `PCIAddress` в структуру запроса `CreateRequest` в cloudbroker/vgpu |
| BGOS-980 | Опциональное поле `SplitMode` в структуру запроса `ListRequest` в cloudbroker/vgpu и cloudapi/vgpu |
| BGOS-980 | Вычисляемые поля `ComputeID`, `DeviceReference`, `MdevUUID`, `ParentPCIAddress`, `ProfileReference` и `SplitMode` в структуру ответа `ItemVGPU` в cloudbroker/vgpu и cloudapi/vgpu |
| BGOS-980 | Вычисляемое поле `BusNumber` в структуру ответа `ItemVGPU` в cloudbroker/vgpu |
#### zone
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-997 | Вычисляемые поля `SDRS`, `SDRSMode` и `LoggingLevel` в структуры ответа `RecordZone` и `ItemZone` в cloudapi/zone и cloudbroker/zone |
### Изменено ### Изменено
#### compute #### bservice
| Идентификатор<br>задачи | Описание | | Идентификатор задачи | Описание |
| --- | --- | | --- | --- |
| BGOS-814 | Тип возвращаемого значения метода `CheckComputePlacement` с `map[string]CheckComputePlacementItem` на `map[uint64]CheckComputePlacementItem` в cloudbroker/compute | | BGOS-1003 | Тип опционального поля `UserData` в структуре запроса `GroupAddRequest` сo `string` на `interface{}` в cloudbroker/bservice и cloudapi/bservice |
#### compute
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-995 | Название вычисляемого поля `AccountID` на `AccountIDs` и тип с `uint64` на `[]uint64` в структуре ответа `ItemVGPU` в cloudbroker/compute и cloudapi/compute |
| BGOS-995 | Тип вычисляемого поля `VGPUs` с `[]VGPUItem` на `[]ItemVGPU` в структурах ответов `RecordCompute` и `SnapRecordCompute` в cloudbroker/compute и cloudapi/compute |
#### disks
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-987 | Тип опционального поля `Status` в структуре запроса `ListRequest` с `string` на `[]string` в cloudbroker/disks и cloudapi/disks |
#### k8s
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-1002 | Тип опционального поля `UserData` в структурах запросов `CreateRequest` и `UpdateWorkerNodesMetaDataRequest` со `string` на `interface{}` в cloudbroker/k8s и cloudapi/k8s |
#### node
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-982 | Тип вычисляемого поля `Total` с `ResourcesInfo` на `FreeResourcesInfo` в структуре ответа `ConsumptionInfo` в cloudbroker/node |
#### vgpu
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-980 | Тип опционального поля `ProfileID` в структуре запроса `CreateRequest` с `uint64` на `string` в cloudbroker/vgpu |
| BGOS-980 | Название вычисляемого поля `AccountID` на `AccountIDs` и тип с `uint64` на `[]uint64` в структуре ответа `ItemVGPU` в cloudbroker/vgpu и cloudapi/vgpu |
| BGOS-980 | Название опционального поля `NID` на `NodeID` в структуре запроса `ListRequest` в cloudbroker/vgpu и cloudapi/vgpu |
### Удалено
#### account
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-975 | Метод `Audits` из cloudapi/account и cloudbroker/account |
| BGOS-975 | Методы `Delete`, `Disable`, `Enable`, `GetConsumedCloudUnitsByType` и `GetReservedAccountUnits` из cloudapi/account |
| BGOS-975 | Методы `Disable` и `Enable` из cloudbroker/account |
#### compute
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-975 | Метод `Audits` из cloudapi/compute и cloudbroker/compute |
| BGOS-975 | Методы `ComputeCISet`, `ComputeCIUnset`, `GetLog` и `GetAudits` из cloudbroker/compute |
| BGOS-975 | Метод `GetAudits` из cloudapi/compute |
| BGOS-995 | Вычисляемые поля `LastClaimedBy`, `Mode`, `ProfileID`, `RAM`, `ReferenceID`, `RGID`, `Type` и `VMID` из структуры `ItemVGPU` в cloudbroker/compute и cloudapi/compute |
| BGOS-995 | Cтруктура `VGPUItem` в cloudbroker/compute и cloudapi/compute |
| BGOS-999 | Вычисляемое поле `RGID` из структуры ответа `ItemPCIDevice` в cloudbroker/compute и cloudapi/compute |
| BGOS-999 | Опциональное поле `RGID` из структуры запроса `ListPCIDeviceRequest` в cloudbroker/compute и cloudapi/compute |
#### grid
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-975 | Методы `ExecuteMaintenanceScript`, `ListEmails` и `ServicesRestart` из cloudbroker/grid |
#### group
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-975 | Метод `Get` из cloudbroker/group |
#### image
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-975 | Методы `ComputeCISet` и `ComputeCIUnset` из cloudbroker/image |
#### rg #### rg
| Идентификатор<br>задачи | Описание | | Идентификатор задачи | Описание |
| --- | --- | | --- | --- |
| BGOS-815 | JSON-тэг у поля `RGID` в структуре ответа `ItemResourceConsumption` с `rgid` на `id` в cloudbroker/rg | | BGOS-975 | Метод `Audits` из cloudapi/rg и cloudbroker/rg |
#### sep
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-975 | Методы `AccessGrant`, `AccessGrantToPool`, `AccessRevoke` и `AccessRevokeToPool` из cloudbroker/sep |
#### user
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-975 | Метод `IsValidInviteUserToken` из cloudapi/user |
| BGOS-975 | Метод `GetAudit` из cloudapi/user и cloudbroker/user |
| BGOS-988 | Структуры `CSs` и `VMs` из структуры ответа `BriefResources` из cloudapi/user |
| BGOS-988 | Вычисляемое поле `Enabled` из структур ответов `Accounts` и `RGs` из cloudapi/user |
#### vins
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-975 | Метод `Audits` из cloudapi/vins и cloudbroker/vins |
#### vgpu
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-980 | Опциональные поля `RGID` и `Allocate` из структуры запроса `CreateRequest` в cloudbroker/vgpu |
| BGOS-980 | Опциональные поле `Force` из структуры запроса `DestroyRequest` в cloudbroker/vgpu |
| BGOS-980 | Опциональные поля `Type`, `Mode` и `RGID` из структуры запроса `ListRequest` в cloudbroker/vgpu и cloudapi/vgpu |
| BGOS-980 | Вычисляемые поля `LastClaimedBy`, `Mode`, `ProfileID`, `RAM`, `ReferenceID`, `RGID`, `Type` и `VMID` из структуры ответа `ItemVGPU` в cloudbroker/vgpu и cloudapi/vgpu |
| BGOS-980 | Методы `Allocate` и `Deallocate` из cloudbroker/vgpu |

125
README.md
View File

@@ -10,6 +10,8 @@ Dynamix SDK - это библиотека, написанная на языке
- Версия 12.x.х Dynamix-SDK соответствует 4.4.0 версии платформы - Версия 12.x.х Dynamix-SDK соответствует 4.4.0 версии платформы
- Версия 13.x.х Dynamix-SDK соответствует 4.5.0 версии платформы - Версия 13.x.х Dynamix-SDK соответствует 4.5.0 версии платформы
- Версия 14.x.х Dynamix-SDK соответствует 4.6.0 версии платформы - Версия 14.x.х Dynamix-SDK соответствует 4.6.0 версии платформы
- Версия 15.x.х Dynamix-SDK соответствует 4.7.0 версии платформы
- Версия 16.x.х Dynamix-SDK соответствует 4.8.0 версии платформы
## Оглавление ## Оглавление
@@ -84,7 +86,7 @@ Dynamix SDK - это библиотека, написанная на языке
Выполните команду в терминале: Выполните команду в терминале:
```bash ```bash
go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v14 go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v16
``` ```
## Список API ## Список API
@@ -115,6 +117,7 @@ go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v14
- `LB` - управление балансировщиками нагрузки; - `LB` - управление балансировщиками нагрузки;
- `Locations` - получение информации о grid площадки; - `Locations` - получение информации о grid площадки;
- `Prometheus` - получение статистики prometheus; - `Prometheus` - получение статистики prometheus;
- `QoS Policy` - управление политиками качества обслуживания сети;
- `RG` - управление ресурсными группами аккаунта; - `RG` - управление ресурсными группами аккаунта;
- `Security group` управление группами безопасности; - `Security group` управление группами безопасности;
- `SEP` - управление storage endpoint (sep); - `SEP` - управление storage endpoint (sep);
@@ -123,6 +126,7 @@ go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v14
- `Trunk` - получение информации о транковых портах; - `Trunk` - получение информации о транковых портах;
- `VFPool` - управление пулом виртуальных сетевых функций; - `VFPool` - управление пулом виртуальных сетевых функций;
- `VINS` - управление виртуальными изолированными сетями; - `VINS` - управление виртуальными изолированными сетями;
- `VGPU` - управление виртуальными графическими процессорами;
- `Zone` - управление зонами. - `Zone` - управление зонами.
### Cloudbroker ### Cloudbroker
@@ -150,6 +154,7 @@ go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v14
- `Node` - управление нодами платформы; - `Node` - управление нодами платформы;
- `PCIDevice` - управление устройствами; - `PCIDevice` - управление устройствами;
- `Prometheus` - получение статистики prometheus; - `Prometheus` - получение статистики prometheus;
- `QoS Policy` - управление политиками качества обслуживания сети;
- `Resmon` - получение статистики resource monitoring; - `Resmon` - получение статистики resource monitoring;
- `RG` - управление ресурсными группами аккаунта; - `RG` - управление ресурсными группами аккаунта;
- `Security group` управление группами безопасности; - `Security group` управление группами безопасности;
@@ -172,12 +177,14 @@ go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v14
- `Address pool` - управление пулами адресов; - `Address pool` - управление пулами адресов;
- `DefaultSecurityPolicies` - управление политиками хранения по умолчанию; - `DefaultSecurityPolicies` - управление политиками хранения по умолчанию;
- `ExtNet` - управление виртуальными сетями, отвечающими за внешний доступ; - `ExtNet` - управление виртуальными сетями, отвечающими за внешний доступ;
- `Hypervisors` - управление гипервизорами;
- `FloatingIPs` - управление плавающими IP-адресами; - `FloatingIPs` - управление плавающими IP-адресами;
- `Logical ports` - управление логическими портами; - `Logical ports` - управление логическими портами;
- `NetworkObjectGroups` - управление группами объектов сети; - `NetworkObjectGroups` - управление группами объектов сети;
- `Routers` - управление роутерами; - `Routers` - управление роутерами;
- `SecurityPolicies` - управление политиками хранения; - `SecurityPolicies` - управление политиками хранения;
- `Segments` - управление сегментами; - `Segments` - управление сегментами;
- `Version` - получение информации о версии SDN;
## Работа с библиотекой ## Работа с библиотекой
@@ -208,7 +215,7 @@ go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v14
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
) )
func main(){ func main(){
@@ -233,7 +240,7 @@ func main(){
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
) )
func main() { func main() {
@@ -278,8 +285,8 @@ sslSkipVerify: false
package main package main
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
) )
func main() { func main() {
@@ -325,6 +332,7 @@ func main() {
- `pkg/cloudapi/lb` - для `LB` - `pkg/cloudapi/lb` - для `LB`
- `pkg/cloudapi/locations` - для `Locations` - `pkg/cloudapi/locations` - для `Locations`
- `pkg/cloudapi/prometheus` - для `Prometheus` - `pkg/cloudapi/prometheus` - для `Prometheus`
- `pkg/cloudapi/qospolicy` - для `QoS Policy`
- `pkg/cloudapi/rg` - для `RG` - `pkg/cloudapi/rg` - для `RG`
- `pkg/cloudapi/secgroup` - для `Security group` - `pkg/cloudapi/secgroup` - для `Security group`
- `pkg/cloudapi/sep` - для `SEP` - `pkg/cloudapi/sep` - для `SEP`
@@ -333,6 +341,7 @@ func main() {
- `pkg/cloudapi/trunk` - для `Trunk` - `pkg/cloudapi/trunk` - для `Trunk`
- `pkg/cloudapi/vfpool` - для `VFPool` - `pkg/cloudapi/vfpool` - для `VFPool`
- `pkg/cloudapi/vins` - для `VINS` - `pkg/cloudapi/vins` - для `VINS`
- `pkg/cloudapi/vgpu` - для `VGPU`
- `pkg/cloudapi/zone` - для `Zone` - `pkg/cloudapi/zone` - для `Zone`
- **cloudbroker**: - **cloudbroker**:
- `pkg/cloudbroker/account` - для `Account` - `pkg/cloudbroker/account` - для `Account`
@@ -355,6 +364,7 @@ func main() {
- `pkg/cloudbroker/node` - для `Node` - `pkg/cloudbroker/node` - для `Node`
- `pkg/cloudbroker/pcidevice` - для `PCIDevice` - `pkg/cloudbroker/pcidevice` - для `PCIDevice`
- `pkg/cloudbroker/prometheus` - для `Prometheus` - `pkg/cloudbroker/prometheus` - для `Prometheus`
- `pkg/cloudbroker/qospolicy` - для `QoS Policy`
- `pkg/cloudbroker/resmon` - для `Resmon` - `pkg/cloudbroker/resmon` - для `Resmon`
- `pkg/cloudbroker/rg` - для `RG` - `pkg/cloudbroker/rg` - для `RG`
- `pkg/cloudbroker/secgroup` - для `Security group` - `pkg/cloudbroker/secgroup` - для `Security group`
@@ -372,12 +382,14 @@ func main() {
- `pkg/sdn/adrspools` - для `Address pool` - `pkg/sdn/adrspools` - для `Address pool`
- `pkg/sdn/defsecpolicies` - для `DefaultSecurityPolicies` - `pkg/sdn/defsecpolicies` - для `DefaultSecurityPolicies`
- `pkg/sdn/external_networks` - для `ExtNet` - `pkg/sdn/external_networks` - для `ExtNet`
- `pkg/sdn/hypervisors` - для `Hypervisors`
- `pkg/sdn/flips` - для `FloatingIPs` - `pkg/sdn/flips` - для `FloatingIPs`
- `pkg/sdn/logicalports` - для `Logical ports` - `pkg/sdn/logicalports` - для `Logical ports`
- `pkg/sdn/netobjgroups` - для `NetworkObjectGroups` - `pkg/sdn/netobjgroups` - для `NetworkObjectGroups`
- `pkg/sdn/routers` - для `Routers` - `pkg/sdn/routers` - для `Routers`
- `pkg/sdn/secpolicies` - для `SecurityPolicies` - `pkg/sdn/secpolicies` - для `SecurityPolicies`
- `pkg/sdn/segments` - для `Segments` - `pkg/sdn/segments` - для `Segments`
- `pkg/sdn/version` - для `Version`
Все поля структуры имеют описание, в которых содержится: Все поля структуры имеют описание, в которых содержится:
@@ -467,9 +479,9 @@ type CreateRequest struct {
package main package main
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/kvmx86" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi/kvmx86"
) )
func main() { func main() {
@@ -521,6 +533,7 @@ func main() {
- `.LB()` - для работы с `LB` - `.LB()` - для работы с `LB`
- `.Locations()` - для работы с `Locations` - `.Locations()` - для работы с `Locations`
- `.Prometheus()` - для работы с `Prometheus` - `.Prometheus()` - для работы с `Prometheus`
- `.QoSPolicy()` - для работы с `QoS Policy`
- `.RG()` - для работы с `RG` - `.RG()` - для работы с `RG`
- `.SecurityGroup()` - для работы с `Security Group` - `.SecurityGroup()` - для работы с `Security Group`
- `.SEP()` - для работы с `SEP` - `.SEP()` - для работы с `SEP`
@@ -529,6 +542,7 @@ func main() {
- `.Trunk()` - для работы с `Trunk` - `.Trunk()` - для работы с `Trunk`
- `.VFPool()` - для работы с `VFPool` - `.VFPool()` - для работы с `VFPool`
- `.VINS()` - для работы с `VINS` - `.VINS()` - для работы с `VINS`
- `.VGPU()` - для работы с `VGPU`
- `.Zone()` - для работы с `Zone` - `.Zone()` - для работы с `Zone`
Доступные методы для `.CloudBroker()`: Доступные методы для `.CloudBroker()`:
@@ -553,6 +567,7 @@ func main() {
- `.Node()` - для работы с `Node` - `.Node()` - для работы с `Node`
- `.PCIDevice()` - для работы с `PCIDevice` - `.PCIDevice()` - для работы с `PCIDevice`
- `.Prometheus()` - для работы с `Prometheus` - `.Prometheus()` - для работы с `Prometheus`
- `.QoSPolicy()` - для работы с `QoS Policy`
- `.Resmon()` - для работы с `Resmon` - `.Resmon()` - для работы с `Resmon`
- `.RG()` - для работы с `RG` - `.RG()` - для работы с `RG`
- `.SecurityGroup()` - для работы с `Security Group` - `.SecurityGroup()` - для работы с `Security Group`
@@ -572,12 +587,14 @@ func main() {
- `.AddressPool()` - для работы с `Addres pool` - `.AddressPool()` - для работы с `Addres pool`
- `.DefaultSecurityPolicies()` - для работы с `DefaultSecurityPolicies` - `.DefaultSecurityPolicies()` - для работы с `DefaultSecurityPolicies`
- `.ExtNet()` - для работы с `ExtNet` - `.ExtNet()` - для работы с `ExtNet`
- `.Hypervisors()` - для работы с `Hypervisors`
- `.FloatingIPs()` - для работы с `FloatingIPs` - `.FloatingIPs()` - для работы с `FloatingIPs`
- `.LogicalPorts()` - для работы с `Logical ports` - `.LogicalPorts()` - для работы с `Logical ports`
- `.NetworkObjectGroups()` - для работы с `NetworkObjectGroups` - `.NetworkObjectGroups()` - для работы с `NetworkObjectGroups`
- `.Routers()` - для работы с `Routers` - `.Routers()` - для работы с `Routers`
- `.SecurityPolicies()` - для работы с `SecurityPolicies` - `.SecurityPolicies()` - для работы с `SecurityPolicies`
- `.Segments()` - для работы с `Segments` - `.Segments()` - для работы с `Segments`
- `.Version()` - для работы с `Version`
3. Вызвать метод, отвечающий за выполнение запроса и передать в него: 3. Вызвать метод, отвечающий за выполнение запроса и передать в него:
@@ -603,9 +620,9 @@ import (
"log" "log"
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/kvmx86" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi/kvmx86"
) )
func main() { func main() {
@@ -653,9 +670,9 @@ import (
"log" "log"
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/account" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi/account"
) )
func main() { func main() {
@@ -833,9 +850,9 @@ import (
"context" "context"
"log" "log"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker/compute" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudbroker/compute"
) )
func main() { func main() {
@@ -891,9 +908,9 @@ import (
"log" "log"
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/bservice" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi/bservice"
) )
func main() { func main() {
@@ -946,10 +963,10 @@ import (
"log" "log"
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/tasks" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi/tasks"
tasks_cb "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker/tasks" tasks_cb "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudbroker/tasks"
) )
func main() { func main() {
@@ -1029,7 +1046,7 @@ func main() {
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
) )
func main(){ func main(){
@@ -1053,7 +1070,7 @@ func main(){
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
) )
func main() { func main() {
@@ -1094,8 +1111,8 @@ sslSkipVerify: true
package main package main
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
) )
func main() { func main() {
@@ -1122,8 +1139,8 @@ package main
import ( import (
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
) )
func main() { func main() {
@@ -1205,7 +1222,7 @@ func main() {
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
) )
func main(){ func main(){
@@ -1233,7 +1250,7 @@ func main(){
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
) )
func main() { func main() {
@@ -1250,7 +1267,7 @@ func main() {
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
) )
func main() { func main() {
@@ -1316,8 +1333,8 @@ func main() {
package main package main
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
) )
func main() { func main() {
@@ -1350,8 +1367,8 @@ package main
import ( import (
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
) )
func main() { func main() {
@@ -1391,8 +1408,8 @@ package main
import ( import (
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
) )
func main() { func main() {
@@ -1430,8 +1447,8 @@ package main
import ( import (
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
) )
func main() { func main() {
@@ -1484,11 +1501,11 @@ import (
"log" "log"
"os" "os"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/constants" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/constants"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker/kvmx86" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudbroker/kvmx86"
) )
func main() { func main() {
@@ -1550,7 +1567,7 @@ func main() {
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
) )
func main(){ func main(){
@@ -1583,8 +1600,8 @@ func main(){
package main package main
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
) )
func main() { func main() {
@@ -1615,8 +1632,8 @@ package main
import ( import (
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
) )
func main() { func main() {
@@ -1661,14 +1678,14 @@ func main() {
## Проверка соответствия версии платформы и версии dynamix ## Проверка соответствия версии платформы и версии dynamix
С версии v1.11.0 для каждого клиента добавлен метод `Check` для проверки соответствия decort-sdk и платформы dynamix. С версии v11.0.0 для каждого клиента добавлен метод `Check` для проверки соответствия decort-sdk и платформы dynamix.
В случае соответсвия decort-sdk и платформы dynamix возвращается структура, содержащая информацию о версии и актуальном билде платформы. В случае соответсвия decort-sdk и платформы dynamix возвращается структура, содержащая информацию о версии и актуальном билде платформы.
#### Пример выполнения запроса #### Пример выполнения запроса
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
) )
func main(){ func main(){
@@ -1701,7 +1718,7 @@ package unit_test
import ( import (
"testing" "testing"
"go.uber.org/mock/gomock" "go.uber.org/mock/gomock"
decortsdk "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decortsdk "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16"
) )
// Пример юнит тестирования на моках // Пример юнит тестирования на моках

View File

@@ -8,7 +8,7 @@ import (
"net/http" "net/http"
"strings" "strings"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/constants" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/constants"
) )
type CheckInfo struct { type CheckInfo struct {

View File

@@ -17,12 +17,12 @@ import (
"time" "time"
"github.com/google/go-querystring/query" "github.com/google/go-querystring/query"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/constants" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/constants"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudbroker"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/sdn" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/sdn"
) )
// DecortClient is HTTP-client for platform // DecortClient is HTTP-client for platform
@@ -34,8 +34,12 @@ type DecortClient struct {
mutex *sync.Mutex mutex *sync.Mutex
} }
// Сlient builder // Client builder
func New(cfg config.Config) *DecortClient { func New(cfg config.Config) *DecortClient {
if err := validators.ValidateConfig(cfg); err != nil {
panic(validators.ValidationErrors(validators.GetErrors(err)))
}
if cfg.Retries == 0 { if cfg.Retries == 0 {
cfg.Retries = 5 cfg.Retries = 5
} }

View File

@@ -14,11 +14,12 @@ import (
"time" "time"
"github.com/google/go-querystring/query" "github.com/google/go-querystring/query"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/constants" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/constants"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/sdn" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudbroker"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/sdn"
) )
// BVSDecortClient is HTTP-client for platform // BVSDecortClient is HTTP-client for platform
@@ -38,6 +39,10 @@ type tokenJSON struct {
// Сlient builder // Сlient builder
func NewBVS(cfg config.BVSConfig) *BVSDecortClient { func NewBVS(cfg config.BVSConfig) *BVSDecortClient {
if err := validators.ValidateConfig(cfg); err != nil {
panic(validators.ValidationErrors(validators.GetErrors(err)))
}
if cfg.Retries == 0 { if cfg.Retries == 0 {
cfg.Retries = 5 cfg.Retries = 5
} }

View File

@@ -1,9 +1,9 @@
package decortsdk package decortsdk
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudbroker"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/sdn" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/sdn"
) )
type MockDecortClient struct { type MockDecortClient struct {

View File

@@ -6,7 +6,7 @@ import (
"time" "time"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// Configuration for creating request to platform // Configuration for creating request to platform

View File

@@ -6,8 +6,8 @@ import (
"time" "time"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/serialization" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/serialization"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
type BVSConfig struct { type BVSConfig struct {

View File

@@ -6,7 +6,7 @@ import (
"time" "time"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// Legacy client configuration // Legacy client configuration

2
go.mod
View File

@@ -1,4 +1,4 @@
module repository.basistech.ru/BASIS/dynamix-golang-sdk/v14 module repository.basistech.ru/BASIS/dynamix-golang-sdk/v16
go 1.24.0 go 1.24.0

View File

@@ -28,6 +28,8 @@ var FileName = map[string]string{
var K8sValues = []string{"labels", "taints", "annotations, additionalSANs"} var K8sValues = []string{"labels", "taints", "annotations, additionalSANs"}
var VersionMap = map[string]string{ var VersionMap = map[string]string{
"4.8.0": "-",
"4.7.0": "-",
"4.6.0": "-", "4.6.0": "-",
"4.5.0": "-", "4.5.0": "-",
"4.4.0": "-", "4.4.0": "-",

View File

@@ -10,8 +10,8 @@ import (
"strings" "strings"
"github.com/go-playground/validator/v10" "github.com/go-playground/validator/v10"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/interfaces" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/interfaces"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/multierror" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/multierror"
) )
// protoValidator is used to validate Proto fields. // protoValidator is used to validate Proto fields.
@@ -350,6 +350,10 @@ func isBoolTypeValidator(fe validator.FieldLevel) bool {
return fe.Field().CanConvert(reflect.TypeOf(true)) return fe.Field().CanConvert(reflect.TypeOf(true))
} }
func isStringTypeValidator(fe validator.FieldLevel) bool {
return fe.Field().Kind() == reflect.String
}
func urlValidartor(fl validator.FieldLevel) bool { func urlValidartor(fl validator.FieldLevel) bool {
fieldValues := fl.Field().String() fieldValues := fl.Field().String()
@@ -464,3 +468,29 @@ func sepTechStatusValidator(fe validator.FieldLevel) bool {
return IsInSlice(fieldValue, sepTechStatusValues) return IsInSlice(fieldValue, sepTechStatusValues)
} }
// pciDeviceHWPathValidator is used to validate PCI device hardware path fields (e.g. 0000:81:00.0)
func pciDeviceHWPathValidator(fe validator.FieldLevel) bool {
fieldValue := fe.Field().String()
ok, _ := regexp.MatchString(`^[0-9a-fA-F]{4}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\.[0-7]$`, fieldValue)
return ok
}
// sepNameValidator is used to validate SEP name fields
func sepNameValidator(fe validator.FieldLevel) bool {
ok, _ := regexp.MatchString(`^[a-zA-Zа-яА-ЯёЁ0-9][a-zA-Zа-яА-ЯёЁ0-9_.\[\]()\-]*$`, fe.Field().String())
return ok
}
// sepDescriptionValidator is used to validate SEP description fields
func sepDescriptionValidator(fe validator.FieldLevel) bool {
ok, _ := regexp.MatchString(`^[a-zA-Zа-яА-ЯёЁ0-9_.\[\]()\-]*$`, fe.Field().String())
return ok
}
func watchdogActionValidator(fe validator.FieldLevel) bool {
fieldValue := fe.Field().String()
return IsInSlice(fieldValue, watchdogActionVaues)
}

View File

@@ -2,7 +2,8 @@ package validators
import ( import (
"errors" "errors"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/multierror"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/multierror"
"github.com/go-playground/validator/v10" "github.com/go-playground/validator/v10"
) )

View File

@@ -15,6 +15,10 @@ func errorMessage(fe validator.FieldError) string {
// Common Validators // Common Validators
case "required": case "required":
return fmt.Sprintf("%s %s is required", prefix, fe.Field()) return fmt.Sprintf("%s %s is required", prefix, fe.Field())
case "required_without_all":
return fmt.Sprintf("%s at least one of the following must be specified: %s",
prefix,
joinValues(append([]string{fe.Field()}, strings.Fields(fe.Param())...)))
case "gt": case "gt":
return fmt.Sprintf("%s %s can't be less or equal to zero", prefix, fe.Field()) return fmt.Sprintf("%s %s can't be less or equal to zero", prefix, fe.Field())
case "min": case "min":
@@ -25,8 +29,12 @@ func errorMessage(fe validator.FieldError) string {
return fmt.Sprintf("%s %s: unexpected URL format", prefix, fe.Field()) return fmt.Sprintf("%s %s: unexpected URL format", prefix, fe.Field())
case "email": case "email":
return fmt.Sprintf("%s %s: unexpected E-Mail format", prefix, fe.Field()) return fmt.Sprintf("%s %s: unexpected E-Mail format", prefix, fe.Field())
case "mac":
return fmt.Sprintf("%s %s: unexpected MAC address format", prefix, fe.Field())
case "isBool": case "isBool":
return fmt.Sprintf("%s %s: must be bool type", prefix, fe.Field()) return fmt.Sprintf("%s %s: must be bool type", prefix, fe.Field())
case "isString":
return fmt.Sprintf("%s %s: must be string type", prefix, fe.Field())
case "accessType": case "accessType":
return fmt.Sprintf("%s %s must be one of the following: %s", return fmt.Sprintf("%s %s must be one of the following: %s",

View File

@@ -231,6 +231,11 @@ func registerAllValidators(validate *validator.Validate) error {
return err return err
} }
err = validate.RegisterValidation("isString", isStringTypeValidator)
if err != nil {
return err
}
err = validate.RegisterValidation("url", urlValidartor) err = validate.RegisterValidation("url", urlValidartor)
if err != nil { if err != nil {
return err return err
@@ -306,5 +311,25 @@ func registerAllValidators(validate *validator.Validate) error {
return err return err
} }
err = validate.RegisterValidation("pciDeviceHWPath", pciDeviceHWPathValidator)
if err != nil {
return err
}
err = validate.RegisterValidation("sepName", sepNameValidator)
if err != nil {
return err
}
err = validate.RegisterValidation("sepDescription", sepDescriptionValidator)
if err != nil {
return err
}
err = validate.RegisterValidation("watchdogAction", watchdogActionValidator)
if err != nil {
return err
}
return nil return nil
} }

View File

@@ -47,7 +47,7 @@ var (
vmActionValues = []string{"stop", "move"} vmActionValues = []string{"stop", "move"}
computeFeaturesValues = []string{"hugepages", "numa", "cpupin", "vfnic", "dpdk", "changemac", "trunk"} computeFeaturesValues = []string{"hugepages", "numa", "cpupin", "vfnic", "dpdk", "changemac", "trunk", "vgpu", "pcidevice"}
networkInterfaceNamingValues = []string{"eth", "ens"} networkInterfaceNamingValues = []string{"eth", "ens"}
@@ -80,6 +80,8 @@ var (
ipTypeValues = []string{"v4, v6"} ipTypeValues = []string{"v4, v6"}
sepTechStatusValues = []string{"ENABLED", "DISABLED"} sepTechStatusValues = []string{"ENABLED", "DISABLED"}
watchdogActionVaues = []string{"reset", "shutdown", "poweroff", "pause", "none"}
) )
const ( const (

View File

@@ -14,11 +14,12 @@ import (
"time" "time"
"github.com/google/go-querystring/query" "github.com/google/go-querystring/query"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/constants" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/constants"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/sdn" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudbroker"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/sdn"
) )
// LegacyDecortClient is Legacy HTTP-client for platform // LegacyDecortClient is Legacy HTTP-client for platform
@@ -32,6 +33,10 @@ type LegacyDecortClient struct {
// Legacy client builder // Legacy client builder
func NewLegacy(cfg config.LegacyConfig) *LegacyDecortClient { func NewLegacy(cfg config.LegacyConfig) *LegacyDecortClient {
if err := validators.ValidateConfig(cfg); err != nil {
panic(validators.ValidationErrors(validators.GetErrors(err)))
}
if cfg.Retries == 0 { if cfg.Retries == 0 {
cfg.Retries = 5 cfg.Retries = 5
} }

View File

@@ -1,7 +1,7 @@
package cloudapi package cloudapi
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/account" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi/account"
) )
// Accessing the Account method group // Accessing the Account method group

View File

@@ -2,7 +2,7 @@
package account package account
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/interfaces" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/interfaces"
) )
// Structure for creating request to account // Structure for creating request to account

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AddUserRequest struct to add permission to access account for a user // AddUserRequest struct to add permission to access account for a user

View File

@@ -1,40 +0,0 @@
package account
import (
"context"
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators"
)
// AuditsRequest struct to give list of account audits
type AuditsRequest struct {
// ID of the account
// Required: true
AccountID uint64 `url:"accountId" json:"accountId" validate:"required"`
}
// Audits gets audit records for the specified account object
func (a Account) Audits(ctx context.Context, req AuditsRequest) (ListAudits, error) {
err := validators.ValidateRequest(req)
if err != nil {
return nil, validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudapi/account/audits"
res, err := a.client.DecortApiCall(ctx, http.MethodPost, url, req)
if err != nil {
return nil, err
}
list := ListAudits{}
err = json.Unmarshal(res, &list)
if err != nil {
return nil, err
}
return list, nil
}

View File

@@ -1,36 +0,0 @@
package account
import (
"context"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators"
)
// DeleteRequest struct to delete account
type DeleteRequest struct {
// ID of account to delete
// Required: true
AccountID uint64 `url:"accountId" json:"accountId" validate:"required"`
// Whether to completely delete the account
// Required: false
Permanently bool `url:"permanently,omitempty" json:"permanently,omitempty"`
}
// Delete completes delete an account from the system Returns true if account is deleted or was already deleted or never existed
func (a Account) Delete(ctx context.Context, req DeleteRequest) (string, error) {
err := validators.ValidateRequest(req)
if err != nil {
return "", validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudapi/account/delete"
result, err := a.client.DecortApiCall(ctx, http.MethodPost, url, req)
if err != nil {
return "", err
}
return string(result), nil
}

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// DeleteUserRequest struct to revoke access to account // DeleteUserRequest struct to revoke access to account

View File

@@ -1,60 +0,0 @@
package account
import (
"context"
"net/http"
"strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators"
)
// DisableEnableRequest struct to change status of account
type DisableEnableRequest struct {
// ID of account
// Required: true
AccountID uint64 `url:"accountId" json:"accountId" validate:"required"`
}
// Disable disables an account
func (a Account) Disable(ctx context.Context, req DisableEnableRequest) (bool, error) {
err := validators.ValidateRequest(req)
if err != nil {
return false, validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudapi/account/disable"
res, err := a.client.DecortApiCall(ctx, http.MethodPost, url, req)
if err != nil {
return false, err
}
result, err := strconv.ParseBool(string(res))
if err != nil {
return false, err
}
return result, nil
}
// Enable enables an account
func (a Account) Enable(ctx context.Context, req DisableEnableRequest) (bool, error) {
err := validators.ValidateRequest(req)
if err != nil {
return false, validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudapi/account/enable"
res, err := a.client.DecortApiCall(ctx, http.MethodPost, url, req)
if err != nil {
return false, err
}
result, err := strconv.ParseBool(string(res))
if err != nil {
return false, err
}
return result, nil
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GetRequest struct to get information about account // GetRequest struct to get information about account

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GetConsumedAccountUnitsRequest struct to calculate the currently consumed units for all cloudspaces and resource groups in the account // GetConsumedAccountUnitsRequest struct to calculate the currently consumed units for all cloudspaces and resource groups in the account

View File

@@ -1,51 +0,0 @@
package account
import (
"context"
"net/http"
"strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators"
)
// GetConsumedCloudUnitsByTypeRequest struct to calculate the currently consumed cloud units of the specified type for all cloudspaces and resource groups in the account
type GetConsumedCloudUnitsByTypeRequest struct {
// ID an account
// Required: true
AccountID uint64 `url:"accountId" json:"accountId" validate:"required"`
// Cloud unit resource type
// Required: true
CUType string `url:"cutype" json:"cutype" validate:"required,accountCUType"`
}
// GetConsumedCloudUnitsByType calculates the currently consumed cloud units of the specified type for all cloudspaces
// and resource groups in the account.
// Possible types of cloud units are include:
//
// - CU_M: returns consumed memory in MB
// - CU_C: returns number of virtual cpu cores
// - CU_D: returns consumed virtual disk storage in GB
// - CU_DM: returns consumed max virtual disk storage in GB
// - CU_I: returns number of public IPs
// - gpu_units: return number of GPU units
func (a Account) GetConsumedCloudUnitsByType(ctx context.Context, req GetConsumedCloudUnitsByTypeRequest) (float64, error) {
err := validators.ValidateRequest(req)
if err != nil {
return 0, validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudapi/account/getConsumedCloudUnitsByType"
res, err := a.client.DecortApiCall(ctx, http.MethodPost, url, req)
if err != nil {
return 0, err
}
result, err := strconv.ParseFloat(string(res), 64)
if err != nil {
return 0, err
}
return result, nil
}

View File

@@ -1,47 +0,0 @@
package account
import (
"context"
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators"
)
// GetReservedAccountUnitsRequest struct to calculate the reserved units for all cloudspaces and resource groups in the account
type GetReservedAccountUnitsRequest struct {
// ID an account
// Required: true
AccountID uint64 `url:"accountId" json:"accountId" validate:"required"`
}
// GetReservedAccountUnits calculates the reserved units for all cloudspaces and resource groups in the account.
// Calculated cloud units are returned in a dict which includes:
//
// - CU_M: reserved memory in MB
// - CU_C: number of cpu cores
// - CU_D: reserved vdisk storage in GB
// - CU_DM: reserved max vdisk storage in GB
// - CU_I: number of public IPs
func (a Account) GetReservedAccountUnits(ctx context.Context, req GetReservedAccountUnitsRequest) (*ResourceLimits, error) {
err := validators.ValidateRequest(req)
if err != nil {
return nil, validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudapi/account/getReservedAccountUnits"
res, err := a.client.DecortApiCall(ctx, http.MethodPost, url, req)
if err != nil {
return nil, err
}
info := ResourceLimits{}
err = json.Unmarshal(res, &info)
if err != nil {
return nil, err
}
return &info, nil
}

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GetResourceConsumptionRequest struct to get resource consumption // GetResourceConsumptionRequest struct to get resource consumption

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ListRequest struct to get list of accounts // ListRequest struct to get list of accounts

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ListComputesRequest struct to get a list of compute instances // ListComputesRequest struct to get a list of compute instances

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ListDeletedRequest struct to get a list of deleted accounts // ListDeletedRequest struct to get a list of deleted accounts

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ListDisksRequest struct to get a list of deleted disks // ListDisksRequest struct to get a list of deleted disks

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ListFLIPGroupsRequest struct to get a list of FLIPGroups // ListFLIPGroupsRequest struct to get a list of FLIPGroups

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ListRGRequest struct to get a list of resource groups // ListRGRequest struct to get a list of resource groups

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ListTemplatesRequest struct to get a list of templates // ListTemplatesRequest struct to get a list of templates

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ListVINSRequest struct to get a list of VINS // ListVINSRequest struct to get a list of VINS

View File

@@ -203,11 +203,56 @@ type ListResourceConsumption struct {
// Information about computes // Information about computes
type Computes struct { type Computes struct {
// Number of starting computes
Starting uint64 `json:"STARTING"`
// Number of started computes // Number of started computes
Started uint64 `json:"started"` Started uint64 `json:"STARTED"`
// Number of stopping computes
Stopping uint64 `json:"STOPPING"`
// Number of stopped computes // Number of stopped computes
Stopped uint64 `json:"stopped"` Stopped uint64 `json:"STOPPED"`
// Number of paused computes
Paused uint64 `json:"PAUSED"`
// Number of pausing computes
Pausing uint64 `json:"PAUSING"`
// Number of merging computes
Merge uint64 `json:"MERGE"`
// Number of migrating computes
Migrating uint64 `json:"MIGRATING"`
// Number of computes migrating in
MigratingIn uint64 `json:"MIGRATING_IN"`
// Number of computes migrating out
MigratingOut uint64 `json:"MIGRATING_OUT"`
// Number of computes in down status
Down uint64 `json:"DOWN"`
// Number of scheduled computes
Scheduled uint64 `json:"SCHEDULED"`
// Number of computes with stopped backup
BackupStopped uint64 `json:"BACKUP_STOPPED"`
// Number of computes with running backup
BackupRunning uint64 `json:"BACKUP_RUNNING"`
// Number of computes creating a snapshot
Snapcreate uint64 `json:"SNAPCREATE"`
// Number of cloning computes
Cloning uint64 `json:"CLONING"`
// Number of computes being rolled back
Rollback uint64 `json:"ROLLBACK"`
} }
// Information about machines // Information about machines
@@ -252,7 +297,7 @@ type RecordAccount struct {
CPUAllocationParameter string `json:"cpu_allocation_parameter"` CPUAllocationParameter string `json:"cpu_allocation_parameter"`
// CPU allocation ratio // CPU allocation ratio
CPUAllocationRatio float64 `json:"cpu_allocation_ratio"` CPUAllocationRatio uint64 `json:"cpu_allocation_ratio"`
// Created by // Created by
CreatedBy string `json:"createdBy"` CreatedBy string `json:"createdBy"`
@@ -455,6 +500,9 @@ type ItemVINS struct {
// Deleted time // Deleted time
DeletedTime uint64 `json:"deletedTime"` DeletedTime uint64 `json:"deletedTime"`
// Enable Default Gateway
EnableDefaultGateway bool `json:"enable_default_gateway"`
// External IP // External IP
ExternalIP string `json:"externalIP"` ExternalIP string `json:"externalIP"`
@@ -524,11 +572,56 @@ type ListAudits []ItemAudit
// Information compute in resource group // Information compute in resource group
type RGComputes struct { type RGComputes struct {
// Number of starting computes
Starting uint64 `json:"STARTING"`
// Number of started computes // Number of started computes
Started uint64 `json:"Started"` Started uint64 `json:"STARTED"`
// Number of stopping computes
Stopping uint64 `json:"STOPPING"`
// Number of stopped computes // Number of stopped computes
Stopped uint64 `json:"Stopped"` Stopped uint64 `json:"STOPPED"`
// Number of paused computes
Paused uint64 `json:"PAUSED"`
// Number of pausing computes
Pausing uint64 `json:"PAUSING"`
// Number of merging computes
Merge uint64 `json:"MERGE"`
// Number of migrating computes
Migrating uint64 `json:"MIGRATING"`
// Number of computes migrating in
MigratingIn uint64 `json:"MIGRATING_IN"`
// Number of computes migrating out
MigratingOut uint64 `json:"MIGRATING_OUT"`
// Number of computes in down status
Down uint64 `json:"DOWN"`
// Number of scheduled computes
Scheduled uint64 `json:"SCHEDULED"`
// Number of computes with stopped backup
BackupStopped uint64 `json:"BACKUP_STOPPED"`
// Number of computes with running backup
BackupRunning uint64 `json:"BACKUP_RUNNING"`
// Number of computes creating a snapshot
Snapcreate uint64 `json:"SNAPCREATE"`
// Number of cloning computes
Cloning uint64 `json:"CLONING"`
// Number of computes being rolled back
Rollback uint64 `json:"ROLLBACK"`
} }
// Resources of Resource group // Resources of Resource group

View File

@@ -4,7 +4,7 @@ import (
"context" "context"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// RestoreRequest struct to restore a deleted account // RestoreRequest struct to restore a deleted account

View File

@@ -3,7 +3,7 @@ package account
import ( import (
"encoding/json" "encoding/json"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/serialization" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/serialization"
) )
// Serialize returns JSON-serialized []byte. Used as a wrapper over json.Marshal and json.MarshalIndent functions. // Serialize returns JSON-serialized []byte. Used as a wrapper over json.Marshal and json.MarshalIndent functions.

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// UpdateRequest struct to update account // UpdateRequest struct to update account

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// UpdateUserRequest struct to update user access rights // UpdateUserRequest struct to update user access rights

View File

@@ -1,7 +1,7 @@
package cloudapi package cloudapi
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/audit" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi/audit"
) )
// Accessing the Stack method group // Accessing the Stack method group

View File

@@ -1,6 +1,6 @@
package audit package audit
import "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/interfaces" import "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/interfaces"
// Structure for creating request to audit // Structure for creating request to audit
type Audit struct { type Audit struct {

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GetRequest struct to get information about account // GetRequest struct to get information about account

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ListRequest struct to give list of account audits // ListRequest struct to give list of account audits

View File

@@ -1,6 +1,6 @@
package cloudapi package cloudapi
import "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/bservice" import "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi/bservice"
// Accessing the BService method group // Accessing the BService method group
func (ca *CloudAPI) BService() *bservice.BService { func (ca *CloudAPI) BService() *bservice.BService {

View File

@@ -1,7 +1,7 @@
// API Actor for managing Compute Group. This actor is a final API for endusers to manage Compute Group // API Actor for managing Compute Group. This actor is a final API for endusers to manage Compute Group
package bservice package bservice
import "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/interfaces" import "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/interfaces"
// Structure for creating request to bservice // Structure for creating request to bservice
type BService struct { type BService struct {

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// CreateRequest struct for BasicService // CreateRequest struct for BasicService

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// DeleteRequest struct to delete basic service // DeleteRequest struct to delete basic service

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// DisableRequest struct for disable service // DisableRequest struct for disable service

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// EnableRequest struct to disable service // EnableRequest struct to disable service

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GetRequest struct to get detailed information about service // GetRequest struct to get detailed information about service

View File

@@ -5,7 +5,8 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/constants"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GroupAddRequest struct to create new compute group within BasicService // GroupAddRequest struct to create new compute group within BasicService
@@ -62,9 +63,9 @@ type GroupAddRequest struct {
// Required: false // Required: false
TimeoutStart uint64 `url:"timeoutStart,omitempty" json:"timeoutStart,omitempty"` TimeoutStart uint64 `url:"timeoutStart,omitempty" json:"timeoutStart,omitempty"`
// Meta data for working group computes, format YAML "user_data": 1111 // Meta data for working group computes, format yaml string or json object
// Required: false // Required: false
UserData string `url:"userData,omitempty" json:"userData,omitempty"` UserData interface{} `url:"userData,omitempty" json:"userData,omitempty"`
// Chipset "i440fx" or "Q35 // Chipset "i440fx" or "Q35
// Default value : Q35 // Default value : Q35
@@ -97,7 +98,7 @@ func (b BService) GroupAdd(ctx context.Context, req GroupAddRequest) (uint64, er
url := "/cloudapi/bservice/groupAdd" url := "/cloudapi/bservice/groupAdd"
res, err := b.client.DecortApiCall(ctx, http.MethodPost, url, req) res, err := b.client.DecortApiCallCtype(ctx, http.MethodPost, url, constants.MIMEJSON, req)
if err != nil { if err != nil {
return 0, err return 0, err
} }

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GroupComputeRemoveRequest struct to remove group compute // GroupComputeRemoveRequest struct to remove group compute

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GroupGetRequest struct to get detailed information about Compute Group // GroupGetRequest struct to get detailed information about Compute Group

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GroupParentAddRequest struct to add parent Compute Group relation to the specified Compute Group // GroupParentAddRequest struct to add parent Compute Group relation to the specified Compute Group

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GroupParentRemoveRequest struct to remove parent Compute Group // GroupParentRemoveRequest struct to remove parent Compute Group

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GroupRemoveRequest struct for destroy the specified Compute Group // GroupRemoveRequest struct for destroy the specified Compute Group

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GroupResizeRequest struct to resize the group // GroupResizeRequest struct to resize the group

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GroupStartRequest struct to start the specified Compute Group // GroupStartRequest struct to start the specified Compute Group

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GroupStopRequest struct to stop the specified Compute Group // GroupStopRequest struct to stop the specified Compute Group

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GroupUpdateRequest struct to update existing Compute group // GroupUpdateRequest struct to update existing Compute group

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GroupUpdateExtNetRequest struct to update External Network settings // GroupUpdateExtNetRequest struct to update External Network settings

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// GroupUpdateVINSRequest struct to update VINS settings // GroupUpdateVINSRequest struct to update VINS settings

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ListRequest struct to get list of BasicService instances // ListRequest struct to get list of BasicService instances

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ListDeletedRequest struct to get list of deleted BasicService instances // ListDeletedRequest struct to get list of deleted BasicService instances

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// MigrateToZone struct to move basic service to another zone // MigrateToZone struct to move basic service to another zone

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// RestoreRequest struct to restore BasicService instance // RestoreRequest struct to restore BasicService instance

View File

@@ -3,7 +3,7 @@ package bservice
import ( import (
"encoding/json" "encoding/json"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/serialization" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/serialization"
) )
// Serialize returns JSON-serialized []byte. Used as a wrapper over json.Marshal and json.MarshalIndent functions. // Serialize returns JSON-serialized []byte. Used as a wrapper over json.Marshal and json.MarshalIndent functions.

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// SnapshotCreateRequest struct to create snapshot // SnapshotCreateRequest struct to create snapshot

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// SnapshotDeleteRequest struct to delete snapshot // SnapshotDeleteRequest struct to delete snapshot

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// SnapshotListRequest struct to get list of existing snapshots // SnapshotListRequest struct to get list of existing snapshots

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// SnapshotRollbackRequest struct to rollback snapshot // SnapshotRollbackRequest struct to rollback snapshot

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// StartRequest struct to start service // StartRequest struct to start service

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// StopRequest struct to stop service // StopRequest struct to stop service

View File

@@ -2,7 +2,7 @@
package cloudapi package cloudapi
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/interfaces" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/interfaces"
) )
// Structure for creating request to CloudAPI groups // Structure for creating request to CloudAPI groups

View File

@@ -1,7 +1,7 @@
package cloudapi package cloudapi
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/compute" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/pkg/cloudapi/compute"
) )
// Accessing the Compute method group // Accessing the Compute method group

View File

@@ -4,7 +4,7 @@ import (
"context" "context"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AbortSharedSnapshotMergeRequest struct to abort shared snapshots merge // AbortSharedSnapshotMergeRequest struct to abort shared snapshots merge
@@ -18,6 +18,11 @@ type AbortSharedSnapshotMergeRequest struct {
Label string `url:"label" json:"label" validate:"required"` Label string `url:"label" json:"label" validate:"required"`
} }
type wrapperAbortSharedSnapshotMergeRequest struct {
AbortSharedSnapshotMergeRequest
AsyncMode bool `url:"asyncMode"`
}
// AbortSharedSnapshotMerge shared snapshots merge abort // AbortSharedSnapshotMerge shared snapshots merge abort
func (c Compute) AbortSharedSnapshotMerge(ctx context.Context, req AbortSharedSnapshotMergeRequest) (string, error) { func (c Compute) AbortSharedSnapshotMerge(ctx context.Context, req AbortSharedSnapshotMergeRequest) (string, error) {
err := validators.ValidateRequest(req) err := validators.ValidateRequest(req)
@@ -25,9 +30,36 @@ func (c Compute) AbortSharedSnapshotMerge(ctx context.Context, req AbortSharedSn
return "", validators.ValidationErrors(validators.GetErrors(err)) return "", validators.ValidationErrors(validators.GetErrors(err))
} }
reqWrapped := wrapperAbortSharedSnapshotMergeRequest{
AbortSharedSnapshotMergeRequest: req,
AsyncMode: false,
}
url := "/cloudapi/compute/abort_shared_snapshot_merge" url := "/cloudapi/compute/abort_shared_snapshot_merge"
res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req) res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
if err != nil {
return "", err
}
return string(res), nil
}
// AbortSharedSnapshotMergeAsync shared snapshots merge abort in async mode
func (c Compute) AbortSharedSnapshotMergeAsync(ctx context.Context, req AbortSharedSnapshotMergeRequest) (string, error) {
err := validators.ValidateRequest(req)
if err != nil {
return "", validators.ValidationErrors(validators.GetErrors(err))
}
reqWrapped := wrapperAbortSharedSnapshotMergeRequest{
AbortSharedSnapshotMergeRequest: req,
AsyncMode: true,
}
url := "/cloudapi/compute/abort_shared_snapshot_merge"
res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
if err != nil { if err != nil {
return "", err return "", err
} }

View File

@@ -4,7 +4,7 @@ import (
"context" "context"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AffinityGroupCheckStartRequest struct to check all computes with current affinity label can start // AffinityGroupCheckStartRequest struct to check all computes with current affinity label can start

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AffinityLabelRemoveRequest struct to clear affinity label for compute // AffinityLabelRemoveRequest struct to clear affinity label for compute

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AffinityLabelSetRequest struct to set affinity label for compute // AffinityLabelSetRequest struct to set affinity label for compute

View File

@@ -5,7 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AffinityRelationsRequest struct to get dict of computes // AffinityRelationsRequest struct to get dict of computes

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AffinityRuleAddRequest struct to add affinity rule // AffinityRuleAddRequest struct to add affinity rule

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AffinityRuleRemoveRequest struct to remove affinity rule // AffinityRuleRemoveRequest struct to remove affinity rule

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AffinityRulesClearRequest struct to clear affinity rules // AffinityRulesClearRequest struct to clear affinity rules

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AntiAffinityRuleAddRequest struct to add anti affinity rule // AntiAffinityRuleAddRequest struct to add anti affinity rule

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AntiAffinityRuleRemoveRequest struct to remove anti affinity rule // AntiAffinityRuleRemoveRequest struct to remove anti affinity rule

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AntiAffinityRulesClearRequest struct to clear anti affinity rules // AntiAffinityRulesClearRequest struct to clear anti affinity rules

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AttachGPURequest struct to attach GPU for compute // AttachGPURequest struct to attach GPU for compute

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// AttachPCIDeviceRequest struct to attach PCI device // AttachPCIDeviceRequest struct to attach PCI device

View File

@@ -1,76 +0,0 @@
package compute
import (
"context"
"encoding/json"
"net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators"
)
// AuditsRequest struct to get audit records
type AuditsRequest struct {
// ID of the compute
// Required: true
ComputeID uint64 `url:"compute_id" json:"compute_id" validate:"required"`
// Find all audits after point in time
// Required: false
TimestampAT uint64 `url:"timestamp_at,omitempty" json:"timestamp_at,omitempty"`
// Find all audits before point in time
// Required: false
TimestampTO uint64 `url:"timestamp_to,omitempty" json:"timestamp_to,omitempty"`
// Find by user
// Required: false
User string `url:"user,omitempty" json:"user,omitempty"`
// Find by api endpoints
// Required: false
Call string `url:"call,omitempty" json:"call,omitempty"`
// Sort by one of supported fields, format ±<field>
// Required: false
SortBy string `url:"sort_by,omitempty" json:"sort_by,omitempty"`
// Page number
// Required: false
Page uint64 `url:"page,omitempty" json:"page,omitempty"`
// Page size
// Required: false
Size uint64 `url:"size,omitempty" json:"size,omitempty"`
// Find by HTTP min status code
// Required: false
MinStatusCode uint64 `url:"min_status_code,omitempty" json:"min_status_code,omitempty"`
// Find by HTTP max status code
// Required: false
MaxStatusCode uint64 `url:"max_status_code,omitempty" json:"max_status_code,omitempty"`
}
// Audits gets audit records for the specified compute object
func (c Compute) Audits(ctx context.Context, req AuditsRequest) (*ListAudits, error) {
err := validators.ValidateRequest(req)
if err != nil {
return nil, validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudapi/compute/audits"
res, err := c.client.DecortApiCall(ctx, http.MethodGet, url, req)
if err != nil {
return nil, err
}
list := ListAudits{}
err = json.Unmarshal(res, &list)
if err != nil {
return nil, err
}
return &list, nil
}

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// BootDiskSetRequest struct to set boot disk for compute // BootDiskSetRequest struct to set boot disk for compute

View File

@@ -4,7 +4,8 @@ import (
"context" "context"
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// BootOrderGetRequest struct to get boot order // BootOrderGetRequest struct to get boot order

View File

@@ -4,7 +4,8 @@ import (
"context" "context"
"encoding/json" "encoding/json"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// BootOrderSetRequest struct to set boot order // BootOrderSetRequest struct to set boot order

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// CDEjectRequest struct to eject CD image // CDEjectRequest struct to eject CD image
@@ -15,6 +15,12 @@ type CDEjectRequest struct {
ComputeID uint64 `url:"computeId" json:"computeId" validate:"required"` ComputeID uint64 `url:"computeId" json:"computeId" validate:"required"`
} }
type wrapperCDEjectRequest struct {
CDEjectRequest
AsyncMode bool `url:"asyncMode"`
}
// CDEject eject CD image to compute's CD-ROM // CDEject eject CD image to compute's CD-ROM
func (c Compute) CDEject(ctx context.Context, req CDEjectRequest) (bool, error) { func (c Compute) CDEject(ctx context.Context, req CDEjectRequest) (bool, error) {
err := validators.ValidateRequest(req) err := validators.ValidateRequest(req)
@@ -22,9 +28,14 @@ func (c Compute) CDEject(ctx context.Context, req CDEjectRequest) (bool, error)
return false, validators.ValidationErrors(validators.GetErrors(err)) return false, validators.ValidationErrors(validators.GetErrors(err))
} }
reqWrapped := wrapperCDEjectRequest{
CDEjectRequest: req,
AsyncMode: false,
}
url := "/cloudapi/compute/cdEject" url := "/cloudapi/compute/cdEject"
res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req) res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
if err != nil { if err != nil {
return false, err return false, err
} }
@@ -33,5 +44,28 @@ func (c Compute) CDEject(ctx context.Context, req CDEjectRequest) (bool, error)
if err != nil { if err != nil {
return false, err return false, err
} }
return result, nil return result, nil
} }
// CDEjectAsync ejects CD image to compute's CD-ROM with AsyncMode
func (c Compute) CDEjectAsync(ctx context.Context, req CDEjectRequest) (string, error) {
err := validators.ValidateRequest(req)
if err != nil {
return "", validators.ValidationErrors(validators.GetErrors(err))
}
reqWrapped := wrapperCDEjectRequest{
CDEjectRequest: req,
AsyncMode: true,
}
url := "/cloudapi/compute/cdEject"
res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
if err != nil {
return "", err
}
return string(res), nil
}

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// CDInsertRequest struct to insert new CD image // CDInsertRequest struct to insert new CD image
@@ -19,6 +19,12 @@ type CDInsertRequest struct {
CDROMID uint64 `url:"cdromId" json:"cdromId" validate:"required"` CDROMID uint64 `url:"cdromId" json:"cdromId" validate:"required"`
} }
type wrapperCDInsertRequest struct {
CDInsertRequest
AsyncMode bool `url:"asyncMode"`
}
// CDInsert insert new CD image to compute's CD-ROM // CDInsert insert new CD image to compute's CD-ROM
func (c Compute) CDInsert(ctx context.Context, req CDInsertRequest) (bool, error) { func (c Compute) CDInsert(ctx context.Context, req CDInsertRequest) (bool, error) {
err := validators.ValidateRequest(req) err := validators.ValidateRequest(req)
@@ -26,9 +32,14 @@ func (c Compute) CDInsert(ctx context.Context, req CDInsertRequest) (bool, error
return false, validators.ValidationErrors(validators.GetErrors(err)) return false, validators.ValidationErrors(validators.GetErrors(err))
} }
reqWrapped := wrapperCDInsertRequest{
CDInsertRequest: req,
AsyncMode: false,
}
url := "/cloudapi/compute/cdInsert" url := "/cloudapi/compute/cdInsert"
res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req) res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
if err != nil { if err != nil {
return false, err return false, err
} }
@@ -37,5 +48,28 @@ func (c Compute) CDInsert(ctx context.Context, req CDInsertRequest) (bool, error
if err != nil { if err != nil {
return false, err return false, err
} }
return result, nil return result, nil
} }
// CDInsertAsync inserts new CD image to compute's CD-ROM with AsyncMode
func (c Compute) CDInsertAsync(ctx context.Context, req CDInsertRequest) (string, error) {
err := validators.ValidateRequest(req)
if err != nil {
return "", validators.ValidationErrors(validators.GetErrors(err))
}
reqWrapped := wrapperCDInsertRequest{
CDInsertRequest: req,
AsyncMode: true,
}
url := "/cloudapi/compute/cdInsert"
res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
if err != nil {
return "", err
}
return string(res), nil
}

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ChangeIPRequest struct to change IP for network // ChangeIPRequest struct to change IP for network
@@ -31,6 +31,12 @@ type ChangeIPRequest struct {
IPAddr string `url:"ip_addr" json:"ip_addr" validate:"required"` IPAddr string `url:"ip_addr" json:"ip_addr" validate:"required"`
} }
type wrapperChangeIPRequest struct {
ChangeIPRequest
AsyncMode bool `url:"asyncMode"`
}
// ChangeIP change reserved IP for compute instance // ChangeIP change reserved IP for compute instance
func (c Compute) ChangeIP(ctx context.Context, req ChangeIPRequest) (bool, error) { func (c Compute) ChangeIP(ctx context.Context, req ChangeIPRequest) (bool, error) {
err := validators.ValidateRequest(req) err := validators.ValidateRequest(req)
@@ -38,9 +44,14 @@ func (c Compute) ChangeIP(ctx context.Context, req ChangeIPRequest) (bool, error
return false, validators.ValidationErrors(validators.GetErrors(err)) return false, validators.ValidationErrors(validators.GetErrors(err))
} }
reqWrapped := wrapperChangeIPRequest{
ChangeIPRequest: req,
AsyncMode: false,
}
url := "/cloudapi/compute/changeIp" url := "/cloudapi/compute/changeIp"
res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req) res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
if err != nil { if err != nil {
return false, err return false, err
} }
@@ -52,3 +63,25 @@ func (c Compute) ChangeIP(ctx context.Context, req ChangeIPRequest) (bool, error
return result, nil return result, nil
} }
// ChangeIPAsync change reserved IP for compute instance with AsyncMode
func (c Compute) ChangeIPAsync(ctx context.Context, req ChangeIPRequest) (string, error) {
err := validators.ValidateRequest(req)
if err != nil {
return "", validators.ValidationErrors(validators.GetErrors(err))
}
reqWrapped := wrapperChangeIPRequest{
ChangeIPRequest: req,
AsyncMode: true,
}
url := "/cloudapi/compute/changeIp"
res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
if err != nil {
return "", err
}
return string(res), nil
}

View File

@@ -3,8 +3,9 @@ package compute
import ( import (
"context" "context"
"net/http" "net/http"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ChangeLinkStateRequest struct to change link state // ChangeLinkStateRequest struct to change link state
@@ -23,6 +24,12 @@ type ChangeLinkStateRequest struct {
State string `url:"state" json:"state" validate:"required,interfaceState"` State string `url:"state" json:"state" validate:"required,interfaceState"`
} }
type wrapperChangeLinkStateRequest struct {
ChangeLinkStateRequest
AsyncMode bool `url:"asyncMode"`
}
// ChangeLinkState changes the status link virtual of compute // ChangeLinkState changes the status link virtual of compute
func (c Compute) ChangeLinkState(ctx context.Context, req ChangeLinkStateRequest) (bool, error) { func (c Compute) ChangeLinkState(ctx context.Context, req ChangeLinkStateRequest) (bool, error) {
err := validators.ValidateRequest(req) err := validators.ValidateRequest(req)
@@ -30,9 +37,14 @@ func (c Compute) ChangeLinkState(ctx context.Context, req ChangeLinkStateRequest
return false, validators.ValidationErrors(validators.GetErrors(err)) return false, validators.ValidationErrors(validators.GetErrors(err))
} }
reqWrapped := wrapperChangeLinkStateRequest{
ChangeLinkStateRequest: req,
AsyncMode: false,
}
url := "/cloudapi/compute/changeLinkState" url := "/cloudapi/compute/changeLinkState"
res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req) res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
if err != nil { if err != nil {
return false, err return false, err
} }
@@ -41,5 +53,28 @@ func (c Compute) ChangeLinkState(ctx context.Context, req ChangeLinkStateRequest
if err != nil { if err != nil {
return false, err return false, err
} }
return result, nil return result, nil
} }
// ChangeLinkStateAsync changes the status link virtual of compute with AsyncMode
func (c Compute) ChangeLinkStateAsync(ctx context.Context, req ChangeLinkStateRequest) (string, error) {
err := validators.ValidateRequest(req)
if err != nil {
return "", validators.ValidationErrors(validators.GetErrors(err))
}
reqWrapped := wrapperChangeLinkStateRequest{
ChangeLinkStateRequest: req,
AsyncMode: true,
}
url := "/cloudapi/compute/changeLinkState"
res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
if err != nil {
return "", err
}
return string(res), nil
}

View File

@@ -5,7 +5,7 @@ import (
"net/http" "net/http"
"strconv" "strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v16/internal/validators"
) )
// ChangeMACRequest struct to change MAC for network // ChangeMACRequest struct to change MAC for network

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