12 Commits

Author SHA1 Message Date
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
dayterr
825cc4387f v14.4.0
v14.4.0
2026-03-20 17:22:29 +03:00
aa3e9ad4ab v14.3.0 2026-03-13 17:20:54 +03:00
dayterr
5b2866bf0e v14.2.0 2026-03-06 16:37:54 +03:00
dayterr
a92bdecb29 v14.1.0 2026-02-27 17:09:58 +03:00
1274 changed files with 8473 additions and 2114 deletions

View File

@@ -1,4 +1,4 @@
## Version 14.0.0 ## Version 15.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 с соответствующими фильтрами Методы `Audits` в cloudapi/compute, cloudbroker/compute, cloudapi/account, cloudbroker/account, cloudapi/vins, cloudbroker/vins, cloudapi/rg и cloudbroker/rg стали deprecated и в следующих версиях будут удалены, вместо них необходимо использовать метод `List` в cloudapi/audit и cloudbroker/audit с соответствующими фильтрами
Методы `AccessGrant`, `AccessGrantToPool`, `AccessRevoke`, `AccessRevokeToPool` в cloudbroker/sep стали deprecated и в следующих версиях будут удалены Методы `AccessGrant`, `AccessGrantToPool`, `AccessRevoke`, `AccessRevokeToPool` в cloudbroker/sep стали deprecated и в следующих версиях будут удалены
@@ -7,43 +7,193 @@
Все методы группы `.SDN()` находятся в альфа-версии. Все методы группы `.SDN()` находятся в альфа-версии.
### Добавлено ### Добавлено
#### account
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-772 | Вычисляемое поле `UpdatedBy` в структуры ответа `RecordAccount` в cloudapi/account и `InfoAccount` в cloudbroker/account |
#### compute #### compute
| Идентификатор<br>задачи | Описание | | Идентификатор задачи | Описание |
| --- | --- | | --- | --- |
| BGOS-767 | Метод `CheckComputePlacement`, структура запроса `CheckComputePlacementRequest` и структуры ответа `CheckComputePlacementResult`, `CheckComputePlacementItem`,`CheckComputePlacementError` в cloudbroker/compute | | BGOS-864 | Методы `GetCPUAlignmentProfile`, `SetCPUAlignmentProfile` и `DeleteCPUAlignmentProfile` в cloudapi/compute и cloudbroker/compute |
| BGOS-771 | Вычисляемое поле `BlockSize` в структуры ответа `ItemDisk` в cloudbroker/compute и в `ItemComputeDisk` в cloudapi/compute | | BGOS-864 | Структуры запросов `GetCPUAlignmentProfileRequest`, `SetCPUAlignmentProfileRequest` и `DeleteCPUAlignmentProfileRequest` в cloudapi/compute и cloudbroker/compute |
| BGOS-865 | Вычисляемое поле `CPUAlignmentProfile` в структуру ответа `RecordCompute` в cloudapi/compute и cloudbroker/compute |
| BGOS-865 | Вычисляемое поле `CPUAlignmentProfile` в структуру ответа `ItemCompute` в cloudapi/compute и cloudbroker/compute |
| BGOS-865 | Структура ответа `CPUAlignmentProfile` в cloudapi/compute и cloudbroker/compute |
| BGOS-872 | Опциональное поле `WithMemory` в структуру запроса `SnapshotCreateRequest` в cloudapi/compute и cloudbroker/compute |
| BGOS-872 | Опциональное поле `WithMemory` в структуру запроса `SnapshotRollbackRequest` в cloudapi/compute и cloudbroker/compute |
| BGOS-872 | Вычисляемые поля `MemoryDumpImage` и `Compute` в структуру ответа `ItemSnapshot` в cloudapi/compute и cloudbroker/compute |
| BGOS-872 | Методы `SnapshotCreateAsync`, `SnapshotRollbackAsync` и `AbortSharedSnapshotMergeAsync` в cloudapi/compute и cloudbroker/compute |
| BGOS-872 | Опциональное поле `NodeID` в структуру запроса `SnapshotRollbackRequest` в cloudbroker/compute |
| BGOS-877 | Опциональное поле `Clock` в структуру запроса `UpdateRequest` в cloudapi/compute и cloudbroker/compute |
| BGOS-877 | Вычисляемое поле `Clock` в структуры ответа `RecordCompute` и `ItemCompute` в cloudapi/compute|
| BGOS-877 | Вычисляемое поле `Clock` в структуры ответа `RecordCompute` и `InfoCompute` в cloudbroker/compute |
| BGOS-885 | Методы `CDEjectAsync`, `CDInsertAsync`, `ChangeIPAsync`, `ChangeLinkStateAsync`, `ChangeSecGroupsAsync`, `ChangeMTUAsync`, `CloneAsync`, `CreateTemplateAsync`, `DeleteAsync`, `DisableAsync`, `DiskAddAsync`, `DiskAttachAsync`, `DiskDelAsync`, `DiskDetachAsync`, `DiskQOSAsync`, `DiskResizeAsync`, `DiskSwitchToReplicationAsync`, `GuestAgentDisableAsync`, `GuestAgentEnableAsync`, `GuestAgentExecuteRequestAsync`, `GuestAgentFeatureUpdateAsync`, `MigrateToZoneAsync`, `MoveToRGAsync`, `NetAttachAsync`, `NetDetachAsync`, `PauseAsync`, `PFWAddAsync`, `PFWDelAsync`, `PinToNodeAsync`, `PowerCycleAsync`, `RebootAsync`, `RedeployAsync`, `ResetAsync`, `ResizeAsync`, `RestoreAsync`, `ResumeAsync`, `StartAsync`, `StopAsync`, `MassDeleteAsync`, `MassRebootAsync`, `MassStartAsync`, `MassStopAsync`, `MigrateAbortAsync`, `MigrateStorageAbortAsync`, `MigrateStorageCleanUpAsync`, `NetQOSAsync` и `RaiseDownAsync` в cloudbroker/compute |
| BGOS-885 | Методы `CDEjectAsync`, `CDInsertAsync`, `ChangeIPAsync`, `ChangeLinkStateAsync`, `ChangeMTUAsync`, `ChangeSecGroupsAsync`, `CloneAsync`, `DeleteAsync`, `DisableAsync`, `DiskAddAsync`, `DiskDelAsync`, `DiskAttachAsync`, `DiskDetachAsync`, `DiskQOSAsync`, `DiskResizeAsync`, `DiskSwitchToReplicationAsync`, `GuestAgentDisableAsync`, `GuestAgentEnableAsync`, `GuestAgentExecuteRequestAsync`, `GuestAgentFeatureUpdateAsync`, `MigrateToZoneAsync`, `MoveToRGAsync`, `NetAttachAsync`, `NetDetachAsync`, `PauseAsync`, `PFWAddAsync`, `PFWDelAsync`, `PinToNodeAsync`, `PowerCycleAsync`, `RebootAsync`, `RedeployAsync`, `ResetAsync`, `ResizeAsync`, `RestoreAsync`, `ResumeAsync`, `StartAsync` и `StopAsync` в cloudapi/compute |
| BGOS-894 | Опциональное поле `ReadOnly` в структуры запросов `DiskAddRequest` и `DiskAttachRequest` в cloudapi/compute и cloudbroker/compute |
| BGOS-894 | Опциональное поле `ReadOnly` в структуры ответа `InfoDisk` в cloudapi/compute и cloudbroker/compute |
| BGOS-894 | Опциональное поле `ReadOnly` в структуру ответа `ItemComputeDisk` в cloudapi/compute |
| BGOS-894 | Опциональное поле `ReadOnly` в структуру ответа `ItemDisk` в cloudbroker/compute |
#### disks #### disks
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-895 | Вычисляемое поле `ComputesReadOnly` в структуру ответа `InfoDisk` в cloudbroker/disks |
| BGOS-895 | Вычисляемое поле `ComputesReadOnly` в структуры ответа `ItemDisk` и `RecordDisk` в cloudapi/disks |
#### extnet
| Идентификатор<br>задачи | Описание | | Идентификатор<br>задачи | Описание |
| --- | --- | | --- | --- |
| BGOS-770 | Опциональное поле `BlockSize` в структуру запроса `UpdateRequest` в cloudbroker/disks | | BGOS-876 | Вычисляемое поле `FreeIPs` в структуру ответа `ItemExtNet` в cloudapi/extnet |
| BGOS-770 | Вычисляемое поле `BlockSize` в структуры ответа `ItemDisk`, `ItemDiskUnattached` и `RecordDisk` в cloudapi/disks и в структуры ответа `InfoDisk` и `RecordDisk` в cloudbroker/disks |
#### grid
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-888 | Вычисляемые поля `CPUAllocationRatio`, `CPUAllocationRatioVM`, `CustomBackupPath`, `InterfaceGenerationScheme`, `MACAddressPrefix`, `NodeSelfStopTimerUptimeMonitor` и `NodeSelfStopUptimeMonitor` в структуру ответа `RecordSettingsGrid` в cloudbroker/grid |
| BGOS-888 | Вычисляемое поле `ZeroAccessEnabled` в структуру ответа `RecordGrid` в cloudbroker/grid |
| BGOS-888 | Вычисляемое поле `Policies` в структуру ответа `RecordResource` и структура ответа `PolicyUsage` в cloudbroker/grid |
#### kvmx86
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-865 | Опциональное поле `CPUAlignmentProfile` в структуры запросов `CreateRequest` и `CreateBlankRequest` в cloudapi/kvmx86 и cloudbroker/kvmx86 |
| BGOS-865 | Опциональное поле `CPUAlignmentProfile` в структуру запроса `MassCreateRequest` в cloudbroker/kvmx86 |
| BGOS-877 | Опциональное поле `Clock` в структуры запросов `CreateRequest` и `CreateBlankRequest` в cloudapi/kvmx86 и cloudbroker/kvmx86 |
| BGOS-877 | Опциональное поле `Clock` в структуру запроса `MassCreateRequest` в cloudbroker/kvmx86 |
#### node #### node
| Идентификатор<br>задачи | Описание | | Идентификатор<br>задачи | Описание |
| --- | --- | | --- | --- |
| BGOS-769 | Опциональное поле `ZoneID` в структуру запроса `ListRequest` в cloudbroker/node | | BGOS-866 | Вычисляемые поля `OneGAvailable`, `OneGFree`, `OneGReserved`, `OneGUsed`, `OneGDPDKReserved`, `TwoMAvailable`, `TwoMFree`, `TwoMReserved` и `TwoMUsed` в структуру ответа `ItemMemory` в cloudbroker/node |
| BGOS-879 | Методы `GetPCIDevices`, `PCIDeviceDriverToVFIO` и `PCIDeviceDriverToKernel` в cloudbroker/node |
| BGOS-879 | Структуры запросов `GetPCIDevicesRequest`, `PCIDeviceDriverToVFIORequest` и `PCIDeviceDriverToKernelRequest` в cloudbroker/node |
| BGOS-879 | Структуры ответов `RecordPCIDeviceDriver`, `ListPCIDevices` и `ItemPCIDevice` в cloudbroker/node |
| BGOS-880 | Вычисляемое поле `PCIDevices` в структуру ответа `ItemNode` в cloudbroker/node |
| BGOS-882 | Метод `GetNetworkInfo` и структура запроса `GetNetworkInfoRequest` в cloudbroker/node |
| BGOS-882 | Структуры ответа `RecordNodeNetworkInfo`, `SystemNetworkInfo`, `OVSNetworkInfo`, `LibvirtNetworkInfo` и `NetworkTopology` в cloudbroker/node |
| BGOS-890 | Структура ответа `ItemNode` для методов `SetCpuAllocationRatio` и `SetMemAllocationRatio` в cloudbroker/node |
#### SDN external networks #### sep
| Идентификатор<br>задачи | Описание | | Идентификатор<br>задачи | Описание |
| --- | --- | | --- | --- |
| BGOS-694 | Опциональные поля `OperationStatus` и `HypervisorStatus` в структуру запроса `ListRequest` в sdn/external_networks | | BGOS-873 | Метод `Update` и структура запроса `UpdateRequest` в cloudbroker/sep |
#### SDN network object groups #### zone
| Идентификатор задачи | Описание |
| --- | --- |
| BGOS-862 | Метод `AddCPUAlignmentProfile` и структура запроса `AddCPUAlignmentProfileRequest` в cloudbroker/zone |
| BGOS-862 | Метод `DeleteCPUAlignmentProfile` и структура запроса `DeleteCPUAlignmentProfileRequest` в cloudbroker/zone |
| BGOS-862 | Метод `GetCPUAlignmentProfile` и структура запроса `GetCPUAlignmentProfileRequest` в cloudbroker/zone |
| BGOS-862 | Метод `ListCPUAlignmentProfile` и структура запроса `ListCPUAlignmentProfileRequest` в cloudbroker/zone |
| BGOS-862 | Метод `TestCPUAlignmentProfile` и структура запроса `TestCPUAlignmentProfileRequest` в cloudbroker/zone |
| BGOS-862 | Структуры ответов `ListCPUAlignmentProfiles`, `ItemCPUAlignmentProfile`, `TestCPUAlignmentProfileResult` и `CpuAlignmentProfileCandidate` в cloudbroker/zone |
| BGOS-863 | Вычисляемое поле `CpuAlignmentProfiles` в структуры ответа `RecordZone` и `ItemZone` и структура `CpuAlignmentProfile` в cloudapi/zone и cloudbroker/zone |
#### SDN logicalports
| Идентификатор<br>задачи | Описание | | Идентификатор<br>задачи | Описание |
| --- | --- | | --- | --- |
| BGOS-749 | Методы `AttachL2ConnectionPorts`, `DetachL2ConnectionPorts` и структуры запросов `AttachL2ConnectionPortsRequest`, `L2PortBindings`, `DetachL2PortBindings`, `DetachL2ConnectionPortsRequest` в sdn/netobjgroups | | BGOS-896 | Обязательное поле `ID` в структуру запроса `UpdateAddress` в sdn/logical_port |
### Удалено #### SDN netobjgroups
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-884 | Опциональное поле `Type` в структуру запроса `ListRequest` в sdn/netobjgroups |
### Изменено
#### account
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-887 | Тип поля `CPUAllocationRatio` с `float64` на `uint64` в структуре ответа `RecordAccount` в cloudapi/account |
| BGOS-887 | Тип поля `CPUAllocationRatio` с `float64` на `uint64` в структуре ответа `InfoAccount` в cloudbroker/account |
#### compute
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-874 | Поле `StoragePolicyID` с обязательного на опциональное в структуре запроса `RedeployRequest` в cloudapi/compute и cloudbroker/compute |
| BGOS-870 | Тип поля `BLKDiscard` с `bool` на `string` и переименование в `Discard` в структуре ответа `ItemComputeDisk` в cloudapi/compute |
| BGOS-870 | Тип поля `BLKDiscard` с `bool` на `string` и переименование в `Discard` в структуре ответа `ItemDisk` в cloudbroker/compute|
| BGOS-870 | Тип поля `BLKDiscard` с `bool` на `string` и переименование в `Discard` в структуре запроса `DiskAddRequest` в cloudbroker/compute|
| BGOS-885 | Тип возвращаемого значения с `string` на `bool` в методе `Restore` в cloudapi/compute |
| BGOS-885 | Тип возвращаемого значения с `string` на `bool` в методе `MigrateStorageAbort` в cloudbroker/compute |
| BGOS-885 | Тип возвращаемого значения с `string` на `bool` в методе `MigrateStorageCleanUp` в cloudbroker/compute |
| BGOS-885 | Название метода с `Validate` на `MoveToRG` в cloudbroker/compute |
| BGOS-893 | Тип поля `SDNObjectGroupID` с `string` на `[]string` и переименование в `SDNObjectGroupIDs` в структуре запроса `NetAttachRequest` в cloudapi/compute и cloudbroker/compute |
#### disks
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-870 | Тип поля `BLKDiscard` с `bool` на `string` и переименование в `Discard` в структурах ответа `RecordDisk`, `ItemDisk` и `ItemDiskUnattached` в cloudapi/disks |
| BGOS-870 | Тип поля `BLKDiscard` с `bool` на `string` и переименование в `Discard` в структуре ответа `InfoDisk` в cloudbroker/disks |
| BGOS-870 | Тип поля `BLKDiscard` с `bool` на `string` и переименование в `Discard` в структурах запросов `CreateRequest` и `UpdateRequest` в cloudbroker/disks |
| BGOS-881 | Поле `StoragePolicyID` c опционального на обязательное в структуре запроса `MigrateRequest` в cloudbroker/disks |
#### grid
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-888 | Тип поля `Ratio` с `float64` на `uint64` в структурах запросов `SetCPUAllocationRatioRequest`, `SetCPUAllocationRatioForVMRequest` и `SetMemAllocationRatioRequest` в cloudbroker/grid |
#### image
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-860 | Тип ответа метода `MultiImageExport` со `string` на `uint64` в cloudbroker/image |
| BGOS-869 | Тип вычисляемого поля `AccountID` с опционального на обязательный в структуре `CreateVirtualRequest` в cloudapi/image |
| BGOS-878 | Тип поля `TypeImage` в структуре запроса `ListRequest` с `string` на `[]string` в cloudbroker/image и cloudapi/image |
#### kvmx86 #### kvmx86
| Идентификатор<br>задачи | Описание | | Идентификатор<br>задачи | Описание |
| --- | --- | | --- | --- |
| BGOS-773 | Опциональные поля `IS` и `IPAType` из структур запроса `CreateRequest` в cloudapi/kvmx86 и в cloudbroker/kvmx86 | | BGOS-870 | Тип поля `BLKDiscard` с `bool` на `string` и переименование в `Discard` в структуре ответа `DataDisk` в cloudbroker/kvmx86 |
| BGOS-870 | Тип поля `BootDiskBLKDiscard` с `bool` на `string` и переименование в `BootDiskDiscard` в структурах запросов `CreateRequest`, `CreateBlankRequest` и `MassCreateRequest` в cloudbroker/kvmx86 |
| BGOS-893 | Тип поля `SDNObjectGroupID` с `string` на `[]string` и переименование в `SDNObjectGroupIDs` в структуре `Interface` в cloudapi/kvmx86 и cloudbroker/kvmx86 |
| BGOS-893 | Тип поля `SDNObjectGroupID` с `string` на `[]string` и переименование в `SDNObjectGroupIDs` в структуре `InterfaceMassCreate` в cloudbroker/kvmx86 |
#### node
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-867 | Тип обязательного поля `Ratio` с `float64` на `uint64` в структурах запросов `SetMemAllocationRatioRequest` и `SetCpuAllocationRatioRequest` в cloudbroker/node |
| BGOS-889 | Тип поля `VCPU` с `float64` на `uint64` в структуре ответа `FreeResourcesInfo` в cloudbroker/node |
| BGOS-889 | Тип полей `CPUAllocationRatio` и `MemAllocationRatio` с `float64` на `uint64` в структурах ответа `RecordNode` и `ItemNode` в cloudbroker/node |
#### resmon
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-868 | Тип поля `EndTime` с обязательного на опциональное в структурах запроса `GetByNodeRequest`, `GetByNodesRequest` `GetByGRIDRequest`, `GetByComputeRequest` и `GetByComputesRequest` в cloudbroker/resmon |
#### rg
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-886 | Тип поля `CPUAllocationRatio` с `float64` на `uint64` в структурах ответа `RecordResourceGroup` и `ItemResourceGroup` в cloudapi/rg |
| BGOS-886 | Тип поля `CPUAllocationRatio` с `float64` на `uint64` в структуре ответа `ItemRG` в cloudbroker/rg |
| BGOS-886 | Тип поля `Ratio` с `float64` на `uint64` в структуре запроса `SetCPUAllocationRatioRequest` в cloudbroker/rg |
#### user
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-891 | Тип поля `Password` с опционального на обязательный в структуре запроса `CreateRequest` в cloudbroker/user |
#### SDN logicalports
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-896 | Тип полей `IsDiscovered` и `MAC` с опционального на обязательный в структурах запроса `UpdateAddress` и `AddAddress` в sdn/logical_port |
| BGOS-896 | Тип поля `IsDiscovered` с опционального на обязательный в структуре запроса `LogicalPortAddressRequest` в sdn/logical_port
| BGOS-896 | Тип полей `IsDiscovered`, `MAC` с `interface` на `bool` в структурах запроса `UpdateAddress`, `AddAddress`, `LogicalPortAddressRequest` в sdn/logical_port/update |
### Исправлено
#### vfpool
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-871 | Тип поля `Config` в структуре запроса `wrapperUpdateRequest` с `[]string` на `string` в cloudbroker/vfpool |
### Удалено
#### grid
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-888 | Вычисляемые поля `CKey` и `Meta` из структуры ответа `RecordGrid` в cloudbroker/grid |
#### user
| Идентификатор<br>задачи | Описание |
| --- | --- |
| BGOS-861 | Значение по умолчанию опционального поля `Password` в структуре запроса `CreateRequest` в cloudbroker/user |
| BGOS-875 | Опциональное поле `Password` из структуры ответа `ItemUser` в cloudbroker/user |

128
README.md
View File

@@ -10,6 +10,7 @@ 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 версии платформы
## Оглавление ## Оглавление
@@ -84,7 +85,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/v15
``` ```
## Список API ## Список API
@@ -123,6 +124,7 @@ go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v14
- `Trunk` - получение информации о транковых портах; - `Trunk` - получение информации о транковых портах;
- `VFPool` - управление пулом виртуальных сетевых функций; - `VFPool` - управление пулом виртуальных сетевых функций;
- `VINS` - управление виртуальными изолированными сетями; - `VINS` - управление виртуальными изолированными сетями;
- `VGPU` - управление виртуальными графическими процессорами;
- `Zone` - управление зонами. - `Zone` - управление зонами.
### Cloudbroker ### Cloudbroker
@@ -172,12 +174,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 +212,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/v15/config"
) )
func main(){ func main(){
@@ -233,7 +237,7 @@ func main(){
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
) )
func main() { func main() {
@@ -278,8 +282,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/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
) )
func main() { func main() {
@@ -333,6 +337,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`
@@ -372,12 +377,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`
Все поля структуры имеют описание, в которых содержится: Все поля структуры имеют описание, в которых содержится:
@@ -458,16 +465,6 @@ type CreateRequest struct {
// Node ID // Node ID
// Required: false // Required: false
NodeID uint64 `url:"nodeId,omitempty" json:"nodeId,omitempty"` NodeID uint64 `url:"nodeId,omitempty" json:"nodeId,omitempty"`
// System name
// Required: false
IS string `url:"IS,omitempty" json:"IS,omitempty"`
// Compute purpose
// Required: false
IPAType string `url:"ipaType,omitempty" json:"ipaType,omitempty"`
} }
``` ```
@@ -477,9 +474,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/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/kvmx86" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudapi/kvmx86"
) )
func main() { func main() {
@@ -539,6 +536,7 @@ func main() {
- `.Trunk()` - для работы с `Trunk` - `.Trunk()` - для работы с `Trunk`
- `.VFPool()` - для работы с `VFPool` - `.VFPool()` - для работы с `VFPool`
- `.VINS()` - для работы с `VINS` - `.VINS()` - для работы с `VINS`
- `.VGPU()` - для работы с `VGPU`
- `.Zone()` - для работы с `Zone` - `.Zone()` - для работы с `Zone`
Доступные методы для `.CloudBroker()`: Доступные методы для `.CloudBroker()`:
@@ -582,12 +580,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. Вызвать метод, отвечающий за выполнение запроса и передать в него:
@@ -613,9 +613,9 @@ import (
"log" "log"
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/kvmx86" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudapi/kvmx86"
) )
func main() { func main() {
@@ -663,9 +663,9 @@ import (
"log" "log"
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/account" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudapi/account"
) )
func main() { func main() {
@@ -843,9 +843,9 @@ import (
"context" "context"
"log" "log"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker/compute" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudbroker/compute"
) )
func main() { func main() {
@@ -901,9 +901,9 @@ import (
"log" "log"
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/bservice" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudapi/bservice"
) )
func main() { func main() {
@@ -956,10 +956,10 @@ import (
"log" "log"
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi/tasks" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/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/v15/pkg/cloudbroker/tasks"
) )
func main() { func main() {
@@ -1039,7 +1039,7 @@ func main() {
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
) )
func main(){ func main(){
@@ -1063,7 +1063,7 @@ func main(){
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
) )
func main() { func main() {
@@ -1104,8 +1104,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/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
) )
func main() { func main() {
@@ -1132,8 +1132,8 @@ package main
import ( import (
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
) )
func main() { func main() {
@@ -1215,7 +1215,7 @@ func main() {
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
) )
func main(){ func main(){
@@ -1243,7 +1243,7 @@ func main(){
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
) )
func main() { func main() {
@@ -1260,7 +1260,7 @@ func main() {
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
) )
func main() { func main() {
@@ -1326,8 +1326,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/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
) )
func main() { func main() {
@@ -1360,8 +1360,8 @@ package main
import ( import (
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
) )
func main() { func main() {
@@ -1401,8 +1401,8 @@ package main
import ( import (
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
) )
func main() { func main() {
@@ -1440,8 +1440,8 @@ package main
import ( import (
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
) )
func main() { func main() {
@@ -1494,11 +1494,11 @@ import (
"log" "log"
"os" "os"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/constants" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/internal/constants"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker/kvmx86" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudbroker/kvmx86"
) )
func main() { func main() {
@@ -1560,7 +1560,7 @@ func main() {
```go ```go
import ( import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
) )
func main(){ func main(){
@@ -1593,8 +1593,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/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
) )
func main() { func main() {
@@ -1625,8 +1625,8 @@ package main
import ( import (
"fmt" "fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/config" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v14" decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15"
) )
func main() { func main() {
@@ -1671,14 +1671,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/v15/config"
) )
func main(){ func main(){
@@ -1711,7 +1711,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/v15"
) )
// Пример юнит тестирования на моках // Пример юнит тестирования на моках

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/v15/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/v15/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/constants" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/internal/constants"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudapi"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudbroker"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/sdn" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/sdn"
) )
// DecortClient is HTTP-client for platform // DecortClient is HTTP-client for platform

View File

@@ -14,11 +14,11 @@ 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/v15/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/constants" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/internal/constants"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudapi"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudbroker"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/sdn" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/sdn"
) )
// BVSDecortClient is HTTP-client for platform // BVSDecortClient is HTTP-client for platform

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/v15/pkg/cloudapi"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudbroker"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/sdn" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/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/v15/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/v15/internal/serialization"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/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/v15/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/v15
go 1.24.0 go 1.24.0

View File

@@ -28,6 +28,7 @@ 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.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/v15/interfaces"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/multierror" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/internal/multierror"
) )
// protoValidator is used to validate Proto fields. // protoValidator is used to validate Proto fields.
@@ -86,13 +86,6 @@ func computeModeValidator(fe validator.FieldLevel) bool {
return IsInSlice(fieldValue, computeModeValues) return IsInSlice(fieldValue, computeModeValues)
} }
// computeDiskTypeValidator is used to validate DiskType field.
func computeDiskTypeValidator(fe validator.FieldLevel) bool {
fieldValue := fe.Field().String()
return IsInSlice(fieldValue, computeDiskTypeValues)
}
// computeNetTypeValidator is used to validate NetType field. // computeNetTypeValidator is used to validate NetType field.
func computeNetTypeValidator(fe validator.FieldLevel) bool { func computeNetTypeValidator(fe validator.FieldLevel) bool {
fieldValue := fe.Field().String() fieldValue := fe.Field().String()
@@ -151,13 +144,6 @@ func computeDataDisksValidator(fe validator.FieldLevel) bool {
return IsInSlice(fieldValue, computeDataDisksValues) return IsInSlice(fieldValue, computeDataDisksValues)
} }
// diskTypeValidator is used to validate Type field.
func diskTypeValidator(fe validator.FieldLevel) bool {
fieldValue := fe.Field().String()
return IsInSlice(fieldValue, diskTypeValues)
}
// flipgroupClientTypeValidator is used to validate ClientType field. // flipgroupClientTypeValidator is used to validate ClientType field.
func flipgroupClientTypeValidator(fe validator.FieldLevel) bool { func flipgroupClientTypeValidator(fe validator.FieldLevel) bool {
fieldValue := fe.Field().String() fieldValue := fe.Field().String()
@@ -478,3 +464,23 @@ 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
}

View File

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

View File

@@ -86,12 +86,6 @@ func errorMessage(fe validator.FieldError) string {
fe.Field(), fe.Field(),
joinValues(computeModeValues)) joinValues(computeModeValues))
case "computeDiskType":
return fmt.Sprintf("%s %s must be one of the following: %s",
prefix,
fe.Field(),
joinValues(computeDiskTypeValues))
case "mtu": case "mtu":
return fmt.Sprint(prefix, fe.Field(), "must be ", mtuMin, "-", mtuMax) return fmt.Sprint(prefix, fe.Field(), "must be ", mtuMin, "-", mtuMax)
@@ -122,13 +116,6 @@ func errorMessage(fe validator.FieldError) string {
fe.Field(), fe.Field(),
joinValues(computeDataDisksValues)) joinValues(computeDataDisksValues))
// Disk Validators
case "diskType":
return fmt.Sprintf("%s %s must be one of the following: %s",
prefix,
fe.Field(),
joinValues(diskTypeValues))
// Flipgroup Validators // Flipgroup Validators
case "flipgroupClientType": case "flipgroupClientType":
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

@@ -86,11 +86,6 @@ func registerAllValidators(validate *validator.Validate) error {
return err return err
} }
err = validate.RegisterValidation("computeDiskType", computeDiskTypeValidator)
if err != nil {
return err
}
err = validate.RegisterValidation("computeNetType", computeNetTypeValidator) err = validate.RegisterValidation("computeNetType", computeNetTypeValidator)
if err != nil { if err != nil {
return err return err
@@ -111,11 +106,6 @@ func registerAllValidators(validate *validator.Validate) error {
return err return err
} }
err = validate.RegisterValidation("diskType", diskTypeValidator)
if err != nil {
return err
}
err = validate.RegisterValidation("flipgroupClientType", flipgroupClientTypeValidator) err = validate.RegisterValidation("flipgroupClientType", flipgroupClientTypeValidator)
if err != nil { if err != nil {
return err return err
@@ -316,5 +306,20 @@ 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
}
return nil return nil
} }

View File

@@ -14,14 +14,11 @@ var (
computeTopologyValues = []string{"compute", "node"} computeTopologyValues = []string{"compute", "node"}
computePolicyValues = []string{"RECOMMENDED", "REQUIRED"} computePolicyValues = []string{"RECOMMENDED", "REQUIRED"}
computeModeValues = []string{"EQ", "EN", "ANY"} computeModeValues = []string{"EQ", "EN", "ANY"}
computeDiskTypeValues = []string{"D", "B"}
computeNetTypeValues = []string{"EXTNET", "VINS"} computeNetTypeValues = []string{"EXTNET", "VINS"}
computex86NetTypeValues = []string{"EXTNET", "VINS", "VFNIC", "DPDK", "SDN", "EMPTY", "TRUNK"} computex86NetTypeValues = []string{"EXTNET", "VINS", "VFNIC", "DPDK", "SDN", "EMPTY", "TRUNK"}
computeOrderValues = []string{"cdrom", "network", "hd"} computeOrderValues = []string{"cdrom", "network", "hd"}
computeDataDisksValues = []string{"KEEP", "DETACH", "DESTROY"} computeDataDisksValues = []string{"KEEP", "DETACH", "DESTROY"}
diskTypeValues = []string{"B", "T", "D"}
flipgroupClientTypeValues = []string{"compute", "vins"} flipgroupClientTypeValues = []string{"compute", "vins"}
massCreateNetTypeValues = []string{"EXTNET", "VINS", "TRUNK"} massCreateNetTypeValues = []string{"EXTNET", "VINS", "TRUNK"}
@@ -86,7 +83,7 @@ var (
) )
const ( const (
mtuMin = 1 mtuMin = 1500
mtuMax = 9216 mtuMax = 9216
trunkTagsMin = 1 trunkTagsMin = 1

View File

@@ -14,11 +14,11 @@ 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/v15/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/constants" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/internal/constants"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudapi" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudapi"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/cloudbroker" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/cloudbroker"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/pkg/sdn" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/pkg/sdn"
) )
// LegacyDecortClient is Legacy HTTP-client for platform // LegacyDecortClient is Legacy HTTP-client for platform

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/v15/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/v15/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/v15/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

@@ -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/v15/internal/validators"
) )
// AuditsRequest struct to give list of account audits // AuditsRequest struct to give list of account audits

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/v15/internal/validators"
) )
// DeleteRequest struct to delete account // DeleteRequest struct to delete 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/v15/internal/validators"
) )
// DeleteUserRequest struct to revoke access to account // DeleteUserRequest struct to revoke access 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/v15/internal/validators"
) )
// DisableEnableRequest struct to change status of account // DisableEnableRequest struct to change status of 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/v15/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/v15/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

@@ -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/v15/internal/validators"
) )
// GetConsumedCloudUnitsByTypeRequest struct to calculate the currently consumed cloud units of the specified type for all cloudspaces and resource groups in the account // GetConsumedCloudUnitsByTypeRequest struct to calculate the currently consumed cloud units of the specified type for all cloudspaces and resource groups in the 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/v15/internal/validators"
) )
// GetReservedAccountUnitsRequest struct to calculate the reserved units for all cloudspaces and resource groups in the account // GetReservedAccountUnitsRequest struct to calculate the reserved units for all cloudspaces and resource groups in the 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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/internal/validators"
) )
// ListVINSRequest struct to get a list of VINS // ListVINSRequest struct to get a list of VINS

View File

@@ -95,6 +95,9 @@ type ItemAccount struct {
// Deleted time // Deleted time
DeletedTime uint64 `json:"deletedTime"` DeletedTime uint64 `json:"deletedTime"`
// Deleted by
DeletedBy string `json:"deletedBy"`
// Description // Description
Description string `json:"desc"` Description string `json:"desc"`
@@ -107,6 +110,9 @@ type ItemAccount struct {
// Status // Status
Status string `json:"status"` Status string `json:"status"`
// Updated by
UpdatedBy string `json:"updatedBy"`
// Updated time // Updated time
UpdatedTime uint64 `json:"updatedTime"` UpdatedTime uint64 `json:"updatedTime"`
@@ -246,7 +252,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"`

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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/interfaces"
// Structure for creating request to audit // Structure for creating request to audit
type Audit struct { type Audit struct {
@@ -8,7 +8,7 @@ type Audit struct {
} }
// Builder for audit endpoint // Builder for audit endpoint
func New(client interfaces.Caller) *Audit { func New(client interfaces.Caller) *Audit{
return &Audit{ return &Audit{
client: client, client: client,
} }

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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/internal/validators"
) )
// GetRequest struct to get detailed information about service // GetRequest struct to get detailed information about 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/v15/internal/validators"
) )
// GroupAddRequest struct to create new compute group within BasicService // GroupAddRequest struct to create new compute group within 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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/pkg/cloudapi/compute"
) )
// Accessing the Compute method group // Accessing the Compute method group

View File

@@ -3,9 +3,8 @@ package compute
import ( import (
"context" "context"
"net/http" "net/http"
"strconv"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/validators" "repository.basistech.ru/BASIS/dynamix-golang-sdk/v15/internal/validators"
) )
// AbortSharedSnapshotMergeRequest struct to abort shared snapshots merge // AbortSharedSnapshotMergeRequest struct to abort shared snapshots merge
@@ -19,24 +18,51 @@ 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) (bool, error) { func (c Compute) AbortSharedSnapshotMerge(ctx context.Context, req AbortSharedSnapshotMergeRequest) (string, error) {
err := validators.ValidateRequest(req) err := validators.ValidateRequest(req)
if err != nil { if err != nil {
return false, 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 { if err != nil {
return false, err return "", err
} }
result, err := strconv.ParseBool(string(res)) return string(res), nil
if err != nil { }
return false, err
} // AbortSharedSnapshotMergeAsync shared snapshots merge abort in async mode
func (c Compute) AbortSharedSnapshotMergeAsync(ctx context.Context, req AbortSharedSnapshotMergeRequest) (string, error) {
return result, nil 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 {
return "", err
}
return string(res), nil
} }

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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/internal/validators"
) )
// AttachPCIDeviceRequest struct to attach PCI device // AttachPCIDeviceRequest struct to attach PCI device

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/v15/internal/validators"
) )
// AuditsRequest struct to get audit records // AuditsRequest struct to get audit records

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/v15/internal/validators"
) )
// BootDiskSetRequest struct to set boot disk for compute // BootDiskSetRequest struct to set boot disk for compute

View File

@@ -4,7 +4,7 @@ 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/v15/internal/validators"
) )
// BootOrderGetRequest struct to get boot order // BootOrderGetRequest struct to get boot order

View File

@@ -4,7 +4,7 @@ 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/v15/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/v15/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/v15/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/v15/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/v15/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/v15/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