def list_tables(self, max_results=None, page_token=None): """List tables for the project associated with this client. See: https://cloud.google.com/bigquery/docs/reference/v2/tables/list :type max_results: int :param max_results: (Optional) Maximum number of tables to return. If not passed, defaults to a value set by the API. :type page_token: str :param page_token: (Optional) Opaque marker for the next "page" of datasets. If not passed, the API will return the first page of datasets. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~google.cloud.bigquery.table.Table` contained within the current dataset. """ path = '/projects/%s/datasets/%s/tables' % (self.project, self.name) result = HTTPIterator(client=self._client, path=path, item_to_value=_item_to_table, items_key='tables', page_token=page_token, max_results=max_results) result.dataset = self return result
def list_tables(self, max_results=None, page_token=None): """List tables for the project associated with this client. See https://cloud.google.com/bigquery/docs/reference/rest/v2/tables/list :type max_results: int :param max_results: (Optional) Maximum number of tables to return. If not passed, defaults to a value set by the API. :type page_token: str :param page_token: (Optional) Opaque marker for the next "page" of datasets. If not passed, the API will return the first page of datasets. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~google.cloud.bigquery.table.Table` contained within the current dataset. """ path = '/projects/%s/datasets/%s/tables' % (self.project, self.name) result = HTTPIterator(client=self._client, path=path, item_to_value=_item_to_table, items_key='tables', page_token=page_token, max_results=max_results) result.dataset = self return result
def list_variables(self, page_size=None, page_token=None, client=None): """API call: list variables for this config. This only lists variable names, not the values. See: https://cloud.google.com/deployment-manager/runtime-configurator/reference/rest/v1beta1/projects.configs.variables/list :type page_size: int :param page_size: (Optional) Maximum number of variables to return per page. :type page_token: str :param page_token: opaque marker for the next "page" of variables. If not passed, will return the first page of variables. :type client: :class:`~google.cloud.runtimeconfig.client.Client` :param client: (Optional) The client to use. If not passed, falls back to the ``client`` stored on the current config. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~google.cloud.runtimeconfig.variable.Variable` belonging to this project. """ path = '%s/variables' % (self.path,) iterator = HTTPIterator( client=self._require_client(client), path=path, item_to_value=_item_to_variable, items_key='variables', page_token=page_token, max_results=page_size) iterator._MAX_RESULTS = 'pageSize' iterator.config = self return iterator
def topic_list_subscriptions(self, topic, page_size=None, page_token=None): """API call: list subscriptions bound to a topic See https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics.subscriptions/list :type topic: :class:`~google.cloud.pubsub.topic.Topic` :param topic: The topic that owns the subscriptions. :type page_size: int :param page_size: maximum number of subscriptions to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of topics. If not passed, the API will return the first page of topics. :rtype: list of strings :returns: fully-qualified names of subscriptions for the supplied topic. """ extra_params = {} if page_size is not None: extra_params['pageSize'] = page_size path = '/%s/subscriptions' % (topic.full_name, ) iterator = HTTPIterator(client=self._client, path=path, item_to_value=_item_to_subscription_for_topic, items_key='subscriptions', page_token=page_token, extra_params=extra_params) iterator.topic = topic return iterator
def list_changes(self, max_results=None, page_token=None, client=None): """List change sets for this zone. See: https://cloud.google.com/dns/api/v1/resourceRecordSets/list :type max_results: int :param max_results: maximum number of zones to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of zones. If not passed, the API will return the first page of zones. :type client: :class:`google.cloud.dns.client.Client` :param client: (Optional) the client to use. If not passed, falls back to the ``client`` stored on the current zone. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~.changes.Changes` belonging to this zone. """ client = self._require_client(client) path = '/projects/%s/managedZones/%s/changes' % ( self.project, self.name) iterator = HTTPIterator( client=client, path=path, item_to_value=_item_to_changes, items_key='changes', page_token=page_token, max_results=max_results) iterator.zone = self return iterator
def list_changes(self, max_results=None, page_token=None, client=None): """List change sets for this zone. See https://cloud.google.com/dns/api/v1/resourceRecordSets/list :type max_results: int :param max_results: maximum number of zones to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of zones. If not passed, the API will return the first page of zones. :type client: :class:`google.cloud.dns.client.Client` :param client: (Optional) the client to use. If not passed, falls back to the ``client`` stored on the current zone. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~.changes.Changes` belonging to this zone. """ client = self._require_client(client) path = '/projects/%s/managedZones/%s/changes' % (self.project, self.name) iterator = HTTPIterator(client=client, path=path, item_to_value=_item_to_changes, items_key='changes', page_token=page_token, max_results=max_results) iterator.zone = self return iterator
def topic_list_subscriptions(self, topic, page_size=None, page_token=None): """API call: list subscriptions bound to a topic See: https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics.subscriptions/list :type topic: :class:`~google.cloud.pubsub.topic.Topic` :param topic: The topic that owns the subscriptions. :type page_size: int :param page_size: maximum number of subscriptions to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of topics. If not passed, the API will return the first page of topics. :rtype: list of strings :returns: fully-qualified names of subscriptions for the supplied topic. """ extra_params = {} if page_size is not None: extra_params['pageSize'] = page_size path = '/%s/subscriptions' % (topic.full_name,) iterator = HTTPIterator( client=self._client, path=path, item_to_value=_item_to_subscription_for_topic, items_key='subscriptions', page_token=page_token, extra_params=extra_params) iterator.topic = topic return iterator
def list_entries(self, projects, filter_=None, order_by=None, page_size=None, page_token=None): """Return a page of log entry resources. See: https://cloud.google.com/logging/docs/api/reference/rest/v2/entries/list :type projects: list of strings :param projects: project IDs to include. If not passed, defaults to the project bound to the client. :type filter_: str :param filter_: a filter expression. See: https://cloud.google.com/logging/docs/view/advanced_filters :type order_by: str :param order_by: One of :data:`~google.cloud.logging.ASCENDING` or :data:`~google.cloud.logging.DESCENDING`. :type page_size: int :param page_size: maximum number of entries to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of entries. If not passed, the API will return the first page of entries. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~google.cloud.logging.entries._BaseEntry` accessible to the current API. """ extra_params = {'projectIds': projects} if filter_ is not None: extra_params['filter'] = filter_ if order_by is not None: extra_params['orderBy'] = order_by if page_size is not None: extra_params['pageSize'] = page_size path = '/entries:list' # We attach a mutable loggers dictionary so that as Logger # objects are created by entry_from_resource, they can be # re-used by other log entries from the same logger. loggers = {} item_to_value = functools.partial( _item_to_entry, loggers=loggers) iterator = HTTPIterator( client=self._client, path=path, item_to_value=item_to_value, items_key='entries', page_token=page_token, extra_params=extra_params) # This method uses POST to make a read-only request. iterator._HTTP_METHOD = 'POST' return iterator
def list_entries(self, projects, filter_=None, order_by=None, page_size=None, page_token=None): """Return a page of log entry resources. See https://cloud.google.com/logging/docs/reference/v2/rest/v2/entries/list :type projects: list of strings :param projects: project IDs to include. If not passed, defaults to the project bound to the client. :type filter_: str :param filter_: a filter expression. See https://cloud.google.com/logging/docs/view/advanced_filters :type order_by: str :param order_by: One of :data:`~google.cloud.logging.ASCENDING` or :data:`~google.cloud.logging.DESCENDING`. :type page_size: int :param page_size: maximum number of entries to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of entries. If not passed, the API will return the first page of entries. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~google.cloud.logging.entries._BaseEntry` accessible to the current API. """ extra_params = {'projectIds': projects} if filter_ is not None: extra_params['filter'] = filter_ if order_by is not None: extra_params['orderBy'] = order_by if page_size is not None: extra_params['pageSize'] = page_size path = '/entries:list' # We attach a mutable loggers dictionary so that as Logger # objects are created by entry_from_resource, they can be # re-used by other log entries from the same logger. loggers = {} item_to_value = functools.partial( _item_to_entry, loggers=loggers) iterator = HTTPIterator( client=self._client, path=path, item_to_value=item_to_value, items_key='entries', page_token=page_token, extra_params=extra_params) # This method uses POST to make a read-only request. iterator._HTTP_METHOD = 'POST' return iterator
def fetch_data(self, max_results=None, page_token=None, client=None): """API call: fetch the table data via a GET request See https://cloud.google.com/bigquery/docs/reference/rest/v2/tabledata/list .. note:: This method assumes that its instance's ``schema`` attribute is up-to-date with the schema as defined on the back-end: if the two schemas are not identical, the values returned may be incomplete. To ensure that the local copy of the schema is up-to-date, call :meth:`reload`. :type max_results: int :param max_results: (Optional) Maximum number of rows to return. :type page_token: str :param page_token: (Optional) Token representing a cursor into the table's rows. :type client: :class:`~google.cloud.bigquery.client.Client` :param client: (Optional) The client to use. If not passed, falls back to the ``client`` stored on the current dataset. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of row data :class:`tuple`s. During each page, the iterator will have the ``total_rows`` attribute set, which counts the total number of rows **in the table** (this is distinct from the total number of rows in the current page: ``iterator.page.num_items``). """ if len(self._schema) == 0: raise ValueError(_TABLE_HAS_NO_SCHEMA) client = self._require_client(client) path = '%s/data' % (self.path, ) iterator = HTTPIterator(client=client, path=path, item_to_value=_item_to_row, items_key='rows', page_token=page_token, max_results=max_results, page_start=_rows_page_start) iterator.schema = self._schema # Over-ride the key used to retrieve the next page token. iterator._NEXT_TOKEN = 'pageToken' return iterator
def list_projects(self, max_results=None, page_token=None): """List projects for the project associated with this client. See: https://cloud.google.com/bigquery/docs/reference/v2/projects/list :type max_results: int :param max_results: maximum number of projects to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of projects. If not passed, the API will return the first page of projects. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~google.cloud.bigquery.client.Project` accessible to the current client. """ return HTTPIterator(client=self, path='/projects', item_to_value=_item_to_project, items_key='projects', page_token=page_token, max_results=max_results)
def list_zones(self, max_results=None, page_token=None): """List zones for the project associated with this client. See: https://cloud.google.com/dns/api/v1/managedZones/list :type max_results: int :param max_results: maximum number of zones to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of zones. If not passed, the API will return the first page of zones. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~google.cloud.dns.zone.ManagedZone` belonging to this project. """ path = '/projects/%s/managedZones' % (self.project, ) return HTTPIterator(client=self, path=path, item_to_value=_item_to_zone, items_key='managedZones', page_token=page_token, max_results=max_results)
def list_metrics(self, project, page_size=None, page_token=None): """List metrics for the project associated with this client. See: https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.metrics/list :type project: str :param project: ID of the project whose metrics are to be listed. :type page_size: int :param page_size: maximum number of metrics to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of metrics. If not passed, the API will return the first page of metrics. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~google.cloud.logging.metric.Metric` accessible to the current API. """ extra_params = {} if page_size is not None: extra_params['pageSize'] = page_size path = '/projects/%s/metrics' % (project, ) return HTTPIterator(client=self._client, path=path, item_to_value=_item_to_metric, items_key='metrics', page_token=page_token, extra_params=extra_params)
def list_topics(self, project, page_size=None, page_token=None): """API call: list topics for a given project See https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics/list :type project: str :param project: project ID :type page_size: int :param page_size: maximum number of topics to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of topics. If not passed, the API will return the first page of topics. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~google.cloud.pubsub.topic.Topic` accessible to the current client. """ extra_params = {} if page_size is not None: extra_params['pageSize'] = page_size path = '/projects/%s/topics' % (project, ) return HTTPIterator(client=self._client, path=path, item_to_value=_item_to_topic, items_key='topics', page_token=page_token, extra_params=extra_params)
def list_datasets(self, include_all=False, max_results=None, page_token=None): """List datasets for the project associated with this client. See: https://cloud.google.com/bigquery/docs/reference/v2/datasets/list :type include_all: bool :param include_all: True if results include hidden datasets. :type max_results: int :param max_results: maximum number of datasets to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of datasets. If not passed, the API will return the first page of datasets. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~google.cloud.bigquery.dataset.Dataset`. accessible to the current client. """ extra_params = {} if include_all: extra_params['all'] = True path = '/projects/%s/datasets' % (self.project,) return HTTPIterator( client=self, path=path, item_to_value=_item_to_dataset, items_key='datasets', page_token=page_token, max_results=max_results, extra_params=extra_params)
def list_buckets(self, max_results=None, page_token=None, prefix=None, projection='noAcl', fields=None): """Get all buckets in the project associated to the client. This will not populate the list of blobs available in each bucket. >>> for bucket in client.list_buckets(): ... print(bucket) This implements "storage.buckets.list". :type max_results: int :param max_results: Optional. Maximum number of buckets to return. :type page_token: str :param page_token: Optional. Opaque marker for the next "page" of buckets. If not passed, will return the first page of buckets. :type prefix: str :param prefix: Optional. Filter results to buckets whose names begin with this prefix. :type projection: str :param projection: (Optional) Specifies the set of properties to return. If used, must be 'full' or 'noAcl'. Defaults to 'noAcl'. :type fields: str :param fields: (Optional) Selector specifying which fields to include in a partial response. Must be a list of fields. For example to get a partial response with just the next page token and the language of each bucket returned: 'items/id,nextPageToken' :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of all :class:`~google.cloud.storage.bucket.Bucket` belonging to this project. """ extra_params = {'project': self.project} if prefix is not None: extra_params['prefix'] = prefix extra_params['projection'] = projection if fields is not None: extra_params['fields'] = fields return HTTPIterator(client=self, path='/b', item_to_value=_item_to_bucket, page_token=page_token, max_results=max_results, extra_params=extra_params)
def fetch_data(self, max_results=None, page_token=None, client=None): """API call: fetch the table data via a GET request See: https://cloud.google.com/bigquery/docs/reference/v2/tabledata/list .. note:: This method assumes that its instance's ``schema`` attribute is up-to-date with the schema as defined on the back-end: if the two schemas are not identical, the values returned may be incomplete. To ensure that the local copy of the schema is up-to-date, call :meth:`reload`. :type max_results: int :param max_results: (Optional) Maximum number of rows to return. :type page_token: str :param page_token: (Optional) Token representing a cursor into the table's rows. :type client: :class:`~google.cloud.bigquery.client.Client` :param client: (Optional) The client to use. If not passed, falls back to the ``client`` stored on the current dataset. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of row data :class:`tuple`s. During each page, the iterator will have the ``total_rows`` attribute set, which counts the total number of rows **in the table** (this is distinct from the total number of rows in the current page: ``iterator.page.num_items``). """ client = self._require_client(client) path = '%s/data' % (self.path,) iterator = HTTPIterator(client=client, path=path, item_to_value=_item_to_row, items_key='rows', page_token=page_token, max_results=max_results, page_start=_rows_page_start) iterator.schema = self._schema # Over-ride the key used to retrieve the next page token. iterator._NEXT_TOKEN = 'pageToken' return iterator
def list_jobs(self, filter_=None, page_token=None, page_size=None): extra_params = {} if filter_ is not None: extra_params['filter'] = filter_ if page_size is not None: extra_params['pageSize'] = page_size path = '/projects/{project}/jobs'.format(project=self.project) return HTTPIterator( client=self, path=path, item_to_value=_item_to_job, items_key='jobs', page_token=page_token, extra_params=extra_params)
def list_jobs(self, max_results=None, page_token=None, all_users=None, state_filter=None): """List jobs for the project associated with this client. See: https://cloud.google.com/bigquery/docs/reference/v2/jobs/list :type max_results: int :param max_results: maximum number of jobs to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of jobs. If not passed, the API will return the first page of jobs. :type all_users: bool :param all_users: if true, include jobs owned by all users in the project. :type state_filter: str :param state_filter: if passed, include only jobs matching the given state. One of * ``"done"`` * ``"pending"`` * ``"running"`` :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterable of job instances. """ extra_params = {'projection': 'full'} if all_users is not None: extra_params['allUsers'] = all_users if state_filter is not None: extra_params['stateFilter'] = state_filter path = '/projects/%s/jobs' % (self.project, ) return HTTPIterator(client=self, path=path, item_to_value=_item_to_job, items_key='jobs', page_token=page_token, max_results=max_results, extra_params=extra_params)
def list_variables(self, page_size=None, page_token=None, client=None): """API call: list variables for this config. This only lists variable names, not the values. See https://cloud.google.com/deployment-manager/runtime-configurator/reference/rest/v1beta1/projects.configs.variables/list :type page_size: int :param page_size: (Optional) Maximum number of variables to return per page. :type page_token: str :param page_token: opaque marker for the next "page" of variables. If not passed, will return the first page of variables. :type client: :class:`~google.cloud.runtimeconfig.client.Client` :param client: (Optional) The client to use. If not passed, falls back to the ``client`` stored on the current config. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~google.cloud.runtimeconfig.variable.Variable` belonging to this project. """ path = '%s/variables' % (self.path, ) iterator = HTTPIterator(client=self._require_client(client), path=path, item_to_value=_item_to_variable, items_key='variables', page_token=page_token, max_results=page_size) iterator._MAX_RESULTS = 'pageSize' iterator.config = self return iterator
def list_subscriptions(self, project, page_size=None, page_token=None): """API call: list subscriptions for a given project See https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/list :type project: str :param project: project ID :type page_size: int :param page_size: maximum number of subscriptions to return, If not passed, defaults to a value set by the API. :type page_token: str :param page_token: opaque marker for the next "page" of subscriptions. If not passed, the API will return the first page of subscriptions. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of :class:`~google.cloud.pubsub.subscription.Subscription` accessible to the current API. """ extra_params = {} if page_size is not None: extra_params['pageSize'] = page_size path = '/projects/%s/subscriptions' % (project, ) # We attach a mutable topics dictionary so that as topic # objects are created by Subscription.from_api_repr, they # can be re-used by other subscriptions from the same topic. topics = {} item_to_value = functools.partial(_item_to_sub_for_client, topics=topics) return HTTPIterator(client=self._client, path=path, item_to_value=item_to_value, items_key='subscriptions', page_token=page_token, extra_params=extra_params)
def fetch_data(self, max_results=None, page_token=None, start_index=None, timeout_ms=None, client=None): """API call: fetch a page of query result data via a GET request See https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/getQueryResults :type max_results: int :param max_results: (Optional) maximum number of rows to return. :type page_token: str :param page_token: (Optional) token representing a cursor into the table's rows. :type start_index: int :param start_index: (Optional) zero-based index of starting row :type timeout_ms: int :param timeout_ms: (Optional) How long to wait for the query to complete, in milliseconds, before the request times out and returns. Note that this is only a timeout for the request, not the query. If the query takes longer to run than the timeout value, the call returns without any results and with the 'jobComplete' flag set to false. You can call GetQueryResults() to wait for the query to complete and read the results. The default value is 10000 milliseconds (10 seconds). :type client: :class:`~google.cloud.bigquery.client.Client` or ``NoneType`` :param client: the client to use. If not passed, falls back to the ``client`` stored on the current dataset. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of row data :class:`tuple`s. During each page, the iterator will have the ``total_rows`` attribute set, which counts the total number of rows **in the result set** (this is distinct from the total number of rows in the current page: ``iterator.page.num_items``). :raises: ValueError if the query has not yet been executed. """ if self.name is None: raise ValueError("Query not yet executed: call 'run()'") client = self._require_client(client) params = {} if start_index is not None: params['startIndex'] = start_index if timeout_ms is not None: params['timeoutMs'] = timeout_ms path = '/projects/%s/queries/%s' % (self.project, self.name) iterator = HTTPIterator(client=client, path=path, item_to_value=_item_to_row, items_key='rows', page_token=page_token, max_results=max_results, page_start=_rows_page_start_query, extra_params=params) iterator.query_result = self # Over-ride the key used to retrieve the next page token. iterator._NEXT_TOKEN = 'pageToken' return iterator
def list_blobs(self, max_results=None, page_token=None, prefix=None, delimiter=None, versions=None, projection='noAcl', fields=None, client=None): """Return an iterator used to find blobs in the bucket. :type max_results: int :param max_results: (Optional) Maximum number of blobs to return. :type page_token: str :param page_token: (Optional) Opaque marker for the next "page" of blobs. If not passed, will return the first page of blobs. :type prefix: str :param prefix: (Optional) prefix used to filter blobs. :type delimiter: str :param delimiter: (Optional) Delimiter, used with ``prefix`` to emulate hierarchy. :type versions: bool :param versions: (Optional) Whether object versions should be returned as separate blobs. :type projection: str :param projection: (Optional) If used, must be 'full' or 'noAcl'. Defaults to ``'noAcl'``. Specifies the set of properties to return. :type fields: str :param fields: (Optional) Selector specifying which fields to include in a partial response. Must be a list of fields. For example to get a partial response with just the next page token and the language of each blob returned: ``'items/contentLanguage,nextPageToken'``. :type client: :class:`~google.cloud.storage.client.Client` :param client: (Optional) The client to use. If not passed, falls back to the ``client`` stored on the current bucket. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of all :class:`~google.cloud.storage.blob.Blob` in this bucket matching the arguments. """ extra_params = {} if prefix is not None: extra_params['prefix'] = prefix if delimiter is not None: extra_params['delimiter'] = delimiter if versions is not None: extra_params['versions'] = versions extra_params['projection'] = projection if fields is not None: extra_params['fields'] = fields client = self._require_client(client) path = self.path + '/o' iterator = HTTPIterator(client=client, path=path, item_to_value=_item_to_blob, page_token=page_token, max_results=max_results, extra_params=extra_params, page_start=_blobs_page_start) iterator.bucket = self iterator.prefixes = set() return iterator
def list_projects(self, filter_params=None, page_size=None): """List the projects visible to this client. Example:: >>> from google.cloud import resource_manager >>> client = resource_manager.Client() >>> for project in client.list_projects(): ... print(project.project_id) List all projects with label ``'environment'`` set to ``'prod'`` (filtering by labels):: >>> from google.cloud import resource_manager >>> client = resource_manager.Client() >>> env_filter = {'labels.environment': 'prod'} >>> for project in client.list_projects(env_filter): ... print(project.project_id) See https://cloud.google.com/resource-manager/reference/rest/v1beta1/projects/list Complete filtering example:: >>> project_filter = { # Return projects with... ... 'name': 'My Project', # name set to 'My Project'. ... 'id': 'my-project-id', # id set to 'my-project-id'. ... 'labels.stage': 'prod', # the label 'stage' set to 'prod' ... 'labels.color': '*' # a label 'color' set to anything. ... } >>> client.list_projects(project_filter) :type filter_params: dict :param filter_params: (Optional) A dictionary of filter options where each key is a property to filter on, and each value is the (case-insensitive) value to check (or the glob ``*`` to check for existence of the property). See the example above for more details. :type page_size: int :param page_size: (Optional) Maximum number of projects to return in a single page. If not passed, defaults to a value set by the API. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of all :class:`~google.cloud.resource_manager.project.Project`. that the current user has access to. """ extra_params = {} if page_size is not None: extra_params['pageSize'] = page_size if filter_params is not None: extra_params['filter'] = filter_params return HTTPIterator( client=self, path='/projects', item_to_value=_item_to_project, items_key='projects', extra_params=extra_params)
def list_blobs(self, max_results=None, page_token=None, prefix=None, delimiter=None, versions=None, projection='noAcl', fields=None, client=None): """Return an iterator used to find blobs in the bucket. :type max_results: int :param max_results: (Optional) Maximum number of blobs to return. :type page_token: str :param page_token: (Optional) Opaque marker for the next "page" of blobs. If not passed, will return the first page of blobs. :type prefix: str :param prefix: (Optional) prefix used to filter blobs. :type delimiter: str :param delimiter: (Optional) Delimiter, used with ``prefix`` to emulate hierarchy. :type versions: bool :param versions: (Optional) Whether object versions should be returned as separate blobs. :type projection: str :param projection: (Optional) If used, must be 'full' or 'noAcl'. Defaults to ``'noAcl'``. Specifies the set of properties to return. :type fields: str :param fields: (Optional) Selector specifying which fields to include in a partial response. Must be a list of fields. For example to get a partial response with just the next page token and the language of each blob returned: ``'items/contentLanguage,nextPageToken'``. :type client: :class:`~google.cloud.storage.client.Client` :param client: (Optional) The client to use. If not passed, falls back to the ``client`` stored on the current bucket. :rtype: :class:`~google.cloud.iterator.Iterator` :returns: Iterator of all :class:`~google.cloud.storage.blob.Blob` in this bucket matching the arguments. """ extra_params = {} if prefix is not None: extra_params['prefix'] = prefix if delimiter is not None: extra_params['delimiter'] = delimiter if versions is not None: extra_params['versions'] = versions extra_params['projection'] = projection if fields is not None: extra_params['fields'] = fields client = self._require_client(client) path = self.path + '/o' iterator = HTTPIterator( client=client, path=path, item_to_value=_item_to_blob, page_token=page_token, max_results=max_results, extra_params=extra_params, page_start=_blobs_page_start) iterator.bucket = self iterator.prefixes = set() return iterator