github.com/1and1/oneandone-cloudserver-sdk-go@v1.4.1/usages.go (about)

     1  package oneandone
     2  
     3  import (
     4  	"net/http"
     5  	"time"
     6  )
     7  
     8  type Usages struct {
     9  	Images         []usage `json:"IMAGES,omitempty"`
    10  	LoadBalancers  []usage `json:"LOAD BALANCERS,omitempty"`
    11  	PublicIPs      []usage `json:"PUBLIC IP,omitempty"`
    12  	Servers        []usage `json:"SERVERS,omitempty"`
    13  	SharedStorages []usage `json:"SHARED STORAGE,omitempty"`
    14  	ApiPtr
    15  }
    16  
    17  type usage struct {
    18  	Identity
    19  	Site     int            `json:"site"`
    20  	Services []usageService `json:"services,omitempty"`
    21  }
    22  
    23  type usageService struct {
    24  	AverageAmmount string         `json:"avg_amount,omitempty"`
    25  	Unit           string         `json:"unit,omitempty"`
    26  	Usage          int            `json:"usage"`
    27  	Details        []usageDetails `json:"detail,omitempty"`
    28  	typeField
    29  }
    30  
    31  type usageDetails struct {
    32  	AverageAmmount string `json:"avg_amount,omitempty"`
    33  	StartDate      string `json:"start_date,omitempty"`
    34  	EndDate        string `json:"end_date,omitempty"`
    35  	Unit           string `json:"unit,omitempty"`
    36  	Usage          int    `json:"usage,omitempty"`
    37  }
    38  
    39  // GET /usages
    40  func (api *API) ListUsages(period string, sd *time.Time, ed *time.Time, args ...interface{}) (*Usages, error) {
    41  	result := new(Usages)
    42  	url, err := processQueryParamsExt(createUrl(api, usagePathSegment), period, sd, ed, args...)
    43  	if err != nil {
    44  		return nil, err
    45  	}
    46  	err = api.Client.Get(url, &result, http.StatusOK)
    47  	if err != nil {
    48  		return nil, err
    49  	}
    50  	result.api = api
    51  	return result, nil
    52  }