<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def api_class(self, resource_name=None, path=None, audiences=None, scopes=None, allowed_client_ids=None, auth_level=None, api_key_required=None):
 """Get a decorator for a class that implements an API. This can be used for single-class or multi-class implementations. It's used implicitly in simple single-class APIs that only use @api directly. Args: resource_name: string, Resource name for the class this decorates. (Default: None) path: string, Base path prepended to any method paths in the class this decorates. (Default: None) audiences: list of strings, Acceptable audiences for authentication. (Default: None) scopes: list of strings, Acceptable scopes for authentication. (Default: None) allowed_client_ids: list of strings, Acceptable client IDs for auth. (Default: None) auth_level: enum from AUTH_LEVEL, Frontend authentication level. (Default: None) api_key_required: bool, Whether a key is required to call into this API. (Default: None) Returns: A decorator function to decorate a class that implements an API. """

    if auth_level is not None:
      _logger.warn(_AUTH_LEVEL_WARNING)

    def apiserving_api_decorator(api_class):
      """Decorator for ProtoRPC class that configures Google's API server.

      Args:
        api_class: remote.Service class, ProtoRPC service class being wrapped.

      Returns:
        Same class with API attributes assigned in api_info.
      """
      self.__classes.append(api_class)
      api_class.api_info = _ApiInfo(
          self.__common_info, resource_name=resource_name,
          path=path, audiences=audiences, scopes=scopes,
          allowed_client_ids=allowed_client_ids, auth_level=auth_level,
          api_key_required=api_key_required)
      return api_class

    return apiserving_api_decorator