diff --git a/src/api2/types/mod.rs b/src/api2/types/mod.rs index 52109ef4..93bc58df 100644 --- a/src/api2/types/mod.rs +++ b/src/api2/types/mod.rs @@ -86,6 +86,8 @@ const_regex!{ pub BLOCKDEVICE_NAME_REGEX = r"^(:?(:?h|s|x?v)d[a-z]+)|(:?nvme\d+n\d+)$"; pub ZPOOL_NAME_REGEX = r"^[a-zA-Z][a-z0-9A-Z\-_.:]+$"; + + pub UUID_REGEX = r"^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$"; } pub const SYSTEMD_DATETIME_FORMAT: ApiStringFormat = @@ -112,6 +114,9 @@ pub const PROXMOX_SAFE_ID_FORMAT: ApiStringFormat = pub const BACKUP_ID_FORMAT: ApiStringFormat = ApiStringFormat::Pattern(&BACKUP_ID_REGEX); +pub const UUID_FORMAT: ApiStringFormat = + ApiStringFormat::Pattern(&UUID_REGEX); + pub const SINGLE_LINE_COMMENT_FORMAT: ApiStringFormat = ApiStringFormat::Pattern(&SINGLE_LINE_COMMENT_REGEX); @@ -310,6 +315,16 @@ pub const DATASTORE_SCHEMA: Schema = StringSchema::new("Datastore name.") .max_length(32) .schema(); +pub const MEDIA_SET_UUID_SCHEMA: Schema = + StringSchema::new("MediaSet Uuid.") + .format(&UUID_FORMAT) + .schema(); + +pub const MEDIA_UUID_SCHEMA: Schema = + StringSchema::new("Media Uuid.") + .format(&UUID_FORMAT) + .schema(); + pub const SYNC_SCHEDULE_SCHEMA: Schema = StringSchema::new( "Run sync job at specified schedule.") .format(&ApiStringFormat::VerifyFn(crate::tools::systemd::time::verify_calendar_event))