Dataproc/src/V1beta2/Gapic/ClusterControllerGapicClient.php
public function updateCluster($projectId, $region, $clusterName, $cluster, $updateMask, array $optionalArgs = [])
    {
        $request = new UpdateClusterRequest();
        $request->setProjectId($projectId);
        $request->setRegion($region);
        $request->setClusterName($clusterName);
        $request->setCluster($cluster);
        $request->setUpdateMask($updateMask);
        if (isset($optionalArgs['gracefulDecommissionTimeout'])) {
            $request->setGracefulDecommissionTimeout($optionalArgs['gracefulDecommissionTimeout']);
        }
        if (isset($optionalArgs['requestId'])) {
            $request->setRequestId($optionalArgs['requestId']);
        }

        return $this->startOperationsCall(
            'UpdateCluster',
            $optionalArgs,
            $request,
            $this->getOperationsClient()
        )->wait();
    }
public function updateCluster($projectId, $region, $clusterName, $cluster, $updateMask, array $optionalArgs = [])
    {
        $request = new UpdateClusterRequest();
        $request->setProjectId($projectId);
        $request->setRegion($region);
        $request->setClusterName($clusterName);
        $request->setCluster($cluster);
        $request->setUpdateMask($updateMask);
        if (isset($optionalArgs['gracefulDecommissionTimeout'])) {
            $request->setGracefulDecommissionTimeout($optionalArgs['gracefulDecommissionTimeout']);
        }
        if (isset($optionalArgs['requestId'])) {
            $request->setRequestId($optionalArgs['requestId']);
        }

        return $this->startOperationsCall(
            'UpdateCluster',
            $optionalArgs,
            $request,
            $this->getOperationsClient()
        )->wait();
    }
public function updateCluster ( $ projectId , $ region , $ clusterName , $ cluster , $ updateMask , array $ optionalArgs = [ ] ) { $ request = new UpdateClusterRequest ( ) ; $ request -> setProjectId ( $ projectId ) ; $ request -> setRegion ( $ region ) ; $ request -> setClusterName ( $ clusterName ) ; $ request -> setCluster ( $ cluster ) ; $ request -> setUpdateMask ( $ updateMask ) ; if ( isset ( $ optionalArgs [ 'gracefulDecommissionTimeout' ] ) ) { $ request -> setGracefulDecommissionTimeout ( $ optionalArgs [ 'gracefulDecommissionTimeout' ] ) ; } if ( isset ( $ optionalArgs [ 'requestId' ] ) ) { $ request -> setRequestId ( $ optionalArgs [ 'requestId' ] ) ; } return $ this -> startOperationsCall ( 'UpdateCluster' , $ optionalArgs , $ request , $ this -> getOperationsClient ( ) ) -> wait ( ) ; }
Updates a cluster in a project.

Sample code:
```
$clusterControllerClient = new ClusterControllerClient();
try {
$projectId = '';
$region = '';
$clusterName = '';
$cluster = new Cluster();
$updateMask = new FieldMask();
$operationResponse = $clusterControllerClient->updateCluster($projectId, $region, $clusterName, $cluster, $updateMask);
$operationResponse->pollUntilComplete();
if ($operationResponse->operationSucceeded()) {
$result = $operationResponse->getResult();
// doSomethingWith($result)
} else {
$error = $operationResponse->getError();
// handleError($error)
}


// Alternatively:

// start the operation, keep the operation name, and resume later
$operationResponse = $clusterControllerClient->updateCluster($projectId, $region, $clusterName, $cluster, $updateMask);
$operationName = $operationResponse->getName();
// ... do other work
$newOperationResponse = $clusterControllerClient->resumeOperation($operationName, 'updateCluster');
while (!$newOperationResponse->isDone()) {
// ... do other work
$newOperationResponse->reload();
}
if ($newOperationResponse->operationSucceeded()) {
$result = $newOperationResponse->getResult();
// doSomethingWith($result)
} else {
$error = $newOperationResponse->getError();
// handleError($error)
}
} finally {
$clusterControllerClient->close();
}
```

@param string    $projectId   Required. The ID of the Google Cloud Platform project the
cluster belongs to.
@param string    $region      Required. The Cloud Dataproc region in which to handle the request.
@param string    $clusterName Required. The cluster name.
@param Cluster   $cluster     Required. The changes to the cluster.
@param FieldMask $updateMask  Required. Specifies the path, relative to `Cluster`, of
the field to update. For example, to change the number of workers
in a cluster to 5, the `update_mask` parameter would be
specified as `config.worker_config.num_instances`,
and the `PATCH` request body would specify the new value, as follows:

{
"config":{
"workerConfig":{
"numInstances":"5"
}
}
}

Similarly, to change the number of preemptible workers in a cluster to 5,
the `update_mask` parameter would be
`config.secondary_worker_config.num_instances`, and the `PATCH` request
body would be set as follows:

{
"config":{
"secondaryWorkerConfig":{
"numInstances":"5"
}
}
}
<strong>Note:</strong> currently only the following fields can be updated:

<table>
<tr>
<td><strong>Mask</strong></td><td><strong>Purpose</strong></td>
</tr>
<tr>
<td>labels</td><td>Updates labels</td>
</tr>
<tr>
<td>config.worker_config.num_instances</td><td>Resize primary worker
group</td>
</tr>
<tr>
<td>config.secondary_worker_config.num_instances</td><td>Resize secondary
worker group</td>
</tr>
<tr>
<td>config.lifecycle_config.auto_delete_ttl</td><td>Reset MAX TTL
duration</td>
</tr>
<tr>
<td>config.lifecycle_config.auto_delete_time</td><td>Update MAX TTL
deletion timestamp</td>
</tr>
<tr>
<td>config.lifecycle_config.idle_delete_ttl</td><td>Update Idle TTL
duration</td>
</tr>
</table>
@param array $optionalArgs {
Optional.

@type Duration $gracefulDecommissionTimeout
Optional. Timeout for graceful YARN decomissioning. Graceful
decommissioning allows removing nodes from the cluster without
interrupting jobs in progress. Timeout specifies how long to wait for jobs
in progress to finish before forcefully removing nodes (and potentially
interrupting jobs). Default timeout is 0 (for forceful decommission), and
the maximum allowed timeout is 1 day.

Only supported on Dataproc image versions 1.2 and higher.
@type string $requestId
Optional. A unique id used to identify the request. If the server
receives two
[UpdateClusterRequest][google.cloud.dataproc.v1beta2.UpdateClusterRequest]
requests  with the same id, then the second request will be ignored and the
first [google.longrunning.Operation][google.longrunning.Operation] created
and stored in the backend is returned.

It is recommended to always set this value to a
[UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier).

The id must contain only letters (a-z, A-Z), numbers (0-9),
underscores (_), and hyphens (-). The maximum length is 40 characters.
@type RetrySettings|array $retrySettings
Retry settings to use for this call. Can be a
{@see Google\ApiCore\RetrySettings} object, or an associative array
of retry settings parameters. See the documentation on
{@see Google\ApiCore\RetrySettings} for example usage.
}

@return \Google\ApiCore\OperationResponse

@throws ApiException if the remote call fails
@experimental
Updates a cluster in a project .