packer-cn/vendor/github.com/1and1/oneandone-cloudserver-sdk-go/pricing.go

41 lines
1.1 KiB
Go

package oneandone
import "net/http"
type Pricing struct {
Currency string `json:"currency,omitempty"`
Plan *pricingPlan `json:"pricing_plans,omitempty"`
}
type pricingPlan struct {
Image *pricingItem `json:"image,omitempty"`
PublicIPs []pricingItem `json:"public_ips,omitempty"`
Servers *serverPricing `json:"servers,omitempty"`
SharedStorage *pricingItem `json:"shared_storage,omitempty"`
SoftwareLicenses []pricingItem `json:"software_licences,omitempty"`
}
type serverPricing struct {
FixedServers []pricingItem `json:"fixed_servers,omitempty"`
FlexServers []pricingItem `json:"flexible_server,omitempty"`
}
type pricingItem struct {
Name string `json:"name,omitempty"`
GrossPrice string `json:"price_gross,omitempty"`
NetPrice string `json:"price_net,omitempty"`
Unit string `json:"unit,omitempty"`
}
// GET /pricing
func (api *API) GetPricing() (*Pricing, error) {
result := new(Pricing)
url := createUrl(api, pricingPathSegment)
err := api.Client.Get(url, &result, http.StatusOK)
if err != nil {
return nil, err
}
return result, nil
}