Skip to content

Commit

Permalink
feat(domain): update
Browse files Browse the repository at this point in the history
  • Loading branch information
scaleway-bot committed May 11, 2020
1 parent 36c4d8f commit 85b9847
Show file tree
Hide file tree
Showing 3 changed files with 270 additions and 0 deletions.
4 changes: 4 additions & 0 deletions api/domain/v2alpha2/domain_sdk.go
Original file line number Diff line number Diff line change
Expand Up @@ -772,6 +772,10 @@ const (
TaskTypeRenewSslCertificate = TaskType("renew_ssl_certificate")
// TaskTypeSendMessage is [insert doc].
TaskTypeSendMessage = TaskType("send_message")
// TaskTypeDeleteDomainExpired is [insert doc].
TaskTypeDeleteDomainExpired = TaskType("delete_domain_expired")
// TaskTypeDeleteExternalDomain is [insert doc].
TaskTypeDeleteExternalDomain = TaskType("delete_external_domain")
)

func (enum TaskType) String() string {
Expand Down
262 changes: 262 additions & 0 deletions api/lb/v1/lb_sdk.go
Original file line number Diff line number Diff line change
Expand Up @@ -591,6 +591,38 @@ func (enum *ListLbsRequestOrderBy) UnmarshalJSON(data []byte) error {
return nil
}

type ListPrivateNetworksRequestOrderBy string

const (
// ListPrivateNetworksRequestOrderByCreatedAtAsc is [insert doc].
ListPrivateNetworksRequestOrderByCreatedAtAsc = ListPrivateNetworksRequestOrderBy("created_at_asc")
// ListPrivateNetworksRequestOrderByCreatedAtDesc is [insert doc].
ListPrivateNetworksRequestOrderByCreatedAtDesc = ListPrivateNetworksRequestOrderBy("created_at_desc")
)

func (enum ListPrivateNetworksRequestOrderBy) String() string {
if enum == "" {
// return default value if empty
return "created_at_asc"
}
return string(enum)
}

func (enum ListPrivateNetworksRequestOrderBy) MarshalJSON() ([]byte, error) {
return []byte(fmt.Sprintf(`"%s"`, enum)), nil
}

func (enum *ListPrivateNetworksRequestOrderBy) UnmarshalJSON(data []byte) error {
tmp := ""

if err := json.Unmarshal(data, &tmp); err != nil {
return err
}

*enum = ListPrivateNetworksRequestOrderBy(ListPrivateNetworksRequestOrderBy(tmp).String())
return nil
}

type ListSubscriberRequestOrderBy string

const (
Expand Down Expand Up @@ -659,6 +691,42 @@ func (enum *OnMarkedDownAction) UnmarshalJSON(data []byte) error {
return nil
}

type PrivateNetworkStatus string

const (
// PrivateNetworkStatusUnknown is [insert doc].
PrivateNetworkStatusUnknown = PrivateNetworkStatus("unknown")
// PrivateNetworkStatusReady is [insert doc].
PrivateNetworkStatusReady = PrivateNetworkStatus("ready")
// PrivateNetworkStatusPending is [insert doc].
PrivateNetworkStatusPending = PrivateNetworkStatus("pending")
// PrivateNetworkStatusError is [insert doc].
PrivateNetworkStatusError = PrivateNetworkStatus("error")
)

func (enum PrivateNetworkStatus) String() string {
if enum == "" {
// return default value if empty
return "unknown"
}
return string(enum)
}

func (enum PrivateNetworkStatus) MarshalJSON() ([]byte, error) {
return []byte(fmt.Sprintf(`"%s"`, enum)), nil
}

func (enum *PrivateNetworkStatus) UnmarshalJSON(data []byte) error {
tmp := ""

if err := json.Unmarshal(data, &tmp); err != nil {
return err
}

*enum = PrivateNetworkStatus(PrivateNetworkStatus(tmp).String())
return nil
}

type Protocol string

const (
Expand Down Expand Up @@ -1276,6 +1344,12 @@ type ListIPsResponse struct {
TotalCount uint32 `json:"total_count"`
}

type ListLbPrivateNetworksResponse struct {
PrivateNetwork []*PrivateNetwork `json:"private_network"`

TotalCount uint32 `json:"total_count"`
}

type ListLbTypesResponse struct {
LbTypes []*LbType `json:"lb_types"`

Expand All @@ -1297,6 +1371,20 @@ type ListSubscriberResponse struct {
TotalCount uint32 `json:"total_count"`
}

// PrivateNetwork: private network
type PrivateNetwork struct {
// Lb: loadBalancer object
Lb *Lb `json:"lb"`
// IPAddress: local ip address of Load Balancer instance
IPAddress []string `json:"ip_address"`
// PrivateNetworkID: instance private network id
PrivateNetworkID string `json:"private_network_id"`
// Status: status (running, to create...) of private network connection
//
// Default value: unknown
Status PrivateNetworkStatus `json:"status"`
}

// Subscriber: subscriber
type Subscriber struct {
// ID: subscriber ID
Expand Down Expand Up @@ -3875,3 +3963,177 @@ func (s *API) UnsubscribeFromLb(req *UnsubscribeFromLbRequest, opts ...scw.Reque
}
return &resp, nil
}

type ListLbPrivateNetworksRequest struct {
Region scw.Region `json:"-"`

LbID string `json:"-"`
// OrderBy:
//
// Default value: created_at_asc
OrderBy ListPrivateNetworksRequestOrderBy `json:"-"`

PageSize *uint32 `json:"-"`

Page *int32 `json:"-"`
}

// ListLbPrivateNetworks: bETA - List attached private network of Load Balancer
func (s *API) ListLbPrivateNetworks(req *ListLbPrivateNetworksRequest, opts ...scw.RequestOption) (*ListLbPrivateNetworksResponse, error) {
var err error

if req.Region == "" {
defaultRegion, _ := s.client.GetDefaultRegion()
req.Region = defaultRegion
}

defaultPageSize, exist := s.client.GetDefaultPageSize()
if (req.PageSize == nil || *req.PageSize == 0) && exist {
req.PageSize = &defaultPageSize
}

query := url.Values{}
parameter.AddToQuery(query, "order_by", req.OrderBy)
parameter.AddToQuery(query, "page_size", req.PageSize)
parameter.AddToQuery(query, "page", req.Page)

if fmt.Sprint(req.Region) == "" {
return nil, errors.New("field Region cannot be empty in request")
}

if fmt.Sprint(req.LbID) == "" {
return nil, errors.New("field LbID cannot be empty in request")
}

scwReq := &scw.ScalewayRequest{
Method: "GET",
Path: "/lb/v1/regions/" + fmt.Sprint(req.Region) + "/lbs/" + fmt.Sprint(req.LbID) + "/private-networks",
Query: query,
Headers: http.Header{},
}

var resp ListLbPrivateNetworksResponse

err = s.client.Do(scwReq, &resp, opts...)
if err != nil {
return nil, err
}
return &resp, nil
}

// UnsafeGetTotalCount should not be used
// Internal usage only
func (r *ListLbPrivateNetworksResponse) UnsafeGetTotalCount() uint32 {
return r.TotalCount
}

// UnsafeAppend should not be used
// Internal usage only
func (r *ListLbPrivateNetworksResponse) UnsafeAppend(res interface{}) (uint32, error) {
results, ok := res.(*ListLbPrivateNetworksResponse)
if !ok {
return 0, errors.New("%T type cannot be appended to type %T", res, r)
}

r.PrivateNetwork = append(r.PrivateNetwork, results.PrivateNetwork...)
r.TotalCount += uint32(len(results.PrivateNetwork))
return uint32(len(results.PrivateNetwork)), nil
}

type AttachPrivateNetworkRequest struct {
Region scw.Region `json:"-"`
// LbID: load Balancer ID
LbID string `json:"-"`
// PrivateNetworkID: set your instance private network id
PrivateNetworkID string `json:"-"`
// IPAddress: define two local ip address of your choice for each Load Balancer instance
IPAddress []string `json:"ip_address"`
}

// AttachPrivateNetwork: bETA - Add Load Balancer on instance private network
func (s *API) AttachPrivateNetwork(req *AttachPrivateNetworkRequest, opts ...scw.RequestOption) (*PrivateNetwork, error) {
var err error

if req.Region == "" {
defaultRegion, _ := s.client.GetDefaultRegion()
req.Region = defaultRegion
}

if fmt.Sprint(req.Region) == "" {
return nil, errors.New("field Region cannot be empty in request")
}

if fmt.Sprint(req.LbID) == "" {
return nil, errors.New("field LbID cannot be empty in request")
}

if fmt.Sprint(req.PrivateNetworkID) == "" {
return nil, errors.New("field PrivateNetworkID cannot be empty in request")
}

scwReq := &scw.ScalewayRequest{
Method: "POST",
Path: "/lb/v1/regions/" + fmt.Sprint(req.Region) + "/lbs/" + fmt.Sprint(req.LbID) + "/private-networks/" + fmt.Sprint(req.PrivateNetworkID) + "/attach",
Headers: http.Header{},
}

err = scwReq.SetBody(req)
if err != nil {
return nil, err
}

var resp PrivateNetwork

err = s.client.Do(scwReq, &resp, opts...)
if err != nil {
return nil, err
}
return &resp, nil
}

type DetachPrivateNetworkRequest struct {
Region scw.Region `json:"-"`

PrivateNetworkID string `json:"-"`

LbID string `json:"-"`
}

// DetachPrivateNetwork: bETA - Remove Load Balancer of private network
func (s *API) DetachPrivateNetwork(req *DetachPrivateNetworkRequest, opts ...scw.RequestOption) error {
var err error

if req.Region == "" {
defaultRegion, _ := s.client.GetDefaultRegion()
req.Region = defaultRegion
}

if fmt.Sprint(req.Region) == "" {
return errors.New("field Region cannot be empty in request")
}

if fmt.Sprint(req.PrivateNetworkID) == "" {
return errors.New("field PrivateNetworkID cannot be empty in request")
}

if fmt.Sprint(req.LbID) == "" {
return errors.New("field LbID cannot be empty in request")
}

scwReq := &scw.ScalewayRequest{
Method: "POST",
Path: "/lb/v1/regions/" + fmt.Sprint(req.Region) + "/lbs/" + fmt.Sprint(req.LbID) + "/private-networks/" + fmt.Sprint(req.PrivateNetworkID) + "/detach",
Headers: http.Header{},
}

err = scwReq.SetBody(req)
if err != nil {
return err
}

err = s.client.Do(scwReq, nil, opts...)
if err != nil {
return err
}
return nil
}
4 changes: 4 additions & 0 deletions api/rdb/v1/rdb_sdk.go
Original file line number Diff line number Diff line change
Expand Up @@ -786,6 +786,8 @@ type EngineVersion struct {
AvailableSettings []*EngineSetting `json:"available_settings"`

Disabled bool `json:"disabled"`

Beta bool `json:"beta"`
}

// Instance: instance
Expand Down Expand Up @@ -933,6 +935,8 @@ type NodeType struct {

Disabled bool `json:"disabled"`

Beta bool `json:"beta"`

Region scw.Region `json:"region"`
}

Expand Down

0 comments on commit 85b9847

Please sign in to comment.