@@ -82,6 +82,19 @@ async def __aexit__(self, exc_type, exc, tb):
8282 await self .close ()
8383 await self .client .__aexit__ (exc_type , exc , tb )
8484
85+ @property
86+ def address (self ):
87+ """
88+ Return address of stream, either as StreamName or StreamARN, when applicable.
89+
90+ https://docs.aws.amazon.com/kinesis/latest/APIReference/API_StreamDescription.html#Streams-Type-StreamDescription-StreamName
91+ https://docs.aws.amazon.com/kinesis/latest/APIReference/API_StreamDescription.html#Streams-Type-StreamDescription-StreamARN
92+ """
93+ if self .stream_name .startswith ("arn:" ):
94+ return {"StreamARN" : self .stream_name }
95+ else :
96+ return {"StreamName" : self .stream_name }
97+
8598 async def get_client (self ):
8699
87100 # Note: max_attempts = 0
@@ -101,7 +114,7 @@ async def get_client(self):
101114 async def get_stream_description (self ):
102115
103116 try :
104- return (await self .client .describe_stream (StreamName = self .stream_name ))[
117+ return (await self .client .describe_stream (** self .address ))[
105118 "StreamDescription"
106119 ]
107120 except ClientError as err :
@@ -240,7 +253,7 @@ async def _create_stream(self, ignore_exists=True):
240253
241254 try :
242255 await self .client .create_stream (
243- StreamName = self .stream_name , ShardCount = self .create_stream_shards
256+ ** self .address , ShardCount = self .create_stream_shards
244257 )
245258 except ClientError as err :
246259 code = err .response ["Error" ]["Code" ]
0 commit comments