  def PrepareCreateVolumeCopyCmd(
      zone: str,
      dst_zone: Optional[str] = None,
      instance_id: Optional[str] = None,
      volume_id: Optional[str] = None) -> str:
    """Wrapper around the CLI tool to create a volume copy.

    Args:
      zone (str): The AWS zone in which the volume is located, e.g.
          'us-east-2b'.
      dst_zone (str): Optional. The AWS zone in which to create the volume
        copy. By default, this is the same as 'zone'.
      instance_id (str): Optional. Instance ID of the instance using the volume
          to be copied. If specified, the boot volume of the instance will be
          copied. If volume_id is also specified, then the volume pointed by
          that volume_id will be copied.
      volume_id (str): Optional. ID of the volume to copy. If not set,
          then instance_id needs to be set and the boot volume will be copied.

    Returns:
      str: The CLI command to run.
    """
    cmd = 'cloudforensics aws {0:s} copydisk'.format(zone)
    if instance_id:
      cmd += ' --instance_id={0:s}'.format(instance_id)
    elif volume_id:
      cmd += ' --volume_id={0:s}'.format(volume_id)
    if dst_zone:
      cmd += ' --dst_zone={0:s}'.format(dst_zone)
    logger.info('CLI command: {0:s}'.format(cmd))
    return cmd
Wrapper around the CLI tool to create a volume copy.

Args:
zone (str): The AWS zone in which the volume is located, e.g.
'us-east-2b'.
dst_zone (str): Optional. The AWS zone in which to create the volume
copy. By default, this is the same as 'zone'.
instance_id (str): Optional. Instance ID of the instance using the volume
to be copied. If specified, the boot volume of the instance will be
copied. If volume_id is also specified, then the volume pointed by
that volume_id will be copied.
volume_id (str): Optional. ID of the volume to copy. If not set,
then instance_id needs to be set and the boot volume will be copied.

Returns:
str: The CLI command to run.
tests/providers/aws/aws_cli.py