o
    Rh                    @   s"  d Z ddlZddlmZ ddlmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# ddl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 ddl5m6Z6 dd	l7m7Z7 e7d
de6dG dd de8Z9dS )zlinebot.async_api module.    N   )__version__)LineBotApiError)ErrorProfile	MemberIdsContentRichMenuResponseMessageQuotaResponseMessageQuotaConsumptionResponseIssueLinkTokenResponseIssueChannelTokenResponse MessageDeliveryBroadcastResponse MessageDeliveryMulticastResponseMessageDeliveryPushResponseMessageDeliveryReplyResponseInsightMessageDeliveryResponseInsightFollowersResponseInsightDemographicResponseInsightMessageEventResponseBroadcastResponseNarrowcastResponse!MessageProgressNarrowcastResponseBotInfoGetWebhookResponseTestWebhookResponseAudienceGroupClickAudienceGroupImpAudienceGroupGetAuthorityLevelAudienceCreateAudienceGroup)GroupUserIdsRichMenuAliasResponseRichMenuAliasListResponseChannelAccessTokensIssueChannelTokenResponseV2VerifyChannelTokenResponseV2ValidAccessTokenKeyIDsResponse2InsightMessageEventOfCustomAggregationUnitResponseAggregationInfoResponseAggregationNameListResponse'ValidateBroadcastMessageObjectsResponse'ValidateMulticastMessageObjectsResponse(ValidateNarrowcastMessageObjectsResponse"ValidatePushMessageObjectsResponse#ValidateReplyMessageObjectsResponse)LineBotSdkDeprecatedIn30)
deprecatedz|Use v3 class; linebot.v3.<feature>. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.3.0.0reasonversioncategoryc                   @   s  e Zd ZdZdZdZeefddZedded	
dddZ	edded	
			
	
dddZ
edded	
			
	
dddZedded	
dddZedded	
	
	
	
			
dddZeddeddddZeddeddddZeddeddd d!Zed"deddd#d$Zed%deddd&d'Zed(deddd)d*Zed+deddd,d-Zed.deddd/d0Zed1deddd2d3Zed4deddd5d6Zed7deddd8d9Zed:deddd;d<Zed=deddd>d?Zed@dedddAdBZedCdedddDdEZedFdedddGdHZedIdedd	dJdKZedLdedd	dMdNZedOdedddPdQZ edRdedddSdTZ!edUdedddVdWZ"edXdedddYdZZ#ed[dedd	d\d]Z$ed^deddd_d`Z%edadedddbdcZ&edddedddedfZ'edgdedddhdiZ(edjded	
ddkdlZ)edmdedddndoZ*edpdedddqdrZ+edsdedddtduZ,edvdedddwdxZ-edydedddzd{Z.ed|deddd}d~Z/eddeddddZ0eddeddddZ1edded	
dddZ2eddeddddZ3eddeddddZ4eddeddddZ5eddeddddZ6eddeddddZ7eddeddddZ8eddeddddZ9edded	
d
ddZ:eddeddddZ;eddeddddZ<eddeddddZ=eddeddddZ>eddeddddZ?eddeddddZ@edded	
dddZAeddeddddZBedded		
	
		
	
	
dddZCeddeddddZDeddeddddÄZEedded	
d	ddƄZFeddeddddɄZGedded	
ddd̈́ZHedded	
d	ddЄZIeddeddddӄZJeddeddddքZKeddeddddلZLeddedd	dd܄ZMeddeddddZNedded			
dddZOedded	
dddZP		
dddZQeddeddddZRedded		
dddZSedded	
dddZTeddeddddZUedded	
dddZVdddZWdddZXdddZYdd dZZe[dd Z\d
S (  AsyncLineBotApiz5LineBotApi provides interface for LINE messaging API.zhttps://api.line.mezhttps://api-data.line.mec                 C   s*   || _ || _d| dt d| _|| _dS )z__init__ method.

        :param str channel_access_token: Your channel access token
        :param str endpoint: (optional) Default is https://api.line.me
        :param str data_endpoint: (optional) Default is https://api-data.line.me
        zBearer zline-bot-sdk-python-async/)Authorizationz
User-AgentN)data_endpointendpointr   headersasync_http_client)selfchannel_access_tokenr>   r<   r;    rA   S/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/linebot/async_api.py__init__`   s   
zAsyncLineBotApi.__init__zUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).reply_message(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.r4   r5   FNc                    sL   t |ttfs|g}|dd |D |d}| jdt||dI dH  dS )a  Call reply message API.

        https://developers.line.biz/en/reference/messaging-api/#send-reply-message

        Respond to events from users, groups, and rooms.

        Webhooks are used to notify you when an event occurs.
        For events that you can respond to, a replyToken is issued for replying to messages.

        Because the replyToken becomes invalid after a certain period of time,
        responses should be sent as soon as a message is received.

        Reply tokens can only be used once.

        :param str reply_token: replyToken received via webhook
        :param messages: Messages.
            Max: 5
        :type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
            list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
        :param bool notification_disabled: (optional) True to disable push notification
            when the message is sent. The default value is False.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        c                 S      g | ]}|  qS rA   as_json_dict.0messagerA   rA   rB   
<listcomp>       z1AsyncLineBotApi.reply_message.<locals>.<listcomp>)
replyTokenmessagesnotificationDisabledz/v2/bot/message/replydatatimeoutN)
isinstancelisttuple_postjsondumps)r?   reply_tokenrM   notification_disabledrQ   rP   rA   rA   rB   reply_messagev   s   #zAsyncLineBotApi.reply_messagezUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).push_message(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    ~   t |ttfs|g}|r|| jd< |dd |D |d}|dur/t |ttfs+|g}||d< | jdt||dI dH  dS )	a
  Call push message API.

        https://developers.line.biz/en/reference/messaging-api/#send-push-message

        Send messages to users, groups, and rooms at any time.

        :param str to: ID of the receiver
        :param messages: Messages.
            Max: 5
        :type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
            list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
        :param retry_key: (optional) Arbitrarily generated UUID in hexadecimal notation.
        :param bool notification_disabled: (optional) True to disable push notification
            when the message is sent. The default value is False.
        :param custom_aggregation_units: (optional) Name of aggregation unit. Case-sensitive.
            Max unit: 1
            Max aggregation unit name length: 30 characters
            Supported character types: Half-width alphanumeric characters and underscore
        :type custom_aggregation_units: str | list[str]
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        X-Line-Retry-Keyc                 S   rD   rA   rE   rG   rA   rA   rB   rJ      rK   z0AsyncLineBotApi.push_message.<locals>.<listcomp>torM   rN   NcustomAggregationUnitsz/v2/bot/message/pushrO   rR   rS   rT   r=   rU   rV   rW   r?   r^   rM   	retry_keyrY   custom_aggregation_unitsrQ   rP   rA   rA   rB   push_message   s   '
 zAsyncLineBotApi.push_messagezUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).multicast(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r[   )	aq  Call multicast API.

        https://developers.line.biz/en/reference/messaging-api/#send-multicast-message

        Sends push messages to multiple users at any time.
        Messages cannot be sent to groups or rooms.

        :param to: IDs of the receivers
            Max: 500 users
        :type to: list[str]
        :param messages: Messages.
            Max: 5
        :type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
            list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
        :param retry_key: (optional) Arbitrarily generated UUID in hexadecimal notation.
        :param bool notification_disabled: (optional) True to disable push notification
            when the message is sent. The default value is False.
        :param custom_aggregation_units: (optional) Name of aggregation unit. Case-sensitive.
            Max unit: 1
            Max aggregation unit name length: 30 characters
            Supported character types: Half-width alphanumeric characters and underscore
        :type custom_aggregation_units: str | list[str]
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        r\   c                 S   rD   rA   rE   rG   rA   rA   rB   rJ     rK   z-AsyncLineBotApi.multicast.<locals>.<listcomp>r]   Nr_   z/v2/bot/message/multicastrO   r`   ra   rA   rA   rB   	multicast   s    *
zAsyncLineBotApi.multicastzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).broadcast(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    sf   t |ttfs|g}|r|| jd< dd |D |d}| jdt||dI dH }t|jdd	S )
a  Call broadcast API.

        https://developers.line.biz/en/reference/messaging-api/#send-broadcast-message

        Sends push messages to multiple users at any time.

        :param messages: Messages.
            Max: 5
        :type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
            list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
        :param retry_key: (optional) Arbitrarily generated UUID in hexadecimal notation.
        :param bool notification_disabled: (optional) True to disable push notification
            when the message is sent. The default value is False.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.BroadcastResponse`
        r\   c                 S   rD   rA   rE   rG   rA   rA   rB   rJ   B  rK   z-AsyncLineBotApi.broadcast.<locals>.<listcomp>)rM   rN   z/v2/bot/message/broadcastrO   NX-Line-Request-Id
request_id)	rR   rS   rT   r=   rU   rV   rW   r   get)r?   rM   rb   rY   rQ   rP   responserA   rA   rB   	broadcast  s   
zAsyncLineBotApi.broadcastzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).narrowcast(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c           
         sx   t |ttfs|g}|r|| jd< dd |D | | | |d}| jdt||dI dH }	t|	j	dd	S )
a  Call narrowcast API.

        https://developers.line.biz/en/reference/messaging-api/#send-narrowcast-message

        Sends push messages to multiple users at any time.
        Messages cannot be sent to groups or rooms.

        :param messages: Messages.
            Max: 5
        :type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
            list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
        :param retry_key: (optional) Arbitrarily generated UUID in hexadecimal notation.
        :param recipient: audience object of recipient
        :type recipient: T <= :py:class:`linebot.models.recipient.AudienceRecipient`
        :param filter: demographic filter of recipient
        :type filter: T <= :py:class:`linebot.models.filter.DemographicFilter`
        :param limit: limit on this narrowcast
        :type limit: T <= :py:class:`linebot.models.limit.Limit`
        :param bool notification_disabled: (optional) True to disable push notification
            when the message is sent. The default value is False.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.NarrowcastResponse`
        r\   c                 S   rD   rA   rE   rG   rA   rA   rB   rJ   }  rK   z.AsyncLineBotApi.narrowcast.<locals>.<listcomp>)rM   	recipientfilterlimitrN   z/v2/bot/message/narrowcastrO   Nrf   rg   )
rR   rS   rT   r=   rF   rU   rV   rW   r   ri   )
r?   rM   rb   rl   rm   rn   rY   rQ   rP   rj   rA   rA   rB   
narrowcastL  s   *
zAsyncLineBotApi.narrowcastzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_narrowcast_progress(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    0   | j dj|d|dI dH }t|jI dH S )a  Get progress status of narrowcast messages sent.

        https://developers.line.biz/en/reference/messaging-api/#get-narrowcast-progress-status

        Gets the number of messages sent with the /bot/message/progress/narrowcast endpoint.

        :param str request_id: request ID of narrowcast.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.MessageDeliveryBroadcastResponse`
        z:/v2/bot/message/progress/narrowcast?requestId={request_id}rg   rQ   N)_getformatr   new_from_json_dictrV   r?   rh   rQ   rj   rA   rA   rB   get_progress_status_narrowcast  s   
z.AsyncLineBotApi.get_progress_status_narrowcastzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).validate_reply(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    V   t |ttfs|g}ddd |D i}| jdt||dI dH }t|jddS )	a  Call validate reply message objects API.

        https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-reply-message

        You can validate that an array of message objects is valid as a value
        for the messages property of the request body for the send reply message endpoint.

        :param messages: Messages.
            Max: 5
        :type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
            list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.ValidateReplyMessageObjectsResponse`
        rM   c                 S   rD   rA   rE   rG   rA   rA   rB   rJ     rK   zBAsyncLineBotApi.validate_reply_message_objects.<locals>.<listcomp>z/v2/bot/message/validate/replyrO   Nrf   rg   )	rR   rS   rT   rU   rV   rW   r1   r=   ri   r?   rM   rQ   rP   rj   rA   rA   rB   validate_reply_message_objects     
z.AsyncLineBotApi.validate_reply_message_objectszUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).validate_push(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rw   )	a  Call validate push message objects API.

        https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-push-message

        You can validate that an array of message objects is valid as a value
        for the messages property of the request body for the send push message endpoint.

        :param messages: Messages.
            Max: 5
        :type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
            list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.ValidatePushMessageObjectsResponse`
        rM   c                 S   rD   rA   rE   rG   rA   rA   rB   rJ     rK   zAAsyncLineBotApi.validate_push_message_objects.<locals>.<listcomp>z/v2/bot/message/validate/pushrO   Nrf   rg   )	rR   rS   rT   rU   rV   rW   r0   r=   ri   rx   rA   rA   rB   validate_push_message_objects  rz   z-AsyncLineBotApi.validate_push_message_objectszUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).validate_multicast(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rw   )	a  Call validate multicast message objects API.

        https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-multicast-message

        You can validate that an array of message objects is valid as a value
        for the messages property of the request body for the send multicast message endpoint.

        :param messages: Messages.
            Max: 5
        :type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
            list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.ValidateMulticastMessageObjectsResponse`
        rM   c                 S   rD   rA   rE   rG   rA   rA   rB   rJ     rK   zFAsyncLineBotApi.validate_multicast_message_objects.<locals>.<listcomp>z"/v2/bot/message/validate/multicastrO   Nrf   rg   )	rR   rS   rT   rU   rV   rW   r.   r=   ri   rx   rA   rA   rB   "validate_multicast_message_objects  rz   z2AsyncLineBotApi.validate_multicast_message_objectszUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).validate_broadcast(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rw   )	a  Call validate broadcast message objects API.

        https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-broadcast-message

        You can validate that an array of message objects is valid as a value
        for the messages property of the request body for the send broadcast message endpoint.

        :param messages: Messages.
            Max: 5
        :type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
            list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.ValidateBroadcastMessageObjectsResponse`
        rM   c                 S   rD   rA   rE   rG   rA   rA   rB   rJ   :  rK   zFAsyncLineBotApi.validate_broadcast_message_objects.<locals>.<listcomp>z"/v2/bot/message/validate/broadcastrO   Nrf   rg   )	rR   rS   rT   rU   rV   rW   r-   r=   ri   rx   rA   rA   rB   "validate_broadcast_message_objects  rz   z2AsyncLineBotApi.validate_broadcast_message_objectszUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).validate_narrowcast(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rw   )	a  Call validate narrowcast message objects API.

        https://developers.line.biz/en/reference/messaging-api/#validate-message-objects-of-narrowcast-message

        You can validate that an array of message objects is valid as a value
        for the messages property of the request body for the send narrowcast message endpoint.

        :param messages: Messages.
            Max: 5
        :type messages: T <= :py:class:`linebot.models.send_messages.SendMessage` |
            list[T <= :py:class:`linebot.models.send_messages.SendMessage`]
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.ValidateNarrowcastMessageObjectsResponse`
        rM   c                 S   rD   rA   rE   rG   rA   rA   rB   rJ   a  rK   zGAsyncLineBotApi.validate_narrowcast_message_objects.<locals>.<listcomp>z#/v2/bot/message/validate/narrowcastrO   Nrf   rg   )	rR   rS   rT   rU   rV   rW   r/   r=   ri   rx   rA   rA   rB   #validate_narrowcast_message_objectsE  s   
z3AsyncLineBotApi.validate_narrowcast_message_objectszUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_number_of_sent_broadcast_messages(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )a  Get number of sent broadcast messages.

        https://developers.line.biz/en/reference/messaging-api/#get-number-of-broadcast-messages

        Gets the number of messages sent with the /bot/message/broadcast endpoint.

        :param str date: Date the messages were sent. The format is `yyyyMMdd` (Timezone is UTC+9).
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.MessageDeliveryBroadcastResponse`
        z./v2/bot/message/delivery/broadcast?date={date}daterq   N)rr   rs   r   rt   rV   r?   r   rQ   rj   rA   rA   rB   get_message_delivery_broadcastn     

z.AsyncLineBotApi.get_message_delivery_broadcastzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_number_of_sent_reply_messages(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )a  Get number of sent reply messages.

        https://developers.line.biz/en/reference/messaging-api/#get-number-of-reply-messages

        Gets the number of messages sent with the /bot/message/reply endpoint.

        :param str date: Date the messages were sent. The format is `yyyyMMdd` (Timezone is UTC+9).
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.MessageDeliveryReplyResponse`
        z*/v2/bot/message/delivery/reply?date={date}r   rq   N)rr   rs   r   rt   rV   r   rA   rA   rB   get_message_delivery_reply     
z*AsyncLineBotApi.get_message_delivery_replyzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_number_of_sent_push_messages(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )a  Get number of sent push messages.

        https://developers.line.biz/en/reference/messaging-api/#get-number-of-push-messages

        Gets the number of messages sent with the /bot/message/push endpoint.

        :param str date: Date the messages were sent. The format is `yyyyMMdd` (Timezone is UTC+9).
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.MessageDeliveryPushResponse`
        z)/v2/bot/message/delivery/push?date={date}r   rq   N)rr   rs   r   rt   rV   r   rA   rA   rB   get_message_delivery_push  r   z)AsyncLineBotApi.get_message_delivery_pushzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_number_of_sent_multicast_messages(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )a  Get number of sent multicast messages.

        https://developers.line.biz/en/reference/messaging-api/#get-number-of-multicast-messages

        Gets the number of messages sent with the /bot/message/multicast endpoint.

        :param str date: Date the messages were sent. The format is `yyyyMMdd` (Timezone is UTC+9).
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.MessageDeliveryMulticastResponse`
        z./v2/bot/message/delivery/multicast?date={date}r   rq   N)rr   rs   r   rt   rV   r   rA   rA   rB   get_message_delivery_multicast  r   z.AsyncLineBotApi.get_message_delivery_multicastzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_profile(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )a7  Call get profile API.

        https://developers.line.biz/en/reference/messaging-api/#get-profile

        Get user profile information.

        :param str user_id: User ID
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.Profile`
        :return: Profile instance
        z/v2/bot/profile/{user_id}user_idrq   Nrr   rs   r   rt   rV   r?   r   rQ   rj   rA   rA   rB   get_profile  s
   zAsyncLineBotApi.get_profilezUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_group_summary(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )a  Call get group summary API.

        https://developers.line.biz/en/reference/messaging-api/#get-group-summary

        Gets the group ID, group name, and group icon URL of a group
        where the LINE Official Account is a member.

        :param str group_id: Group ID
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.Group`
        :return: Profile instance
        z /v2/bot/group/{group_id}/summarygroup_idrq   N)rr   rs   r"   rt   rV   r?   r   rQ   rj   rA   rA   rB   get_group_summary  s   
z!AsyncLineBotApi.get_group_summaryzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_group_member_count(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    0   | j dj|d|dI dH }|jI dH dS )aZ  Call get members in group count API.

        https://developers.line.biz/en/reference/messaging-api/#get-members-group-count

        Gets the count of members in a group.

        :param str group_id: Group ID
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.Group`
        :return: Profile instance
        z&/v2/bot/group/{group_id}/members/countr   rq   Ncountrr   rs   rV   ri   r   rA   rA   rB   get_group_members_count     
z'AsyncLineBotApi.get_group_members_countzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_room_member_count(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )aU  Call get members in room count API.

        https://developers.line.biz/en/reference/messaging-api/#get-members-room-count

        Gets the count of members in a room.

        :param str room_id: Room ID
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.Group`
        :return: Profile instance
        z$/v2/bot/room/{room_id}/members/countroom_idrq   Nr   r   )r?   r   rQ   rj   rA   rA   rB   get_room_members_count2  r   z&AsyncLineBotApi.get_room_members_countzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_group_member_profile(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    2   | j dj||d|dI dH }t|jI dH S )a
  Call get group member profile API.

        https://developers.line.biz/en/reference/messaging-api/#get-group-member-profile

        Gets the user profile of a member of a group that
        the bot is in. This can be the user ID of a user who has
        not added the bot as a friend or has blocked the bot.

        :param str group_id: Group ID
        :param str user_id: User ID
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.Profile`
        :return: Profile instance
        z)/v2/bot/group/{group_id}/member/{user_id})r   r   rq   Nr   )r?   r   r   rQ   rj   rA   rA   rB   get_group_member_profileN     z(AsyncLineBotApi.get_group_member_profilezUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_room_member_profile(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a  Call get room member profile API.

        https://developers.line.biz/en/reference/messaging-api/#get-room-member-profile

        Gets the user profile of a member of a room that
        the bot is in. This can be the user ID of a user who has
        not added the bot as a friend or has blocked the bot.

        :param str room_id: Room ID
        :param str user_id: User ID
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.Profile`
        :return: Profile instance
        z'/v2/bot/room/{room_id}/member/{user_id})r   r   rq   Nr   )r?   r   r   rQ   rj   rA   rA   rB   get_room_member_profileo  r   z'AsyncLineBotApi.get_room_member_profilezUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_group_members_ids(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    F   |du rdnd|i}| j dj|d||dI dH }t|jI dH S )a  Call get group member IDs API.

        https://developers.line.biz/en/reference/messaging-api/#get-group-member-ids

        Gets the user IDs of the members of a group that the bot is in.
        This includes the user IDs of users who have not added the bot as a friend
        or has blocked the bot.

        :param str group_id: Group ID
        :param str start: continuationToken
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.MemberIds`
        :return: MemberIds instance
        Nstartz$/v2/bot/group/{group_id}/members/idsr   paramsrQ   rr   rs   r   rt   rV   )r?   r   r   rQ   r   rj   rA   rA   rB   get_group_member_ids     
z$AsyncLineBotApi.get_group_member_idszUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_room_members_ids(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a  Call get room member IDs API.

        https://developers.line.biz/en/reference/messaging-api/#get-room-member-ids

        Gets the user IDs of the members of a group that the bot is in.
        This includes the user IDs of users who have not added the bot as a friend
        or has blocked the bot.

        :param str room_id: Room ID
        :param str start: continuationToken
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.MemberIds`
        :return: MemberIds instance
        Nr   z"/v2/bot/room/{room_id}/members/idsr   r   r   )r?   r   r   rQ   r   rj   rA   rA   rB   get_room_member_ids  r   z#AsyncLineBotApi.get_room_member_idszUse 'from linebot.v3.messaging import AsyncMessagingApiBlob' and 'AsyncMessagingApiBlob(...).get_message_content(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    *   | j dj|d| j|dI dH }t|S )aT  Call get content API.

        https://developers.line.biz/en/reference/messaging-api/#get-content

        Retrieve image, video, and audio data sent by users.

        :param str message_id: Message ID
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.Content`
        :return: Content instance
        z$/v2/bot/message/{message_id}/content)
message_idr<   rQ   Nrr   rs   r;   r   )r?   r   rQ   rj   rA   rA   rB   get_message_content  s   
z#AsyncLineBotApi.get_message_contentzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).leave_group(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    "   | j dj|d|dI dH  dS )a  Call leave group API.

        https://developers.line.biz/en/reference/messaging-api/#leave-group

        Leave a group.

        :param str group_id: Group ID
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        z/v2/bot/group/{group_id}/leaver   rq   NrU   rs   )r?   r   rQ   rA   rA   rB   leave_group     zAsyncLineBotApi.leave_groupzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).leave_room(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a  Call leave room API.

        https://developers.line.biz/en/reference/messaging-api/#leave-room

        Leave a room.

        :param str room_id: Room ID
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        z/v2/bot/room/{room_id}/leaver   rq   Nr   )r?   r   rQ   rA   rA   rB   
leave_room  r   zAsyncLineBotApi.leave_roomzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_rich_menu(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )a7  Call get rich menu API.

        https://developers.line.biz/en/reference/messaging-api/#get-rich-menu

        :param str rich_menu_id: ID of the rich menu
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.RichMenuResponse`
        :return: RichMenuResponse instance
        /v2/bot/richmenu/{rich_menu_id}rich_menu_idrq   N)rr   rs   r	   rt   rV   r?   r   rQ   rj   rA   rA   rB   get_rich_menu  s   
zAsyncLineBotApi.get_rich_menuzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_rich_menu_alias(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )ah  Call get rich menu alias API.

        https://developers.line.biz/en/reference/messaging-api/#get-rich-menu-alias-by-id

        :param str rich_menu_alias_id: ID of an uploaded rich menu alias.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.RichMenuAliasResponse`
        :return: RichMenuAliasResponse instance
        %/v2/bot/richmenu/alias/{rich_menu_id}r   rq   N)rr   rs   r$   rt   rV   )r?   rich_menu_alias_idrQ   rj   rA   rA   rB   get_rich_menu_alias9  s   z#AsyncLineBotApi.get_rich_menu_aliaszUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_rich_menu_alias_list(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    (   | j d|dI dH }t|jI dH S )a(  Call get rich menu alias list API.

        https://developers.line.biz/en/reference/messaging-api/#update-rich-menu-alias

        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.RichMenuAliasListResponse`
        :return: RichMenuAliasListResponse instance
        z/v2/bot/richmenu/alias/listrq   N)rr   r%   rt   rV   r?   rQ   rj   rA   rA   rB   get_rich_menu_alias_listT  s   z(AsyncLineBotApi.get_rich_menu_alias_listzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).validate_rich_menu_object(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                        | j d| |dI dH  dS )a8  Call validate rich menu object API.

        https://developers.line.biz/ja/reference/messaging-api/#validate-rich-menu-object

        :param rich_menu: Inquired to validate a rich menu object.
        :type rich_menu: T <= :py:class:`linebot.models.rich_menu.RichMenu`
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        z/v2/bot/richmenu/validaterO   NrU   as_json_string)r?   	rich_menurQ   rA   rA   rB   validate_rich_menu_objecti  s   z)AsyncLineBotApi.validate_rich_menu_objectzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).create_rich_menu(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s.   | j d| |dI dH }|jI dH dS )aV  Call create rich menu API.

        https://developers.line.biz/en/reference/messaging-api/#create-rich-menu

        :param rich_menu: Inquired to create a rich menu object.
        :type rich_menu: T <= :py:class:`linebot.models.rich_menu.RichMenu`
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: str
        :return: rich menu id
        z/v2/bot/richmenurO   N
richMenuId)rU   r   rV   ri   )r?   r   rQ   rj   rA   rA   rB   create_rich_menu  s
   
z AsyncLineBotApi.create_rich_menuzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).create_rich_menu_alias(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )ay  Call create rich menu alias API.

        https://developers.line.biz/en/reference/messaging-api/#create-rich-menu-alias

        :param rich_menu_alias: Inquired to create a rich menu alias object.
        :type rich_menu_alias: T <= :py:class:`linebot.models.rich_menu.RichMenuAlias`
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: str
        :return: rich menu id
        z/v2/bot/richmenu/aliasrO   Nr   )r?   rich_menu_aliasrQ   rA   rA   rB   create_rich_menu_alias  s   z&AsyncLineBotApi.create_rich_menu_aliaszUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).update_rich_menu_alias(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s(   | j dj|d| |dI dH  dS )a  Call update rich menu alias API.

        https://developers.line.biz/en/reference/messaging-api/#update-rich-menu-alias

        :param str rich_menu_alias_id: ID of an uploaded rich menu alias.
        :param rich_menu_alias: Inquired to create a rich menu alias object.
        :type rich_menu_alias: T <= :py:class:`linebot.models.rich_menu.RichMenuAlias`
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: str
        :return: rich menu id
        r   r   rO   N)rU   rs   r   )r?   r   r   rQ   rA   rA   rB   update_rich_menu_alias  s   z&AsyncLineBotApi.update_rich_menu_aliaszUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).delete_rich_menu(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a  Call delete rich menu API.

        https://developers.line.biz/en/reference/messaging-api/#delete-rich-menu

        :param str rich_menu_id: ID of an uploaded rich menu
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        r   r   rq   N_deleters   r?   r   rQ   rA   rA   rB   delete_rich_menu  s
   
z AsyncLineBotApi.delete_rich_menuzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).delete_rich_menu_alias(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a  Call delete rich menu alias API.

        https://developers.line.biz/en/reference/messaging-api/#delete-rich-menu-alias

        :param str rich_menu_alias_id: ID of an uploaded rich menu alias.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        z+/v2/bot/richmenu/alias/{rich_menu_alias_id})r   rq   Nr   )r?   r   rQ   rA   rA   rB   delete_rich_menu_alias     z&AsyncLineBotApi.delete_rich_menu_aliaszUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_rich_menu_id_of_user(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a  Call get rich menu ID of user API.

        https://developers.line.biz/en/reference/messaging-api/#get-rich-menu-id-of-user

        :param str user_id: IDs of the user
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: str
        :return: rich menu id
        /v2/bot/user/{user_id}/richmenur   rq   Nr   r   r   rA   rA   rB   get_rich_menu_id_of_user  
   z(AsyncLineBotApi.get_rich_menu_id_of_userzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).link_rich_menu_id_to_user(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s$   | j dj||d|dI dH  dS )a  Call link rich menu to user API.

        https://developers.line.biz/en/reference/messaging-api/#link-rich-menu-to-user

        :param str user_id: ID of the user
        :param str rich_menu_id: ID of an uploaded rich menu
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        z./v2/bot/user/{user_id}/richmenu/{rich_menu_id})r   r   rq   Nr   )r?   r   r   rQ   rA   rA   rB   link_rich_menu_to_user  s   z&AsyncLineBotApi.link_rich_menu_to_userzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).link_rich_menu_id_to_users(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s(   | j dt||d|dI dH  dS )aD  Links a rich menu to multiple users.

        https://developers.line.biz/en/reference/messaging-api/#link-rich-menu-to-users

        :param user_ids: user IDs
            Max: 150 users
        :type user_ids: list[str]
        :param str rich_menu_id: ID of an uploaded rich menu
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        z/v2/bot/richmenu/bulk/link)userIdsr   rO   NrU   rV   rW   )r?   user_idsr   rQ   rA   rA   rB   link_rich_menu_to_users4  s   z'AsyncLineBotApi.link_rich_menu_to_userszUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).unlink_rich_menu_id_from_user(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a  Call unlink rich menu from user API.

        https://developers.line.biz/en/reference/messaging-api#unlink-rich-menu-from-user

        :param str user_id: ID of the user
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        r   r   rq   Nr   )r?   r   rQ   rA   rA   rB   unlink_rich_menu_from_userS  s   z*AsyncLineBotApi.unlink_rich_menu_from_userzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).unlink_rich_menu_id_from_users(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s&   | j dtd|i|dI dH  dS )a  Unlinks rich menus from multiple users.

        https://developers.line.biz/en/reference/messaging-api/#unlink-rich-menu-from-users

        :param user_ids: user IDs
            Max: 150 users
        :type user_ids: list[str]
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        z/v2/bot/richmenu/bulk/unlinkr   rO   Nr   )r?   r   rQ   rA   rA   rB   unlink_rich_menu_from_usersh  s   z+AsyncLineBotApi.unlink_rich_menu_from_userszUse 'from linebot.v3.messaging import AsyncMessagingApiBlob' and 'MessagingApiBlob.get_rich_menu_image(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )aZ  Call download rich menu image API.

        https://developers.line.biz/en/reference/messaging-api#download-rich-menu-image

        :param str rich_menu_id: ID of the rich menu with the image to be downloaded
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.Content`
        :return: Content instance
        '/v2/bot/richmenu/{rich_menu_id}/contentr   r   Nr   r   rA   rA   rB   get_rich_menu_image  s   
z#AsyncLineBotApi.get_rich_menu_imagezUse 'from linebot.v3.messaging import AsyncMessagingApiBlob' and 'MessagingApiBlob.set_rich_menu_image(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s.   | j dj|d| j|d|i|dI dH  dS )a  Call upload rich menu image API.

        https://developers.line.me/en/docs/messaging-api/reference/#upload-rich-menu-image

        Uploads and attaches an image to a rich menu.

        :param str rich_menu_id: IDs of the richmenu
        :param str content_type: image/jpeg or image/png
        :param content: image content as bytes, or file-like object
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        r   r   Content-Type)r<   rP   r=   rQ   N)rU   rs   r;   )r?   r   content_typecontentrQ   rA   rA   rB   set_rich_menu_image  s   
z#AsyncLineBotApi.set_rich_menu_imagezUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_rich_menu_list(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    sD   | j d|dI dH }g }|jI dH d D ]
}|t| q|S )a!  Call get rich menu list API.

        https://developers.line.me/en/docs/messaging-api/reference/#get-rich-menu-list

        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: list(T <= :py:class:`linebot.models.responses.RichMenuResponse`)
        :return: list[RichMenuResponse] instance
        z/v2/bot/richmenu/listrq   N	richmenus)rr   rV   appendr	   rt   )r?   rQ   rj   resultrichmenurA   rA   rB   get_rich_menu_list  s   z"AsyncLineBotApi.get_rich_menu_listzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).set_default_rich_menu(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a  Set the default rich menu.

        https://developers.line.biz/en/reference/messaging-api/#set-default-rich-menu

        :param str rich_menu_id: ID of an uploaded rich menu
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        z(/v2/bot/user/all/richmenu/{rich_menu_id}r   rq   Nr   r   rA   rA   rB   set_default_rich_menu  r   z%AsyncLineBotApi.set_default_rich_menuzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_default_rich_menu_id(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s(   | j d|dI dH }|jI dH dS )a  Get the ID of the default rich menu set with the Messaging API.

        https://developers.line.biz/en/reference/messaging-api/#get-default-rich-menu-id

        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        /v2/bot/user/all/richmenurq   Nr   )rr   rV   ri   r   rA   rA   rB   get_default_rich_menu  s   z%AsyncLineBotApi.get_default_rich_menuzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).cancel_default_rich_menu(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s   | j d|dI dH  dS )a  Cancel the default rich menu set with the Messaging API.

        https://developers.line.biz/en/reference/messaging-api/#cancel-default-rich-menu

        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        r   rq   N)r   )r?   rQ   rA   rA   rB   cancel_default_rich_menu  s   z(AsyncLineBotApi.cancel_default_rich_menuzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_message_quota(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a!  Call Get the target limit for additional messages.

        https://developers.line.biz/en/reference/messaging-api/#get-quota

        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.MessageQuotaResponse`
        :return: MessageQuotaResponse instance
        z/v2/bot/message/quotarq   N)rr   r
   rt   rV   r   rA   rA   rB   get_message_quota     z!AsyncLineBotApi.get_message_quotazUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_message_quota_consumption(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a2  Get number of messages sent this month.

        https://developers.line.biz/en/reference/messaging-api/#get-consumption

        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.MessageQuotaConsumptionResponse`
        :return: MessageQuotaConsumptionResponse instance
        z!/v2/bot/message/quota/consumptionrq   N)rr   r   rt   rV   r   rA   rA   rB   get_message_quota_consumption-  r   z-AsyncLineBotApi.get_message_quota_consumptionzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).issue_link_token(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )av  Issues a link token used for the account link feature.

        https://developers.line.biz/en/reference/messaging-api/#issue-link-token

        :param str user_id: User ID for the LINE account to be linked
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.IssueLinkTokenResponse`
        :return: IssueLinkTokenResponse instance
        z /v2/bot/user/{user_id}/linkTokenr   rq   N)rU   rs   r   rt   rV   r   rA   rA   rB   issue_link_tokenC  r   z AsyncLineBotApi.issue_link_tokenzUse 'from linebot.v3.oauth import AsyncChannelAccessToken' and 'AsyncChannelAccessToken(...).issue_channel_token(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.client_credentialsc                    s8   | j d|||dddi|dI dH }t|jI dH S )a  Issues a short-lived channel access token.

        https://developers.line.biz/en/reference/messaging-api/#issue-channel-access-token

        :param str client_id: Channel ID.
        :param str client_secret: Channel secret.
        :param str grant_type: `client_credentials`
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.IssueChannelTokenResponse`
        :return: IssueChannelTokenResponse instance
        z/v2/oauth/accessToken)	client_idclient_secret
grant_typer   !application/x-www-form-urlencodedrP   r=   rQ   N)rU   r   rt   rV   )r?   r   r   r   rQ   rj   rA   rA   rB   issue_channel_token\  s   z#AsyncLineBotApi.issue_channel_tokenzUse 'from linebot.v3.oauth import AsyncChannelAccessToken' and 'AsyncChannelAccessToken(...).revoke_channel_token(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s&   | j dd|iddi|dI dH  dS )a  Revokes a channel access token.

        https://developers.line.biz/en/reference/messaging-api/#revoke-channel-access-token

        :param str access_token: Channel access token.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        z/v2/oauth/revokeaccess_tokenr   r   r   NrU   )r?   r   rQ   rA   rA   rB   revoke_channel_token  s   z$AsyncLineBotApi.revoke_channel_tokenzUse 'from linebot.v3.insight import AsyncInsight' and 'AsyncInsight(...).get_number_of_message_deliveries(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )a`  Get the number of messages sent on a specified day.

        https://developers.line.biz/en/reference/messaging-api/#get-number-of-delivery-messages

        :param str date: Date for which to retrieve number of sent messages.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.InsightMessageDeliveryResponse`
        z,/v2/bot/insight/message/delivery?date={date}r   rq   N)rr   rs   r   rt   rV   r   rA   rA   rB   get_insight_message_delivery  s   
z,AsyncLineBotApi.get_insight_message_deliveryzUse 'from linebot.v3.insight import AsyncInsight' and 'AsyncInsight(...).get_insight_followers(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )al  Get the number of users who have added the bot on or before a specified date.

        https://developers.line.biz/en/reference/messaging-api/#get-number-of-followers

        :param str date: Date for which to retrieve the number of followers.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.InsightFollowersResponse`
        z%/v2/bot/insight/followers?date={date}r   rq   N)rr   rs   r   rt   rV   r   rA   rA   rB   get_insight_followers  s
   z%AsyncLineBotApi.get_insight_followerszUse 'from linebot.v3.insight import AsyncInsight' and 'AsyncInsight(...).get_friends_demographics(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a  Retrieve the demographic attributes for a bot's friends.

        https://developers.line.biz/en/reference/messaging-api/#get-demographic

        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.InsightDemographicResponse`
        z/v2/bot/insight/demographicrq   N)rr   r   rt   rV   r   rA   rA   rB   get_insight_demographic     z'AsyncLineBotApi.get_insight_demographiczUse 'from linebot.v3.insight import AsyncInsight' and 'AsyncInsight(...).get_message_event(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )aR  Return statistics about how users interact with broadcast messages.

        https://developers.line.biz/en/reference/messaging-api/#get-message-event

        :param str request_id: Request ID of broadcast message.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.InsightMessageEventResponse`
        z4/v2/bot/insight/message/event?requestId={request_id}rg   rq   N)rr   rs   r   rt   rV   ru   rA   rA   rB   get_insight_message_event     z)AsyncLineBotApi.get_insight_message_eventzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_bot_info(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a  Get a bot's basic information.

        https://developers.line.biz/en/reference/messaging-api/#get-bot-info

        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.BotInfo`
        z/v2/bot/inforq   N)rr   r   rt   rV   r   rA   rA   rB   get_bot_info  r   zAsyncLineBotApi.get_bot_infozUse 'from linebot.v3.audience import AsyncManageAudience' and 'AsyncManageAudience(...).create_audience_group(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s`   |du rg }|rdd |D }| j dt||dd |D d|dI dH }t|jI dH S )aE  Create an audience group.

        https://developers.line.biz/en/reference/messaging-api/#create-upload-audience-group

        :param str audience_group_name: The audience's name
        :param list audiences: An array of user IDs or IFAs
        :param bool is_ifa: true | false
        :return: audience group id
        Nc                 S      g | ]}t |qS rA   r    rt   rH   audiencerA   rA   rB   rJ   #      
z9AsyncLineBotApi.create_audience_group.<locals>.<listcomp>/v2/bot/audienceGroup/uploadc                 S   rD   rA   rE   r   rA   rA   rB   rJ   ,  rK   )descriptionisIfaAudience	audiencesrO   )rU   rV   rW   r!   rt   )r?   audience_group_namer   is_ifarQ   rj   rA   rA   rB   create_audience_group  s$   z%AsyncLineBotApi.create_audience_groupzUse 'from linebot.v3.audience import AsyncManageAudience' and 'AsyncManageAudience(...).get_audience_data(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    rp   )a  Get the object of audience group.

        https://developers.line.biz/en/reference/messaging-api/#get-audience-group

        :param str audience_group_id: The audience ID
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :return: AudienceGroup instance
        z)/v2/bot/audienceGroup/{audience_group_id}audience_group_idrq   N)rr   rs   r   rt   rV   )r?   r  rQ   rj   rA   rA   rB   get_audience_group4  r   z"AsyncLineBotApi.get_audience_groupzUse 'from linebot.v3.audience import AsyncManageAudience' and 'AsyncManageAudience(...).get_audience_groups(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.r      c              
      s   i }|r	||d< |r||d< |r||d< |r||d< |r!||d< |r'||d< | j d||dI d	H }	g }
|	jI d	H d
g D ]
}|
t| q>|	jI d	H ddrb|
| |d ||||||7 }
|
S )a  Get data for more than one audience.

        https://developers.line.biz/en/reference/messaging-api/#get-audience-groups

        :param int page: The page to return when getting (paginated) results. Must be 1 or higher
        :param str description: The name of the audience(s) to return
        :param str status: IN_PROGRESS | READY | FAILED | EXPIRED
        :param int size: The number of audiences per page. Default: 20, Max: 40
        :param bool include_external_public_group: true | false
        :param str create_route: How the audience was created.
        :type create_route: OA_MANAGER | MESSAGING_API
        :return: AudienceGroup instance
        pager   statussizeincludesExternalPublicGroupcreateRoutez/v2/bot/audienceGroup/list?r   NaudienceGroupshasNextPageFr   )rr   rV   ri   r   r   rt   get_audience_group_list)r?   r  r   r	  r
  include_external_public_groupcreate_routerQ   r   rj   r   audience_grouprA   rA   rB   r  O  s>   	z'AsyncLineBotApi.get_audience_group_listzUse 'from linebot.v3.audience import AsyncManageAudience' and 'AsyncManageAudience(...).delete_audience_group(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s    | j d||dI dH  dS )a  Delete an existing audience.

        https://developers.line.biz/en/reference/messaging-api/#delete-audience-group

        :param str audience_group_id: The audience ID
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        z/v2/bot/audienceGroup/{}rq   Nr   )r?   r  rQ   rA   rA   rB   delete_audience_group  s   
z%AsyncLineBotApi.delete_audience_groupzUse 'from linebot.v3.audience import AsyncManageAudience' and 'AsyncManageAudience(...).update_audience_group_description(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s.   | j dj|dtd|i|dI dH  dS )a!  Modify the name of an existing audience.

        https://developers.line.biz/en/reference/messaging-api/#set-description-audience-group

        :param str audience_group_id: The audience ID
        :param str description: The new audience's name
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        z;/v2/bot/audienceGroup/{audience_group_id}/updateDescriptionr  r   rO   N )_putrs   rV   rW   )r?   r  r   rQ   rA   rA   rB   rename_audience_group  s   z%AsyncLineBotApi.rename_audience_groupzUse 'from linebot.v3.audience import AsyncManageAudience' and 'AsyncManageAudience(...).add_audience_to_audience_group(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    sN   |r
dd |D }| j dt|dd |D |d|dI dH }|jI dH S )a"  Add new user IDs or IFAs to an audience for uploading user IDs.

        https://developers.line.biz/en/reference/messaging-api/#update-upload-audience-group

        :param str audience_group_id: The audience ID
        :param list audiences: An array of user IDs or IFAs
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :param bool is_ifa: If this is false (default), recipients are specified by user IDs.
            If true, recipients must be specified by IFAs.
        :param str upload_description: The description to register for the job
        :type timeout: float | tuple(float, float)
        c                 S   r   rA   r   r   rA   rA   rB   rJ     r   zCAsyncLineBotApi.add_audiences_to_audience_group.<locals>.<listcomp>r   c                 S   rD   rA   rE   r   rA   rA   rB   rJ     rK   )audienceGroupIdr   uploadDescriptionrO   Nr  rV   rW   )r?   r  r   upload_descriptionrQ   rj   rA   rA   rB   add_audiences_to_audience_group  s    z/AsyncLineBotApi.add_audiences_to_audience_groupzUse 'from linebot.v3.audience import AsyncManageAudience' and 'AsyncManageAudience(...).get_audience_group_authority_level(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a  Get the authority level of the audience.

        https://developers.line.biz/en/reference/messaging-api/#get-authority-level

        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :return: json
        $/v2/bot/audienceGroup/authorityLevelrq   N)rr   r   rt   rV   r   rA   rA   rB   "get_audience_group_authority_level  s
   z2AsyncLineBotApi.get_audience_group_authority_levelzUse 'from linebot.v3.audience import AsyncManageAudience' and 'AsyncManageAudience(...).update_audience_group_authority_level(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.PUBLICc                    s&   | j dtd|i|dI dH  dS )zChange the authority level of all audiences created in the same channel.

        https://developers.line.biz/en/reference/messaging-api/#change-authority-level

        :param str authority_level: PUBLIC | PRIVATE.
        r  authorityLevelrO   Nr  r  )r?   authority_levelrQ   rA   rA   rB   %change_audience_group_authority_level  s   
z5AsyncLineBotApi.change_audience_group_authority_levelzUse 'from linebot.v3.audience import AsyncManageAudience' and 'AsyncManageAudience(...).create_click_based_audience_group(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s8   | j dt|||d|dI dH }t|jI dH S )a(  Create an audience for click-based retargeting.

        https://developers.line.biz/en/reference/messaging-api/#create-click-audience-group

        :param str description: The audience's name. Audience names must be unique.
        :param str request_id: The request ID of a message sent in the past 60 days.
        :param str click_url: The URL clicked by the user.
        If empty, users who clicked any URL in the message are added to the list of recipients.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :return: ClickAudienceGroup instance
        z/v2/bot/audienceGroup/click)r   	requestIdclickUrlrO   N)rU   rV   rW   r   rt   )r?   r   rh   	click_urlrQ   rj   rA   rA   rB   create_click_audience_group  s   z+AsyncLineBotApi.create_click_audience_groupzUse 'from linebot.v3.audience import AsyncManageAudience' and 'AsyncManageAudience(...).create_imp_based_audience_group(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s6   | j dt||d|dI dH }t|jI dH S )a  Create an audience for impression-based retargeting.

        https://developers.line.biz/en/reference/messaging-api/#create-imp-audience-group

        :param str description: The audience's name. Audience names must be unique.
        :param str request_id: The request ID of a  message sent in the past 60 days.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :return: ImpAudienceGroup instance
        z/v2/bot/audienceGroup/imp)r   r"  rO   N)rU   rV   rW   r   rt   )r?   r   rh   rQ   rj   rA   rA   rB   create_imp_audience_group>  s   z)AsyncLineBotApi.create_imp_audience_groupzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).set_webhook_endpoint(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s2   d|i}| j dt||dI dH }|jI dH S )a  Set the webhook endpoint URL.

        https://developers.line.biz/en/reference/messaging-api/#set-webhook-endpoint-url

        :param str webhook_endpoint: A valid webhook URL to be set.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: dict
        :return: Empty dict.
        r<    /v2/bot/channel/webhook/endpointrO   Nr  r?   webhook_endpointrQ   rP   rj   rA   rA   rB   set_webhook_endpoint^  s   z$AsyncLineBotApi.set_webhook_endpointzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_webhook_endpoint(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )aX  Get information on a webhook endpoint.

        https://developers.line.biz/en/reference/messaging-api/#get-webhook-endpoint-information

        :rtype: :py:class:`linebot.models.responses.GetWebhookResponse`
        :return: Webhook information, including `endpoint` for webhook
            URL and `active` for webhook usage status.
        r'  rq   N)rr   r   rt   rV   r   rA   rA   rB   get_webhook_endpoint{  s   z$AsyncLineBotApi.get_webhook_endpointzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).test_webhook_endpoint(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    sD   i }|dur||d< | j dt||dI dH }t|jI dH S )a  Checks if the configured webhook endpoint can receive a test webhook event.

        https://developers.line.biz/en/reference/messaging-api/#test-webhook-endpoint

        :param webhook_endpoint: (optional) Set this parameter to
            specific the webhook endpoint of the webhook. Default is the webhook
            endpoint that is already set to the channel.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.TestWebhookResponse`
        Nr<   z/v2/bot/channel/webhook/testrO   )rU   rV   rW   r   rt   r(  rA   rA   rB   test_webhook_endpoint  s   z%AsyncLineBotApi.test_webhook_endpointzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_followers(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.,  c                    D   |du r	d|in||d}| j d||dI dH }t|jI dH S )a  Get a list of users who added your LINE Official Account as a friend.

        https://developers.line.biz/en/reference/messaging-api/#get-follower-ids

        :param int limit: The maximum number of user IDs to retrieve in a single request.
            The default value is 300.
        :param str start: Get the next array of user IDs.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.UserIds`
        Nrn   rn   r   z/v2/bot/followers/idsr   )rr   r#   rt   rV   r?   rn   r   rQ   r   rj   rA   rA   rB   get_followers_ids  s   z!AsyncLineBotApi.get_followers_idszUse 'from linebot.v3.oauth import AsyncChannelAccessToken' and 'AsyncChannelAccessToken(...).issue_channel_token_by_jwt(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.6urn:ietf:params:oauth:client-assertion-type:jwt-bearerc                    s8   | j d|||dddi|dI dH }t|jI dH S )a  Issues a channel access token v2.1.

        https://developers.line.biz/en/reference/messaging-api/#issue-channel-access-token-v2-1

        :param str client_assertion: Client assertion.
        :param str grant_type: `client_credentials`
        :param str client_assertion_type: `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`.
        :param timeout: (optional) How long to wait for the server
        to send data before giving up, as a float,
        or a (connect timeout, read timeout) float tuple.
        Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.IssueChannelTokenResponseV2`
        z/oauth2/v2.1/token)r   client_assertion_typeclient_assertionr   r   r   N)rU   r'   rt   rV   )r?   r4  r   r3  rQ   rj   rA   rA   rB   issue_channel_access_token_v2_1  s   z/AsyncLineBotApi.issue_channel_access_token_v2_1zUse 'from linebot.v3.oauth import AsyncChannelAccessToken' and 'AsyncChannelAccessToken(...).revoke_channel_token_by_jwt(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s$   | j d|||d|dI dH  dS )aC  Revokes a channel access token v2.1.

        https://developers.line.biz/en/reference/messaging-api/#revoke-channel-access-token-v2-1

        :param str client_id: Client id.
        :param str client_secret: Channel secret.
        :param str access_token: Channel access token.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        z/oauth2/v2.1/revoke)r   r   r   rO   Nr   )r?   r   r   r   rQ   rA   rA   rB    revoke_channel_access_token_v2_1  s   z0AsyncLineBotApi.revoke_channel_access_token_v2_1c                    0   | j d||d|dI dH }t|jI dH S )a  Get issued channel access tokens v2.1.

        https://developers.line.biz/en/reference/messaging-api/#get-issued-channel-access-tokens-v2-1

        :param str client_assertion: Client assertion.
        :param str client_assertion_type: `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.ChannelAccessTokens`
        z/oauth2/v2.1/tokensr4  r3  r   N)rr   r&   rt   rV   r?   r4  r3  rQ   rj   rA   rA   rB   get_channel_access_tokens_v2_1	  s   z.AsyncLineBotApi.get_channel_access_tokens_v2_1zUse 'from linebot.v3.oauth import AsyncChannelAccessToken' and 'AsyncChannelAccessToken(...).verify_channel_token_by_jwt(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s.   | j dd|i|dI dH }t|jI dH S )a9  Validate channel access token v2.1.

        https://developers.line.biz/en/reference/messaging-api/#verfiy-channel-access-token-v2-1

        :param str access_token: Channel access token.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.VerifyChannelTokenResponseV2`
        z/oauth2/v2.1/verifyr   r   N)rr   r(   rt   rV   )r?   r   rQ   rj   rA   rA   rB    verify_channel_access_token_v2_10	  s   z0AsyncLineBotApi.verify_channel_access_token_v2_1zUse 'from linebot.v3.oauth import AsyncChannelAccessToken' and 'AsyncChannelAccessToken(...).gets_all_valid_channel_access_token_key_ids(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r7  )a  Get all valid channel access token key IDs v2.1.

        https://developers.line.biz/en/reference/messaging-api/#get-all-valid-channel-access-token-key-ids-v2-1

        :param str client_assertion: Client assertion.
        :param str client_assertion_type: `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`.
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:`linebot.models.responses.VerifyChannelTokenResponseV2`
        z/oauth2/v2.1/tokens/kidr8  r   N)rr   r)   rt   rV   r9  rA   rA   rB   get_channel_token_key_ids_v2_1I	  s   z.AsyncLineBotApi.get_channel_token_key_ids_v2_1zUse 'from linebot.v3.insight import AsyncInsight' and 'AsyncInsight(...).get_statistics_per_unit(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    s4   | j dj|||d|dI dH }t|jI dH S )a  Return statistics about how users interact with push and multicast messages.

        https://developers.line.biz/en/reference/partner-docs/#get-statistics-per-unit

        :param str custom_aggregation_unit: Name of aggregation unit specified when sending
            the message like `push_message(...)` and `multicast(...)`.
        :param str from_date: Start date of aggregation period.
            The format is `yyyyMMdd` (Timezone is UTC+9).
        :param str to_date: End date of aggregation period.
            The end date can be specified for up to 30 days later.
            The format is `yyyyMMdd` (Timezone is UTC+9).
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class:
            `linebot.models.responses.InsightMessageEventOfCustomAggregationUnitResponse`
        zw/v2/bot/insight/message/event/aggregation?customAggregationUnit={custom_aggregation_unit}&from={from_date}&to={to_date})custom_aggregation_unit	from_dateto_daterq   N)rr   rs   r*   rt   rV   )r?   r=  r>  r?  rQ   rj   rA   rA   rB   get_statistics_per_unitk	  s   

z'AsyncLineBotApi.get_statistics_per_unitzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_aggregation_unit_usage(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.c                    r   )a  Return the number of aggregation units used this month.

        https://developers.line.biz/en/reference/partner-docs/#get-number-of-units-used-this-month

        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class: `linebot.models.responses.AggregationInfoResponse`
        z /v2/bot/message/aggregation/inforq   N)rr   r+   rt   rV   r   rA   rA   rB   #get_number_of_units_used_this_month	  s   z3AsyncLineBotApi.get_number_of_units_used_this_monthzUse 'from linebot.v3.messaging import AsyncMessagingApi' and 'AsyncMessagingApi(...).get_aggregation_unit_name_list(...)' instead. See https://github.com/line/line-bot-sdk-python/blob/master/README.rst for more details.d   c                    r.  )a  Return the name list of units used this month for statistics aggregation.

        :param int limit: Maximum number of aggregation units you can get per request.
            If you don't specify a value, or if you specify a value greater than or equal to 100,
            the maximum is 100.
        :param str start: Get the next array of name list of units
        :param timeout: (optional) How long to wait for the server
            to send data before giving up, as a float,
            or a (connect timeout, read timeout) float tuple.
            Default is self.async_http_client.timeout
        :type timeout: float | tuple(float, float)
        :rtype: :py:class: `linebot.models.responses.AggregationNameListResponse`
        Nrn   r/  z /v2/bot/message/aggregation/listr   )rr   r,   rt   rV   r0  rA   rA   rB   &get_name_list_of_units_used_this_month	  s   z6AsyncLineBotApi.get_name_list_of_units_used_this_monthc                    V   |p| j | }|d u ri }|| j | jj||||dI d H }| |I d H  |S )N)r=   r   rQ   )r<   updater=   r>   ri   _AsyncLineBotApi__check_error)r?   pathr<   r   r=   rQ   urlrj   rA   rA   rB   rr   	     zAsyncLineBotApi._getc                    Z   |p| j | }|d u rddi}|| j | jj||||dI d H }| |I d H  |S Nr   zapplication/jsonr=   rP   rQ   )r<   rE  r=   r>   postrF  r?   rG  r<   rP   r=   rQ   rH  rj   rA   rA   rB   rU   	     zAsyncLineBotApi._postc                    rD  )NrL  )r<   rE  r=   r>   deleterF  rN  rA   rA   rB   r   	  rI  zAsyncLineBotApi._deletec                    rJ  rK  )r<   rE  r=   r>   putrF  rN  rA   rA   rB   r  	  rO  zAsyncLineBotApi._putc              	      sX   d| j   krdk rd S  t| j t| j | jd| jdt| jI d H d)N   r-  rf   zX-Line-Accepted-Request-Id)status_coder=   rh   accepted_request_iderror)	rS  r   dictr=   itemsri   r   rt   rV   )rj   rA   rA   rB   __check_error	  s   

zAsyncLineBotApi.__check_error)FN)NFNN)NFN)NNNNFN)N)NN)r   N)r   NNr  NNN)r  N)r-  NN)r   r2  N)r2  N)rB  NN)NNNN)]__name__
__module____qualname____doc__DEFAULT_API_ENDPOINTDEFAULT_API_DATA_ENDPOINTrC   r3   r2   rZ   rd   re   rk   ro   rv   ry   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r!  r%  r&  r*  r+  r,  r1  r5  r6  r:  r;  r<  r@  rA  rC  rr   rU   r   r  staticmethodrF  rA   rA   rA   rB   r9   U   s   
+	5	:(9""""$!6$ "$r9   ):r\  rV   	__about__r   
exceptionsr   modelsr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   models.responsesr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   deprecationsr2   r3   objectr9   rA   rA   rA   rB   <module>   s   |H