Skip to main content

nominal_api_conjure/conjure/objects/ingest/api/
create_ingest_job_request.rs

1/// Request to create a new ingest job.
2#[derive(
3    Debug,
4    Clone,
5    conjure_object::serde::Serialize,
6    conjure_object::serde::Deserialize,
7    conjure_object::private::DeriveWith
8)]
9#[serde(crate = "conjure_object::serde")]
10#[derive_with(PartialEq, Eq, PartialOrd, Ord, Hash)]
11#[conjure_object::private::staged_builder::staged_builder]
12#[builder(crate = conjure_object::private::staged_builder, update, inline)]
13pub struct CreateIngestJobRequest {
14    #[serde(rename = "workspaceRid")]
15    workspace_rid: super::super::super::api::rids::WorkspaceRid,
16    #[builder(custom(type = super::IngestJobRequest, convert = Box::new))]
17    #[serde(rename = "ingestJobRequest")]
18    ingest_job_request: Box<super::IngestJobRequest>,
19    #[builder(default, into)]
20    #[serde(rename = "idempotencyKey", skip_serializing_if = "Option::is_none", default)]
21    idempotency_key: Option<String>,
22}
23impl CreateIngestJobRequest {
24    /// Constructs a new instance of the type.
25    #[inline]
26    pub fn new(
27        workspace_rid: super::super::super::api::rids::WorkspaceRid,
28        ingest_job_request: super::IngestJobRequest,
29    ) -> Self {
30        Self::builder()
31            .workspace_rid(workspace_rid)
32            .ingest_job_request(ingest_job_request)
33            .build()
34    }
35    #[inline]
36    pub fn workspace_rid(&self) -> &super::super::super::api::rids::WorkspaceRid {
37        &self.workspace_rid
38    }
39    #[inline]
40    pub fn ingest_job_request(&self) -> &super::IngestJobRequest {
41        &*self.ingest_job_request
42    }
43    /// Optional caller-chosen token that makes creation idempotent, scoped to the workspace. A repeated
44    /// create with the same key returns the existing job instead of creating a new one.
45    #[inline]
46    pub fn idempotency_key(&self) -> Option<&str> {
47        self.idempotency_key.as_ref().map(|o| &**o)
48    }
49}