code: public OperationFuture<Server> modify(Server server, ModifyServerConfig modifyServerConfig) {
          List<ModifyServerRequest> request = serverConverter.buildModifyServerRequest(modifyServerConfig,
              modifyServerConfig.getCustomFields().isEmpty() ? null : client.getCustomFields());
  
          Link response = client.modify(idByRef(server), request);
  
          OperationFuture<Server> modifyServerFuture;
  
          if (response == null) {
              modifyServerFuture = new OperationFuture<>(
                  server,
                  new NoWaitingJobFuture()
              );
          } else {
              modifyServerFuture = new OperationFuture<>(
                  server,
                  response.getId(),
                  queueClient
              );
          }
  
          if (modifyServerConfig.getMachineConfig() != null &&
              modifyServerConfig.getMachineConfig().getAutoscalePolicy() != null) {
  
              return new OperationFuture<>(
                  server,
                  new ParallelJobsFuture(
                      modifyServerFuture.jobFuture(),
                      autoscalePolicyServiceSupplier.get().setAutoscalePolicyOnServer(
                          modifyServerConfig.getMachineConfig().getAutoscalePolicy(), server
                      ).jobFuture()
                  )
              );
          }
  
          return modifyServerFuture;
      }
docs: Modify existing server
  @param server server reference
  @param modifyServerConfig server config
  @return OperationFuture wrapper for ServerRef