statehub_api/v0/
error.rs

1//
2// Copyright (c) 2022 RepliXio Ltd. All rights reserved.
3// Use is subject to license terms.
4//
5
6#![allow(clippy::use_self)]
7
8use thiserror::Error;
9
10use super::*;
11
12mod impls;
13
14pub const UNAUTHENTICATED: &str = "UnauthenticatedError";
15pub const VOLUME_NOT_FOUND: &str = "VolumeNotFoundError";
16pub const CLUSTER_IS_STATE_OWNER: &str = "ClusterIsStateOwnerError";
17pub const NOT_AUTHORIZED: &str = "NotAuthorizedError";
18pub const CLUSTER_NOT_FOUND: &str = "ClusterNotFoundError";
19pub const STATE_ALREADY_EXISTS: &str = "StateAlreadyExistsError";
20
21#[derive(Debug, Error, Serialize, Deserialize)]
22#[serde(rename_all = "camelCase")]
23// #[error("{error_code}")]
24pub struct Error {
25    pub http_code: u16,
26    pub http_status: String,
27    pub error_code: String,
28    pub msg: Option<String>,
29    pub request_id: Option<String>,
30}
31
32#[derive(Clone, Copy, Debug, PartialEq, Hash, SerializeDisplay, DeserializeFromStr)]
33pub enum Permission {
34    ReadClusters,
35    CreateClusters,
36    DeleteClusters,
37    CreateClusterToken,
38    ReadClusterToken,
39    DeleteClusterToken,
40    ReadClusterLocations,
41    UpdateClusterLocations,
42    ReadStates,
43    CreateStates,
44    DeleteStates,
45    CreateStateOwner,
46    DeleteStateOwner,
47    CreateStateLocations,
48    ReadStateLocations,
49    DeleteStateLocations,
50    ReadStateLocationPrincipals,
51    CreateStateLocationPrincipals,
52    UpdateStateLocationPle,
53    ReadVolumes,
54    CreateVolumes,
55    DeleteVolumes,
56    UpdateVolumeActiveLocation,
57    DeleteVolumeActiveLocation,
58    ReadOrganization,
59    UpdateOrganization,
60    ReadOrganizationRole,
61    ReadPersonalTokens,
62    CreatePersonalTokens,
63    UpdatePersonalTokens,
64    DeletePersonalTokens,
65    ReadInvitations,
66    CreateInvitations,
67    UpdateInvitations,
68    DeleteInvitations,
69    ReadMembers,
70    CreateMembers,
71    UpdateMembers,
72    DeleteMembers,
73    ReadProfile,
74    UpdateProfile,
75}