List reservation groups

Lists all BigQuery reservation groups within a specified project and location.

Code sample

Node.js

Before trying this sample, follow the Node.js setup instructions in the BigQuery quickstart using client libraries. For more information, see the BigQuery Node.js API reference documentation.

To authenticate to BigQuery, set up Application Default Credentials. For more information, see Set up authentication for client libraries.

const {ReservationServiceClient} =
  require('@google-cloud/bigquery-reservation').v1;
const {status} = require('@grpc/grpc-js');

const client = new ReservationServiceClient();

/**
 * Lists all reservation groups for a project in a specified location.
 * A reservation group is a container for reservations.
 *
 * @param {string} projectId Google Cloud project ID (for example, 'example-project-id').
 * @param {string} location Google Cloud location (for example, 'us-central1').
 */
async function listReservationGroups(projectId, location = 'us-central1') {
  const request = {
    parent: `projects/${projectId}/locations/${location}`,
  };

  try {
    const [reservationGroups] = await client.listReservationGroups(request);

    if (reservationGroups.length === 0) {
      console.log(
        `No reservation groups found in project ${projectId} at location ${location}.`,
      );
      return;
    }

    console.log(
      `Reservation groups in project ${projectId} at location ${location}:`,
    );
    for (const group of reservationGroups) {
      console.log(`  ${group.name}`);
    }
  } catch (err) {
    if (err.code === status.NOT_FOUND) {
      console.log(`Project or location not found: ${request.parent}`);
    } else {
      console.error('Error listing reservation groups:', err);
    }
  }
}

Python

Before trying this sample, follow the Python setup instructions in the BigQuery quickstart using client libraries. For more information, see the BigQuery Python API reference documentation.

To authenticate to BigQuery, set up Application Default Credentials. For more information, see Set up authentication for client libraries.

import google.api_core.exceptions
from google.cloud import bigquery_reservation_v1

client = bigquery_reservation_v1.ReservationServiceClient()


def list_reservation_groups(project_id: str, location: str):
    """Lists all reservation groups for the project in the specified location.

    A reservation group is a container for reservations. This sample shows
    how to list all reservation groups within a specific project and location.

    Args:
        project_id: The Google Cloud project ID.
        location: The geographic location of the reservation groups, for example, "us-central1".
    """
    parent = f"projects/{project_id}/locations/{location}"

    try:
        page_result = client.list_reservation_groups(parent=parent)
        print(f"Listed reservation groups for parent: '{parent}'")
        for group in page_result:
            print(f"  Reservation group: {group.name}")
    except google.api_core.exceptions.NotFound:
        print(f"Parent resource '{parent}' was not found.")
    except google.api_core.exceptions.GoogleAPICallError as e:
        print(
            f"Could not list reservation groups. Please check your permissions. Error: {e}"
        )

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.