code: func FromJSON(buf []byte, opts ...Option) (*GServiceAccount, error) {
  	var err error
  
  	// unmarshal
  	gsa := new(GServiceAccount)
  	if err = json.Unmarshal(buf, gsa); err != nil {
  		return nil, err
  	}
  
  	// apply opts
  	for _, o := range opts {
  		if err = o(gsa); err != nil {
  			return nil, err
  		}
  	}
  
  	return gsa, nil
  }
docs: // FromJSON loads service account credentials from the JSON encoded buf.