in compliance/elasticsearch.go [98:124]
func (es *Elasticsearch) SimulateIndexTemplate(name string) (*SimulatedIndexTemplate, error) {
resp, err := es.client.Indices.SimulateTemplate(
es.client.Indices.SimulateTemplate.WithName(name),
es.client.Indices.SimulateTemplate.WithContext(context.TODO()),
)
if err != nil {
return nil, err
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("HTTP status code %d", resp.StatusCode)
}
var simulateResponse struct {
Template *SimulatedIndexTemplate `json:"template"`
}
err = newJSONDecoder(resp.Body).Decode(&simulateResponse)
if err != nil {
return nil, err
}
if simulateResponse.Template == nil {
return nil, errors.New("empty template simulated, something is wrong")
}
return simulateResponse.Template, nil
}