interface FailedShard { shard : number ; index : string ; node : string ; reason : { type : string ; reason : string ; script_stack : string [ ] ; script : string ; lang : string ; position : { offset : number ; start : number ; end : number ; } ; caused_by : { type : string ; reason : string ; } ; } ; } export interface OpenSearchError { body : { statusCode : number ; error : string ; message : string ; attributes ? : { error ? : { root_cause ? : [ { lang : string ; script : string ; } ] ; type : string ; reason : string ; failed_shards : FailedShard [ ] ; caused_by : { type : string ; reason : string ; phase : string ; grouped : boolean ; failed_shards : FailedShard [ ] ; script_stack : string [ ] ; } ; } ; } ; } ; } export function isOpenSearchError ( e ) { return ! ! e . body ?. attributes ; }