async def on_teams_messaging_extension_submit_action_dispatch(
            self, turn_context: TurnContext, action: MessagingExtensionAction
    ) -> MessagingExtensionActionResponse:
        """
        Invoked when a messaging extension submit action dispatch activity is received from the connector.

        :param turn_context: A context object for this turn.
        :param action: The messaging extension action.

        :returns: The Messaging Extension Action Response for the action.
        """
        if not action.bot_message_preview_action:
            return await self.on_teams_messaging_extension_submit_action(
                turn_context, action)

        if action.bot_message_preview_action == "edit":
            return await self.on_teams_messaging_extension_bot_message_preview_edit(
                turn_context, action)

        if action.bot_message_preview_action == "send":
            return await self.on_teams_messaging_extension_bot_message_preview_send(
                turn_context, action)

        raise _InvokeResponseException(
            status_code=HTTPStatus.BAD_REQUEST,
            body=
            f"{action.bot_message_preview_action} is not a supported BotMessagePreviewAction",
        )
    async def on_teams_file_consent(
        self,
        turn_context: TurnContext,
        file_consent_card_response: FileConsentCardResponse,
    ) -> InvokeResponse:
        """
        Invoked when a file consent card activity is received from the connector.

        :param turn_context: A context object for this turn.
        :param file_consent_card_response: The response representing the value of the invoke
        activity sent when the user acts on a file consent card.

        :returns: An InvokeResponse depending on the action of the file consent card.
        """
        if file_consent_card_response.action == "accept":
            await self.on_teams_file_consent_accept(
                turn_context, file_consent_card_response)
            return self._create_invoke_response()

        if file_consent_card_response.action == "decline":
            await self.on_teams_file_consent_decline(
                turn_context, file_consent_card_response)
            return self._create_invoke_response()

        raise _InvokeResponseException(
            HTTPStatus.BAD_REQUEST,
            f"{file_consent_card_response.action} is not a supported Action.",
        )
    async def on_teams_signin_verify_state(self, turn_context: TurnContext):
        """
        Invoked when a signIn verify state activity is received from the connector.

        :param turn_context: A context object for this turn.

        :returns: A task that represents the work queued to execute.
        """
        raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
    async def on_teams_card_action_invoke(
            self, turn_context: TurnContext) -> InvokeResponse:
        """
        Invoked when an card action invoke activity is received from the connector.

        :param turn_context: A context object for this turn.

        :returns: An InvokeResponse that represents the work queued to execute.
        """
        raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
    async def on_teams_tab_submit(  # pylint: disable=unused-argument
            self, turn_context: TurnContext, tab_submit: TabSubmit):
        """
        Override this in a derived class to provide logic for when a tab is submitted.

        :param turn_context: A context object for this turn.
        :param tab_submit: The tab submit invoke request value payload.

        :returns: A Tab Response for the request.
        """
        raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
    async def on_teams_messaging_extension_card_button_clicked(  # pylint: disable=unused-argument
            self, turn_context: TurnContext, card_data):
        """
        Override this in a derived class to provide logic for when a card button is clicked in a messaging extension.

        :param turn_context: A context object for this turn.
        :param card_data: Object representing the card data.

        :returns: A task that represents the work queued to execute.
        """
        raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
    async def on_teams_messaging_extension_configuration_setting(  # pylint: disable=unused-argument
            self, turn_context: TurnContext, settings):
        """
        Override this in a derived class to provide logic for when a configuration is set for a messaging extension.

        :param turn_context: A context object for this turn.
        :param settings: Object representing the configuration settings.

        :returns: A task that represents the work queued to execute.
        """
        raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
    async def on_teams_task_module_fetch(  # pylint: disable=unused-argument
            self, turn_context: TurnContext,
            task_module_request: TaskModuleRequest) -> TaskModuleResponse:
        """
        Override this in a derived class to provide logic for when a task module is fetched.

        :param turn_context: A context object for this turn.
        :param task_module_request: The task module invoke request value payload.

        :returns: A Task Module Response for the request.
        """
        raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
    async def on_teams_messaging_extension_configuration_query_settings_url(  # pylint: disable=unused-argument
            self, turn_context: TurnContext,
            query: MessagingExtensionQuery) -> MessagingExtensionResponse:
        """
        Invoked when a messaging extension configuration query setting url activity is received from the connector.

        :param turn_context: A context object for this turn.
        :param query: The Messaging extension query.

        :returns: The Messaging Extension Response for the query.
        """
        raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
    async def on_teams_messaging_extension_fetch_task(  # pylint: disable=unused-argument
            self, turn_context: TurnContext, action: MessagingExtensionAction
    ) -> MessagingExtensionActionResponse:
        """
        Invoked when a Messaging Extension Fetch activity is received from the connector.

        :param turn_context: A context object for this turn.
        :param action: The messaging extension action.

        :returns: The Messaging Extension Action Response for the action.
        """
        raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
    async def on_teams_o365_connector_card_action(  # pylint: disable=unused-argument
            self, turn_context: TurnContext,
            query: O365ConnectorCardActionQuery):
        """
        Invoked when a O365 Connector Card Action activity is received from the connector.

        :param turn_context: A context object for this turn.
        :param query: The O365 connector card HttpPOST invoke query.

        :returns: A task that represents the work queued to execute.
        """
        raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
    async def on_teams_app_based_link_query(  # pylint: disable=unused-argument
            self, turn_context: TurnContext,
            query: AppBasedLinkQuery) -> MessagingExtensionResponse:
        """
        Invoked when an app based link query activity is received from the connector.

        :param turn_context: A context object for this turn.
        :param query: The invoke request body type for app-based link query.

        :returns: The Messaging Extension Response for the query.
        """
        raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
    async def on_teams_file_consent_decline(  # pylint: disable=unused-argument
        self,
        turn_context: TurnContext,
        file_consent_card_response: FileConsentCardResponse,
    ):
        """
        Invoked when a file consent card is declined by the user.

        :param turn_context: A context object for this turn.
        :param file_consent_card_response: The response representing the value of the invoke
        activity sent when the user declines a file consent card.

        :returns: A task that represents the work queued to execute.
        """
        raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
    async def on_teams_file_consent(
        self,
        turn_context: TurnContext,
        file_consent_card_response: FileConsentCardResponse,
    ) -> InvokeResponse:
        if file_consent_card_response.action == "accept":
            await self.on_teams_file_consent_accept(
                turn_context, file_consent_card_response)
            return self._create_invoke_response()

        if file_consent_card_response.action == "decline":
            await self.on_teams_file_consent_decline(
                turn_context, file_consent_card_response)
            return self._create_invoke_response()

        raise _InvokeResponseException(
            HTTPStatus.BAD_REQUEST,
            f"{file_consent_card_response.action} is not a supported Action.",
        )
    async def on_teams_messaging_extension_submit_action_dispatch(
            self, turn_context: TurnContext, action: MessagingExtensionAction
    ) -> MessagingExtensionActionResponse:
        if not action.bot_message_preview_action:
            return await self.on_teams_messaging_extension_submit_action(
                turn_context, action)

        if action.bot_message_preview_action == "edit":
            return await self.on_teams_messaging_extension_bot_message_preview_edit(
                turn_context, action)

        if action.bot_message_preview_action == "send":
            return await self.on_teams_messaging_extension_bot_message_preview_send(
                turn_context, action)

        raise _InvokeResponseException(
            status_code=HTTPStatus.BAD_REQUEST,
            body=
            f"{action.bot_message_preview_action} is not a supported BotMessagePreviewAction",
        )
 async def on_teams_task_module_submit(  # pylint: disable=unused-argument
         self, turn_context: TurnContext,
         task_module_request: TaskModuleRequest) -> TaskModuleResponse:
     raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
 async def on_teams_messaging_extension_card_button_clicked(  # pylint: disable=unused-argument
         self, turn_context: TurnContext, card_data):
     raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
 async def on_teams_messaging_extension_configuration_setting(  # pylint: disable=unused-argument
         self, turn_context: TurnContext, settings):
     raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
 async def on_teams_messaging_extension_configuration_query_settings_url(  # pylint: disable=unused-argument
         self, turn_context: TurnContext,
         query: MessagingExtensionQuery) -> MessagingExtensionResponse:
     raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
 async def on_teams_messaging_extension_fetch_task(  # pylint: disable=unused-argument
         self, turn_context: TurnContext, action: MessagingExtensionAction
 ) -> MessagingExtensionActionResponse:
     raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
 async def on_teams_app_based_link_query(  # pylint: disable=unused-argument
         self, turn_context: TurnContext,
         query: AppBasedLinkQuery) -> MessagingExtensionResponse:
     raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
 async def on_teams_o365_connector_card_action(  # pylint: disable=unused-argument
         self, turn_context: TurnContext,
         query: O365ConnectorCardActionQuery):
     raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
 async def on_teams_file_consent_decline(  # pylint: disable=unused-argument
     self,
     turn_context: TurnContext,
     file_consent_card_response: FileConsentCardResponse,
 ):
     raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
 async def on_teams_card_action_invoke(
         self, turn_context: TurnContext) -> InvokeResponse:
     raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)
 async def on_teams_signin_token_exchange(self, turn_context: TurnContext):
     raise _InvokeResponseException(status_code=HTTPStatus.NOT_IMPLEMENTED)