code: def _get_action_from_method_and_request_uri(self, method, request_uri):
          
  
          # service response class should have 'SERVICE_NAME' class member,
          # if you want to get action from method and url
          if not hasattr(self, 'SERVICE_NAME'):
              return None
          service = self.SERVICE_NAME
          conn = boto3.client(service, region_name=self.region)
  
          # make cache if it does not exist yet
          if not hasattr(self, 'method_urls'):
              self.method_urls = defaultdict(lambda: defaultdict(str))
              op_names = conn._service_model.operation_names
              for op_name in op_names:
                  op_model = conn._service_model.operation_model(op_name)
                  _method = op_model.http['method']
                  uri_regexp = self.uri_to_regexp(op_model.http['requestUri'])
                  self.method_urls[_method][uri_regexp] = op_model.name
          regexp_and_names = self.method_urls[method]
          for regexp, name in regexp_and_names.items():
              match = re.match(regexp, request_uri)
              self.uri_match = match
              if match:
                  return name
          return None
docs: basically used for `rest-json` APIs
          You can refer to example from link below
          https://github.com/boto/botocore/blob/develop/botocore/data/iot/2015-05-28/service-2.json