azure_cosmos_mirror/operations/
delete_stored_procedure.rs

1use crate::headers::from_headers::*;
2use crate::prelude::*;
3use crate::ResourceQuota;
4use azure_core::headers::session_token_from_headers;
5use azure_core::Response as HttpResponse;
6use time::OffsetDateTime;
7
8operation! {
9    DeleteStoredProcedure,
10    client: StoredProcedureClient,
11    ?consistency_level: ConsistencyLevel
12}
13
14impl DeleteStoredProcedureBuilder {
15    pub fn into_future(self) -> DeleteStoredProcedure {
16        Box::pin(async move {
17            let mut request = self
18                .client
19                .stored_procedure_request(azure_core::Method::Delete);
20
21            if let Some(cl) = &self.consistency_level {
22                request.insert_headers(cl);
23            }
24
25            let response = self
26                .client
27                .pipeline()
28                .send(
29                    self.context.clone().insert(ResourceType::StoredProcedures),
30                    &mut request,
31                )
32                .await?;
33
34            DeleteStoredProcedureResponse::try_from(response).await
35        })
36    }
37}
38
39#[derive(Debug, Clone, PartialEq)]
40pub struct DeleteStoredProcedureResponse {
41    pub charge: f64,
42    pub activity_id: uuid::Uuid,
43    pub session_token: String,
44    pub last_change: OffsetDateTime,
45    pub resource_quota: Vec<ResourceQuota>,
46    pub resource_usage: Vec<ResourceQuota>,
47}
48
49impl DeleteStoredProcedureResponse {
50    pub async fn try_from(response: HttpResponse) -> azure_core::Result<Self> {
51        let headers = response.headers();
52
53        Ok(Self {
54            charge: request_charge_from_headers(headers)?,
55            activity_id: activity_id_from_headers(headers)?,
56            session_token: session_token_from_headers(headers)?,
57            last_change: last_state_change_from_headers(headers)?,
58            resource_quota: resource_quota_from_headers(headers)?,
59            resource_usage: resource_usage_from_headers(headers)?,
60        })
61    }
62}