code: func (f GetAttFunc) MarshalJSON() ([]byte, error) {
  	return json.Marshal(struct {
  		FnGetAtt []string `json:"Fn::GetAtt"`
  	}{FnGetAtt: []string{f.Resource, f.Name}})
  }
docs: // MarshalJSON returns a JSON representation of the object