docs: def list(cls, state=None, page=None, per_page=None):
          """
          List existing clusters present in your account.
  
          Kwargs:
              `state`: list only those clusters which are in this state
  
          Returns:
              List of clusters satisfying the given criteria
          """
          conn = Qubole.agent()
          params = {}
          if page:
              params['page'] = page
          if per_page:
              params['per_page'] = per_page
          if (params.get('page') or params.get('per_page')) and Qubole.version == 'v1.2':
              log.warn("Pagination is not supported with API v1.2. Fetching all clusters.")
          params = None if not params else params
          cluster_list = conn.get(cls.rest_entity_path, params=params)
          if state is None:
              return cluster_list
          elif state is not None:
              result = []
              if Qubole.version == 'v1.2':
                  for cluster in cluster_list:
                      if state.lower() == cluster['cluster']['state'].lower():
                          result.append(cluster)
              elif Qubole.version == 'v1.3':
                  cluster_list = cluster_list['clusters']
                  for cluster in cluster_list:
                      if state.lower() == cluster['state'].lower():
                          result.append(cluster)
              return result