docs: def save_snapshot(self, si, logger, vm_uuid, snapshot_name, save_memory):
          """
          Creates a snapshot of the current state of the virtual machine
  
          :param vim.ServiceInstance si: py_vmomi service instance
          :type si: vim.ServiceInstance
          :param logger: Logger
          :type logger: cloudshell.core.logger.qs_logger.get_qs_logger
          :param vm_uuid: UUID of the virtual machine
          :type vm_uuid: str
          :param snapshot_name: Snapshot name to save the snapshot to
          :type snapshot_name: str
          :param save_memory: Snapshot the virtual machine's memory. Lookup, Yes / No
          :type save_memory: str
          """
          vm = self.pyvmomi_service.find_by_uuid(si, vm_uuid)
  
          snapshot_path_to_be_created = SaveSnapshotCommand._get_snapshot_name_to_be_created(snapshot_name, vm)
  
          save_vm_memory_to_snapshot = SaveSnapshotCommand._get_save_vm_memory_to_snapshot(save_memory)
  
          SaveSnapshotCommand._verify_snapshot_uniquness(snapshot_path_to_be_created, vm)
  
          task = self._create_snapshot(logger, snapshot_name, vm, save_vm_memory_to_snapshot)
  
          self.task_waiter.wait_for_task(task=task, logger=logger, action_name='Create Snapshot')
          return snapshot_path_to_be_created