Allows clients to allocate and release quota against a managed service.
Equality
Instances of this class created via copy-construction or copy-assignment always compare equal. Instances created with equal std::shared_ptr<*Connection> objects compare equal. Objects that compare equal share the same underlying resources.
Performance
Creating a new instance of this class is a relatively expensive operation, new objects establish new connections to the service. In contrast, copy-construction, move-construction, and the corresponding assignment operations are relatively efficient as the copies share all underlying resources.
Thread Safety
Concurrent access to different instances of this class, even if they compare equal, is guaranteed to work. Two or more threads operating on the same instance of this class is not guaranteed to work. Since copy-construction and move-construction is a relatively efficient operation, consider using such a copy when using this class from multiple threads.
Attempts to allocate quota for the specified consumer.
It should be called before the operation is executed.
This method requires the servicemanagement.services.quota permission on the specified service. For more information, see Cloud IAM.
NOTE: The client must fail-open on server errors INTERNAL, UNKNOWN, DEADLINE_EXCEEDED, and UNAVAILABLE. To ensure system reliability, the server may inject these errors to prohibit any hard dependency on the quota functionality.
Unary RPCs, such as the one wrapped by this function, receive a single request proto message which includes all the inputs for the RPC. In this case, the proto message is a google.api.servicecontrol.v1.AllocateQuotaRequest. Proto messages are converted to C++ classes by Protobuf, using the Protobuf mapping rules.
opts
Options
Optional. Override the class-level options, such as retry and backoff policies.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["\u003cp\u003eThis webpage provides documentation for the Google Quota Control API, which allows clients to allocate and release quota against a managed service.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version available is 2.37.0-rc, and the webpage lists multiple prior versions down to 2.11.0, each with a link to its documentation for \u003ccode\u003eQuotaControllerClient\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eCreating a new instance of \u003ccode\u003eQuotaControllerClient\u003c/code\u003e is resource-intensive as it establishes a new service connection, but copying instances is efficient as they share the same underlying resources.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eAllocateQuota\u003c/code\u003e function enables quota allocation for a specified consumer and should be invoked before an operation is executed, with the requirement of \u003ccode\u003eservicemanagement.services.quota\u003c/code\u003e permission.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eAllocateQuota\u003c/code\u003e function is susceptible to server errors such as \u003ccode\u003eINTERNAL\u003c/code\u003e, \u003ccode\u003eUNKNOWN\u003c/code\u003e, \u003ccode\u003eDEADLINE_EXCEEDED\u003c/code\u003e, and \u003ccode\u003eUNAVAILABLE\u003c/code\u003e, on which the client should fail-open to ensure system reliability.\u003c/p\u003e\n"]]],[],null,["# Class QuotaControllerClient (2.11.0)\n\nVersion 2.11.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/servicecontrol/latest/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.41.0](/cpp/docs/reference/servicecontrol/2.41.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.40.0](/cpp/docs/reference/servicecontrol/2.40.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.39.0](/cpp/docs/reference/servicecontrol/2.39.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.38.0](/cpp/docs/reference/servicecontrol/2.38.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.37.0](/cpp/docs/reference/servicecontrol/2.37.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.36.0](/cpp/docs/reference/servicecontrol/2.36.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.35.0](/cpp/docs/reference/servicecontrol/2.35.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.34.0](/cpp/docs/reference/servicecontrol/2.34.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.33.0](/cpp/docs/reference/servicecontrol/2.33.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.32.0](/cpp/docs/reference/servicecontrol/2.32.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.31.0](/cpp/docs/reference/servicecontrol/2.31.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.30.0](/cpp/docs/reference/servicecontrol/2.30.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.29.0](/cpp/docs/reference/servicecontrol/2.29.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.28.0](/cpp/docs/reference/servicecontrol/2.28.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.27.0](/cpp/docs/reference/servicecontrol/2.27.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.26.0](/cpp/docs/reference/servicecontrol/2.26.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.25.1](/cpp/docs/reference/servicecontrol/2.25.1/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.24.0](/cpp/docs/reference/servicecontrol/2.24.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.23.0](/cpp/docs/reference/servicecontrol/2.23.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.22.1](/cpp/docs/reference/servicecontrol/2.22.1/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.21.0](/cpp/docs/reference/servicecontrol/2.21.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.20.0](/cpp/docs/reference/servicecontrol/2.20.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.19.0](/cpp/docs/reference/servicecontrol/2.19.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.18.0](/cpp/docs/reference/servicecontrol/2.18.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.17.0](/cpp/docs/reference/servicecontrol/2.17.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.16.0](/cpp/docs/reference/servicecontrol/2.16.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.15.1](/cpp/docs/reference/servicecontrol/2.15.1/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.14.0](/cpp/docs/reference/servicecontrol/2.14.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.13.0](/cpp/docs/reference/servicecontrol/2.13.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.12.0](/cpp/docs/reference/servicecontrol/2.12.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient)\n- [2.11.0](/cpp/docs/reference/servicecontrol/2.11.0/classgoogle_1_1cloud_1_1servicecontrol__v1_1_1QuotaControllerClient) \n[Google Quota Control API](/service-control/overview) \nAllows clients to allocate and release quota against a [managed service](https://cloud.google.com/service-management/reference/rpc/google.api/servicemanagement.v1#google.api.servicemanagement.v1.ManagedService).\n\n###### Equality\n\nInstances of this class created via copy-construction or copy-assignment always compare equal. Instances created with equal `std::shared_ptr\u003c*Connection\u003e` objects compare equal. Objects that compare equal share the same underlying resources.\n\n###### Performance\n\nCreating a new instance of this class is a relatively expensive operation, new objects establish new connections to the service. In contrast, copy-construction, move-construction, and the corresponding assignment operations are relatively efficient as the copies share all underlying resources.\n\n###### Thread Safety\n\nConcurrent access to different instances of this class, even if they compare equal, is guaranteed to work. Two or more threads operating on the same instance of this class is not guaranteed to work. Since copy-construction and move-construction is a relatively efficient operation, consider using such a copy when using this class from multiple threads.\n\nConstructors\n------------\n\n### QuotaControllerClient(QuotaControllerClient const \\&)\n\nCopy and move support\n\n### QuotaControllerClient(QuotaControllerClient \\&\\&)\n\nCopy and move support\n\n### QuotaControllerClient(std::shared_ptr\\\u003c QuotaControllerConnection \\\u003e, Options)\n\nOperators\n---------\n\n### operator=(QuotaControllerClient const \\&)\n\nCopy and move support\n\n### operator=(QuotaControllerClient \\&\\&)\n\nCopy and move support\n\nFunctions\n---------\n\n### AllocateQuota(google::api::servicecontrol::v1::AllocateQuotaRequest const \\&, Options)\n\nAttempts to allocate quota for the specified consumer. \nIt should be called before the operation is executed.\n\nThis method requires the `servicemanagement.services.quota` permission on the specified service. For more information, see [Cloud IAM](https://cloud.google.com/iam).\n\n**NOTE:** The client **must** fail-open on server errors `INTERNAL`, `UNKNOWN`, `DEADLINE_EXCEEDED`, and `UNAVAILABLE`. To ensure system reliability, the server may inject these errors to prohibit any hard dependency on the quota functionality."]]