azure_cosmos_mirror/operations/
delete_stored_procedure.rs1use 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}