code: func (userdata VirtualMachineUserData) Decode() (string, error) {
  	data, err := base64.StdEncoding.DecodeString(userdata.UserData)
  	if err != nil {
  		return "", err
  	}
  	// 0x1f8b is the magic number for gzip
  	if len(data) < 2 || data[0] != 0x1f || data[1] != 0x8b {
  		return string(data), nil
  	}
  	gr, err := gzip.NewReader(bytes.NewBuffer(data))
  	if err != nil {
  		return "", err
  	}
  	defer gr.Close() // nolint: errcheck
  
  	str, err := ioutil.ReadAll(gr)
  	if err != nil {
  		return "", err
  	}
  	return string(str), nil
  }
docs: // Decode decodes as a readable string the content of the user-data (base64 · gzip)