Skip to main content

nominal_api/conjure/errors/ingest/api/
workspace_resource_mismatch.rs

1/// Both `workspace` and `resource` were set on the upload request, but the workspace
2/// derived from the resource does not match the explicitly-supplied workspace. Returned
3/// as a defensive sanity check so callers don't accidentally believe they're uploading
4/// to one workspace while the file is actually being routed to another.
5#[derive(
6    Debug,
7    Clone,
8    conjure_object::serde::Serialize,
9    conjure_object::serde::Deserialize,
10    PartialEq,
11    Eq,
12    PartialOrd,
13    Ord,
14    Hash
15)]
16#[serde(crate = "conjure_object::serde")]
17#[conjure_object::private::staged_builder::staged_builder]
18#[builder(crate = conjure_object::private::staged_builder, update, inline)]
19pub struct WorkspaceResourceMismatch {
20    #[serde(rename = "resourceRid")]
21    resource_rid: conjure_object::ResourceIdentifier,
22    #[serde(rename = "requestedWorkspace")]
23    requested_workspace: super::super::super::super::objects::api::rids::WorkspaceRid,
24    #[serde(rename = "resolvedWorkspace")]
25    resolved_workspace: super::super::super::super::objects::api::rids::WorkspaceRid,
26}
27impl WorkspaceResourceMismatch {
28    /// Constructs a new instance of the type.
29    #[inline]
30    pub fn new(
31        resource_rid: conjure_object::ResourceIdentifier,
32        requested_workspace: super::super::super::super::objects::api::rids::WorkspaceRid,
33        resolved_workspace: super::super::super::super::objects::api::rids::WorkspaceRid,
34    ) -> Self {
35        Self::builder()
36            .resource_rid(resource_rid)
37            .requested_workspace(requested_workspace)
38            .resolved_workspace(resolved_workspace)
39            .build()
40    }
41    #[inline]
42    pub fn resource_rid(&self) -> &conjure_object::ResourceIdentifier {
43        &self.resource_rid
44    }
45    #[inline]
46    pub fn requested_workspace(
47        &self,
48    ) -> &super::super::super::super::objects::api::rids::WorkspaceRid {
49        &self.requested_workspace
50    }
51    #[inline]
52    pub fn resolved_workspace(
53        &self,
54    ) -> &super::super::super::super::objects::api::rids::WorkspaceRid {
55        &self.resolved_workspace
56    }
57}
58impl conjure_error::ErrorType for WorkspaceResourceMismatch {
59    #[inline]
60    fn code() -> conjure_error::ErrorCode {
61        conjure_error::ErrorCode::InvalidArgument
62    }
63    #[inline]
64    fn name() -> &'static str {
65        "UploadService:WorkspaceResourceMismatch"
66    }
67    #[inline]
68    fn safe_args() -> &'static [&'static str] {
69        &["requestedWorkspace", "resolvedWorkspace", "resourceRid"]
70    }
71}