code: @Override
      public RestoreServerResult restoreServer(RestoreServerRequest request) {
          request = beforeClientExecution(request);
          return executeRestoreServer(request);
      }
docs: <p>
  Restores a backup to a server that is in a <code>CONNECTION_LOST</code>, <code>HEALTHY</code>,
  <code>RUNNING</code>, <code>UNHEALTHY</code>, or <code>TERMINATED</code> state. When you run RestoreServer, the
  server's EC2 instance is deleted, and a new EC2 instance is configured. RestoreServer maintains the existing
  server endpoint, so configuration management of the server's client devices (nodes) should continue to work.
  </p>
  <p>
  This operation is asynchronous.
  </p>
  <p>
  An <code>InvalidStateException</code> is thrown when the server is not in a valid state. A
  <code>ResourceNotFoundException</code> is thrown when the server does not exist. A
  <code>ValidationException</code> is raised when parameters of the request are not valid.
  </p>
  
  @param restoreServerRequest
  @return Result of the RestoreServer operation returned by the service.
  @throws InvalidStateException
  The resource is in a state that does not allow you to perform a specified action.
  @throws ResourceNotFoundException
  The requested resource does not exist, or access was denied.
  @throws ValidationException
  One or more of the provided request parameters are not valid.
  @sample AWSOpsWorksCM.RestoreServer
  @see <a href="http://docs.aws.amazon.com/goto/WebAPI/opsworkscm-2016-11-01/RestoreServer" target="_top">AWS API
  Documentation</a>