Listar todas as atribuições de uma reserva

Recupera uma lista de todas as atribuições de uma reserva especificada do BigQuery. Uma atribuição conecta um projeto, uma pasta ou uma organização a uma reserva.

Exemplo de código

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.

import com.google.api.gax.rpc.ApiException;
import com.google.api.gax.rpc.NotFoundException;
import com.google.cloud.bigquery.reservation.v1.Assignment;
import com.google.cloud.bigquery.reservation.v1.ListAssignmentsRequest;
import com.google.cloud.bigquery.reservation.v1.ReservationName;
import com.google.cloud.bigquery.reservation.v1.ReservationServiceClient;
import java.io.IOException;

public class ListAssignments {

  /**
   * Lists all assignments for a specified BigQuery reservation. To list all assignments in a
   * given location across all reservations, pass "-" as the reservationId.
   *
   * @param projectId The Google Cloud project ID (for example, "example-project-id").
   * @param location The geographic location of the reservation (for example, "us-central1").
   * @param reservationId The ID of the reservation to list assignments for, or "-" to list all
   *     assignments for the project and location (for example, "example-reservation").
   */
  public static void listAssignments(String projectId, String location, String reservationId) {
    ReservationName parent = ReservationName.of(projectId, location, reservationId);

    ListAssignmentsRequest request =
        ListAssignmentsRequest.newBuilder().setParent(parent.toString()).build();

    try (ReservationServiceClient client = ReservationServiceClient.create()) {
      System.out.printf("Listing assignments for parent: '%s'%n", parent);
      boolean foundAssignments = false;
      for (Assignment assignment : client.listAssignments(request).iterateAll()) {
        foundAssignments = true;
        System.out.printf("  Got assignment: %s%n", assignment.getName());
      }

      if (!foundAssignments) {
        System.out.println("No assignments found.");
      }
    } catch (NotFoundException err) {
      System.err.printf(
          "error: parent resource '%s' not found: %s%n", parent, err.getMessage());
    } catch (ApiException | IOException err) {
      System.err.printf(
          "error: failed to list assignments for '%s': %s%n", parent, err.getMessage());
    }
  }

Node.js

Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Node.js.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.

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

const reservationServiceClient = new ReservationServiceClient();

/**
 * Lists assignments.
 * An assignment lets a project, folder, or organization use slots from a
 * specified reservation. By using a wildcard `-` for the reservation ID,
 * this sample lists all assignments for a given project and location.
 *
 * @param {string} projectId The ID of the project. Example: 'example-project-id'
 * @param {string} location The location of the reservation. Example: 'us-central1'
 */
async function listAssignments(projectId, location = 'us-central1') {
  const request = {
    parent: `projects/${projectId}/locations/${location}/reservations/-`,
  };

  try {
    const iterable = reservationServiceClient.listAssignmentsAsync(request);
    console.log(`Assignments in parent "${request.parent}":`);

    let found = false;
    for await (const assignment of iterable) {
      found = true;
      console.log(`- ${assignment.name}`);
      console.log(`  - Assignee: ${assignment.assignee}`);
      console.log(`  - Job Type: ${assignment.jobType}`);
    }

    if (!found) {
      console.log('  No assignments found.');
    }
  } catch (err) {
    if (err.code === status.NOT_FOUND) {
      console.log(`Parent resource not found: ${request.parent}`);
    } else {
      console.error('Error listing assignments:', err);
    }
  }
}

Python

Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.

Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.

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


def list_assignments(
    project_id: str,
    location: str,
    reservation_id: str,
):
    """Lists all assignments for a reservation.

    This sample shows how to list all assignments in a given reservation.
    To list all assignments in a given location, across all reservations,
    use a wildcard `-` for the reservation ID.

    Args:
        project_id: The Google Cloud project ID.
        location: The geographic location of the assignments , for example, 'us-central1'.
        reservation_id: The ID of the reservation to list assignments for, or "-"
            to list all assignments for the project and location.
    """
    client = bigquery_reservation_v1.ReservationServiceClient()
    parent = client.reservation_path(project_id, location, reservation_id)

    try:
        print(f"Listing assignments for parent: '{parent}'")
        assignment_list = client.list_assignments(parent=parent)

        found_assignments = False
        for assignment in assignment_list:
            found_assignments = True
            print(f"  Got assignment: {assignment.name}")

        if not found_assignments:
            print("No assignments found.")

    except exceptions.NotFound:
        print(f"Parent resource '{parent}' not found.")

A seguir

Para pesquisar e filtrar exemplos de código de outros Google Cloud produtos, consulte a Google Cloud pesquisa de exemplos de código.