code: def bot_framework_input(
      mock_requests: Mock, rsa_private_key: RSAPrivateKey
  ):
      jwk = json.loads(
          RSAAlgorithm.to_jwk(rsa_private_key.public_key())
      )
      jwk["kid"] = "key_id"
  
      openid_config_mock_response = mock.Mock()
      openid_config_mock_response.raise_for_status = mock.Mock()
      openid_config_mock_response.json.return_value = (
          MS_OPENID_CONFIG_RESPONSE
      )
  
      openid_keys_mock_response = mock.Mock()
      openid_keys_mock_response.raise_for_status = mock.Mock()
      openid_keys_mock_response.json.return_value = {"keys": [jwk]}
  
      mock_requests.side_effect = [
          openid_config_mock_response,
          openid_keys_mock_response,
      ]
  
      return BotFrameworkInput("app_id", "app_password")
  
imports: import json
  import time
  from http import HTTPStatus
  from unittest import mock
  from unittest.mock import Mock
  import freezegun
  import jwt
  import pytest
  from _pytest.logging import LogCaptureFixture
  from cryptography.hazmat.primitives.asymmetric import rsa
  from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey
  from jwt.algorithms import RSAAlgorithm
  from rasa.core.channels import BotFrameworkInput
label_desc: Use image node_id 2 for calling a global function with example usage: bot_framework_input(mock_requests, rsa_private_key) and returns: BotFrameworkInput