# BigQuery Reservation API . projects . locations . capacityCommitments

## Instance Methods

Creates a new capacity commitment resource.

Deletes a capacity commitment. Attempting to delete capacity commitment

Returns information about the capacity commitment.

Lists all the capacity commitments for the admin project.

Retrieves the next page of results.

Merges capacity commitments of the same plan into a single commitment.

Updates an existing capacity commitment.

Splits capacity commitment to two commitments of the same plan and

### Method Details

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

    Creates a new capacity commitment resource.

    Args:
      parent: string, Required. Resource name of the parent reservation. E.g.,
       `projects/myproject/locations/US` (required)
      body: object, The request body.
        The object takes the form of:

    { # Capacity commitment is a way to purchase compute capacity for BigQuery jobs
          # (in the form of slots) with some committed period of usage. Annual
          # commitments renew by default. Commitments can be removed after their
          # commitment end time passes.
          #
          # In order to remove annual commitment, its plan needs to be changed
          # to monthly or flex first.
          #
          # A capacity commitment resource exists as a child resource of the admin
          # project.
        "slotCount": "A String", # Number of slots in this commitment.
        "plan": "A String", # Capacity commitment commitment plan.
        "failureStatus": { # The `Status` type defines a logical error model that is suitable for # Output only. For FAILED commitment plan, provides the reason of failure.
            # different programming environments, including REST APIs and RPC APIs. It is
            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
            # three pieces of data: error code, error message, and error details.
            #
            # You can find out more about this error model and how to work with it in the
            # [API Design Guide](https://cloud.google.com/apis/design/errors).
          "details": [ # A list of messages that carry the error details.  There is a common set of
              # message types for APIs to use.
            {
              "a_key": "", # Properties of the object. Contains field @type with type URL.
            },
          ],
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
          "message": "A String", # A developer-facing error message, which should be in English. Any
              # user-facing error message should be localized and sent in the
              # google.rpc.Status.details field, or localized by the client.
        },
        "commitmentStartTime": "A String", # Output only. The start of the current commitment period. It is applicable only for
            # ACTIVE capacity commitments.
        "name": "A String", # Output only. The resource name of the capacity commitment, e.g.,
            # `projects/myproject/locations/US/capacityCommitments/123`
        "renewalPlan": "A String", # The plan this capacity commitment is converted to after commitment_end_time
            # passes. Once the plan is changed, committed period is extended according to
            # commitment plan. Only applicable for ANNUAL commitments.
        "commitmentEndTime": "A String", # Output only. The end of the current commitment period. It is applicable only for ACTIVE
            # capacity commitments.
        "state": "A String", # Output only. State of the commitment.
      }

      enforceSingleAdminProjectPerOrg: boolean, If true, fail the request if another project in the organization has a
    capacity commitment.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Capacity commitment is a way to purchase compute capacity for BigQuery jobs
            # (in the form of slots) with some committed period of usage. Annual
            # commitments renew by default. Commitments can be removed after their
            # commitment end time passes.
            #
            # In order to remove annual commitment, its plan needs to be changed
            # to monthly or flex first.
            #
            # A capacity commitment resource exists as a child resource of the admin
            # project.
          "slotCount": "A String", # Number of slots in this commitment.
          "plan": "A String", # Capacity commitment commitment plan.
          "failureStatus": { # The `Status` type defines a logical error model that is suitable for # Output only. For FAILED commitment plan, provides the reason of failure.
              # different programming environments, including REST APIs and RPC APIs. It is
              # used by [gRPC](https://github.com/grpc). Each `Status` message contains
              # three pieces of data: error code, error message, and error details.
              #
              # You can find out more about this error model and how to work with it in the
              # [API Design Guide](https://cloud.google.com/apis/design/errors).
            "details": [ # A list of messages that carry the error details.  There is a common set of
                # message types for APIs to use.
              {
                "a_key": "", # Properties of the object. Contains field @type with type URL.
              },
            ],
            "code": 42, # The status code, which should be an enum value of google.rpc.Code.
            "message": "A String", # A developer-facing error message, which should be in English. Any
                # user-facing error message should be localized and sent in the
                # google.rpc.Status.details field, or localized by the client.
          },
          "commitmentStartTime": "A String", # Output only. The start of the current commitment period. It is applicable only for
              # ACTIVE capacity commitments.
          "name": "A String", # Output only. The resource name of the capacity commitment, e.g.,
              # `projects/myproject/locations/US/capacityCommitments/123`
          "renewalPlan": "A String", # The plan this capacity commitment is converted to after commitment_end_time
              # passes. Once the plan is changed, committed period is extended according to
              # commitment plan. Only applicable for ANNUAL commitments.
          "commitmentEndTime": "A String", # Output only. The end of the current commitment period. It is applicable only for ACTIVE
              # capacity commitments.
          "state": "A String", # Output only. State of the commitment.
        }

`delete(name, x__xgafv=None)`

    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`.

    Args:
      name: string, Required. Resource name of the capacity commitment to delete. E.g.,
       `projects/myproject/locations/US/capacityCommitments/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 `{}`.
      }

`get(name, x__xgafv=None)`

    Returns information about the capacity commitment.

    Args:
      name: string, Required. Resource name of the capacity commitment to retrieve. E.g.,
       `projects/myproject/locations/US/capacityCommitments/123` (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Capacity commitment is a way to purchase compute capacity for BigQuery jobs
            # (in the form of slots) with some committed period of usage. Annual
            # commitments renew by default. Commitments can be removed after their
            # commitment end time passes.
            #
            # In order to remove annual commitment, its plan needs to be changed
            # to monthly or flex first.
            #
            # A capacity commitment resource exists as a child resource of the admin
            # project.
          "slotCount": "A String", # Number of slots in this commitment.
          "plan": "A String", # Capacity commitment commitment plan.
          "failureStatus": { # The `Status` type defines a logical error model that is suitable for # Output only. For FAILED commitment plan, provides the reason of failure.
              # different programming environments, including REST APIs and RPC APIs. It is
              # used by [gRPC](https://github.com/grpc). Each `Status` message contains
              # three pieces of data: error code, error message, and error details.
              #
              # You can find out more about this error model and how to work with it in the
              # [API Design Guide](https://cloud.google.com/apis/design/errors).
            "details": [ # A list of messages that carry the error details.  There is a common set of
                # message types for APIs to use.
              {
                "a_key": "", # Properties of the object. Contains field @type with type URL.
              },
            ],
            "code": 42, # The status code, which should be an enum value of google.rpc.Code.
            "message": "A String", # A developer-facing error message, which should be in English. Any
                # user-facing error message should be localized and sent in the
                # google.rpc.Status.details field, or localized by the client.
          },
          "commitmentStartTime": "A String", # Output only. The start of the current commitment period. It is applicable only for
              # ACTIVE capacity commitments.
          "name": "A String", # Output only. The resource name of the capacity commitment, e.g.,
              # `projects/myproject/locations/US/capacityCommitments/123`
          "renewalPlan": "A String", # The plan this capacity commitment is converted to after commitment_end_time
              # passes. Once the plan is changed, committed period is extended according to
              # commitment plan. Only applicable for ANNUAL commitments.
          "commitmentEndTime": "A String", # Output only. The end of the current commitment period. It is applicable only for ACTIVE
              # capacity commitments.
          "state": "A String", # Output only. State of the commitment.
        }

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

    Lists all the capacity commitments for the admin project.

    Args:
      parent: string, Required. Resource name of the parent reservation. E.g.,
       `projects/myproject/locations/US` (required)
      pageSize: integer, The maximum number of items to return.
      pageToken: string, The next_page_token value returned from a previous List request, if any.
      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.ListCapacityCommitments.
        "nextPageToken": "A String", # Token to retrieve the next page of results, or empty if there are no
            # more results in the list.
        "capacityCommitments": [ # List of capacity commitments visible to the user.
          { # Capacity commitment is a way to purchase compute capacity for BigQuery jobs
                # (in the form of slots) with some committed period of usage. Annual
                # commitments renew by default. Commitments can be removed after their
                # commitment end time passes.
                #
                # In order to remove annual commitment, its plan needs to be changed
                # to monthly or flex first.
                #
                # A capacity commitment resource exists as a child resource of the admin
                # project.
              "slotCount": "A String", # Number of slots in this commitment.
              "plan": "A String", # Capacity commitment commitment plan.
              "failureStatus": { # The `Status` type defines a logical error model that is suitable for # Output only. For FAILED commitment plan, provides the reason of failure.
                  # different programming environments, including REST APIs and RPC APIs. It is
                  # used by [gRPC](https://github.com/grpc). Each `Status` message contains
                  # three pieces of data: error code, error message, and error details.
                  #
                  # You can find out more about this error model and how to work with it in the
                  # [API Design Guide](https://cloud.google.com/apis/design/errors).
                "details": [ # A list of messages that carry the error details.  There is a common set of
                    # message types for APIs to use.
                  {
                    "a_key": "", # Properties of the object. Contains field @type with type URL.
                  },
                ],
                "code": 42, # The status code, which should be an enum value of google.rpc.Code.
                "message": "A String", # A developer-facing error message, which should be in English. Any
                    # user-facing error message should be localized and sent in the
                    # google.rpc.Status.details field, or localized by the client.
              },
              "commitmentStartTime": "A String", # Output only. The start of the current commitment period. It is applicable only for
                  # ACTIVE capacity commitments.
              "name": "A String", # Output only. The resource name of the capacity commitment, e.g.,
                  # `projects/myproject/locations/US/capacityCommitments/123`
              "renewalPlan": "A String", # The plan this capacity commitment is converted to after commitment_end_time
                  # passes. Once the plan is changed, committed period is extended according to
                  # commitment plan. Only applicable for ANNUAL commitments.
              "commitmentEndTime": "A String", # Output only. The end of the current commitment period. It is applicable only for ACTIVE
                  # capacity commitments.
              "state": "A String", # Output only. State of the commitment.
            },
        ],
      }

`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.

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

    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`.

    Args:
      parent: string, Parent resource that identifies admin project and location e.g.,
     `projects/myproject/locations/us` (required)
      body: object, The request body.
        The object takes the form of:

    { # The request for ReservationService.MergeCapacityCommitments.
        "capacityCommitmentIds": [ # Ids of capacity commitments to merge.
            # These capacity commitments must exist under admin project and location
            # specified in the parent.
            # ID is the last portion of capacity commitment name e.g., 'abc' for
            # projects/myproject/locations/US/capacityCommitments/abc
          "A String",
        ],
      }

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

    Returns:
      An object of the form:

        { # Capacity commitment is a way to purchase compute capacity for BigQuery jobs
            # (in the form of slots) with some committed period of usage. Annual
            # commitments renew by default. Commitments can be removed after their
            # commitment end time passes.
            #
            # In order to remove annual commitment, its plan needs to be changed
            # to monthly or flex first.
            #
            # A capacity commitment resource exists as a child resource of the admin
            # project.
          "slotCount": "A String", # Number of slots in this commitment.
          "plan": "A String", # Capacity commitment commitment plan.
          "failureStatus": { # The `Status` type defines a logical error model that is suitable for # Output only. For FAILED commitment plan, provides the reason of failure.
              # different programming environments, including REST APIs and RPC APIs. It is
              # used by [gRPC](https://github.com/grpc). Each `Status` message contains
              # three pieces of data: error code, error message, and error details.
              #
              # You can find out more about this error model and how to work with it in the
              # [API Design Guide](https://cloud.google.com/apis/design/errors).
            "details": [ # A list of messages that carry the error details.  There is a common set of
                # message types for APIs to use.
              {
                "a_key": "", # Properties of the object. Contains field @type with type URL.
              },
            ],
            "code": 42, # The status code, which should be an enum value of google.rpc.Code.
            "message": "A String", # A developer-facing error message, which should be in English. Any
                # user-facing error message should be localized and sent in the
                # google.rpc.Status.details field, or localized by the client.
          },
          "commitmentStartTime": "A String", # Output only. The start of the current commitment period. It is applicable only for
              # ACTIVE capacity commitments.
          "name": "A String", # Output only. The resource name of the capacity commitment, e.g.,
              # `projects/myproject/locations/US/capacityCommitments/123`
          "renewalPlan": "A String", # The plan this capacity commitment is converted to after commitment_end_time
              # passes. Once the plan is changed, committed period is extended according to
              # commitment plan. Only applicable for ANNUAL commitments.
          "commitmentEndTime": "A String", # Output only. The end of the current commitment period. It is applicable only for ACTIVE
              # capacity commitments.
          "state": "A String", # Output only. State of the commitment.
        }

`patch(name, body=None, updateMask=None, x__xgafv=None)`

    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`.

    Args:
      name: string, Output only. The resource name of the capacity commitment, e.g.,
    `projects/myproject/locations/US/capacityCommitments/123` (required)
      body: object, The request body.
        The object takes the form of:

    { # Capacity commitment is a way to purchase compute capacity for BigQuery jobs
          # (in the form of slots) with some committed period of usage. Annual
          # commitments renew by default. Commitments can be removed after their
          # commitment end time passes.
          #
          # In order to remove annual commitment, its plan needs to be changed
          # to monthly or flex first.
          #
          # A capacity commitment resource exists as a child resource of the admin
          # project.
        "slotCount": "A String", # Number of slots in this commitment.
        "plan": "A String", # Capacity commitment commitment plan.
        "failureStatus": { # The `Status` type defines a logical error model that is suitable for # Output only. For FAILED commitment plan, provides the reason of failure.
            # different programming environments, including REST APIs and RPC APIs. It is
            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
            # three pieces of data: error code, error message, and error details.
            #
            # You can find out more about this error model and how to work with it in the
            # [API Design Guide](https://cloud.google.com/apis/design/errors).
          "details": [ # A list of messages that carry the error details.  There is a common set of
              # message types for APIs to use.
            {
              "a_key": "", # Properties of the object. Contains field @type with type URL.
            },
          ],
          "code": 42, # The status code, which should be an enum value of google.rpc.Code.
          "message": "A String", # A developer-facing error message, which should be in English. Any
              # user-facing error message should be localized and sent in the
              # google.rpc.Status.details field, or localized by the client.
        },
        "commitmentStartTime": "A String", # Output only. The start of the current commitment period. It is applicable only for
            # ACTIVE capacity commitments.
        "name": "A String", # Output only. The resource name of the capacity commitment, e.g.,
            # `projects/myproject/locations/US/capacityCommitments/123`
        "renewalPlan": "A String", # The plan this capacity commitment is converted to after commitment_end_time
            # passes. Once the plan is changed, committed period is extended according to
            # commitment plan. Only applicable for ANNUAL commitments.
        "commitmentEndTime": "A String", # Output only. The end of the current commitment period. It is applicable only for ACTIVE
            # capacity commitments.
        "state": "A String", # Output only. State of the commitment.
      }

      updateMask: string, Standard field mask for the set of fields to be updated.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Capacity commitment is a way to purchase compute capacity for BigQuery jobs
            # (in the form of slots) with some committed period of usage. Annual
            # commitments renew by default. Commitments can be removed after their
            # commitment end time passes.
            #
            # In order to remove annual commitment, its plan needs to be changed
            # to monthly or flex first.
            #
            # A capacity commitment resource exists as a child resource of the admin
            # project.
          "slotCount": "A String", # Number of slots in this commitment.
          "plan": "A String", # Capacity commitment commitment plan.
          "failureStatus": { # The `Status` type defines a logical error model that is suitable for # Output only. For FAILED commitment plan, provides the reason of failure.
              # different programming environments, including REST APIs and RPC APIs. It is
              # used by [gRPC](https://github.com/grpc). Each `Status` message contains
              # three pieces of data: error code, error message, and error details.
              #
              # You can find out more about this error model and how to work with it in the
              # [API Design Guide](https://cloud.google.com/apis/design/errors).
            "details": [ # A list of messages that carry the error details.  There is a common set of
                # message types for APIs to use.
              {
                "a_key": "", # Properties of the object. Contains field @type with type URL.
              },
            ],
            "code": 42, # The status code, which should be an enum value of google.rpc.Code.
            "message": "A String", # A developer-facing error message, which should be in English. Any
                # user-facing error message should be localized and sent in the
                # google.rpc.Status.details field, or localized by the client.
          },
          "commitmentStartTime": "A String", # Output only. The start of the current commitment period. It is applicable only for
              # ACTIVE capacity commitments.
          "name": "A String", # Output only. The resource name of the capacity commitment, e.g.,
              # `projects/myproject/locations/US/capacityCommitments/123`
          "renewalPlan": "A String", # The plan this capacity commitment is converted to after commitment_end_time
              # passes. Once the plan is changed, committed period is extended according to
              # commitment plan. Only applicable for ANNUAL commitments.
          "commitmentEndTime": "A String", # Output only. The end of the current commitment period. It is applicable only for ACTIVE
              # capacity commitments.
          "state": "A String", # Output only. State of the commitment.
        }

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

    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 would change the plan of the first one to `FLEX` and then delete it.

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

    { # The request for ReservationService.SplitCapacityCommitment.
        "slotCount": "A String", # Number of slots in the capacity commitment after the split.
      }

      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.SplitCapacityCommitment.
        "second": { # Capacity commitment is a way to purchase compute capacity for BigQuery jobs # Second capacity commitment, result of a split.
              # (in the form of slots) with some committed period of usage. Annual
              # commitments renew by default. Commitments can be removed after their
              # commitment end time passes.
              #
              # In order to remove annual commitment, its plan needs to be changed
              # to monthly or flex first.
              #
              # A capacity commitment resource exists as a child resource of the admin
              # project.
            "slotCount": "A String", # Number of slots in this commitment.
            "plan": "A String", # Capacity commitment commitment plan.
            "failureStatus": { # The `Status` type defines a logical error model that is suitable for # Output only. For FAILED commitment plan, provides the reason of failure.
                # different programming environments, including REST APIs and RPC APIs. It is
                # used by [gRPC](https://github.com/grpc). Each `Status` message contains
                # three pieces of data: error code, error message, and error details.
                #
                # You can find out more about this error model and how to work with it in the
                # [API Design Guide](https://cloud.google.com/apis/design/errors).
              "details": [ # A list of messages that carry the error details.  There is a common set of
                  # message types for APIs to use.
                {
                  "a_key": "", # Properties of the object. Contains field @type with type URL.
                },
              ],
              "code": 42, # The status code, which should be an enum value of google.rpc.Code.
              "message": "A String", # A developer-facing error message, which should be in English. Any
                  # user-facing error message should be localized and sent in the
                  # google.rpc.Status.details field, or localized by the client.
            },
            "commitmentStartTime": "A String", # Output only. The start of the current commitment period. It is applicable only for
                # ACTIVE capacity commitments.
            "name": "A String", # Output only. The resource name of the capacity commitment, e.g.,
                # `projects/myproject/locations/US/capacityCommitments/123`
            "renewalPlan": "A String", # The plan this capacity commitment is converted to after commitment_end_time
                # passes. Once the plan is changed, committed period is extended according to
                # commitment plan. Only applicable for ANNUAL commitments.
            "commitmentEndTime": "A String", # Output only. The end of the current commitment period. It is applicable only for ACTIVE
                # capacity commitments.
            "state": "A String", # Output only. State of the commitment.
          },
        "first": { # Capacity commitment is a way to purchase compute capacity for BigQuery jobs # First capacity commitment, result of a split.
              # (in the form of slots) with some committed period of usage. Annual
              # commitments renew by default. Commitments can be removed after their
              # commitment end time passes.
              #
              # In order to remove annual commitment, its plan needs to be changed
              # to monthly or flex first.
              #
              # A capacity commitment resource exists as a child resource of the admin
              # project.
            "slotCount": "A String", # Number of slots in this commitment.
            "plan": "A String", # Capacity commitment commitment plan.
            "failureStatus": { # The `Status` type defines a logical error model that is suitable for # Output only. For FAILED commitment plan, provides the reason of failure.
                # different programming environments, including REST APIs and RPC APIs. It is
                # used by [gRPC](https://github.com/grpc). Each `Status` message contains
                # three pieces of data: error code, error message, and error details.
                #
                # You can find out more about this error model and how to work with it in the
                # [API Design Guide](https://cloud.google.com/apis/design/errors).
              "details": [ # A list of messages that carry the error details.  There is a common set of
                  # message types for APIs to use.
                {
                  "a_key": "", # Properties of the object. Contains field @type with type URL.
                },
              ],
              "code": 42, # The status code, which should be an enum value of google.rpc.Code.
              "message": "A String", # A developer-facing error message, which should be in English. Any
                  # user-facing error message should be localized and sent in the
                  # google.rpc.Status.details field, or localized by the client.
            },
            "commitmentStartTime": "A String", # Output only. The start of the current commitment period. It is applicable only for
                # ACTIVE capacity commitments.
            "name": "A String", # Output only. The resource name of the capacity commitment, e.g.,
                # `projects/myproject/locations/US/capacityCommitments/123`
            "renewalPlan": "A String", # The plan this capacity commitment is converted to after commitment_end_time
                # passes. Once the plan is changed, committed period is extended according to
                # commitment plan. Only applicable for ANNUAL commitments.
            "commitmentEndTime": "A String", # Output only. The end of the current commitment period. It is applicable only for ACTIVE
                # capacity commitments.
            "state": "A String", # Output only. State of the commitment.
          },
      }