code: func (resp *IndicesSyncedFlushResponse) UnmarshalJSON(data []byte) error {
  	m := make(map[string]json.RawMessage)
  	err := json.Unmarshal(data, &m)
  	if err != nil {
  		return err
  	}
  	resp.Index = make(map[string]*IndicesShardsSyncedFlushResult)
  	for k, v := range m {
  		if k == "_shards" {
  			if err := json.Unmarshal(v, &resp.Shards); err != nil {
  				return err
  			}
  		} else {
  			ix := new(IndicesShardsSyncedFlushResult)
  			if err := json.Unmarshal(v, &ix); err != nil {
  				return err
  			}
  			resp.Index[k] = ix
  		}
  	}
  	return nil
  }
docs: // UnmarshalJSON parses the output from Synced Flush API.