v14.13.0
This commit is contained in:
24
CHANGELOG.md
24
CHANGELOG.md
@@ -1,4 +1,4 @@
|
||||
## Version 14.12.0
|
||||
## Version 1.14.13
|
||||
|
||||
Методы `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 и в следующих версиях будут удалены
|
||||
@@ -7,9 +7,25 @@
|
||||
|
||||
Все методы группы `.SDN()` находятся в альфа-версии.
|
||||
|
||||
### Исправлено
|
||||
|
||||
#### sep
|
||||
|
||||
### Добавлено
|
||||
|
||||
#### sdn logicalports
|
||||
| Идентификатор задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-949 | Тип возвращаемого значения в методе `AddConsumerNodes` с `uint64` на `[]uint64` в cloudbroker/sep |
|
||||
| BGOS-967 | Вычисляемое поле `ExcludeFirewall` в структуру ответа `LogicalPort` в sdn/logicalports |
|
||||
|
||||
|
||||
### Изменено
|
||||
|
||||
#### sdn logicalports
|
||||
| Идентификатор задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-967 | Тип опционального поля `LogicalPortAddresses` в структуре запроса `CreateRequest` с `[]LogicalPortAddress` на `[]LogicalPortAddressRequest` в sdn/logicalports |
|
||||
| BGOS-967 | Тип обязательного поля `IP` в структуре запроса `LogicalPortAddressRequest` с `string` на `interface{}` в sdn/logicalports |
|
||||
| BGOS-967 | Тип поля `IsDiscovered` c опционального на обязательное в структурах запросов `UpdateAddress` и `AddAddress` в sdn/logicalports |
|
||||
| BGOS-967 | Тип обязательного поля `IsDiscovered` в структуре запроса `UpdateAddress` и `AddAddress` с `bool` на `interface{}` в sdn/logicalports |
|
||||
| BGOS-967 | Тип опционального поля `Labels` в структуре запроса `CreateRequest` с `CreateLabels` на `*CreateLabels` в sdn/logicalports |
|
||||
| BGOS-967 | Тип опционального поля `Labels` в структуре запроса `UpdateRequest` с `UpdateLabels` на `*UpdateLabels` в sdn/logicalports |
|
||||
|
||||
|
||||
@@ -350,6 +350,10 @@ func isBoolTypeValidator(fe validator.FieldLevel) bool {
|
||||
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 {
|
||||
fieldValues := fl.Field().String()
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package validators
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v14/internal/multierror"
|
||||
|
||||
"github.com/go-playground/validator/v10"
|
||||
|
||||
@@ -27,6 +27,8 @@ func errorMessage(fe validator.FieldError) string {
|
||||
return fmt.Sprintf("%s %s: unexpected E-Mail format", prefix, fe.Field())
|
||||
case "isBool":
|
||||
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":
|
||||
return fmt.Sprintf("%s %s must be one of the following: %s",
|
||||
|
||||
@@ -231,6 +231,11 @@ func registerAllValidators(validate *validator.Validate) error {
|
||||
return err
|
||||
}
|
||||
|
||||
err = validate.RegisterValidation("isString", isStringTypeValidator)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = validate.RegisterValidation("url", urlValidartor)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -55,34 +55,35 @@ type CreateRequest struct {
|
||||
|
||||
// Logical port addresses
|
||||
// Required: false
|
||||
LogicalPortAddresses []LogicalPortAddress `url:"logical_port_addresses,omitempty" json:"logical_port_addresses,omitempty" validate:"dive"`
|
||||
LogicalPortAddresses []LogicalPortAddressRequest `url:"logical_port_addresses,omitempty" json:"logical_port_addresses,omitempty" validate:"dive"`
|
||||
|
||||
// Labels
|
||||
// Required: false
|
||||
Labels CreateLabels `url:"labels,omitempty" json:"labels,omitempty"`
|
||||
Labels *CreateLabels `url:"labels,omitempty" json:"labels"`
|
||||
}
|
||||
|
||||
// LogicalPortAddressRequest struct representing logical port address
|
||||
type LogicalPortAddressRequest struct {
|
||||
// IP address
|
||||
// IP address. IPv4 or IPv6 address of the logical port
|
||||
// If nil (allowed only when IsPrimary is true), the system will automatically generate a valid address
|
||||
// Required: true
|
||||
IP string `url:"ip" json:"ip" validate:"required"`
|
||||
IP interface{} `url:"ip" json:"ip" validate:"omitempty,isString"`
|
||||
|
||||
// IP type
|
||||
// Required: true
|
||||
IPType string `url:"ip_type" json:"ip_type" validate:"required,oneof=IPv4 IPv6"`
|
||||
|
||||
// Is primary. True or False
|
||||
// Is primary
|
||||
// Required: true
|
||||
IsPrimary interface{} `url:"is_primary" json:"is_primary" validate:"required,isBool"`
|
||||
|
||||
// Is discovered
|
||||
// Required: true
|
||||
IsDiscovered interface{} `url:"is_discovered" json:"is_discovered" validate:"required,isBool"`
|
||||
|
||||
// MAC address
|
||||
// Required: false
|
||||
MAC string `url:"mac,omitempty" json:"mac,omitempty"`
|
||||
|
||||
// Is discovered. True or False
|
||||
// Required: false
|
||||
IsDiscovered interface{} `url:"is_discovered,omitempty" json:"is_discovered,omitempty" validate:"omitempty,isBool"`
|
||||
}
|
||||
|
||||
// Create creates a logical port
|
||||
|
||||
@@ -34,6 +34,9 @@ type LogicalPort struct {
|
||||
// Enabled
|
||||
Enabled bool `json:"enabled"`
|
||||
|
||||
// Exclude firewall information
|
||||
ExcludeFirewall ExcludeFirewall `json:"exclude_firewall"`
|
||||
|
||||
// External network ID
|
||||
ExternalNetworkID string `json:"external_network_id"`
|
||||
|
||||
@@ -162,6 +165,18 @@ type MigrationStatus struct {
|
||||
VersionID uint64 `json:"version_id"`
|
||||
}
|
||||
|
||||
// ExcludeFirewall information
|
||||
type ExcludeFirewall struct {
|
||||
// Exclusion reason
|
||||
ExclusionReason string `json:"exclusion_reason"`
|
||||
|
||||
// Whether logical port addresses are excluded from firewall
|
||||
LogicalPortAddressesExcluded bool `json:"logical_port_addresses_excluded"`
|
||||
|
||||
// Whether logical port is excluded from firewall
|
||||
LogicalPortExcluded bool `json:"logical_port_excluded"`
|
||||
}
|
||||
|
||||
// Labels information
|
||||
type Labels struct {
|
||||
// VM ID
|
||||
|
||||
@@ -67,11 +67,15 @@ type UpdateRequest struct {
|
||||
|
||||
// Labels
|
||||
// Required: false
|
||||
Labels UpdateLabels `url:"labels,omitempty" json:"labels,omitempty"`
|
||||
Labels *UpdateLabels `url:"labels,omitempty" json:"labels"`
|
||||
}
|
||||
|
||||
// UpdateAddress struct representing update address
|
||||
type UpdateAddress struct {
|
||||
// ID of the address
|
||||
// Required: true
|
||||
ID string `url:"id" json:"id" validate:"required"`
|
||||
|
||||
// IP address
|
||||
// Required: true
|
||||
IP string `url:"ip" json:"ip" validate:"required"`
|
||||
@@ -81,8 +85,8 @@ type UpdateAddress struct {
|
||||
IPType string `url:"ip_type" json:"ip_type" validate:"required,oneof=IPv4 IPv6"`
|
||||
|
||||
// Is discovered. True or False
|
||||
// Required: false
|
||||
IsDiscovered interface{} `url:"is_discovered,omitempty" json:"is_discovered,omitempty" validate:"omitempty,isBool"`
|
||||
// Required: true
|
||||
IsDiscovered interface{} `url:"is_discovered" json:"is_discovered" validate:"required,isBool"`
|
||||
|
||||
// Is primary. True or False
|
||||
// Required: true
|
||||
@@ -103,11 +107,11 @@ type AddAddress struct {
|
||||
// Required: true
|
||||
IPType string `url:"ip_type" json:"ip_type" validate:"required,oneof=IPv4 IPv6"`
|
||||
|
||||
// Is discovered. True or False
|
||||
// Required: false
|
||||
IsDiscovered interface{} `url:"is_discovered,omitempty" json:"is_discovered,omitempty" validate:"omitempty,isBool"`
|
||||
// Is discovered
|
||||
// Required: true
|
||||
IsDiscovered interface{} `url:"is_discovered" json:"is_discovered" validate:"required,isBool"`
|
||||
|
||||
// Is primary. True or False
|
||||
// Is primary
|
||||
// Required: true
|
||||
IsPrimary interface{} `url:"is_primary" json:"is_primary" validate:"required,isBool"`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user