code: @Override
      public RestoreFromSnapshotResult restoreFromSnapshot(RestoreFromSnapshotRequest request) {
          request = beforeClientExecution(request);
          return executeRestoreFromSnapshot(request);
      }
docs: <p>
  Restores a directory using an existing directory snapshot.
  </p>
  <p>
  When you restore a directory from a snapshot, any changes made to the directory after the snapshot date are
  overwritten.
  </p>
  <p>
  This action returns as soon as the restore operation is initiated. You can monitor the progress of the restore
  operation by calling the <a>DescribeDirectories</a> operation with the directory identifier. When the
  <b>DirectoryDescription.Stage</b> value changes to <code>Active</code>, the restore operation is complete.
  </p>
  
  @param restoreFromSnapshotRequest
  An object representing the inputs for the <a>RestoreFromSnapshot</a> operation.
  @return Result of the RestoreFromSnapshot operation returned by the service.
  @throws EntityDoesNotExistException
  The specified entity could not be found.
  @throws InvalidParameterException
  One or more parameters are not valid.
  @throws ClientException
  A client exception has occurred.
  @throws ServiceException
  An exception has occurred in AWS Directory Service.
  @sample AWSDirectoryService.RestoreFromSnapshot
  @see <a href="http://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RestoreFromSnapshot" target="_top">AWS API
  Documentation</a>