The NodeGroupControllerService provides methods to manage node groups of Compute Engine managed instances.
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.
Required. The parent resource where this node group will be created. Format: projects/{project}/regions/{region}/clusters/{cluster}
node_group
google::cloud::dataproc::v1::NodeGroup const &
Required. The node group to create.
node_group_id
std::string const &
Optional. An optional node group ID. Generated if not specified.
The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of from 3 to 33 characters.
opts
Options
Optional. Override the class-level options, such as retry and backoff policies.
A future that becomes satisfied when the LRO (Long Running Operation) completes or the polling policy in effect for this call is exhausted. The future is satisfied with an error if the LRO completes with an error or the polling policy is exhausted. In this case the StatusOr returned by the future contains the error. If the LRO completes successfully the value of the future contains the LRO's result. For this RPC the result is a google.cloud.dataproc.v1.NodeGroup proto message. The C++ class representing this message is created by Protobuf, using the Protobuf mapping rules.
Specifying the NoAwaitTag immediately returns the [google::longrunning::Operation] that corresponds to the Long Running Operation that has been started. No polling for operation status occurs.
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.cloud.dataproc.v1.CreateNodeGroupRequest. 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.
A future that becomes satisfied when the LRO (Long Running Operation) completes or the polling policy in effect for this call is exhausted. The future is satisfied with an error if the LRO completes with an error or the polling policy is exhausted. In this case the StatusOr returned by the future contains the error. If the LRO completes successfully the value of the future contains the LRO's result. For this RPC the result is a google.cloud.dataproc.v1.NodeGroup proto message. The C++ class representing this message is created by Protobuf, using the Protobuf mapping rules.
Specifying the NoAwaitTag immediately returns the [google::longrunning::Operation] that corresponds to the Long Running Operation that has been started. No polling for operation status occurs.
This method accepts a google::longrunning::Operation that corresponds to a previously started Long Running Operation (LRO) and polls the status of the LRO in the background.
Required. The name of the node group to resize. Format: projects/{project}/regions/{region}/clusters/{cluster}/nodeGroups/{nodeGroup}
size
std::int32_t
Required. The number of running instances for the node group to maintain. The group adds or removes instances to maintain the number of instances specified by this parameter.
opts
Options
Optional. Override the class-level options, such as retry and backoff policies.
A future that becomes satisfied when the LRO (Long Running Operation) completes or the polling policy in effect for this call is exhausted. The future is satisfied with an error if the LRO completes with an error or the polling policy is exhausted. In this case the StatusOr returned by the future contains the error. If the LRO completes successfully the value of the future contains the LRO's result. For this RPC the result is a google.cloud.dataproc.v1.NodeGroup proto message. The C++ class representing this message is created by Protobuf, using the Protobuf mapping rules.
Specifying the NoAwaitTag immediately returns the [google::longrunning::Operation] that corresponds to the Long Running Operation that has been started. No polling for operation status occurs.
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.cloud.dataproc.v1.ResizeNodeGroupRequest. 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.
A future that becomes satisfied when the LRO (Long Running Operation) completes or the polling policy in effect for this call is exhausted. The future is satisfied with an error if the LRO completes with an error or the polling policy is exhausted. In this case the StatusOr returned by the future contains the error. If the LRO completes successfully the value of the future contains the LRO's result. For this RPC the result is a google.cloud.dataproc.v1.NodeGroup proto message. The C++ class representing this message is created by Protobuf, using the Protobuf mapping rules.
Specifying the NoAwaitTag immediately returns the [google::longrunning::Operation] that corresponds to the Long Running Operation that has been started. No polling for operation status occurs.
This method accepts a google::longrunning::Operation that corresponds to a previously started Long Running Operation (LRO) and polls the status of the LRO in the background.
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.cloud.dataproc.v1.GetNodeGroupRequest. 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\u003eThe webpage provides documentation for the \u003ccode\u003eNodeGroupControllerClient\u003c/code\u003e class, which manages node groups in Google Cloud Dataproc clusters, with version information ranging from \u003ccode\u003e2.11.0\u003c/code\u003e to \u003ccode\u003e2.37.0-rc\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eNodeGroupControllerClient\u003c/code\u003e class offers methods to create, resize, and get information about node groups, including the ability to use Long Running Operations (LROs) for asynchronous tasks.\u003c/p\u003e\n"],["\u003cp\u003eCreating new instances of the \u003ccode\u003eNodeGroupControllerClient\u003c/code\u003e is resource-intensive, but copying or moving instances is efficient as they share underlying resources.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eNodeGroupControllerService\u003c/code\u003e allows for concurrent access to different instances of the class, but operating on the same instance from multiple threads is not guaranteed to work.\u003c/p\u003e\n"],["\u003cp\u003eMethods like \u003ccode\u003eCreateNodeGroup\u003c/code\u003e and \u003ccode\u003eResizeNodeGroup\u003c/code\u003e return a \u003ccode\u003efuture\u003c/code\u003e that resolves to a \u003ccode\u003eNodeGroup\u003c/code\u003e object upon completion, or a \u003ccode\u003eStatusOr\u003c/code\u003e containing error information if the operation fails.\u003c/p\u003e\n"]]],[],null,["# Class NodeGroupControllerClient (2.26.0)\n\nVersion 2.26.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/dataproc/latest/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.41.0](/cpp/docs/reference/dataproc/2.41.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.40.0](/cpp/docs/reference/dataproc/2.40.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.39.0](/cpp/docs/reference/dataproc/2.39.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.38.0](/cpp/docs/reference/dataproc/2.38.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.37.0](/cpp/docs/reference/dataproc/2.37.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.36.0](/cpp/docs/reference/dataproc/2.36.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.35.0](/cpp/docs/reference/dataproc/2.35.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.34.0](/cpp/docs/reference/dataproc/2.34.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.33.0](/cpp/docs/reference/dataproc/2.33.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.32.0](/cpp/docs/reference/dataproc/2.32.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.31.0](/cpp/docs/reference/dataproc/2.31.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.30.0](/cpp/docs/reference/dataproc/2.30.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.29.0](/cpp/docs/reference/dataproc/2.29.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.28.0](/cpp/docs/reference/dataproc/2.28.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.27.0](/cpp/docs/reference/dataproc/2.27.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.26.0](/cpp/docs/reference/dataproc/2.26.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.25.1](/cpp/docs/reference/dataproc/2.25.1/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.24.0](/cpp/docs/reference/dataproc/2.24.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.23.0](/cpp/docs/reference/dataproc/2.23.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.22.1](/cpp/docs/reference/dataproc/2.22.1/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.21.0](/cpp/docs/reference/dataproc/2.21.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.20.0](/cpp/docs/reference/dataproc/2.20.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.19.0](/cpp/docs/reference/dataproc/2.19.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.18.0](/cpp/docs/reference/dataproc/2.18.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.17.0](/cpp/docs/reference/dataproc/2.17.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.16.0](/cpp/docs/reference/dataproc/2.16.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.15.1](/cpp/docs/reference/dataproc/2.15.1/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.14.0](/cpp/docs/reference/dataproc/2.14.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.13.0](/cpp/docs/reference/dataproc/2.13.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.12.0](/cpp/docs/reference/dataproc/2.12.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient)\n- [2.11.0](/cpp/docs/reference/dataproc/2.11.0/classgoogle_1_1cloud_1_1dataproc__v1_1_1NodeGroupControllerClient) \nThe `NodeGroupControllerService` provides methods to manage node groups of Compute Engine managed instances. \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### NodeGroupControllerClient(NodeGroupControllerClient const \\&)\n\nCopy and move support\n\n### NodeGroupControllerClient(NodeGroupControllerClient \\&\\&)\n\nCopy and move support\n\n### NodeGroupControllerClient(std::shared_ptr\\\u003c NodeGroupControllerConnection \\\u003e, Options)\n\nOperators\n---------\n\n### operator=(NodeGroupControllerClient const \\&)\n\nCopy and move support\n\n### operator=(NodeGroupControllerClient \\&\\&)\n\nCopy and move support\n\nFunctions\n---------\n\n### CreateNodeGroup(std::string const \\&, google::cloud::dataproc::v1::NodeGroup const \\&, std::string const \\&, Options)\n\nCreates a node group in a cluster. \nThe returned [Operation.metadata](https://github.com/googleapis/googleapis/blob/622e10a1e8b2b6908e0ac7448d347a0c1b4130de/google/longrunning/operations.proto#L138) is [NodeGroupOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#nodegroupoperationmetadata).\n\n### CreateNodeGroup(ExperimentalTag, NoAwaitTag, std::string const \\&, google::cloud::dataproc::v1::NodeGroup const \\&, std::string const \\&, Options)\n\nCreates a node group in a cluster. \nSpecifying the [`NoAwaitTag`](https://cloud.google.com/cpp/docs/reference/common/latest/structgoogle_1_1cloud_1_1NoAwaitTag.html) immediately returns the \\[`google::longrunning::Operation`\\] that corresponds to the Long Running Operation that has been started. No polling for operation status occurs.\n\n### CreateNodeGroup(google::cloud::dataproc::v1::CreateNodeGroupRequest const \\&, Options)\n\nCreates a node group in a cluster. \nThe returned [Operation.metadata](https://github.com/googleapis/googleapis/blob/622e10a1e8b2b6908e0ac7448d347a0c1b4130de/google/longrunning/operations.proto#L138) is [NodeGroupOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#nodegroupoperationmetadata).\n\n### CreateNodeGroup(ExperimentalTag, NoAwaitTag, google::cloud::dataproc::v1::CreateNodeGroupRequest const \\&, Options)\n\nCreates a node group in a cluster. \nSpecifying the [`NoAwaitTag`](https://cloud.google.com/cpp/docs/reference/common/latest/structgoogle_1_1cloud_1_1NoAwaitTag.html) immediately returns the \\[`google::longrunning::Operation`\\] that corresponds to the Long Running Operation that has been started. No polling for operation status occurs.\n\n### CreateNodeGroup(ExperimentalTag, google::longrunning::Operation const \\&, Options)\n\nCreates a node group in a cluster. \nThis method accepts a `google::longrunning::Operation` that corresponds to a previously started Long Running Operation (LRO) and polls the status of the LRO in the background.\n\n### ResizeNodeGroup(std::string const \\&, std::int32_t, Options)\n\nResizes a node group in a cluster. \nThe returned [Operation.metadata](https://github.com/googleapis/googleapis/blob/622e10a1e8b2b6908e0ac7448d347a0c1b4130de/google/longrunning/operations.proto#L138) is [NodeGroupOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#nodegroupoperationmetadata).\n\n### ResizeNodeGroup(ExperimentalTag, NoAwaitTag, std::string const \\&, std::int32_t, Options)\n\nResizes a node group in a cluster. \nSpecifying the [`NoAwaitTag`](https://cloud.google.com/cpp/docs/reference/common/latest/structgoogle_1_1cloud_1_1NoAwaitTag.html) immediately returns the \\[`google::longrunning::Operation`\\] that corresponds to the Long Running Operation that has been started. No polling for operation status occurs.\n\n### ResizeNodeGroup(google::cloud::dataproc::v1::ResizeNodeGroupRequest const \\&, Options)\n\nResizes a node group in a cluster. \nThe returned [Operation.metadata](https://github.com/googleapis/googleapis/blob/622e10a1e8b2b6908e0ac7448d347a0c1b4130de/google/longrunning/operations.proto#L138) is [NodeGroupOperationMetadata](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#nodegroupoperationmetadata).\n\n### ResizeNodeGroup(ExperimentalTag, NoAwaitTag, google::cloud::dataproc::v1::ResizeNodeGroupRequest const \\&, Options)\n\nResizes a node group in a cluster. \nSpecifying the [`NoAwaitTag`](https://cloud.google.com/cpp/docs/reference/common/latest/structgoogle_1_1cloud_1_1NoAwaitTag.html) immediately returns the \\[`google::longrunning::Operation`\\] that corresponds to the Long Running Operation that has been started. No polling for operation status occurs.\n\n### ResizeNodeGroup(ExperimentalTag, google::longrunning::Operation const \\&, Options)\n\nResizes a node group in a cluster. \nThis method accepts a `google::longrunning::Operation` that corresponds to a previously started Long Running Operation (LRO) and polls the status of the LRO in the background.\n\n### GetNodeGroup(std::string const \\&, Options)\n\nGets the resource representation for a node group in a cluster.\n\n### GetNodeGroup(google::cloud::dataproc::v1::GetNodeGroupRequest const \\&, Options)\n\nGets the resource representation for a node group in a cluster."]]