code: def _create_service_api(credentials, service_name, version, developer_key=None,
                          cache_discovery=False, http=None):
      
      # The default logging of the discovery obj is very noisy in recent versions.
      # Lower the default logging level of just this module to WARNING unless
      # debug is enabled.
      if log.getEffectiveLevel() > logging.DEBUG:
          logging.getLogger(discovery.__name__).setLevel(logging.WARNING)
  
      discovery_kwargs = {
          'serviceName': service_name,
          'version': version,
          'developerKey': developer_key,
          'cache_discovery': cache_discovery,
      }
  
      if http:
          discovery_kwargs['http'] = http
      else:
          discovery_kwargs['credentials'] = credentials
  
      return discovery.build(**discovery_kwargs)
docs: Builds and returns a cloud API service object.
  
      Args:
          credentials (OAuth2Credentials): Credentials that will be used to
              authenticate the API calls.
          service_name (str): The name of the API.
          version (str): The version of the API to use.
          developer_key (str): The api key to use to determine the project
              associated with the API call, most API services do not require
              this to be set.
          cache_discovery (bool): Whether or not to cache the discovery doc.
  
      Returns:
          object: A Resource object with methods for interacting with the service.