1818from arangoasync .exceptions import (
1919 CollectionPropertiesError ,
2020 CollectionResponsibleShardError ,
21+ CollectionRevisionError ,
2122 CollectionShardsError ,
2223 CollectionStatisticsError ,
2324 CollectionTruncateError ,
@@ -638,7 +639,7 @@ async def shards(self, details: Optional[bool] = None) -> Result[Json]:
638639 servers for these shards.
639640
640641 Returns:
641- dict: Collection shards and properties .
642+ dict: Collection shards.
642643
643644 Raises:
644645 CollectionShardsError: If retrieval fails.
@@ -659,7 +660,31 @@ async def shards(self, details: Optional[bool] = None) -> Result[Json]:
659660 def response_handler (resp : Response ) -> Json :
660661 if not resp .is_success :
661662 raise CollectionShardsError (resp , request )
662- return Response .format_body (self .deserializer .loads (resp .raw_body ))
663+ return cast (Json , self .deserializer .loads (resp .raw_body )["shards" ])
664+
665+ return await self ._executor .execute (request , response_handler )
666+
667+ async def revision (self ) -> Result [str ]:
668+ """Return collection revision.
669+
670+ Returns:
671+ str: Collection revision.
672+
673+ Raises:
674+ CollectionRevisionError: If retrieval fails.
675+
676+ References:
677+ - `get-the-collection-revision-id <https://docs.arangodb.com/stable/develop/http-api/collections/#get-the-collection-revision-id>`__
678+ """ # noqa: E501
679+ request = Request (
680+ method = Method .GET ,
681+ endpoint = f"/_api/collection/{ self .name } /revision" ,
682+ )
683+
684+ def response_handler (resp : Response ) -> str :
685+ if not resp .is_success :
686+ raise CollectionRevisionError (resp , request )
687+ return cast (str , self .deserializer .loads (resp .raw_body )["revision" ])
663688
664689 return await self ._executor .execute (request , response_handler )
665690
0 commit comments