code: func (g *Cloud) ReserveGlobalAddress(addr *compute.Address) error {
  	ctx, cancel := cloud.ContextWithCallTimeout()
  	defer cancel()
  
  	mc := newAddressMetricContext("reserve", "")
  	return mc.Observe(g.c.GlobalAddresses().Insert(ctx, meta.GlobalKey(addr.Name), addr))
  }
docs: // ReserveGlobalAddress creates a global address.
  // 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.