azure_storage_blobs/clients/
container_lease_client.rs1use crate::{container::operations::*, prelude::*};
2use azure_core::{headers::Headers, prelude::*, Body, Method, Request, Response, Url};
3
4#[derive(Debug, Clone)]
5pub struct ContainerLeaseClient {
6 container_client: ContainerClient,
7 lease_id: LeaseId,
8}
9
10impl ContainerLeaseClient {
11 pub(crate) fn new(container_client: ContainerClient, lease_id: LeaseId) -> Self {
12 Self {
13 container_client,
14 lease_id,
15 }
16 }
17
18 pub fn release(&self) -> ReleaseLeaseBuilder {
19 ReleaseLeaseBuilder::new(self.clone())
20 }
21
22 pub fn renew(&self) -> RenewLeaseBuilder {
23 RenewLeaseBuilder::new(self.clone())
24 }
25
26 pub fn lease_id(&self) -> LeaseId {
27 self.lease_id
28 }
29
30 pub fn container_client(&self) -> &ContainerClient {
31 &self.container_client
32 }
33
34 pub(crate) fn url(&self) -> azure_core::Result<Url> {
35 self.container_client.url()
36 }
37
38 pub(crate) fn finalize_request(
39 url: Url,
40 method: Method,
41 headers: Headers,
42 request_body: Option<Body>,
43 ) -> azure_core::Result<Request> {
44 ContainerClient::finalize_request(url, method, headers, request_body)
45 }
46
47 pub(crate) async fn send(
48 &self,
49 context: &mut Context,
50 request: &mut Request,
51 ) -> azure_core::Result<Response> {
52 self.container_client.send(context, request).await
53 }
54}