summaryrefslogtreecommitdiff
path: root/vendor/github.com/mitchellh/packer/vendor/github.com/profitbricks/profitbricks-sdk-go/contractresources.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/mitchellh/packer/vendor/github.com/profitbricks/profitbricks-sdk-go/contractresources.go')
-rw-r--r--vendor/github.com/mitchellh/packer/vendor/github.com/profitbricks/profitbricks-sdk-go/contractresources.go60
1 files changed, 60 insertions, 0 deletions
diff --git a/vendor/github.com/mitchellh/packer/vendor/github.com/profitbricks/profitbricks-sdk-go/contractresources.go b/vendor/github.com/mitchellh/packer/vendor/github.com/profitbricks/profitbricks-sdk-go/contractresources.go
new file mode 100644
index 00000000..cd4fa2c3
--- /dev/null
+++ b/vendor/github.com/mitchellh/packer/vendor/github.com/profitbricks/profitbricks-sdk-go/contractresources.go
@@ -0,0 +1,60 @@
+package profitbricks
+
+import (
+ "encoding/json"
+ "net/http"
+ "strconv"
+)
+
+type ContractResources struct {
+ Id string `json:"id,omitempty"`
+ Type_ string `json:"type,omitempty"`
+ Href string `json:"href,omitempty"`
+ Properties ContractResourcesProperties `json:"properties,omitempty"`
+ Response string `json:"Response,omitempty"`
+ Headers *http.Header `json:"headers,omitempty"`
+ StatusCode int `json:"headers,omitempty"`
+}
+
+type ContractResourcesProperties struct {
+ PBContractNumber string `json:"PB-Contract-Number,omitempty"`
+ Owner string `json:"owner,omitempty"`
+ Status string `json:"status,omitempty"`
+ ResourceLimits *ResourcesLimits `json:"resourceLimits,omitempty"`
+}
+
+type ResourcesLimits struct {
+ CoresPerServer int32 `json:"coresPerServer,omitempty"`
+ CoresPerContract int32 `json:"coresPerContract,omitempty"`
+ CoresProvisioned int32 `json:"coresProvisioned,omitempty"`
+ RamPerServer int32 `json:"ramPerServer,omitempty"`
+ RamPerContract int32 `json:"ramPerContract,omitempty"`
+ RamProvisioned int32 `json:"ramProvisioned,omitempty"`
+ HddLimitPerVolume int64 `json:"hddLimitPerVolume,omitempty"`
+ HddLimitPerContract int64 `json:"hddLimitPerContract,omitempty"`
+ HddVolumeProvisioned int64 `json:"hddVolumeProvisioned,omitempty"`
+ SsdLimitPerVolume int64 `json:"ssdLimitPerVolume,omitempty"`
+ SsdLimitPerContract int64 `json:"ssdLimitPerContract,omitempty"`
+ SsdVolumeProvisioned int64 `json:"ssdVolumeProvisioned,omitempty"`
+ ReservableIps int32 `json:"reservableIps,omitempty"`
+ ReservedIpsOnContract int32 `json:"reservedIpsOnContract,omitempty"`
+ ReservedIpsInUse int32 `json:"reservedIpsInUse,omitempty"`
+}
+
+func GetContractResources() ContractResources {
+ path := contract_resource_path()
+ url := mk_url(path) + `?depth=` + Depth + `&pretty=` + strconv.FormatBool(Pretty)
+ req, _ := http.NewRequest("GET", url, nil)
+ req.Header.Add("Content-Type", FullHeader)
+ resp := do(req)
+ return toContractResources(resp)
+}
+
+func toContractResources(resp Resp) ContractResources {
+ var col ContractResources
+ json.Unmarshal(resp.Body, &col)
+ col.Response = string(resp.Body)
+ col.Headers = &resp.Headers
+ col.StatusCode = resp.StatusCode
+ return col
+}