use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Permission {
#[serde(rename = "all")]
All,
#[serde(rename = "activity.create")]
ActivityPeriodCreate,
#[serde(rename = "activity.read")]
ActivityPeriodRead,
#[serde(rename = "activity.update")]
ActivityPeriodUpdate,
#[serde(rename = "activity.delete")]
ActivityPeriodDelete,
#[serde(rename = "activity.statistics")]
ActivityPeriodStatistics,
#[serde(rename = "apiKey.create")]
ApiKeyPeriodCreate,
#[serde(rename = "apiKey.read")]
ApiKeyPeriodRead,
#[serde(rename = "apiKey.update")]
ApiKeyPeriodUpdate,
#[serde(rename = "apiKey.delete")]
ApiKeyPeriodDelete,
#[serde(rename = "asset.read")]
AssetPeriodRead,
#[serde(rename = "asset.update")]
AssetPeriodUpdate,
#[serde(rename = "asset.delete")]
AssetPeriodDelete,
#[serde(rename = "asset.statistics")]
AssetPeriodStatistics,
#[serde(rename = "asset.share")]
AssetPeriodShare,
#[serde(rename = "asset.view")]
AssetPeriodView,
#[serde(rename = "asset.download")]
AssetPeriodDownload,
#[serde(rename = "asset.upload")]
AssetPeriodUpload,
#[serde(rename = "asset.replace")]
AssetPeriodReplace,
#[serde(rename = "album.create")]
AlbumPeriodCreate,
#[serde(rename = "album.read")]
AlbumPeriodRead,
#[serde(rename = "album.update")]
AlbumPeriodUpdate,
#[serde(rename = "album.delete")]
AlbumPeriodDelete,
#[serde(rename = "album.statistics")]
AlbumPeriodStatistics,
#[serde(rename = "album.share")]
AlbumPeriodShare,
#[serde(rename = "album.download")]
AlbumPeriodDownload,
#[serde(rename = "albumAsset.create")]
AlbumAssetPeriodCreate,
#[serde(rename = "albumAsset.delete")]
AlbumAssetPeriodDelete,
#[serde(rename = "albumUser.create")]
AlbumUserPeriodCreate,
#[serde(rename = "albumUser.update")]
AlbumUserPeriodUpdate,
#[serde(rename = "albumUser.delete")]
AlbumUserPeriodDelete,
#[serde(rename = "auth.changePassword")]
AuthPeriodChangePassword,
#[serde(rename = "authDevice.delete")]
AuthDevicePeriodDelete,
#[serde(rename = "archive.read")]
ArchivePeriodRead,
#[serde(rename = "duplicate.read")]
DuplicatePeriodRead,
#[serde(rename = "duplicate.delete")]
DuplicatePeriodDelete,
#[serde(rename = "face.create")]
FacePeriodCreate,
#[serde(rename = "face.read")]
FacePeriodRead,
#[serde(rename = "face.update")]
FacePeriodUpdate,
#[serde(rename = "face.delete")]
FacePeriodDelete,
#[serde(rename = "job.create")]
JobPeriodCreate,
#[serde(rename = "job.read")]
JobPeriodRead,
#[serde(rename = "library.create")]
LibraryPeriodCreate,
#[serde(rename = "library.read")]
LibraryPeriodRead,
#[serde(rename = "library.update")]
LibraryPeriodUpdate,
#[serde(rename = "library.delete")]
LibraryPeriodDelete,
#[serde(rename = "library.statistics")]
LibraryPeriodStatistics,
#[serde(rename = "timeline.read")]
TimelinePeriodRead,
#[serde(rename = "timeline.download")]
TimelinePeriodDownload,
#[serde(rename = "memory.create")]
MemoryPeriodCreate,
#[serde(rename = "memory.read")]
MemoryPeriodRead,
#[serde(rename = "memory.update")]
MemoryPeriodUpdate,
#[serde(rename = "memory.delete")]
MemoryPeriodDelete,
#[serde(rename = "memory.statistics")]
MemoryPeriodStatistics,
#[serde(rename = "memoryAsset.create")]
MemoryAssetPeriodCreate,
#[serde(rename = "memoryAsset.delete")]
MemoryAssetPeriodDelete,
#[serde(rename = "notification.create")]
NotificationPeriodCreate,
#[serde(rename = "notification.read")]
NotificationPeriodRead,
#[serde(rename = "notification.update")]
NotificationPeriodUpdate,
#[serde(rename = "notification.delete")]
NotificationPeriodDelete,
#[serde(rename = "partner.create")]
PartnerPeriodCreate,
#[serde(rename = "partner.read")]
PartnerPeriodRead,
#[serde(rename = "partner.update")]
PartnerPeriodUpdate,
#[serde(rename = "partner.delete")]
PartnerPeriodDelete,
#[serde(rename = "person.create")]
PersonPeriodCreate,
#[serde(rename = "person.read")]
PersonPeriodRead,
#[serde(rename = "person.update")]
PersonPeriodUpdate,
#[serde(rename = "person.delete")]
PersonPeriodDelete,
#[serde(rename = "person.statistics")]
PersonPeriodStatistics,
#[serde(rename = "person.merge")]
PersonPeriodMerge,
#[serde(rename = "person.reassign")]
PersonPeriodReassign,
#[serde(rename = "pinCode.create")]
PinCodePeriodCreate,
#[serde(rename = "pinCode.update")]
PinCodePeriodUpdate,
#[serde(rename = "pinCode.delete")]
PinCodePeriodDelete,
#[serde(rename = "server.about")]
ServerPeriodAbout,
#[serde(rename = "server.apkLinks")]
ServerPeriodApkLinks,
#[serde(rename = "server.storage")]
ServerPeriodStorage,
#[serde(rename = "server.statistics")]
ServerPeriodStatistics,
#[serde(rename = "server.versionCheck")]
ServerPeriodVersionCheck,
#[serde(rename = "serverLicense.read")]
ServerLicensePeriodRead,
#[serde(rename = "serverLicense.update")]
ServerLicensePeriodUpdate,
#[serde(rename = "serverLicense.delete")]
ServerLicensePeriodDelete,
#[serde(rename = "session.create")]
SessionPeriodCreate,
#[serde(rename = "session.read")]
SessionPeriodRead,
#[serde(rename = "session.update")]
SessionPeriodUpdate,
#[serde(rename = "session.delete")]
SessionPeriodDelete,
#[serde(rename = "session.lock")]
SessionPeriodLock,
#[serde(rename = "sharedLink.create")]
SharedLinkPeriodCreate,
#[serde(rename = "sharedLink.read")]
SharedLinkPeriodRead,
#[serde(rename = "sharedLink.update")]
SharedLinkPeriodUpdate,
#[serde(rename = "sharedLink.delete")]
SharedLinkPeriodDelete,
#[serde(rename = "stack.create")]
StackPeriodCreate,
#[serde(rename = "stack.read")]
StackPeriodRead,
#[serde(rename = "stack.update")]
StackPeriodUpdate,
#[serde(rename = "stack.delete")]
StackPeriodDelete,
#[serde(rename = "sync.stream")]
SyncPeriodStream,
#[serde(rename = "syncCheckpoint.read")]
SyncCheckpointPeriodRead,
#[serde(rename = "syncCheckpoint.update")]
SyncCheckpointPeriodUpdate,
#[serde(rename = "syncCheckpoint.delete")]
SyncCheckpointPeriodDelete,
#[serde(rename = "systemConfig.read")]
SystemConfigPeriodRead,
#[serde(rename = "systemConfig.update")]
SystemConfigPeriodUpdate,
#[serde(rename = "systemMetadata.read")]
SystemMetadataPeriodRead,
#[serde(rename = "systemMetadata.update")]
SystemMetadataPeriodUpdate,
#[serde(rename = "tag.create")]
TagPeriodCreate,
#[serde(rename = "tag.read")]
TagPeriodRead,
#[serde(rename = "tag.update")]
TagPeriodUpdate,
#[serde(rename = "tag.delete")]
TagPeriodDelete,
#[serde(rename = "tag.asset")]
TagPeriodAsset,
#[serde(rename = "user.read")]
UserPeriodRead,
#[serde(rename = "user.update")]
UserPeriodUpdate,
#[serde(rename = "userLicense.create")]
UserLicensePeriodCreate,
#[serde(rename = "userLicense.read")]
UserLicensePeriodRead,
#[serde(rename = "userLicense.update")]
UserLicensePeriodUpdate,
#[serde(rename = "userLicense.delete")]
UserLicensePeriodDelete,
#[serde(rename = "userOnboarding.read")]
UserOnboardingPeriodRead,
#[serde(rename = "userOnboarding.update")]
UserOnboardingPeriodUpdate,
#[serde(rename = "userOnboarding.delete")]
UserOnboardingPeriodDelete,
#[serde(rename = "userPreference.read")]
UserPreferencePeriodRead,
#[serde(rename = "userPreference.update")]
UserPreferencePeriodUpdate,
#[serde(rename = "userProfileImage.create")]
UserProfileImagePeriodCreate,
#[serde(rename = "userProfileImage.read")]
UserProfileImagePeriodRead,
#[serde(rename = "userProfileImage.update")]
UserProfileImagePeriodUpdate,
#[serde(rename = "userProfileImage.delete")]
UserProfileImagePeriodDelete,
#[serde(rename = "adminUser.create")]
AdminUserPeriodCreate,
#[serde(rename = "adminUser.read")]
AdminUserPeriodRead,
#[serde(rename = "adminUser.update")]
AdminUserPeriodUpdate,
#[serde(rename = "adminUser.delete")]
AdminUserPeriodDelete,
#[serde(rename = "adminAuth.unlinkAll")]
AdminAuthPeriodUnlinkAll,
}
impl std::fmt::Display for Permission {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::All => write!(f, "all"),
Self::ActivityPeriodCreate => write!(f, "activity.create"),
Self::ActivityPeriodRead => write!(f, "activity.read"),
Self::ActivityPeriodUpdate => write!(f, "activity.update"),
Self::ActivityPeriodDelete => write!(f, "activity.delete"),
Self::ActivityPeriodStatistics => write!(f, "activity.statistics"),
Self::ApiKeyPeriodCreate => write!(f, "apiKey.create"),
Self::ApiKeyPeriodRead => write!(f, "apiKey.read"),
Self::ApiKeyPeriodUpdate => write!(f, "apiKey.update"),
Self::ApiKeyPeriodDelete => write!(f, "apiKey.delete"),
Self::AssetPeriodRead => write!(f, "asset.read"),
Self::AssetPeriodUpdate => write!(f, "asset.update"),
Self::AssetPeriodDelete => write!(f, "asset.delete"),
Self::AssetPeriodStatistics => write!(f, "asset.statistics"),
Self::AssetPeriodShare => write!(f, "asset.share"),
Self::AssetPeriodView => write!(f, "asset.view"),
Self::AssetPeriodDownload => write!(f, "asset.download"),
Self::AssetPeriodUpload => write!(f, "asset.upload"),
Self::AssetPeriodReplace => write!(f, "asset.replace"),
Self::AlbumPeriodCreate => write!(f, "album.create"),
Self::AlbumPeriodRead => write!(f, "album.read"),
Self::AlbumPeriodUpdate => write!(f, "album.update"),
Self::AlbumPeriodDelete => write!(f, "album.delete"),
Self::AlbumPeriodStatistics => write!(f, "album.statistics"),
Self::AlbumPeriodShare => write!(f, "album.share"),
Self::AlbumPeriodDownload => write!(f, "album.download"),
Self::AlbumAssetPeriodCreate => write!(f, "albumAsset.create"),
Self::AlbumAssetPeriodDelete => write!(f, "albumAsset.delete"),
Self::AlbumUserPeriodCreate => write!(f, "albumUser.create"),
Self::AlbumUserPeriodUpdate => write!(f, "albumUser.update"),
Self::AlbumUserPeriodDelete => write!(f, "albumUser.delete"),
Self::AuthPeriodChangePassword => write!(f, "auth.changePassword"),
Self::AuthDevicePeriodDelete => write!(f, "authDevice.delete"),
Self::ArchivePeriodRead => write!(f, "archive.read"),
Self::DuplicatePeriodRead => write!(f, "duplicate.read"),
Self::DuplicatePeriodDelete => write!(f, "duplicate.delete"),
Self::FacePeriodCreate => write!(f, "face.create"),
Self::FacePeriodRead => write!(f, "face.read"),
Self::FacePeriodUpdate => write!(f, "face.update"),
Self::FacePeriodDelete => write!(f, "face.delete"),
Self::JobPeriodCreate => write!(f, "job.create"),
Self::JobPeriodRead => write!(f, "job.read"),
Self::LibraryPeriodCreate => write!(f, "library.create"),
Self::LibraryPeriodRead => write!(f, "library.read"),
Self::LibraryPeriodUpdate => write!(f, "library.update"),
Self::LibraryPeriodDelete => write!(f, "library.delete"),
Self::LibraryPeriodStatistics => write!(f, "library.statistics"),
Self::TimelinePeriodRead => write!(f, "timeline.read"),
Self::TimelinePeriodDownload => write!(f, "timeline.download"),
Self::MemoryPeriodCreate => write!(f, "memory.create"),
Self::MemoryPeriodRead => write!(f, "memory.read"),
Self::MemoryPeriodUpdate => write!(f, "memory.update"),
Self::MemoryPeriodDelete => write!(f, "memory.delete"),
Self::MemoryPeriodStatistics => write!(f, "memory.statistics"),
Self::MemoryAssetPeriodCreate => write!(f, "memoryAsset.create"),
Self::MemoryAssetPeriodDelete => write!(f, "memoryAsset.delete"),
Self::NotificationPeriodCreate => write!(f, "notification.create"),
Self::NotificationPeriodRead => write!(f, "notification.read"),
Self::NotificationPeriodUpdate => write!(f, "notification.update"),
Self::NotificationPeriodDelete => write!(f, "notification.delete"),
Self::PartnerPeriodCreate => write!(f, "partner.create"),
Self::PartnerPeriodRead => write!(f, "partner.read"),
Self::PartnerPeriodUpdate => write!(f, "partner.update"),
Self::PartnerPeriodDelete => write!(f, "partner.delete"),
Self::PersonPeriodCreate => write!(f, "person.create"),
Self::PersonPeriodRead => write!(f, "person.read"),
Self::PersonPeriodUpdate => write!(f, "person.update"),
Self::PersonPeriodDelete => write!(f, "person.delete"),
Self::PersonPeriodStatistics => write!(f, "person.statistics"),
Self::PersonPeriodMerge => write!(f, "person.merge"),
Self::PersonPeriodReassign => write!(f, "person.reassign"),
Self::PinCodePeriodCreate => write!(f, "pinCode.create"),
Self::PinCodePeriodUpdate => write!(f, "pinCode.update"),
Self::PinCodePeriodDelete => write!(f, "pinCode.delete"),
Self::ServerPeriodAbout => write!(f, "server.about"),
Self::ServerPeriodApkLinks => write!(f, "server.apkLinks"),
Self::ServerPeriodStorage => write!(f, "server.storage"),
Self::ServerPeriodStatistics => write!(f, "server.statistics"),
Self::ServerPeriodVersionCheck => write!(f, "server.versionCheck"),
Self::ServerLicensePeriodRead => write!(f, "serverLicense.read"),
Self::ServerLicensePeriodUpdate => write!(f, "serverLicense.update"),
Self::ServerLicensePeriodDelete => write!(f, "serverLicense.delete"),
Self::SessionPeriodCreate => write!(f, "session.create"),
Self::SessionPeriodRead => write!(f, "session.read"),
Self::SessionPeriodUpdate => write!(f, "session.update"),
Self::SessionPeriodDelete => write!(f, "session.delete"),
Self::SessionPeriodLock => write!(f, "session.lock"),
Self::SharedLinkPeriodCreate => write!(f, "sharedLink.create"),
Self::SharedLinkPeriodRead => write!(f, "sharedLink.read"),
Self::SharedLinkPeriodUpdate => write!(f, "sharedLink.update"),
Self::SharedLinkPeriodDelete => write!(f, "sharedLink.delete"),
Self::StackPeriodCreate => write!(f, "stack.create"),
Self::StackPeriodRead => write!(f, "stack.read"),
Self::StackPeriodUpdate => write!(f, "stack.update"),
Self::StackPeriodDelete => write!(f, "stack.delete"),
Self::SyncPeriodStream => write!(f, "sync.stream"),
Self::SyncCheckpointPeriodRead => write!(f, "syncCheckpoint.read"),
Self::SyncCheckpointPeriodUpdate => write!(f, "syncCheckpoint.update"),
Self::SyncCheckpointPeriodDelete => write!(f, "syncCheckpoint.delete"),
Self::SystemConfigPeriodRead => write!(f, "systemConfig.read"),
Self::SystemConfigPeriodUpdate => write!(f, "systemConfig.update"),
Self::SystemMetadataPeriodRead => write!(f, "systemMetadata.read"),
Self::SystemMetadataPeriodUpdate => write!(f, "systemMetadata.update"),
Self::TagPeriodCreate => write!(f, "tag.create"),
Self::TagPeriodRead => write!(f, "tag.read"),
Self::TagPeriodUpdate => write!(f, "tag.update"),
Self::TagPeriodDelete => write!(f, "tag.delete"),
Self::TagPeriodAsset => write!(f, "tag.asset"),
Self::UserPeriodRead => write!(f, "user.read"),
Self::UserPeriodUpdate => write!(f, "user.update"),
Self::UserLicensePeriodCreate => write!(f, "userLicense.create"),
Self::UserLicensePeriodRead => write!(f, "userLicense.read"),
Self::UserLicensePeriodUpdate => write!(f, "userLicense.update"),
Self::UserLicensePeriodDelete => write!(f, "userLicense.delete"),
Self::UserOnboardingPeriodRead => write!(f, "userOnboarding.read"),
Self::UserOnboardingPeriodUpdate => write!(f, "userOnboarding.update"),
Self::UserOnboardingPeriodDelete => write!(f, "userOnboarding.delete"),
Self::UserPreferencePeriodRead => write!(f, "userPreference.read"),
Self::UserPreferencePeriodUpdate => write!(f, "userPreference.update"),
Self::UserProfileImagePeriodCreate => write!(f, "userProfileImage.create"),
Self::UserProfileImagePeriodRead => write!(f, "userProfileImage.read"),
Self::UserProfileImagePeriodUpdate => write!(f, "userProfileImage.update"),
Self::UserProfileImagePeriodDelete => write!(f, "userProfileImage.delete"),
Self::AdminUserPeriodCreate => write!(f, "adminUser.create"),
Self::AdminUserPeriodRead => write!(f, "adminUser.read"),
Self::AdminUserPeriodUpdate => write!(f, "adminUser.update"),
Self::AdminUserPeriodDelete => write!(f, "adminUser.delete"),
Self::AdminAuthPeriodUnlinkAll => write!(f, "adminAuth.unlinkAll"),
}
}
}
impl Default for Permission {
fn default() -> Permission {
Self::All
}
}