mirror of
https://github.com/rancher/os.git
synced 2025-09-02 07:15:41 +00:00
vendor packngo
This commit is contained in:
114
vendor/github.com/packethost/packngo/plans.go
generated
vendored
Normal file
114
vendor/github.com/packethost/packngo/plans.go
generated
vendored
Normal file
@@ -0,0 +1,114 @@
|
||||
package packngo
|
||||
|
||||
const planBasePath = "/plans"
|
||||
|
||||
// PlanService interface defines available plan methods
|
||||
type PlanService interface {
|
||||
List() ([]Plan, *Response, error)
|
||||
}
|
||||
|
||||
type planRoot struct {
|
||||
Plans []Plan `json:"plans"`
|
||||
}
|
||||
|
||||
// Plan represents a Packet service plan
|
||||
type Plan struct {
|
||||
ID string `json:"id"`
|
||||
Slug string `json:"slug,omitempty"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Description string `json:"description,omitempty"`
|
||||
Line string `json:"line,omitempty"`
|
||||
Specs *Specs `json:"specs,omitempty"`
|
||||
Pricing *Pricing `json:"pricing,omitempty"`
|
||||
}
|
||||
func (p Plan) String() string {
|
||||
return Stringify(p)
|
||||
}
|
||||
|
||||
// Specs - the server specs for a plan
|
||||
type Specs struct {
|
||||
Cpus []*Cpus `json:"cpus,omitempty"`
|
||||
Memory *Memory `json:"memory,omitempty"`
|
||||
Drives []*Drives `json:"drives,omitempty"`
|
||||
Nics []*Nics `json:"nics,omitempty"`
|
||||
Features *Features `json:"features,omitempty"`
|
||||
}
|
||||
func (s Specs) String() string {
|
||||
return Stringify(s)
|
||||
}
|
||||
|
||||
// Cpus - the CPU config details for specs on a plan
|
||||
type Cpus struct {
|
||||
Count int `json:"count,omitempty"`
|
||||
Type string `json:"type,omitempty"`
|
||||
}
|
||||
func (c Cpus) String() string {
|
||||
return Stringify(c)
|
||||
}
|
||||
|
||||
// Memory - the RAM config details for specs on a plan
|
||||
type Memory struct {
|
||||
Total string `json:"total,omitempty"`
|
||||
}
|
||||
func (m Memory) String() string {
|
||||
return Stringify(m)
|
||||
}
|
||||
|
||||
// Drives - the storage config details for specs on a plan
|
||||
type Drives struct {
|
||||
Count int `json:"count,omitempty"`
|
||||
Size string `json:"size,omitempty"`
|
||||
Type string `json:"type,omitempty"`
|
||||
}
|
||||
func (d Drives) String() string {
|
||||
return Stringify(d)
|
||||
}
|
||||
|
||||
// Nics - the network hardware details for specs on a plan
|
||||
type Nics struct {
|
||||
Count int `json:"count,omitempty"`
|
||||
Type string `json:"type,omitempty"`
|
||||
}
|
||||
func (n Nics) String() string {
|
||||
return Stringify(n)
|
||||
}
|
||||
|
||||
// Features - other features in the specs for a plan
|
||||
type Features struct {
|
||||
Raid bool `json:"raid,omitempty"`
|
||||
Txt bool `json:"txt,omitempty"`
|
||||
}
|
||||
func (f Features) String() string {
|
||||
return Stringify(f)
|
||||
}
|
||||
|
||||
// Pricing - the pricing options on a plan
|
||||
type Pricing struct {
|
||||
Hourly float32 `json:"hourly,omitempty"`
|
||||
Monthly float32 `json:"monthly,omitempty"`
|
||||
}
|
||||
func (p Pricing) String() string {
|
||||
return Stringify(p)
|
||||
}
|
||||
|
||||
// PlanServiceOp implements PlanService
|
||||
type PlanServiceOp struct {
|
||||
client *Client
|
||||
}
|
||||
|
||||
// List method returns all available plans
|
||||
func (s *PlanServiceOp) List() ([]Plan, *Response, error) {
|
||||
req, err := s.client.NewRequest("GET", planBasePath, nil)
|
||||
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
root := new(planRoot)
|
||||
resp, err := s.client.Do(req, root)
|
||||
if err != nil {
|
||||
return nil, resp, err
|
||||
}
|
||||
|
||||
return root.Plans, resp, err
|
||||
}
|
Reference in New Issue
Block a user