code: func (gce *Cloud) ReserveGlobalStaticIP(name, ipAddress string) (address *compute.Address, err error) {
  	op, err := gce.service.GlobalAddresses.Insert(gce.projectID, &compute.Address{Name: name, Address: ipAddress}).Do()
  	if err != nil {
  		return nil, err
  	}
  	if err := gce.waitForGlobalOp(op); err != nil {
  		return nil, err
  	}
  	// We have to get the address to know which IP was allocated for us.
  	return gce.service.GlobalAddresses.Get(gce.projectID, name).Do()
  }
docs: // Global static IP management
  // ReserveGlobalStaticIP creates a global static IP.
  // Caller is allocated a random IP if they do not specify an ipAddress. If an
  // ipAddress is specified, it must belong to the current project, eg: an
  // ephemeral IP associated with a global forwarding rule.