# BigQuery Reservation API . projects . locations . reservations . assignments

## Instance Methods

Creates an assignment object which allows the given project to submit jobs

Deletes a assignment. No expansion will happen.

Lists assignments.

Retrieves the next page of results.

Moves an assignment under a new reservation.

### Method Details

`create(parent, body=None, x__xgafv=None)`

    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.

    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.

    Args:
      parent: string, Required. The parent resource name of the assignment
    E.g. `projects/myproject/locations/US/reservations/team1-prod` (required)
      body: object, The request body.
        The object takes the form of:

    { # A Assignment allows a project to submit jobs
        # of a certain type using slots from the specified reservation.
      "jobType": "A String", # Which type of jobs will use the reservation.
      "state": "A String", # Output only. State of the assignment.
      "name": "A String", # Output only. Name of the resource. E.g.:
          # `projects/myproject/locations/US/reservations/team1-prod/assignments/123`.
      "assignee": "A String", # The resource which will use the reservation. E.g.
          # `projects/myproject`, `folders/123`, or `organizations/456`.
    }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A Assignment allows a project to submit jobs
          # of a certain type using slots from the specified reservation.
        "jobType": "A String", # Which type of jobs will use the reservation.
        "state": "A String", # Output only. State of the assignment.
        "name": "A String", # Output only. Name of the resource. E.g.:
            # `projects/myproject/locations/US/reservations/team1-prod/assignments/123`.
        "assignee": "A String", # The resource which will use the reservation. E.g.
            # `projects/myproject`, `folders/123`, or `organizations/456`.
      }

`delete(name, x__xgafv=None)`

    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.

    Args:
      name: string, Required. Name of the resource, e.g.
      `projects/myproject/locations/US/reservations/team1-prod/assignments/123` (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A generic empty message that you can re-use to avoid defining duplicated
          # empty messages in your APIs. A typical example is to use it as the request
          # or the response type of an API method. For instance:
          #
          #     service Foo {
          #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
          #     }
          #
          # The JSON representation for `Empty` is empty JSON object `{}`.
      }

`list(parent, pageToken=None, pageSize=None, x__xgafv=None)`

    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.

    Args:
      parent: string, Required. The parent resource name e.g.:

    `projects/myproject/locations/US/reservations/team1-prod`

    Or:

    `projects/myproject/locations/US/reservations/-` (required)
      pageToken: string, The next_page_token value returned from a previous List request, if any.
      pageSize: integer, The maximum number of items to return per page.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # The response for ReservationService.ListAssignments.
        "assignments": [ # List of assignments visible to the user.
          { # A Assignment allows a project to submit jobs
              # of a certain type using slots from the specified reservation.
            "jobType": "A String", # Which type of jobs will use the reservation.
            "state": "A String", # Output only. State of the assignment.
            "name": "A String", # Output only. Name of the resource. E.g.:
                # `projects/myproject/locations/US/reservations/team1-prod/assignments/123`.
            "assignee": "A String", # The resource which will use the reservation. E.g.
                # `projects/myproject`, `folders/123`, or `organizations/456`.
          },
        ],
        "nextPageToken": "A String", # Token to retrieve the next page of results, or empty if there are no
            # more results in the list.
      }

`list_next(previous_request, previous_response)`

    Retrieves the next page of results.

    Args:
      previous_request: The request for the previous page. (required)
      previous_response: The response from the request for the previous page. (required)

    Returns:
      A request object that you can call 'execute()' on to request the next
      page. Returns None if there are no more items in the collection.

`move(name, body=None, x__xgafv=None)`

    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.

    Args:
      name: string, Required. The resource name of the assignment,
    e.g.
    `projects/myproject/locations/US/reservations/team1-prod/assignments/123` (required)
      body: object, The request body.
        The object takes the form of:

    { # The request for
          # ReservationService.MoveAssignment.
          #
          # **Note**: "bigquery.reservationAssignments.create" permission is required on
          # the destination_id.
          #
          # **Note**: "bigquery.reservationAssignments.create" and
          # "bigquery.reservationAssignments.delete" permission are required on the
          # related assignee.
        "destinationId": "A String", # The new reservation ID, e.g.:
            #   `projects/myotherproject/locations/US/reservations/team2-prod`
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A Assignment allows a project to submit jobs
          # of a certain type using slots from the specified reservation.
        "jobType": "A String", # Which type of jobs will use the reservation.
        "state": "A String", # Output only. State of the assignment.
        "name": "A String", # Output only. Name of the resource. E.g.:
            # `projects/myproject/locations/US/reservations/team1-prod/assignments/123`.
        "assignee": "A String", # The resource which will use the reservation. E.g.
            # `projects/myproject`, `folders/123`, or `organizations/456`.
      }