github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/provider/gce/google/conn_machines.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package google 5 6 import "github.com/juju/errors" 7 8 // ListMachineTypes returns a list of MachineType available for the 9 // given zone. 10 func (gce *Connection) ListMachineTypes(zone string) ([]MachineType, error) { 11 machines, err := gce.service.ListMachineTypes(gce.projectID, zone) 12 if err != nil { 13 return nil, errors.Trace(err) 14 } 15 res := make([]MachineType, len(machines.Items)) 16 for i, machine := range machines.Items { 17 deprecated := false 18 if machine.Deprecated != nil { 19 deprecated = machine.Deprecated.State != "" 20 } 21 res[i] = MachineType{ 22 CreationTimestamp: machine.CreationTimestamp, 23 Deprecated: deprecated, 24 Description: machine.Description, 25 GuestCpus: machine.GuestCpus, 26 Id: machine.Id, 27 ImageSpaceGb: machine.ImageSpaceGb, 28 Kind: machine.Kind, 29 MaximumPersistentDisks: machine.MaximumPersistentDisks, 30 MaximumPersistentDisksSizeGb: machine.MaximumPersistentDisksSizeGb, 31 MemoryMb: machine.MemoryMb, 32 Name: machine.Name, 33 } 34 } 35 return res, nil 36 }