forked from TrueCloudLab/lego
47 lines
1.7 KiB
Go
47 lines
1.7 KiB
Go
package egoscale
|
|
|
|
// API represents an API service
|
|
type API struct {
|
|
Description string `json:"description,omitempty" doc:"description of the api"`
|
|
IsAsync bool `json:"isasync,omitempty" doc:"true if api is asynchronous"`
|
|
Name string `json:"name,omitempty" doc:"the name of the api command"`
|
|
Related string `json:"related,omitempty" doc:"comma separated related apis"`
|
|
Since string `json:"since,omitempty" doc:"version of CloudStack the api was introduced in"`
|
|
Type string `json:"type,omitempty" doc:"response field type"`
|
|
Params []APIParam `json:"params,omitempty" doc:"the list params the api accepts"`
|
|
Response []APIField `json:"response,omitempty" doc:"api response fields"`
|
|
}
|
|
|
|
// APIParam represents an API parameter field
|
|
type APIParam struct {
|
|
Description string `json:"description"`
|
|
Length int64 `json:"length"`
|
|
Name string `json:"name"`
|
|
Required bool `json:"required"`
|
|
Since string `json:"since,omitempty"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// APIField represents an API response field
|
|
type APIField struct {
|
|
Description string `json:"description"`
|
|
Name string `json:"name"`
|
|
Response []APIField `json:"response,omitempty"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// ListAPIs represents a query to list the api
|
|
type ListAPIs struct {
|
|
Name string `json:"name,omitempty" doc:"API name"`
|
|
_ bool `name:"listApis" description:"lists all available apis on the server, provided by the Api Discovery plugin"`
|
|
}
|
|
|
|
// ListAPIsResponse represents a list of API
|
|
type ListAPIsResponse struct {
|
|
Count int `json:"count"`
|
|
API []API `json:"api"`
|
|
}
|
|
|
|
func (*ListAPIs) response() interface{} {
|
|
return new(ListAPIsResponse)
|
|
}
|