diff --git a/core/modules/migrate/src/Plugin/migrate/process/FileCopy.php b/core/modules/migrate/src/Plugin/migrate/process/FileCopy.php
index 9aa5900..25eb5b4 100644
--- a/core/modules/migrate/src/Plugin/migrate/process/FileCopy.php
+++ b/core/modules/migrate/src/Plugin/migrate/process/FileCopy.php
@@ -14,7 +14,37 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Copy a file from one place into another.
+ * Copies or moves a local file from one place into another.
+ *
+ * The file_copy process plugin copies a file from one location to another.
+ * Optionally, the file can be moved, reused, or set to be automatically renamed
+ * if a duplicate exists.
+ *
+ * The source value is an array of two values:
+ * - source: The source path or URI, e.g. /path/to/foo.txt or
+ *   public://bar.txt.
+ * - destination: The destination path or URI, e.g. /path/to/bar.txt or
+ *   public://foo.txt.
+ *
+ * Available configuration keys:
+ * - move: (optional) Boolean, if TRUE, move the file, otherwise copy the file.
+ *   Defaults to FALSE.
+ * - rename: (optional) Boolean, if TRUE, rename the file by appending a number
+ *   until the name is unique. Defaults to FALSE.
+ * - reuse: (optional) Boolean, if TRUE, reuse the current file in its existing
+ *   location rather than move/copy/rename the file. Defaults to FALSE.
+ *
+ * Examples:
+ *
+ * @code
+ * process:
+ *   path_to_file:
+ *     plugin: file_copy
+ *     source: /path/to/file.png
+ *     destination: /new/path/to/file.png
+ * @endcode
+ *
+ * @see \Drupal\migrate\Plugin\MigrateProcessInterface
  *
  * @MigrateProcessPlugin(
  *   id = "file_copy"
@@ -86,7 +116,22 @@ public static function create(ContainerInterface $container, array $configuratio
   }
 
   /**
-   * {@inheritdoc}
+   * Performs the associated process.
+   *
+   * @param string $value
+   *   The input string.
+   * @param \Drupal\migrate\MigrateExecutableInterface $migrate_executable
+   *   The migration in which this process is being executed.
+   * @param \Drupal\migrate\Row $row
+   *   The row from the source to process.
+   * @param string $destination_property
+   *   The destination property currently worked on. This is only used together
+   *   with the $row above.
+   *
+   * @return string
+   *   The sub string of $value.
+   *
+   * @throws \Drupal\migrate\MigrateException
    */
   public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
     // If we're stubbing a file entity, return a URI of NULL so it will get
