Updates the plan for an existing customer entitlement.
An entitlement update is a long-running operation and it updates the entitlement as a result of fulfillment.
Possible error codes:
PERMISSION_DENIED: The customer doesn't belong to the reseller.
INVALID_ARGUMENT: Required request parameters are missing or invalid.
NOT_FOUND: Offer or Entitlement resource not found.
INVALID_PLAN: Can't update a commitment based plan to a flex plan in the middle of the commitment period.
SKU_CHANGE_NOT_ALLOWED: OfferId pertains to a different SKU.
INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support.
UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support.
Return value: The ID of a long-running operation.
To get the results of the operation, call the operations.get method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.
Deprecated: Use entitlements.changeOffer instead.
HTTP request
POST https://cloudchannel.googleapis.com/v1alpha1/{name=accounts/*/customers/*/entitlements/*}:changePlan
Required. New Offer applicable to a new plan. The offer takes the form: accounts/{account_id}/offers/{offer_id}.
numUnits
integer
New num units for the entitlement. For seat-based offers, this is the number of seats. For license based offers, this is the number of licenses. Required for commitment based offers.
maxUnits
integer
New max units for the entitlement. It represents the maximum units a flexible offer is allowed to assign. Required for flexible offers.
externalCorrelationId
string
An optional identifier in the external system that partners can use to correlate a Channel Services purchase transaction for the entitlement. Optional.
purchaseOrderId
string
Purchase order ID provided by the reseller. Optional
requestId
string
You can specify an optional unique request ID, and if you need to retry your request, the server will know to ignore the request if it's complete.
For example, you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if it received the original operation with the same request ID. If it did, it will ignore the second request.
The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
billingAccount
string
Optional. The billing account resource name that is used to pay for this entitlement when setting up billing on a trial subscription.
This field is only relevant for multi-currency accounts. It should be left empty for single currency accounts.
Response body
If successful, the response body contains an instance of Operation.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-05-19 UTC."],[[["\u003cp\u003eThis document describes how to update a customer's existing entitlement plan using the \u003ccode\u003eentitlements.changePlan\u003c/code\u003e method, which is a long-running operation that results in an entitlement update.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003ePOST\u003c/code\u003e HTTP request for updating an entitlement plan is sent to \u003ccode\u003ehttps://cloudchannel.googleapis.com/v1alpha1/{name=accounts/*/customers/*/entitlements/*}:changePlan\u003c/code\u003e, using gRPC Transcoding syntax.\u003c/p\u003e\n"],["\u003cp\u003eUpdating the entitlement requires providing the entitlement's name in the path parameters and specifying details such as the new offer, units, and optional identifiers in the request body, formatted as JSON.\u003c/p\u003e\n"],["\u003cp\u003eThe method may return specific error codes, including \u003ccode\u003ePERMISSION_DENIED\u003c/code\u003e, \u003ccode\u003eINVALID_ARGUMENT\u003c/code\u003e, \u003ccode\u003eNOT_FOUND\u003c/code\u003e, \u003ccode\u003eINVALID_PLAN\u003c/code\u003e, \u003ccode\u003eSKU_CHANGE_NOT_ALLOWED\u003c/code\u003e, and technical errors denoted by \u003ccode\u003eINTERNAL\u003c/code\u003e or \u003ccode\u003eUNKNOWN\u003c/code\u003e, indicating potential issues during the update.\u003c/p\u003e\n"],["\u003cp\u003eUpon successful execution, the method returns the ID of a long-running operation, the progress of which can be tracked using the \u003ccode\u003eoperations.get\u003c/code\u003e method of CloudChannelOperationsService, with the operation metadata containing an instance of \u003ccode\u003eOperationMetadata\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Method: accounts.customers.entitlements.changePlan\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [Try it!](#try-it)\n\n| This item is deprecated!\nUpdates the plan for an existing customer entitlement.\n\nAn entitlement update is a long-running operation and it updates the entitlement as a result of fulfillment.\n\nPossible error codes:\n\n- PERMISSION_DENIED: The customer doesn't belong to the reseller.\n- INVALID_ARGUMENT: Required request parameters are missing or invalid.\n- NOT_FOUND: Offer or Entitlement resource not found.\n- INVALID_PLAN: Can't update a commitment based plan to a flex plan in the middle of the commitment period.\n- SKU_CHANGE_NOT_ALLOWED: OfferId pertains to a different SKU.\n- INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support.\n- UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support.\n\nReturn value: The ID of a long-running operation.\n\nTo get the results of the operation, call the operations.get method of CloudChannelOperationsService. The Operation metadata will contain an instance of `OperationMetadata`.\n\nDeprecated: Use `entitlements.changeOffer` instead.\n\n### HTTP request\n\n`POST https://cloudchannel.googleapis.com/v1alpha1/{name=accounts/*/customers/*/entitlements/*}:changePlan`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n### Request body\n\nThe request body contains data with the following structure:\n\n### Response body\n\nIf successful, the response body contains an instance of [Operation](/channel/docs/reference/rest/Shared.Types/ListOperationsResponse#Operation).\n\n### Authorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/apps.order`\n\nFor more information, see the [Authentication Overview](/docs/authentication#authorization-gcp)."]]