text: package api
  
  import (
  	"fmt"
  
  	"github.com/sacloud/libsacloud/sacloud"
  )
  
  // SwitchAPI スイッチAPI
  type SwitchAPI struct {
  	*baseAPI
  }
  
  // NewSwitchAPI スイッチAPI作成
  func NewSwitchAPI(client *Client) *SwitchAPI {
  	return &SwitchAPI{
  		&baseAPI{
  			client: client,
  			FuncGetResourceURL: func() string {
  				return "switch"
  			},
  		},
  	}
  }
  
  // DisconnectFromBridge ブリッジとの切断
  func (api *SwitchAPI) DisconnectFromBridge(switchID int64) (bool, error) {
  	var (
  		method = "DELETE"
  		uri    = fmt.Sprintf("%s/%d/to/bridge", api.getResourceURL(), switchID)
  	)
  	return api.modify(method, uri, nil)
  }
  
  // ConnectToBridge ブリッジとの接続
  func (api *SwitchAPI) ConnectToBridge(switchID int64, bridgeID int64) (bool, error) {
  	var (
  		method = "PUT"
  		uri    = fmt.Sprintf("%s/%d/to/bridge/%d", api.getResourceURL(), switchID, bridgeID)
  	)
  	return api.modify(method, uri, nil)
  }
  
  // GetServers スイッチに接続されているサーバー一覧取得
  func (api *SwitchAPI) GetServers(switchID int64) ([]sacloud.Server, error) {
  	var (
  		method = "GET"
  		uri    = fmt.Sprintf("%s/%d/server", api.getResourceURL(), switchID)
  		res    = &sacloud.SearchResponse{}
  	)
  	err := api.baseAPI.request(method, uri, nil, res)
  	if err != nil {
  		return nil, err
  	}
  	return res.Servers, nil
  }
  