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