code: def mock_get_metadata(
      requests_mock: Mocker,
      url: str,
      search_task_id: str,
      metadata_columns: Optional[List[Dict]] = None,
      search_keys: Optional[List[str]] = None,
  ):
      if metadata_columns is None:
          metadata_columns = [
              {
                  "index": 0,
                  "name": "systemrecordid_473310000",
                  "originalName": "SystemRecordId_473310000",
                  "dataType": "STRING",
                  "meaningType": "FEATURE",
              },
              {
                  "index": 1,
                  "name": "phone_num",
                  "originalName": "phone_num",
                  "dataType": "STRING",
                  "meaningType": "MSISDN",
              },
              {
                  "index": 2,
                  "name": "rep_date",
                  "originalName": "rep_date",
                  "dataType": "INT",
                  "meaningType": "DATE",
              },
              {
                  "index": 3,
                  "name": "target",
                  "originalName": "target",
                  "dataType": "INT",
                  "meaningType": "TARGET",
              },
              {
                  "index": 4,
                  "name": "system_record_id",
                  "originalName": "system_record_id",
                  "dataType": "INT",
                  "meaningType": "SYSTEM_RECORD_ID",
              },
          ]
      if search_keys is None:
          search_keys = ["phone_num", "rep_date"]
      combined_search_keys = []
      for L in range(1, len(search_keys) + 1):
          for subset in itertools.combinations(search_keys, L):
              combined_search_keys.append(subset)
      requests_mock.get(
          url + f"/public/api/v2/search/{search_task_id}/metadata",
          json={
              "fileUploadId": "123",
              "fileMetadataId": "123",
              "name": "test",
              "description": "",
              "columns": metadata_columns,
              "searchKeys": combined_search_keys,
              "hierarchicalGroupKeys": [],
              "hierarchicalSubgroupKeys": [],
              "rowsCount": 15555,
          },
      )
  
imports: import itertools
  import tempfile
  from random import randint
  from typing import Dict, List, Optional, Union
  import pandas
  from requests_mock import Mocker
  from upgini.metadata import ProviderTaskMetadataV2
label_desc: Use image node_id 5 for calling a global function with example usage: mock_get_metadata(requests_mock, url, search_task_id, metadata_columns, search_keys) without return types