Class DataLakeLeaseClient

java.lang.Object
com.azure.storage.file.datalake.specialized.DataLakeLeaseClient

public final class DataLakeLeaseClient extends Object
This class provides a client that contains all the leasing operations for file systems and files and directories. This client acts as a supplement to those clients and only handles leasing operations.

Instantiating a DataLakeLeaseClient

 DataLakeLeaseClient dataLakeLeaseClient = new DataLakeLeaseClientBuilder()
     .fileClient(fileClient)
     .buildClient();
 
 DataLakeLeaseClient dataLakeLeaseClient = new DataLakeLeaseClientBuilder()
     .directoryClient(directoryClient)
     .buildClient();
 
 DataLakeLeaseClient dataLakeLeaseClient = new DataLakeLeaseClientBuilder()
     .fileSystemClient(dataLakeFileSystemClient)
     .buildClient();
 

View this for additional ways to construct the client.

For more information about leasing see the file system leasing or path leasing documentation.

See Also:
  • Method Details

    • getResourceUrl

      public String getResourceUrl()
      Gets the URL of the lease client.

      The lease will either be a file system or path URL depending on which the lease client is associated.

      Returns:
      URL of the lease client.
    • getLeaseId

      public String getLeaseId()
      Get the lease ID for this lease.
      Returns:
      the lease ID.
    • acquireLease

      public String acquireLease(int duration)
      Acquires a lease for write and delete operations. The lease duration must be between 15 to 60 seconds or -1 for an infinite duration.

      Code Samples

       System.out.printf("Lease ID is %s%n", client.acquireLease(60));
       
      Parameters:
      duration - The duration of the lease between 15 and 60 seconds or -1 for an infinite duration.
      Returns:
      The lease ID.
    • acquireLeaseWithResponse

      public Response<String> acquireLeaseWithResponse(int duration, RequestConditions modifiedRequestConditions, Duration timeout, Context context)
      Acquires a lease for write and delete operations. The lease duration must be between 15 and 60 seconds or -1 for an infinite duration.

      Code Samples

       RequestConditions modifiedRequestConditions = new RequestConditions()
           .setIfModifiedSince(OffsetDateTime.now().minusDays(3));
      
       System.out.printf("Lease ID is %s%n", client
           .acquireLeaseWithResponse(60, modifiedRequestConditions, timeout, new Context(key, value))
           .getValue());
       
      Parameters:
      duration - The duration of the lease between 15 and 60 seconds or -1 for an infinite duration.
      modifiedRequestConditions - Standard HTTP Access conditions related to the modification of data. ETag and LastModifiedTime are used to construct conditions related to when the resource was changed relative to the given request. The request will fail if the specified condition is not satisfied.
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      The lease ID.
    • renewLease

      public String renewLease()
      Renews the previously acquired lease.

      Code Samples

       System.out.printf("Renewed lease ID is %s%n", client.renewLease());
       
      Returns:
      The renewed lease ID.
    • renewLeaseWithResponse

      public Response<String> renewLeaseWithResponse(RequestConditions modifiedRequestConditions, Duration timeout, Context context)
      Renews the previously-acquired lease.

      Code Samples

       RequestConditions modifiedRequestConditions = new RequestConditions()
           .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
      
       System.out.printf("Renewed lease ID is %s%n",
           client.renewLeaseWithResponse(modifiedRequestConditions, timeout, new Context(key, value))
               .getValue());
       
      Parameters:
      modifiedRequestConditions - Standard HTTP Access conditions related to the modification of data. ETag and LastModifiedTime are used to construct conditions related to when the resource was changed relative to the given request. The request will fail if the specified condition is not satisfied.
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      The renewed lease ID.
    • releaseLease

      public void releaseLease()
      Releases the previously acquired lease.

      Code Samples

       client.releaseLease();
       System.out.println("Release lease completed");
       
    • releaseLeaseWithResponse

      public Response<Void> releaseLeaseWithResponse(RequestConditions modifiedRequestConditions, Duration timeout, Context context)
      Releases the previously acquired lease.

      Code Samples

       RequestConditions modifiedRequestConditions = new RequestConditions()
           .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
      
       System.out.printf("Release lease completed with status %d%n",
           client.releaseLeaseWithResponse(modifiedRequestConditions, timeout, new Context(key, value))
               .getStatusCode());
       
      Parameters:
      modifiedRequestConditions - Standard HTTP Access conditions related to the modification of data. ETag and LastModifiedTime are used to construct conditions related to when the resource was changed relative to the given request. The request will fail if the specified condition is not satisfied.
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing status code and HTTP headers.
    • breakLease

      public Integer breakLease()
      Breaks the previously acquired lease, if it exists.

      Code Samples

       System.out.printf("The broken lease has %d seconds remaining on the lease", client.breakLease());
       
      Returns:
      The remaining time in the broken lease in seconds.
    • breakLeaseWithResponse

      public Response<Integer> breakLeaseWithResponse(Integer breakPeriodInSeconds, RequestConditions modifiedRequestConditions, Duration timeout, Context context)
      Breaks the previously acquired lease, if it exists.

      If null is passed for breakPeriodInSeconds a fixed duration lease will break after the remaining lease period elapses and an infinite lease will break immediately.

      Code Samples

       Integer retainLeaseInSeconds = 5;
       RequestConditions modifiedRequestConditions = new RequestConditions()
           .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
      
       System.out.printf("The broken lease has %d seconds remaining on the lease", client
           .breakLeaseWithResponse(retainLeaseInSeconds, modifiedRequestConditions, timeout, new Context(key, value))
           .getValue());
       
      Parameters:
      breakPeriodInSeconds - An optional duration, between 0 and 60 seconds, that the lease should continue before it is broken. If the break period is longer than the time remaining on the lease the remaining time on the lease is used. A new lease will not be available before the break period has expired, but the lease may be held for longer than the break period.
      modifiedRequestConditions - Standard HTTP Access conditions related to the modification of data. ETag and LastModifiedTime are used to construct conditions related to when the resource was changed relative to the given request. The request will fail if the specified condition is not satisfied.
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      The remaining time in the broken lease in seconds.
    • changeLease

      public String changeLease(String proposedId)
      Changes the lease ID.

      Code Samples

       System.out.printf("Changed lease ID is %s%n", client.changeLease("proposedId"));
       
      Parameters:
      proposedId - A new lease ID in a valid GUID format.
      Returns:
      The new lease ID.
    • changeLeaseWithResponse

      public Response<String> changeLeaseWithResponse(String proposedId, RequestConditions modifiedRequestConditions, Duration timeout, Context context)
      Changes the lease ID.

      Code Samples

       RequestConditions modifiedRequestConditions = new RequestConditions()
           .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3));
      
       System.out.printf("Changed lease ID is %s%n",
           client.changeLeaseWithResponse("proposedId", modifiedRequestConditions, timeout, new Context(key, value))
               .getValue());
       
      Parameters:
      proposedId - A new lease ID in a valid GUID format.
      modifiedRequestConditions - Standard HTTP Access conditions related to the modification of data. ETag and LastModifiedTime are used to construct conditions related to when the resource was changed relative to the given request. The request will fail if the specified condition is not satisfied.
      timeout - An optional timeout value beyond which a RuntimeException will be raised.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      The new lease ID.
    • getAccountName

      public String getAccountName()
      Get associated account name.
      Returns:
      account name associated with this storage resource.