Interface ReservationServiceGrpc.AsyncService

  • All Known Implementing Classes:
    ReservationServiceGrpc.ReservationServiceImplBase
    Enclosing class:
    ReservationServiceGrpc

    public static interface ReservationServiceGrpc.AsyncService
     This API allows users to manage their BigQuery reservations.
     A reservation provides computational resource guarantees, in the form of
     [slots](https://cloud.google.com/bigquery/docs/slots), to users. A slot is a
     unit of computational power in BigQuery, and serves as the basic unit of
     parallelism. In a scan of a multi-partitioned table, a single slot operates
     on a single partition of the table. A reservation resource exists as a child
     resource of the admin project and location, e.g.:
       `projects/myproject/locations/US/reservations/reservationName`.
     A capacity commitment is a way to purchase compute capacity for BigQuery jobs
     (in the form of slots) with some committed period of usage. A capacity
     commitment resource exists as a child resource of the admin project and
     location, e.g.:
       `projects/myproject/locations/US/capacityCommitments/id`.
     
    • Method Detail

      • createReservation

        default void createReservation​(CreateReservationRequest request,
                                       io.grpc.stub.StreamObserver<Reservation> responseObserver)
         Creates a new reservation resource.
         
      • getReservation

        default void getReservation​(GetReservationRequest request,
                                    io.grpc.stub.StreamObserver<Reservation> responseObserver)
         Returns information about the reservation.
         
      • deleteReservation

        default void deleteReservation​(DeleteReservationRequest request,
                                       io.grpc.stub.StreamObserver<com.google.protobuf.Empty> responseObserver)
         Deletes a reservation.
         Returns `google.rpc.Code.FAILED_PRECONDITION` when reservation has
         assignments.
         
      • updateReservation

        default void updateReservation​(UpdateReservationRequest request,
                                       io.grpc.stub.StreamObserver<Reservation> responseObserver)
         Updates an existing reservation resource.
         
      • deleteCapacityCommitment

        default void deleteCapacityCommitment​(DeleteCapacityCommitmentRequest request,
                                              io.grpc.stub.StreamObserver<com.google.protobuf.Empty> responseObserver)
         Deletes a capacity commitment. Attempting to delete capacity commitment
         before its commitment_end_time will fail with the error code
         `google.rpc.Code.FAILED_PRECONDITION`.
         
      • updateCapacityCommitment

        default void updateCapacityCommitment​(UpdateCapacityCommitmentRequest request,
                                              io.grpc.stub.StreamObserver<CapacityCommitment> responseObserver)
         Updates an existing capacity commitment.
         Only `plan` and `renewal_plan` fields can be updated.
         Plan can only be changed to a plan of a longer commitment period.
         Attempting to change to a plan with shorter commitment period will fail
         with the error code `google.rpc.Code.FAILED_PRECONDITION`.
         
      • splitCapacityCommitment

        default void splitCapacityCommitment​(SplitCapacityCommitmentRequest request,
                                             io.grpc.stub.StreamObserver<SplitCapacityCommitmentResponse> responseObserver)
         Splits capacity commitment to two commitments of the same plan and
         `commitment_end_time`.
         A common use case is to enable downgrading commitments.
         For example, in order to downgrade from 10000 slots to 8000, you might
         split a 10000 capacity commitment into commitments of 2000 and 8000. Then,
         you delete the first one after the commitment end time passes.
         
      • mergeCapacityCommitments

        default void mergeCapacityCommitments​(MergeCapacityCommitmentsRequest request,
                                              io.grpc.stub.StreamObserver<CapacityCommitment> responseObserver)
         Merges capacity commitments of the same plan into a single commitment.
         The resulting capacity commitment has the greater commitment_end_time
         out of the to-be-merged capacity commitments.
         Attempting to merge capacity commitments of different plan will fail
         with the error code `google.rpc.Code.FAILED_PRECONDITION`.
         
      • createAssignment

        default void createAssignment​(CreateAssignmentRequest request,
                                      io.grpc.stub.StreamObserver<Assignment> responseObserver)
         Creates an assignment object which allows the given project to submit jobs
         of a certain type using slots from the specified reservation.
         Currently a
         resource (project, folder, organization) can only have one assignment per
         each (job_type, location) combination, and that reservation will be used
         for all jobs of the matching type.
         Different assignments can be created on different levels of the
         projects, folders or organization hierarchy.  During query execution,
         the assignment is looked up at the project, folder and organization levels
         in that order. The first assignment found is applied to the query.
         When creating assignments, it does not matter if other assignments exist at
         higher levels.
         Example:
         * The organization `organizationA` contains two projects, `project1`
           and `project2`.
         * Assignments for all three entities (`organizationA`, `project1`, and
           `project2`) could all be created and mapped to the same or different
           reservations.
         "None" assignments represent an absence of the assignment. Projects
         assigned to None use on-demand pricing. To create a "None" assignment, use
         "none" as a reservation_id in the parent. Example parent:
         `projects/myproject/locations/US/reservations/none`.
         Returns `google.rpc.Code.PERMISSION_DENIED` if user does not have
         'bigquery.admin' permissions on the project using the reservation
         and the project that owns this reservation.
         Returns `google.rpc.Code.INVALID_ARGUMENT` when location of the assignment
         does not match location of the reservation.
         
      • listAssignments

        default void listAssignments​(ListAssignmentsRequest request,
                                     io.grpc.stub.StreamObserver<ListAssignmentsResponse> responseObserver)
         Lists assignments.
         Only explicitly created assignments will be returned.
         Example:
         * Organization `organizationA` contains two projects, `project1` and
           `project2`.
         * Reservation `res1` exists and was created previously.
         * CreateAssignment was used previously to define the following
           associations between entities and reservations: `<organizationA, res1>`
           and `<project1, res1>`
         In this example, ListAssignments will just return the above two assignments
         for reservation `res1`, and no expansion/merge will happen.
         The wildcard "-" can be used for
         reservations in the request. In that case all assignments belongs to the
         specified project and location will be listed.
         **Note** "-" cannot be used for projects nor locations.
         
      • deleteAssignment

        default void deleteAssignment​(DeleteAssignmentRequest request,
                                      io.grpc.stub.StreamObserver<com.google.protobuf.Empty> responseObserver)
         Deletes a assignment. No expansion will happen.
         Example:
         * Organization `organizationA` contains two projects, `project1` and
           `project2`.
         * Reservation `res1` exists and was created previously.
         * CreateAssignment was used previously to define the following
           associations between entities and reservations: `<organizationA, res1>`
           and `<project1, res1>`
         In this example, deletion of the `<organizationA, res1>` assignment won't
         affect the other assignment `<project1, res1>`. After said deletion,
         queries from `project1` will still use `res1` while queries from
         `project2` will switch to use on-demand mode.
         
      • searchAssignments

        @Deprecated
        default void searchAssignments​(SearchAssignmentsRequest request,
                                       io.grpc.stub.StreamObserver<SearchAssignmentsResponse> responseObserver)
        Deprecated.
         Deprecated: Looks up assignments for a specified resource for a particular
         region. If the request is about a project:
         1. Assignments created on the project will be returned if they exist.
         2. Otherwise assignments created on the closest ancestor will be
            returned.
         3. Assignments for different JobTypes will all be returned.
         The same logic applies if the request is about a folder.
         If the request is about an organization, then assignments created on the
         organization will be returned (organization doesn't have ancestors).
         Comparing to ListAssignments, there are some behavior
         differences:
         1. permission on the assignee will be verified in this API.
         2. Hierarchy lookup (project->folder->organization) happens in this API.
         3. Parent here is `projects/*/locations/*`, instead of
            `projects/*/locations/*reservations/*`.
         **Note** "-" cannot be used for projects
         nor locations.
         
      • searchAllAssignments

        default void searchAllAssignments​(SearchAllAssignmentsRequest request,
                                          io.grpc.stub.StreamObserver<SearchAllAssignmentsResponse> responseObserver)
         Looks up assignments for a specified resource for a particular region.
         If the request is about a project:
         1. Assignments created on the project will be returned if they exist.
         2. Otherwise assignments created on the closest ancestor will be
            returned.
         3. Assignments for different JobTypes will all be returned.
         The same logic applies if the request is about a folder.
         If the request is about an organization, then assignments created on the
         organization will be returned (organization doesn't have ancestors).
         Comparing to ListAssignments, there are some behavior
         differences:
         1. permission on the assignee will be verified in this API.
         2. Hierarchy lookup (project->folder->organization) happens in this API.
         3. Parent here is `projects/*/locations/*`, instead of
            `projects/*/locations/*reservations/*`.
         
      • moveAssignment

        default void moveAssignment​(MoveAssignmentRequest request,
                                    io.grpc.stub.StreamObserver<Assignment> responseObserver)
         Moves an assignment under a new reservation.
         This differs from removing an existing assignment and recreating a new one
         by providing a transactional change that ensures an assignee always has an
         associated reservation.
         
      • updateAssignment

        default void updateAssignment​(UpdateAssignmentRequest request,
                                      io.grpc.stub.StreamObserver<Assignment> responseObserver)
         Updates an existing assignment.
         Only the `priority` field can be updated.
         
      • updateBiReservation

        default void updateBiReservation​(UpdateBiReservationRequest request,
                                         io.grpc.stub.StreamObserver<BiReservation> responseObserver)
         Updates a BI reservation.
         Only fields specified in the `field_mask` are updated.
         A singleton BI reservation always exists with default size 0.
         In order to reserve BI capacity it needs to be updated to an amount
         greater than 0. In order to release BI capacity reservation size
         must be set to 0.