//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_protocol!(
/// Protocol for USB Device configuration.
///
/// Classes that conform to this protocol represent hot-pluggable USB device configurations.
/// VZUSBDeviceConfiguration protocol should not be used with objects outside of Virtualization framework.
/// This protocol only describes capabilities of Virtualization framework objects.
///
/// See: VZUSBMassStorageDeviceConfiguration
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/virtualization/vzusbdeviceconfiguration?language=objc)
pub unsafe trait VZUSBDeviceConfiguration: NSObjectProtocol {
/// Device UUID.
///
/// Device UUID is auto-generated.
/// Before restoring the virtual machine, it should be replaced with the uuid of a previously attached device when the virtual machine was saved.
#[unsafe(method(uuid))]
#[unsafe(method_family = none)]
unsafe fn uuid(&self) -> Retained<NSUUID>;
/// Setter for [`uuid`][Self::uuid].
///
/// This is [copied][objc2_foundation::NSCopying::copy] when set.
#[unsafe(method(setUuid:))]
#[unsafe(method_family = none)]
unsafe fn setUuid(&self, uuid: &NSUUID);
}
);