[docs]defcreate_elasticsearch_client(url:Optional[str]=None,cloud_id:Optional[str]=None,api_key:Optional[str]=None,username:Optional[str]=None,password:Optional[str]=None,params:Optional[Dict[str,Any]]=None,)->Elasticsearch:ifurlandcloud_id:raiseValueError("Both es_url and cloud_id are defined. Please provide only one.")connection_params:Dict[str,Any]={}ifurl:connection_params["hosts"]=[url]elifcloud_id:connection_params["cloud_id"]=cloud_idelse:raiseValueError("Please provide either elasticsearch_url or cloud_id.")ifapi_key:connection_params["api_key"]=api_keyelifusernameandpassword:connection_params["basic_auth"]=(username,password)ifparamsisnotNone:connection_params.update(params)es_client=Elasticsearch(**connection_params)es_client.info()# test connectionreturnes_client