github.com/gophercloud/gophercloud@v1.11.0/openstack/blockstorage/extensions/availabilityzones/results.go (about) 1 package availabilityzones 2 3 import ( 4 "github.com/gophercloud/gophercloud/pagination" 5 ) 6 7 // ZoneState represents the current state of the availability zone. 8 type ZoneState struct { 9 // Returns true if the availability zone is available 10 Available bool `json:"available"` 11 } 12 13 // AvailabilityZone contains all the information associated with an OpenStack 14 // AvailabilityZone. 15 type AvailabilityZone struct { 16 // The availability zone name 17 ZoneName string `json:"zoneName"` 18 ZoneState ZoneState `json:"zoneState"` 19 } 20 21 type AvailabilityZonePage struct { 22 pagination.SinglePageBase 23 } 24 25 // ExtractAvailabilityZones returns a slice of AvailabilityZones contained in a 26 // single page of results. 27 func ExtractAvailabilityZones(r pagination.Page) ([]AvailabilityZone, error) { 28 var s struct { 29 AvailabilityZoneInfo []AvailabilityZone `json:"availabilityZoneInfo"` 30 } 31 err := (r.(AvailabilityZonePage)).ExtractInto(&s) 32 return s.AvailabilityZoneInfo, err 33 }