code: def list_instances(self, filter_="", page_size=None, page_token=None):
          
          metadata = _metadata_with_prefix(self.project_name)
          path = "projects/%s" % (self.project,)
          page_iter = self.instance_admin_api.list_instances(
              path, page_size=page_size, metadata=metadata
          )
          page_iter.item_to_value = self._item_to_instance
          page_iter.next_page_token = page_token
          return page_iter
docs: List instances for the client's project.
  
          See
          https://cloud.google.com/spanner/reference/rpc/google.spanner.admin.database.v1#google.spanner.admin.database.v1.InstanceAdmin.ListInstances
  
          :type filter_: string
          :param filter_: (Optional) Filter to select instances listed.  See
                          the ``ListInstancesRequest`` docs above for examples.
  
          :type page_size: int
          :param page_size:
              Optional. The maximum number of instances in each page of results
              from this request. Non-positive values are ignored. Defaults
              to a sensible value set by the API.
  
          :type page_token: str
          :param page_token:
              Optional. If present, return the next batch of instances, using
              the value, which must correspond to the ``nextPageToken`` value
              returned in the previous response.  Deprecated: use the ``pages``
              property of the returned iterator instead of manually passing
              the token.
  
          :rtype: :class:`~google.api_core.page_iterator.Iterator`
          :returns:
              Iterator of :class:`~google.cloud.spanner_v1.instance.Instance`
              resources within the client's project.