code: public Observable<Void> updatePropertiesAsync(String poolId, PoolUpdatePropertiesParameter poolUpdatePropertiesParameter, PoolUpdatePropertiesOptions poolUpdatePropertiesOptions) {
          return updatePropertiesWithServiceResponseAsync(poolId, poolUpdatePropertiesParameter, poolUpdatePropertiesOptions).map(new Func1<ServiceResponseWithHeaders<Void, PoolUpdatePropertiesHeaders>, Void>() {
              @Override
              public Void call(ServiceResponseWithHeaders<Void, PoolUpdatePropertiesHeaders> response) {
                  return response.body();
              }
          });
      }
docs: Updates the properties of the specified pool.
  This fully replaces all the updatable properties of the pool. For example, if the pool has a start task associated with it and if start task is not specified with this request, then the Batch service will remove the existing start task.
  
  @param poolId The ID of the pool to update.
  @param poolUpdatePropertiesParameter The parameters for the request.
  @param poolUpdatePropertiesOptions Additional parameters for the operation
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the {@link ServiceResponseWithHeaders} object if successful.