| Joe Topjian | a08c1d2 | 2016-11-04 10:33:00 -0600 | [diff] [blame] | 1 | package limits | 
 | 2 |  | 
 | 3 | import ( | 
| Krzysztof Szukiełojć | 3f41d08 | 2017-05-07 14:43:06 +0200 | [diff] [blame] | 4 | 	"gerrit.mcp.mirantis.net/debian/gophercloud.git" | 
| Joe Topjian | a08c1d2 | 2016-11-04 10:33:00 -0600 | [diff] [blame] | 5 | ) | 
 | 6 |  | 
 | 7 | // Limits is a struct that contains the response of a limit query. | 
 | 8 | type Limits struct { | 
 | 9 | 	// Absolute contains the limits and usage information. | 
 | 10 | 	Absolute Absolute `json:"absolute"` | 
 | 11 | } | 
 | 12 |  | 
 | 13 | // Usage is a struct that contains the current resource usage and limits | 
 | 14 | // of a tenant. | 
 | 15 | type Absolute struct { | 
 | 16 | 	// MaxTotalCores is the number of cores available to a tenant. | 
 | 17 | 	MaxTotalCores int `json:"maxTotalCores"` | 
 | 18 |  | 
 | 19 | 	// MaxImageMeta is the amount of image metadata available to a tenant. | 
 | 20 | 	MaxImageMeta int `json:"maxImageMeta"` | 
 | 21 |  | 
 | 22 | 	// MaxServerMeta is the amount of server metadata available to a tenant. | 
 | 23 | 	MaxServerMeta int `json:"maxServerMeta"` | 
 | 24 |  | 
 | 25 | 	// MaxPersonality is the amount of personality/files available to a tenant. | 
 | 26 | 	MaxPersonality int `json:"maxPersonality"` | 
 | 27 |  | 
 | 28 | 	// MaxPersonalitySize is the personality file size available to a tenant. | 
 | 29 | 	MaxPersonalitySize int `json:"maxPersonalitySize"` | 
 | 30 |  | 
 | 31 | 	// MaxTotalKeypairs is the total keypairs available to a tenant. | 
 | 32 | 	MaxTotalKeypairs int `json:maxTotalKeypairs"` | 
 | 33 |  | 
 | 34 | 	// MaxSecurityGroups is the number of security groups available to a tenant. | 
 | 35 | 	MaxSecurityGroups int `json:"maxSecurityGroups"` | 
 | 36 |  | 
 | 37 | 	// MaxSecurityGroupRules is the number of security group rules available to | 
 | 38 | 	// a tenant. | 
 | 39 | 	MaxSecurityGroupRules int `json:"maxSecurityGroupRules"` | 
 | 40 |  | 
 | 41 | 	// MaxServerGroups is the number of server groups available to a tenant. | 
 | 42 | 	MaxServerGroups int `json:"maxServerGroups"` | 
 | 43 |  | 
 | 44 | 	// MaxServerGroupMembers is the number of server group members available | 
 | 45 | 	// to a tenant. | 
 | 46 | 	MaxServerGroupMembers int `json:"maxServerGroupMembers"` | 
 | 47 |  | 
 | 48 | 	// MaxTotalFloatingIps is the number of floating IPs available to a tenant. | 
 | 49 | 	MaxTotalFloatingIps int `json:"maxTotalFloatingIps"` | 
 | 50 |  | 
 | 51 | 	// MaxTotalInstances is the number of instances/servers available to a tenant. | 
 | 52 | 	MaxTotalInstances int `json:"maxTotalInstances"` | 
 | 53 |  | 
 | 54 | 	// MaxTotalRAMSize is the total amount of RAM available to a tenant measured | 
 | 55 | 	// in megabytes (MB). | 
 | 56 | 	MaxTotalRAMSize int `json:"maxTotalRAMSize"` | 
 | 57 |  | 
 | 58 | 	// TotalCoresUsed is the number of cores currently in use. | 
 | 59 | 	TotalCoresUsed int `json:"totalCoresUsed"` | 
 | 60 |  | 
 | 61 | 	// TotalInstancesUsed is the number of instances/servers in use. | 
 | 62 | 	TotalInstancesUsed int `json:"totalInstancesUsed"` | 
 | 63 |  | 
 | 64 | 	// TotalFloatingIpsUsed is the number of floating IPs in use. | 
 | 65 | 	TotalFloatingIpsUsed int `json:"totalFloatingIpsUsed"` | 
 | 66 |  | 
 | 67 | 	// TotalRAMUsed is the total RAM/memory in use measured in megabytes (MB). | 
 | 68 | 	TotalRAMUsed int `json:"totalRAMUsed"` | 
 | 69 |  | 
 | 70 | 	// TotalSecurityGroupsUsed is the total number of security groups in use. | 
 | 71 | 	TotalSecurityGroupsUsed int `json:"totalSecurityGroupsUsed"` | 
 | 72 |  | 
 | 73 | 	// TotalServerGroupsUsed is the total number of server groups in use. | 
 | 74 | 	TotalServerGroupsUsed int `json:"totalServerGroupsUsed"` | 
 | 75 | } | 
 | 76 |  | 
 | 77 | // Extract interprets a limits result as a Limits. | 
 | 78 | func (r GetResult) Extract() (*Limits, error) { | 
 | 79 | 	var s struct { | 
 | 80 | 		Limits *Limits `json:"limits"` | 
 | 81 | 	} | 
 | 82 | 	err := r.ExtractInto(&s) | 
 | 83 | 	return s.Limits, err | 
 | 84 | } | 
 | 85 |  | 
 | 86 | // GetResult is the response from a Get operation. Call its ExtractAbsolute | 
 | 87 | // method to interpret it as an Absolute. | 
 | 88 | type GetResult struct { | 
 | 89 | 	gophercloud.Result | 
 | 90 | } |