code: func validateCloneSnapshots(props *mo.VirtualMachine) error {
  	if props.Snapshot == nil {
  		return fmt.Errorf("virtual machine or template %s must have a snapshot to be used as a linked clone", props.Config.Uuid)
  	}
  	// Root snapshot list can only have a singular element
  	if len(props.Snapshot.RootSnapshotList) != 1 {
  		return fmt.Errorf("virtual machine or template %s must have exactly one root snapshot (has: %d)", props.Config.Uuid, len(props.Snapshot.RootSnapshotList))
  	}
  	// Check to make sure the root snapshot has no children
  	if len(props.Snapshot.RootSnapshotList[0].ChildSnapshotList) > 0 {
  		return fmt.Errorf("virtual machine or template %s's root snapshot must not have children", props.Config.Uuid)
  	}
  	// Current snapshot must match root snapshot (this should be the case anyway)
  	if props.Snapshot.CurrentSnapshot.Value != props.Snapshot.RootSnapshotList[0].Snapshot.Value {
  		return fmt.Errorf("virtual machine or template %s's current snapshot must match root snapshot", props.Config.Uuid)
  	}
  	return nil
  }
docs: // validateCloneSnapshots checks a VM to make sure it has a single snapshot
  // with no children, to make sure there is no ambiguity when selecting a
  // snapshot for linked clones.