parent
							
								
									78a4152471
								
							
						
					
					
						commit
						082f577e17
					
				| @ -1,38 +0,0 @@ | |||||||
| package k8s |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for get worker group metadata by ID
 |  | ||||||
| type GetWorkerNodesMetaDataRequest struct { |  | ||||||
| 	// Kubernetes cluster ID
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	K8SID uint64 `url:"k8sId" json:"k8sId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// ID of the workers compute group
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	WorkersGroupID uint64 `url:"workersGroupId" json:"workersGroupId" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Get worker group metadata by ID
 |  | ||||||
| func (k K8S) GetWorkerNodesMetaData(ctx context.Context, req GetWorkerNodesMetaDataRequest) (string, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return "", validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudapi/k8s/getWorkerNodesMetaData" |  | ||||||
| 
 |  | ||||||
| 	res, err := k.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return "", err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return string(res), nil |  | ||||||
| } |  | ||||||
| @ -1,48 +0,0 @@ | |||||||
| package k8s |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for add worker to a kubernetes cluster
 |  | ||||||
| type UpdateWorkerNodesMetaDataRequest struct { |  | ||||||
| 	// Kubernetes cluster ID
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	K8SID uint64 `url:"k8sId" json:"k8sId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// ID of the workers compute group
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	WorkersGroupID uint64 `url:"workersGroupId" json:"workersGroupId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Meta data for working group computes, format YAML "user_data": 1111
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	UserData string `url:"userData" json:"userData" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // WorkerAdd adds worker nodes to a kubernetes cluster
 |  | ||||||
| func (k K8S) UpdateWorkerNodesMetaData(ctx context.Context, req UpdateWorkerNodesMetaDataRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudapi/k8s/updateWorkerNodesMetaData" |  | ||||||
| 
 |  | ||||||
| 	res, err := k.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,40 +0,0 @@ | |||||||
| package lb |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for make Load Balancer Highly available
 |  | ||||||
| type HighlyAvailableRequest struct { |  | ||||||
| 	// ID of the LB instance
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	LBID uint64 `url:"lbId" json:"lbId" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Make Load Balancer Highly available
 |  | ||||||
| func (l LB) HighlyAvailable(ctx context.Context, req HighlyAvailableRequest) (uint64, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return 0, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudapi/lb/makeHighlyAvailable" |  | ||||||
| 
 |  | ||||||
| 	res, err := l.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return 0, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseUint(string(res), 10, 64) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return 0, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,72 +0,0 @@ | |||||||
| package lb |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"encoding/json" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for update sysct params for lb
 |  | ||||||
| type UpdateSysctParamsRequest struct { |  | ||||||
| 	// ID of the LB instance
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	LBID uint64 `url:"lbId" json:"lbId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Custom sysctl values for Load Balancer instance. Applied on boot
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	SysctlParams Params `url:"-" json:"sysctlParams" validate:"required,dive"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| type wrapperUpdateSysctParamsRequest struct { |  | ||||||
| 	UpdateSysctParamsRequest |  | ||||||
| 	Params []string `url:"sysctlParams" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Create method will create a new load balancer instance
 |  | ||||||
| func (l LB) UpdateSysctParams(ctx context.Context, req UpdateSysctParamsRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	var params []string |  | ||||||
| 
 |  | ||||||
| 	if len(req.SysctlParams) != 0 { |  | ||||||
| 		params = make([]string, 0, len(req.SysctlParams)) |  | ||||||
| 
 |  | ||||||
| 		for r := range req.SysctlParams { |  | ||||||
| 			b, err := json.Marshal(req.SysctlParams[r]) |  | ||||||
| 			if err != nil { |  | ||||||
| 				return false, err |  | ||||||
| 			} |  | ||||||
| 
 |  | ||||||
| 			params = append(params, string(b)) |  | ||||||
| 		} |  | ||||||
| 	} else { |  | ||||||
| 		params = []string{} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	reqWrapped := wrapperUpdateSysctParamsRequest{ |  | ||||||
| 		UpdateSysctParamsRequest: req, |  | ||||||
| 		Params:                   params, |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudapi/lb/updateSysctParams" |  | ||||||
| 
 |  | ||||||
| 	res, err := l.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,10 +0,0 @@ | |||||||
| package cloudapi |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/stack" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Accessing the Stack method group
 |  | ||||||
| func (ca *CloudAPI) Stack() *stack.Stack { |  | ||||||
| 	return stack.New(ca.client) |  | ||||||
| } |  | ||||||
| @ -1,42 +0,0 @@ | |||||||
| package stack |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"encoding/json" |  | ||||||
| 	"net/http" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for get info of stack
 |  | ||||||
| type GetRequest struct { |  | ||||||
| 	// Find by ID
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	StackId uint64 `url:"stackId" json:"stackId" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Get stack details by ID
 |  | ||||||
| func (i Stack) Get(ctx context.Context, req GetRequest) (*InfoStack, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return nil, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudapi/stack/get" |  | ||||||
| 
 |  | ||||||
| 	res, err := i.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	info := InfoStack{} |  | ||||||
| 
 |  | ||||||
| 	err = json.Unmarshal(res, &info) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return &info, nil |  | ||||||
| } |  | ||||||
| @ -1,53 +0,0 @@ | |||||||
| package stack |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"encoding/json" |  | ||||||
| 	"net/http" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for get list stack
 |  | ||||||
| type ListRequest struct { |  | ||||||
| 	// Find by ID
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	ByID uint64 `url:"by_id,omitempty" json:"by_id,omitempty"` |  | ||||||
| 
 |  | ||||||
| 	// Find by name
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	Name string `url:"name,omitempty" json:"name,omitempty"` |  | ||||||
| 
 |  | ||||||
| 	// Find by type
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	Type string `url:"type,omitempty" json:"type,omitempty"` |  | ||||||
| 
 |  | ||||||
| 	// Find by status
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	Status string `url:"status,omitempty" json:"status,omitempty"` |  | ||||||
| 
 |  | ||||||
| 	// Page number
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	Page uint64 `url:"page,omitempty" json:"page,omitempty"` |  | ||||||
| 
 |  | ||||||
| 	// Page size
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	Size uint64 `url:"size,omitempty" json:"size,omitempty"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // ListStacks gets list stack
 |  | ||||||
| func (i Stack) List(ctx context.Context, req ListRequest) (*ListStacks, error) { |  | ||||||
| 	url := "/cloudapi/stack/list" |  | ||||||
| 
 |  | ||||||
| 	res, err := i.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	list := ListStacks{} |  | ||||||
| 
 |  | ||||||
| 	err = json.Unmarshal(res, &list) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return &list, nil |  | ||||||
| } |  | ||||||
| @ -1,53 +0,0 @@ | |||||||
| package stack |  | ||||||
| 
 |  | ||||||
| // Main information about stack
 |  | ||||||
| type InfoStack struct { |  | ||||||
| 	// CPU allocation ratio
 |  | ||||||
| 	CPUAllocationRatio float64 `json:"cpu_allocation_ratio"` |  | ||||||
| 
 |  | ||||||
| 	// Descr
 |  | ||||||
| 	Descr string `json:"descr"` |  | ||||||
| 
 |  | ||||||
| 	// Drivers
 |  | ||||||
| 	Drivers []string `json:"drivers"` |  | ||||||
| 
 |  | ||||||
| 	// ID
 |  | ||||||
| 	ID uint64 `json:"id"` |  | ||||||
| 
 |  | ||||||
| 	// Mem allocation ratio
 |  | ||||||
| 	MemAllocationRatio float64 `json:"mem_allocation_ratio"` |  | ||||||
| 
 |  | ||||||
| 	// Name
 |  | ||||||
| 	Name string `json:"name"` |  | ||||||
| 
 |  | ||||||
| 	// Status
 |  | ||||||
| 	Status string `json:"status"` |  | ||||||
| 
 |  | ||||||
| 	// Type
 |  | ||||||
| 	Type string `json:"type"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Information about stack in list
 |  | ||||||
| type ItemStack struct { |  | ||||||
| 	// ID
 |  | ||||||
| 	ID uint64 `json:"id"` |  | ||||||
| 
 |  | ||||||
| 	// Name
 |  | ||||||
| 	Name string `json:"name"` |  | ||||||
| 
 |  | ||||||
| 	// Status
 |  | ||||||
| 	Status string `json:"status"` |  | ||||||
| 
 |  | ||||||
| 	// Type
 |  | ||||||
| 	Type string `json:"type"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // List of stacks
 |  | ||||||
| type ListStacks struct { |  | ||||||
| 
 |  | ||||||
| 	//List
 |  | ||||||
| 	Data []ItemStack `json:"data"` |  | ||||||
| 
 |  | ||||||
| 	//Entry count
 |  | ||||||
| 	EntryCount uint64 `json:"entryCount"` |  | ||||||
| } |  | ||||||
| @ -1,16 +0,0 @@ | |||||||
| // Lists all the stack.
 |  | ||||||
| package stack |  | ||||||
| 
 |  | ||||||
| import "repository.basistech.ru/BASIS/decort-golang-sdk/interfaces" |  | ||||||
| 
 |  | ||||||
| // Structure for creating request to stack
 |  | ||||||
| type Stack struct { |  | ||||||
| 	client interfaces.Caller |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Builder for stack endpoint
 |  | ||||||
| func New(client interfaces.Caller) *Stack { |  | ||||||
| 	return &Stack{ |  | ||||||
| 		client: client, |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @ -1,48 +0,0 @@ | |||||||
| package vins |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for grant access to static route to Compute/ViNS
 |  | ||||||
| type StaticRouteAccessGrantRequest struct { |  | ||||||
| 	// ViNS ID to grant access
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	VINSID uint64 `url:"vinsId" json:"vinsId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Route ID to grant access, can be found in staticRouteList
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	RouteId  uint64 `url:"routeId" json:"routeId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// List of Compute IDs to grant access to this route
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	ComputeIds []uint64 `url:"computeIds,omitempty" json:"computeIds,omitempty"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Grant access to static route to Compute/ViNS
 |  | ||||||
| func (v VINS) StaticRouteAccessGrant(ctx context.Context, req StaticRouteAccessGrantRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudapi/vins/staticRouteAccessGrant" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,48 +0,0 @@ | |||||||
| package vins |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for revoke access to static route to Compute/ViNS
 |  | ||||||
| type StaticRouteAccessRevokeRequest struct { |  | ||||||
| 	// ViNS ID to revoke access
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	VINSID uint64 `url:"vinsId" json:"vinsId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Route ID to revoke access, can be found in staticRouteList
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	RouteId  uint64 `url:"routeId" json:"routeId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// List of Compute IDs to revoke access to this route
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	ComputeIds []uint64 `url:"computeIds,omitempty" json:"computeIds,omitempty"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Revoke access to static route to Compute/ViNS
 |  | ||||||
| func (v VINS) StaticRouteAccessRevoke(ctx context.Context, req StaticRouteAccessRevokeRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudapi/vins/staticRouteAccessRevoke" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,56 +0,0 @@ | |||||||
| package vins |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for add static route
 |  | ||||||
| type StaticRouteAddRequest struct { |  | ||||||
| 	// VINS ID
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	VINSID uint64 `url:"vinsId" json:"vinsId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Destination network
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	Destination string `url:"destination" json:"destination" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Destination network mask in 255.255.255.255 format
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	Netmask string `url:"netmask" json:"netmask" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Next hop host, IP address from ViNS ID free IP pool
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	Gateway string `url:"gateway" json:"gateway" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// List of Compute IDs which have access to this route
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	ComputeIds []uint64 `url:"computeIds,omitempty" json:"computeIds,omitempty"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // StaticRouteAdd add new static route to ViNS 
 |  | ||||||
| func (v VINS) StaticRouteAdd(ctx context.Context, req StaticRouteAddRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudapi/vins/staticRouteAdd" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| package vins |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for remove static route from ViNS
 |  | ||||||
| type StaticRouteDelRequest struct { |  | ||||||
| 	// ViNS ID to remove static route from
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	VINSID uint64 `url:"vinsId" json:"vinsId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Route ID to remove, can be found in staticRouteList
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	RouteId  uint64 `url:"routeId" json:"routeId" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Remove static route from ViNS
 |  | ||||||
| func (v VINS) StaticRouteDel(ctx context.Context, req StaticRouteDelRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudapi/vins/staticRouteDel" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,42 +0,0 @@ | |||||||
| package vins |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"encoding/json" |  | ||||||
| 	"net/http" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for static route list
 |  | ||||||
| type StaticRouteListRequest struct { |  | ||||||
| 	// ViNS ID to show list of static routes
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	VINSID uint64 `url:"vinsId" json:"vinsId" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Show list of static routes for ViNS
 |  | ||||||
| func (v VINS) StaticRouteList(ctx context.Context, req StaticRouteListRequest) (*ListStaticRoutes, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return nil, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudapi/vins/staticRouteList" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	list := ListStaticRoutes{} |  | ||||||
| 
 |  | ||||||
| 	err = json.Unmarshal(res, &list) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return &list, nil |  | ||||||
| } |  | ||||||
| @ -1,43 +0,0 @@ | |||||||
| package compute |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| // Request struct for setting customFields values for the Compute
 |  | ||||||
| type SetCustomFieldsRequest struct { |  | ||||||
| 	// ID of the compute
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	ComputeID uint64 `url:"computeId" json:"computeId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Custom fields for Compute. Must be dict.
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	CustomFields string `url:"customFields" json:"customFields" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // SetCustomFields sets customFields values for the Compute
 |  | ||||||
| func (c Compute) SetCustomFields(ctx context.Context, req SetCustomFieldsRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/compute/setCustomFields" |  | ||||||
| 
 |  | ||||||
| 	res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,48 +0,0 @@ | |||||||
| package extnet |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for grant access to static route to Compute/ViNS
 |  | ||||||
| type StaticRouteAccessGrantRequest struct { |  | ||||||
| 	// ExtNet ID to grant access
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	ExtNetID uint64 `url:"extnetId" json:"extnetId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Route ID to grant access, can be found in staticRouteList
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	RouteId uint64 `url:"routeId" json:"routeId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// List of Compute IDs to grant access to this route
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	ComputeIds []uint64 `url:"computeIds,omitempty" json:"computeIds,omitempty"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Grant access to static route to Compute/ViNS
 |  | ||||||
| func (v ExtNet) StaticRouteAccessGrant(ctx context.Context, req StaticRouteAccessGrantRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/extnet/staticRouteAccessGrant" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,48 +0,0 @@ | |||||||
| package extnet |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for revoke access to static route to Compute/ViNS
 |  | ||||||
| type StaticRouteAccessRevokeRequest struct { |  | ||||||
| 	// ExtNet ID to revoke access
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	ExtNetID uint64 `url:"extnetId" json:"extnetId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Route ID to revoke access, can be found in staticRouteList
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	RouteId uint64 `url:"routeId" json:"routeId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// List of Compute IDs to revoke access to this route
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	ComputeIds []uint64 `url:"computeIds,omitempty" json:"computeIds,omitempty"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Revoke access to static route to Compute/ViNS
 |  | ||||||
| func (v ExtNet) StaticRouteAccessRevoke(ctx context.Context, req StaticRouteAccessRevokeRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/extnet/staticRouteAccessRevoke" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,56 +0,0 @@ | |||||||
| package extnet |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for add static route
 |  | ||||||
| type StaticRouteAddRequest struct { |  | ||||||
| 	// ExtNet ID to add static route
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	ExtNetId  uint64 `url:"extnetId" json:"extnetId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Destination network
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	Destination string `url:"destination" json:"destination" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Destination network mask in 255.255.255.255 format
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	Netmask string `url:"netmask" json:"netmask" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Next hop host, IP address from ViNS ID free IP pool
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	Gateway string `url:"gateway" json:"gateway" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// List of Compute IDs which have access to this route
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	ComputeIds []uint64 `url:"computeIds,omitempty" json:"computeIds,omitempty"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // StaticRouteAdd add new static route to ViNS
 |  | ||||||
| func (v ExtNet) StaticRouteAdd(ctx context.Context, req StaticRouteAddRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/extnet/staticRouteAdd" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| package extnet |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for remove static route from ViNS
 |  | ||||||
| type StaticRouteDelRequest struct { |  | ||||||
| 	// ExtNet ID to remove static route from
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	ExtNetID uint64 `url:"extnetId" json:"extnetId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Route ID to remove, can be found in staticRouteList
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	RouteId uint64 `url:"routeId" json:"routeId" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Remove static route from ViNS
 |  | ||||||
| func (v ExtNet) StaticRouteDel(ctx context.Context, req StaticRouteDelRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/extnet/staticRouteDel" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,42 +0,0 @@ | |||||||
| package extnet |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"encoding/json" |  | ||||||
| 	"net/http" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for static route list
 |  | ||||||
| type StaticRouteListRequest struct { |  | ||||||
| 	// ExtNet ID to show list of static routes
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	ExtNetID uint64 `url:"extnetId" json:"extnetId" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Show list of static routes for ViNS
 |  | ||||||
| func (v ExtNet) StaticRouteList(ctx context.Context, req StaticRouteListRequest) (*ListStaticRoutes, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return nil, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/extnet/staticRouteList" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	list := ListStaticRoutes{} |  | ||||||
| 
 |  | ||||||
| 	err = json.Unmarshal(res, &list) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return &list, nil |  | ||||||
| } |  | ||||||
| @ -1,38 +0,0 @@ | |||||||
| package k8s |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for get worker group metadata by ID
 |  | ||||||
| type GetWorkerNodesMetaDataRequest struct { |  | ||||||
| 	// Kubernetes cluster ID
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	K8SID uint64 `url:"k8sId" json:"k8sId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// ID of the workers compute group
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	WorkersGroupID uint64 `url:"workersGroupId" json:"workersGroupId" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Get worker group metadata by ID
 |  | ||||||
| func (k K8S) GetWorkerNodesMetaData(ctx context.Context, req GetWorkerNodesMetaDataRequest) (string, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return "", validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/k8s/getWorkerNodesMetaData" |  | ||||||
| 
 |  | ||||||
| 	res, err := k.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return "", err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return string(res), nil |  | ||||||
| } |  | ||||||
| @ -1,48 +0,0 @@ | |||||||
| package k8s |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for add worker to a kubernetes cluster
 |  | ||||||
| type UpdateWorkerNodesMetaDataRequest struct { |  | ||||||
| 	// Kubernetes cluster ID
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	K8SID uint64 `url:"k8sId" json:"k8sId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// ID of the workers compute group
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	WorkersGroupID uint64 `url:"workersGroupId" json:"workersGroupId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Meta data for working group computes, format YAML "user_data": 1111
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	UserData string `url:"userData" json:"userData" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // WorkerAdd adds worker nodes to a kubernetes cluster
 |  | ||||||
| func (k K8S) UpdateWorkerNodesMetaData(ctx context.Context, req UpdateWorkerNodesMetaDataRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/k8s/updateWorkerNodesMetaData" |  | ||||||
| 
 |  | ||||||
| 	res, err := k.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,40 +0,0 @@ | |||||||
| package lb |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for make Load Balancer Highly available
 |  | ||||||
| type HighlyAvailableRequest struct { |  | ||||||
| 	// ID of the LB instance
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	LBID uint64 `url:"lbId" json:"lbId" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Make Load Balancer Highly available
 |  | ||||||
| func (l LB) HighlyAvailable(ctx context.Context, req HighlyAvailableRequest) (uint64, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return 0, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/lb/makeHighlyAvailable" |  | ||||||
| 
 |  | ||||||
| 	res, err := l.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return 0, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseUint(string(res), 10, 64) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return 0, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,72 +0,0 @@ | |||||||
| package lb |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"encoding/json" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for update sysct params for lb
 |  | ||||||
| type UpdateSysctParamsRequest struct { |  | ||||||
| 	// ID of the LB instance
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	LBID uint64 `url:"lbId" json:"lbId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Custom sysctl values for Load Balancer instance. Applied on boot
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	SysctlParams Params `url:"-" json:"sysctlParams" validate:"required,dive"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| type wrapperUpdateSysctParamsRequest struct { |  | ||||||
| 	UpdateSysctParamsRequest |  | ||||||
| 	Params []string `url:"sysctlParams" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Create method will create a new load balancer instance
 |  | ||||||
| func (l LB) UpdateSysctParams(ctx context.Context, req UpdateSysctParamsRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	var params []string |  | ||||||
| 
 |  | ||||||
| 	if len(req.SysctlParams) != 0 { |  | ||||||
| 		params = make([]string, 0, len(req.SysctlParams)) |  | ||||||
| 
 |  | ||||||
| 		for r := range req.SysctlParams { |  | ||||||
| 			b, err := json.Marshal(req.SysctlParams[r]) |  | ||||||
| 			if err != nil { |  | ||||||
| 				return false, err |  | ||||||
| 			} |  | ||||||
| 
 |  | ||||||
| 			params = append(params, string(b)) |  | ||||||
| 		} |  | ||||||
| 	} else { |  | ||||||
| 		params = []string{} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	reqWrapped := wrapperUpdateSysctParamsRequest{ |  | ||||||
| 		UpdateSysctParamsRequest: req, |  | ||||||
| 		Params:                   params, |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/lb/updateSysctParams" |  | ||||||
| 
 |  | ||||||
| 	res, err := l.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,48 +0,0 @@ | |||||||
| package vins |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for grant access to static route to Compute/ViNS
 |  | ||||||
| type StaticRouteAccessGrantRequest struct { |  | ||||||
| 	// ViNS ID to grant access
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	VINSID uint64 `url:"vinsId" json:"vinsId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Route ID to grant access, can be found in staticRouteList
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	RouteId uint64 `url:"routeId" json:"routeId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// List of Compute IDs to grant access to this route
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	ComputeIds []uint64 `url:"computeIds,omitempty" json:"computeIds,omitempty"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Grant access to static route to Compute/ViNS
 |  | ||||||
| func (v VINS) StaticRouteAccessGrant(ctx context.Context, req StaticRouteAccessGrantRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/vins/staticRouteAccessGrant" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,48 +0,0 @@ | |||||||
| package vins |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for revoke access to static route to Compute/ViNS
 |  | ||||||
| type StaticRouteAccessRevokeRequest struct { |  | ||||||
| 	// ViNS ID to revoke access
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	VINSID uint64 `url:"vinsId" json:"vinsId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Route ID to revoke access, can be found in staticRouteList
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	RouteId uint64 `url:"routeId" json:"routeId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// List of Compute IDs to revoke access to this route
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	ComputeIds []uint64 `url:"computeIds,omitempty" json:"computeIds,omitempty"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Revoke access to static route to Compute/ViNS
 |  | ||||||
| func (v VINS) StaticRouteAccessRevoke(ctx context.Context, req StaticRouteAccessRevokeRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/vins/staticRouteAccessRevoke" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,56 +0,0 @@ | |||||||
| package vins |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for add static route
 |  | ||||||
| type StaticRouteAddRequest struct { |  | ||||||
| 	// VINS ID
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	VINSID uint64 `url:"vinsId" json:"vinsId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Destination network
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	Destination string `url:"destination" json:"destination" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Destination network mask in 255.255.255.255 format
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	Netmask string `url:"netmask" json:"netmask" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Next hop host, IP address from ViNS ID free IP pool
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	Gateway string `url:"gateway" json:"gateway" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// List of Compute IDs which have access to this route
 |  | ||||||
| 	// Required: false
 |  | ||||||
| 	ComputeIds []uint64 `url:"computeIds,omitempty" json:"computeIds,omitempty"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // StaticRouteAdd add new static route to ViNS
 |  | ||||||
| func (v VINS) StaticRouteAdd(ctx context.Context, req StaticRouteAddRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/vins/staticRouteAdd" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| package vins |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"net/http" |  | ||||||
| 	"strconv" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for remove static route from ViNS
 |  | ||||||
| type StaticRouteDelRequest struct { |  | ||||||
| 	// ViNS ID to remove static route from
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	VINSID uint64 `url:"vinsId" json:"vinsId" validate:"required"` |  | ||||||
| 
 |  | ||||||
| 	// Route ID to remove, can be found in staticRouteList
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	RouteId uint64 `url:"routeId" json:"routeId" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Remove static route from ViNS
 |  | ||||||
| func (v VINS) StaticRouteDel(ctx context.Context, req StaticRouteDelRequest) (bool, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return false, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/vins/staticRouteDel" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	result, err := strconv.ParseBool(string(res)) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return false, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return result, nil |  | ||||||
| } |  | ||||||
| @ -1,42 +0,0 @@ | |||||||
| package vins |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"encoding/json" |  | ||||||
| 	"net/http" |  | ||||||
| 
 |  | ||||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Request struct for static route list
 |  | ||||||
| type StaticRouteListRequest struct { |  | ||||||
| 	// ViNS ID to show list of static routes
 |  | ||||||
| 	// Required: true
 |  | ||||||
| 	VINSID uint64 `url:"vinsId" json:"vinsId" validate:"required"` |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // Show list of static routes for ViNS
 |  | ||||||
| func (v VINS) StaticRouteList(ctx context.Context, req StaticRouteListRequest) (*ListStaticRoutes, error) { |  | ||||||
| 	err := validators.ValidateRequest(req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		for _, validationError := range validators.GetErrors(err) { |  | ||||||
| 			return nil, validators.ValidationError(validationError) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	url := "/cloudbroker/vins/staticRouteList" |  | ||||||
| 
 |  | ||||||
| 	res, err := v.client.DecortApiCall(ctx, http.MethodPost, url, req) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	list := ListStaticRoutes{} |  | ||||||
| 
 |  | ||||||
| 	err = json.Unmarshal(res, &list) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, err |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return &list, nil |  | ||||||
| } |  | ||||||
					Loading…
					
					
				
		Reference in new issue