Class ShareClient

java.lang.Object
com.azure.storage.file.share.ShareClient

public class ShareClient extends Object
This class provides a client that contains all the operations for interacting with a share in Azure Storage Share. Operations allowed by the client are creating and deleting the share, creating snapshots for the share, creating and deleting directories in the share and retrieving and updating properties metadata and access policies of the share.

Instantiating a Synchronous Share Client

 ShareClient client = new ShareClientBuilder()
     .connectionString("${connectionString}")
     .endpoint("${endpoint}")
     .buildClient();
 

View this for additional ways to construct the client.

See Also:
  • Method Details

    • getAccountUrl

      public String getAccountUrl()
      Get the url of the storage account.
      Returns:
      the URL of the storage account
    • getShareUrl

      public String getShareUrl()
      Get the url of the storage share client.
      Returns:
      the url of the Storage Share.
    • getServiceVersion

      public ShareServiceVersion getServiceVersion()
      Gets the service version the client is using.
      Returns:
      the service version the client is using.
    • getRootDirectoryClient

      public ShareDirectoryClient getRootDirectoryClient()
      Constructs a ShareDirectoryClient that interacts with the root directory in the share.

      If the directory doesn't exist in the share create in the client will need to be called before interaction with the directory can happen.

      Returns:
      a ShareDirectoryClient that interacts with the root directory in the share
    • getDirectoryClient

      public ShareDirectoryClient getDirectoryClient(String directoryName)
      Constructs a ShareDirectoryClient that interacts with the specified directory.

      If the directory doesn't exist in the share create in the client will need to be called before interaction with the directory can happen.

      Parameters:
      directoryName - Name of the directory
      Returns:
      a ShareDirectoryClient that interacts with the directory in the share
    • getFileClient

      public ShareFileClient getFileClient(String filePath)
      Constructs a ShareFileClient that interacts with the specified file.

      If the file doesn't exist in the share ShareFileClient.create(long) ) create} in the client will need to be called before interaction with the file can happen.

      Parameters:
      filePath - Name of the file
      Returns:
      a ShareFileClient that interacts with the file in the share
    • getSnapshotClient

      public ShareClient getSnapshotClient(String snapshot)
      Creates a new ShareAsyncClient linked to the snapshot of this share resource.
      Parameters:
      snapshot - the identifier for a specific snapshot of this share
      Returns:
      a ShareClient used to interact with the specific snapshot.
    • exists

      public Boolean exists()
      Determines if the share this client represents exists in the cloud.

      Code Samples

       System.out.printf("Exists? %b%n", client.exists());
       
      Returns:
      Flag indicating existence of the share.
    • existsWithResponse

      public Response<Boolean> existsWithResponse(Duration timeout, Context context)
      Determines if the share this client represents exists in the cloud.

      Code Samples

       Context context = new Context("Key", "Value");
       System.out.printf("Exists? %b%n", client.existsWithResponse(timeout, context).getValue());
       
      Parameters:
      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:
      Flag indicating existence of the share.
    • create

      public ShareInfo create()
      Creates the share in the storage account.

      Code Samples

      Create the share

       ShareInfo response = shareClient.create();
       System.out.println("Complete creating the shares with status code: " + response);
       

      For more information, see the Azure Docs.

      Returns:
      The information about the share.
      Throws:
      ShareStorageException - If the share already exists with different metadata
    • createWithResponse

      public Response<ShareInfo> createWithResponse(Map<String,String> metadata, Integer quotaInGB, Duration timeout, Context context)
      Creates the share in the storage account with the specified metadata and quota.

      Code Samples

      Create the share with metadata "share:metadata"

       Response<ShareInfo> response = shareClient.createWithResponse(Collections.singletonMap("share", "metadata"),
           null, Duration.ofSeconds(1), new Context(key1, value1));
       System.out.println("Complete creating the shares with status code: " + response.getStatusCode());
       

      Create the share with a quota of 10 GB

       Response<ShareInfo> response = shareClient.createWithResponse(null, 10,
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.println("Complete creating the shares with status code: " + response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      metadata - Optional metadata to associate with the share
      quotaInGB - Optional maximum size the share is allowed to grow to in GB. This must be greater than 0 and less than or equal to 5120. The default value is 5120.
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing the information about the share and the status its creation.
      Throws:
      ShareStorageException - If the share already exists with different metadata or quotaInGB is outside the allowed range.
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • createWithResponse

      public Response<ShareInfo> createWithResponse(ShareCreateOptions options, Duration timeout, Context context)
      Creates the share in the storage account with the specified options.

      Code Samples

       Response<ShareInfo> response = shareClient.createWithResponse(new ShareCreateOptions()
               .setMetadata(Collections.singletonMap("share", "metadata")).setQuotaInGb(1)
               .setAccessTier(ShareAccessTier.HOT), Duration.ofSeconds(1), new Context(key1, value1));
       System.out.println("Complete creating the shares with status code: " + response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      options - ShareCreateOptions
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing the information about the share and the status its creation.
      Throws:
      ShareStorageException - If the share already exists with different metadata or quotaInGB is outside the allowed range.
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • createIfNotExists

      public ShareInfo createIfNotExists()
      Creates the share in the storage account if it does not exist.

      Code Samples

      Create the share

       shareClient.createIfNotExists();
       System.out.println("Completed creating the share.");
       

      For more information, see the Azure Docs.

      Returns:
      ShareInfo that contains information about the created resource.
    • createIfNotExistsWithResponse

      public Response<ShareInfo> createIfNotExistsWithResponse(ShareCreateOptions options, Duration timeout, Context context)
      Creates the share in the storage account with the specified options if it does not exist.

      Code Samples

       Response<ShareInfo> response = shareClient.createIfNotExistsWithResponse(new ShareCreateOptions()
           .setMetadata(Collections.singletonMap("share", "metadata")).setQuotaInGb(1)
           .setAccessTier(ShareAccessTier.HOT), Duration.ofSeconds(1), new Context(key1, value1));
      
       if (response.getStatusCode() == 409) {
           System.out.println("Already existed.");
       } else {
           System.out.printf("Create completed with status %d%n", response.getStatusCode());
       }
       

      For more information, see the Azure Docs.

      Parameters:
      options - ShareCreateOptions
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A reactive Response signaling completion, whose value contains a ShareInfo containing information about the share. If Response's status code is 201, a new share was successfully created. If status code is 409, a share already existed at this location.
    • createSnapshot

      public ShareSnapshotInfo createSnapshot()
      Creates a snapshot of the share with the same metadata associated to the share at the time of creation.

      Code Samples

      Create a snapshot

       ShareSnapshotInfo response = shareClient.createSnapshot();
       System.out.println("Complete creating the share snpashot with snapshot id: " + response.getSnapshot());
       

      For more information, see the Azure Docs.

      Returns:
      The information about snapshot of share
      Throws:
      ShareStorageException - If the share doesn't exist, there are 200 snapshots of the share, or a snapshot is in progress for the share
    • createSnapshotWithResponse

      public Response<ShareSnapshotInfo> createSnapshotWithResponse(Map<String,String> metadata, Duration timeout, Context context)
      Creates a snapshot of the share with the metadata that was passed associated to the snapshot.

      Code Samples

      Create a snapshot with metadata "snapshot:metadata"

       Response<ShareSnapshotInfo> response =
           shareClient.createSnapshotWithResponse(Collections.singletonMap("snpashot", "metadata"),
               Duration.ofSeconds(1), new Context(key1, value1));
       System.out.println("Complete creating the share snpashot with snapshot id: " + response.getValue().getSnapshot());
       

      For more information, see the Azure Docs.

      Parameters:
      metadata - Optional metadata to associate with the snapshot. If null the metadata of the share will be copied to the snapshot.
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing the information about snapshot of the share and status of creation.
      Throws:
      ShareStorageException - If the share doesn't exist, there are 200 snapshots of the share, or a snapshot is in progress for the share
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • delete

      public void delete()
      Deletes the share in the storage account

      Code Samples

      Delete the share

       shareClient.delete();
       System.out.println("Completed deleting the share.");
       

      For more information, see the Azure Docs.

      Throws:
      ShareStorageException - If the share doesn't exist
    • deleteWithResponse

      public Response<Void> deleteWithResponse(Duration timeout, Context context)
      Deletes the share in the storage account

      Code Samples

      Delete the share

       Response<Void> response = shareClient.deleteWithResponse(Duration.ofSeconds(1), new Context(key1, value1));
       System.out.println("Complete deleting the share with status code: " + response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response that only contains headers and response status code
      Throws:
      ShareStorageException - If the share doesn't exist
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • deleteWithResponse

      public Response<Void> deleteWithResponse(ShareDeleteOptions options, Duration timeout, Context context)
      Deletes the share in the storage account

      Code Samples

      Delete the share

       Response<Void> response = shareClient.deleteWithResponse(new ShareDeleteOptions()
               .setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)),
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.println("Complete deleting the share with status code: " + response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      options - ShareDeleteOptions
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response that only contains headers and response status code
      Throws:
      ShareStorageException - If the share doesn't exist
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • deleteIfExists

      public boolean deleteIfExists()
      Deletes the share in the storage account if it exists.

      Code Samples

      Delete the share

       boolean result = shareClient.deleteIfExists();
       System.out.println("Share deleted: " + result);
       

      For more information, see the Azure Docs.

      Returns:
      true if the share is successfully deleted, false if the share does not exist.
    • deleteIfExistsWithResponse

      public Response<Boolean> deleteIfExistsWithResponse(ShareDeleteOptions options, Duration timeout, Context context)
      Deletes the share in the storage account if it exists.

      Code Samples

      Delete the share

       Response<Boolean> response = shareClient.deleteIfExistsWithResponse(new ShareDeleteOptions()
               .setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)),
           Duration.ofSeconds(1), new Context(key1, value1));
       if (response.getStatusCode() == 404) {
           System.out.println("Does not exist.");
       } else {
           System.out.printf("Delete completed with status %d%n", response.getStatusCode());
       }
       

      For more information, see the Azure Docs.

      Parameters:
      options - ShareDeleteOptions
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing status code and HTTP headers. If Response's status code is 202, the share was successfully deleted. If status code is 404, the share does not exist.
    • getProperties

      public ShareProperties getProperties()
      Retrieves the properties of the share, these include the metadata associated to it and the quota that the share is restricted to.

      Code Samples

      Retrieve the share properties

       ShareProperties properties = shareClient.getProperties();
       System.out.printf("Share quota: %d, Metadata: %s", properties.getQuota(), properties.getMetadata());
       

      For more information, see the Azure Docs.

      Returns:
      The properties of the share
      Throws:
      ShareStorageException - If the share doesn't exist
    • getPropertiesWithResponse

      public Response<ShareProperties> getPropertiesWithResponse(Duration timeout, Context context)
      Retrieves the properties of the share, these include the metadata associated to it and the quota that the share is restricted to.

      Code Samples

      Retrieve the share properties

       ShareProperties properties = shareClient.getPropertiesWithResponse(
           Duration.ofSeconds(1), new Context(key1, value1)).getValue();
       System.out.printf("Share quota: %d, Metadata: %s", properties.getQuota(), properties.getMetadata());
       

      For more information, see the Azure Docs.

      Parameters:
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing properties of the share with response status code
      Throws:
      ShareStorageException - If the share doesn't exist
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • getPropertiesWithResponse

      public Response<ShareProperties> getPropertiesWithResponse(ShareGetPropertiesOptions options, Duration timeout, Context context)
      Retrieves the properties of the share, these include the metadata associated to it and the quota that the share is restricted to.

      Code Samples

      Retrieve the share properties

       ShareProperties properties = shareClient.getPropertiesWithResponse(new ShareGetPropertiesOptions()
           .setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)),
           Duration.ofSeconds(1), new Context(key1, value1)).getValue();
       System.out.printf("Share quota: %d, Metadata: %s", properties.getQuota(), properties.getMetadata());
       

      For more information, see the Azure Docs.

      Parameters:
      options - ShareGetPropertiesOptions
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing properties of the share with response status code
      Throws:
      ShareStorageException - If the share doesn't exist
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • setQuota

      @Deprecated public ShareInfo setQuota(int quotaInGB)
      Sets the maximum size in GB that the share is allowed to grow.

      Code Samples

      Set the quota to 1024 GB

       System.out.println("Setting the share quota completed." + shareClient.setQuota(1024));
       

      For more information, see the Azure Docs.

      Parameters:
      quotaInGB - Size in GB to limit the share's growth. The quota in GB must be between 1 and 5120.
      Returns:
      The information about the share
      Throws:
      ShareStorageException - If the share doesn't exist or quotaInGB is outside the allowed bounds
    • setQuotaWithResponse

      @Deprecated public Response<ShareInfo> setQuotaWithResponse(int quotaInGB, Duration timeout, Context context)
      Sets the maximum size in GB that the share is allowed to grow.

      Code Samples

      Set the quota to 1024 GB

       Response<ShareInfo> response = shareClient.setQuotaWithResponse(1024,
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.printf("Setting the share quota completed with status code %d", response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      quotaInGB - Size in GB to limit the share's growth. The quota in GB must be between 1 and 5120.
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing information about the share with response status code
      Throws:
      ShareStorageException - If the share doesn't exist or quotaInGB is outside the allowed bounds
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • setProperties

      public ShareInfo setProperties(ShareSetPropertiesOptions options)
      Sets the share's properties.

      Code Samples

       System.out.println("Setting the share access tier completed." + shareClient.setProperties(
           new ShareSetPropertiesOptions().setAccessTier(ShareAccessTier.HOT).setQuotaInGb(1024)));
       

      For more information, see the Azure Docs.

      Parameters:
      options - ShareSetPropertiesOptions
      Returns:
      The information about the share
    • setPropertiesWithResponse

      public Response<ShareInfo> setPropertiesWithResponse(ShareSetPropertiesOptions options, Duration timeout, Context context)
      Sets the share's properties.

      Code Samples

       Response<ShareInfo> response = shareClient.setPropertiesWithResponse(
           new ShareSetPropertiesOptions().setAccessTier(ShareAccessTier.HOT).setQuotaInGb(1024),
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.printf("Setting the share access tier completed with status code %d", response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      options - ShareSetPropertiesOptions
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing information about the share with response status code
    • setMetadata

      public ShareInfo setMetadata(Map<String,String> metadata)
      Sets the user-defined metadata to associate to the share.

      If null is passed for the metadata it will clear the metadata associated to the share.

      Code Samples

      Set the metadata to "share:updatedMetadata"

       shareClient.setMetadata(Collections.singletonMap("share", "updatedMetadata"));
       System.out.println("Setting the share metadata.");
       

      Clear the metadata of the share

       shareClient.setMetadata(null);
       System.out.println("Clear metadata completed.");
       

      For more information, see the Azure Docs.

      Parameters:
      metadata - Metadata to set on the share, if null is passed the metadata for the share is cleared
      Returns:
      The properties of the share
      Throws:
      ShareStorageException - If the share doesn't exist or the metadata contains invalid keys
    • setMetadataWithResponse

      public Response<ShareInfo> setMetadataWithResponse(Map<String,String> metadata, Duration timeout, Context context)
      Sets the user-defined metadata to associate to the share.

      If null is passed for the metadata it will clear the metadata associated to the share.

      Code Samples

      Set the metadata to "share:updatedMetadata"

       Response<ShareInfo> response = shareClient.setMetadataWithResponse(
           Collections.singletonMap("share", "updatedMetadata"), Duration.ofSeconds(1),
           new Context(key1, value1));
       System.out.printf("Setting the share metadata completed with status code %d", response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      metadata - Metadata to set on the share, if null is passed the metadata for the share is cleared
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing properties of the share with response status code
      Throws:
      ShareStorageException - If the share doesn't exist or the metadata contains invalid keys
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • setMetadataWithResponse

      public Response<ShareInfo> setMetadataWithResponse(ShareSetMetadataOptions options, Duration timeout, Context context)
      Sets the user-defined metadata to associate to the share.

      If null is passed for the metadata it will clear the metadata associated to the share.

      Code Samples

      Set the metadata to "share:updatedMetadata"

       Response<ShareInfo> response = shareClient.setMetadataWithResponse(new ShareSetMetadataOptions()
               .setMetadata(Collections.singletonMap("share", "updatedMetadata"))
               .setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)),
           Duration.ofSeconds(1),
           new Context(key1, value1));
       System.out.printf("Setting the share metadata completed with status code %d", response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      options - ShareSetMetadataOptions
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing properties of the share with response status code
      Throws:
      ShareStorageException - If the share doesn't exist or the metadata contains invalid keys
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • getAccessPolicy

      public PagedIterable<ShareSignedIdentifier> getAccessPolicy()
      Retrieves stored access policies specified for the share.

      Code Samples

      List the stored access policies

       for (ShareSignedIdentifier result : shareClient.getAccessPolicy()) {
           System.out.printf("Access policy %s allows these permissions: %s",
               result.getId(), result.getAccessPolicy().getPermissions());
       }
       

      For more information, see the Azure Docs.

      Returns:
      The stored access policies specified on the queue.
      Throws:
      ShareStorageException - If the share doesn't exist
    • getAccessPolicy

      Retrieves stored access policies specified for the share.

      Code Samples

      List the stored access policies

       for (ShareSignedIdentifier result : shareClient
           .getAccessPolicy(new ShareGetAccessPolicyOptions()
               .setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)))) {
           System.out.printf("Access policy %s allows these permissions: %s",
               result.getId(), result.getAccessPolicy().getPermissions());
       }
       

      For more information, see the Azure Docs.

      Parameters:
      options - ShareGetAccessPolicyOptions
      Returns:
      The stored access policies specified on the queue.
      Throws:
      ShareStorageException - If the share doesn't exist
    • setAccessPolicy

      public ShareInfo setAccessPolicy(List<ShareSignedIdentifier> permissions)
      Sets stored access policies for the share.

      Code Samples

      Set a read only stored access policy

       ShareAccessPolicy accessPolicy = new ShareAccessPolicy().setPermissions("r")
           .setStartsOn(OffsetDateTime.now(ZoneOffset.UTC))
           .setExpiresOn(OffsetDateTime.now(ZoneOffset.UTC).plusDays(10));
      
       ShareSignedIdentifier permission = new ShareSignedIdentifier().setId("mypolicy").setAccessPolicy(accessPolicy);
      
       shareClient.setAccessPolicy(Collections.singletonList(permission));
       System.out.println("Setting access policies completed.");
       

      For more information, see the Azure Docs.

      Parameters:
      permissions - Access policies to set on the queue
      Returns:
      The information of the share
      Throws:
      ShareStorageException - If the share doesn't exist, a stored access policy doesn't have all fields filled out, or the share will have more than five policies.
    • setAccessPolicyWithResponse

      public Response<ShareInfo> setAccessPolicyWithResponse(List<ShareSignedIdentifier> permissions, Duration timeout, Context context)
      Sets stored access policies for the share.

      Code Samples

      Set a read only stored access policy

       ShareAccessPolicy accessPolicy = new ShareAccessPolicy().setPermissions("r")
           .setStartsOn(OffsetDateTime.now(ZoneOffset.UTC))
           .setExpiresOn(OffsetDateTime.now(ZoneOffset.UTC).plusDays(10));
      
       ShareSignedIdentifier permission = new ShareSignedIdentifier().setId("mypolicy").setAccessPolicy(accessPolicy);
      
       Response<ShareInfo> response = shareClient.setAccessPolicyWithResponse(Collections.singletonList(permission),
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.printf("Setting access policies completed with status code %d", response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      permissions - Access policies to set on the queue
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing the information of the share with headers and response status code
      Throws:
      ShareStorageException - If the share doesn't exist, a stored access policy doesn't have all fields filled out, or the share will have more than five policies.
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • setAccessPolicyWithResponse

      public Response<ShareInfo> setAccessPolicyWithResponse(ShareSetAccessPolicyOptions options, Duration timeout, Context context)
      Sets stored access policies for the share.

      Code Samples

      Set a read only stored access policy

       ShareAccessPolicy accessPolicy = new ShareAccessPolicy().setPermissions("r")
           .setStartsOn(OffsetDateTime.now(ZoneOffset.UTC))
           .setExpiresOn(OffsetDateTime.now(ZoneOffset.UTC).plusDays(10));
      
       ShareSignedIdentifier permission = new ShareSignedIdentifier().setId("mypolicy").setAccessPolicy(accessPolicy);
      
       Response<ShareInfo> response = shareClient.setAccessPolicyWithResponse(
           new ShareSetAccessPolicyOptions().setPermissions(Collections.singletonList(permission))
               .setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)),
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.printf("Setting access policies completed with status code %d", response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      options - ShareSetAccessPolicyOptions
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing the information of the share with headers and response status code
      Throws:
      ShareStorageException - If the share doesn't exist, a stored access policy doesn't have all fields filled out, or the share will have more than five policies.
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • getStatistics

      public ShareStatistics getStatistics()
      Retrieves storage statistics about the share.

      Code Samples

      Retrieve the storage statistics

       ShareStatistics response = shareClient.getStatistics();
       System.out.printf("The share is using %d GB", response.getShareUsageInGB());
       

      For more information, see the Azure Docs.

      Returns:
      The storage statistics of the share
    • getStatisticsWithResponse

      public Response<ShareStatistics> getStatisticsWithResponse(Duration timeout, Context context)
      Retrieves storage statistics about the share.

      Code Samples

      Retrieve the storage statistics

       Response<ShareStatistics> response = shareClient.getStatisticsWithResponse(
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.printf("The share is using %d GB", response.getValue().getShareUsageInGB());
       

      For more information, see the Azure Docs.

      Parameters:
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing the statistics of the share
      Throws:
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • getStatisticsWithResponse

      public Response<ShareStatistics> getStatisticsWithResponse(ShareGetStatisticsOptions options, Duration timeout, Context context)
      Retrieves storage statistics about the share.

      Code Samples

      Retrieve the storage statistics

       Response<ShareStatistics> response = shareClient.getStatisticsWithResponse(
           new ShareGetStatisticsOptions().setRequestConditions(new ShareRequestConditions().setLeaseId(leaseId)),
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.printf("The share is using %d GB", response.getValue().getShareUsageInGB());
       

      For more information, see the Azure Docs.

      Parameters:
      options - ShareGetStatisticsOptions
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing the statistics of the share
      Throws:
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • createDirectory

      public ShareDirectoryClient createDirectory(String directoryName)
      Creates the directory in the share with the given name.

      Code Samples

      Create the directory "documents"

       ShareDirectoryClient response = shareClient.createDirectory("mydirectory");
       System.out.println("Complete creating the directory.");
       

      For more information, see the Azure Docs.

      Parameters:
      directoryName - Name of the directory
      Returns:
      A response containing a ShareDirectoryClient to interact with the created directory.
      Throws:
      ShareStorageException - If the share doesn't exist, the directory already exists or is in the process of being deleted, or the parent directory for the new directory doesn't exist
    • createDirectoryWithResponse

      public Response<ShareDirectoryClient> createDirectoryWithResponse(String directoryName, FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, Duration timeout, Context context)
      Creates the directory in the share with the given name and associates the passed metadata to it.

      Code Samples

      Create the directory "documents" with metadata "directory:metadata"

       FileSmbProperties smbProperties = new FileSmbProperties();
       String filePermission = "filePermission";
       Response<ShareDirectoryClient> response = shareClient.createDirectoryWithResponse("documents",
           smbProperties, filePermission, Collections.singletonMap("directory", "metadata"),
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.printf("Creating the directory completed with status code %d", response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      directoryName - Name of the directory
      smbProperties - The SMB properties of the directory.
      filePermission - The file permission of the directory.
      metadata - Optional metadata to associate with the directory
      context - Additional context that is passed through the Http pipeline during the service call.
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      Returns:
      A response containing a ShareDirectoryAsyncClient to interact with the created directory and the status of its creation.
      Throws:
      ShareStorageException - If the share doesn't exist, the directory already exists or is in the process of being deleted, the parent directory for the new directory doesn't exist, or the metadata is using an illegal key name
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • createDirectoryIfNotExists

      public ShareDirectoryClient createDirectoryIfNotExists(String directoryName)
      Creates the directory in the share with the given name if it does not exist.

      Code Samples

      Create the directory "documents"

       ShareDirectoryClient directoryClient = shareClient.createDirectoryIfNotExists("mydirectory");
       System.out.println("Complete creating the directory.");
       

      For more information, see the Azure Docs.

      Parameters:
      directoryName - Name of the directory
      Returns:
      The ShareDirectoryClient used to interact with the directory created.
    • createDirectoryIfNotExistsWithResponse

      public Response<ShareDirectoryClient> createDirectoryIfNotExistsWithResponse(String directoryName, ShareDirectoryCreateOptions options, Duration timeout, Context context)
      Creates the directory if it does not exist in the share with the given name and associates the passed metadata to it.

      Code Samples

      Create the directory "documents" with metadata "directory:metadata"

       FileSmbProperties smbProperties = new FileSmbProperties();
       String filePermission = "filePermission";
       Map<String, String> metadata = Collections.singletonMap("directory", "metadata");
       ShareDirectoryCreateOptions options = new ShareDirectoryCreateOptions().setSmbProperties(smbProperties).
           setFilePermission(filePermission).setMetadata(metadata);
       Response<ShareDirectoryClient> response = shareClient.createDirectoryIfNotExistsWithResponse("documents",
           options, Duration.ofSeconds(1), new Context(key1, value1));
      
       if (response.getStatusCode() == 409) {
           System.out.println("Already existed.");
       } else {
           System.out.printf("Create completed with status %d%n", response.getStatusCode());
       }
       

      For more information, see the Azure Docs.

      Parameters:
      directoryName - Name of the directory
      options - ShareDirectoryCreateOptions
      context - Additional context that is passed through the Http pipeline during the service call.
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      Returns:
      A Response whose value contains the ShareDirectoryClient used to interact with the directory created. If Response's status code is 201, a new directory was successfully created. If status code is 409, a directory with the same name already existed at this location.
    • createFile

      public ShareFileClient createFile(String fileName, long maxSize)
      Creates the file in the share with the given name and file max size.

      Code Samples

      Create the file "myfile" with size of 1024 bytes.

       ShareFileClient response = shareClient.createFile("myfile", 1024);
       System.out.println("Complete creating the file with snapshot Id:" + response.getShareSnapshotId());
       

      For more information, see the Azure Docs.

      Parameters:
      fileName - Name of the file.
      maxSize - The maximum size in bytes for the file.
      Returns:
      A response containing a ShareFileClient to interact with the created file.
      Throws:
      ShareStorageException - If one of the following cases happen:
      • If the share or parent directory does not exist.
      • An attempt to create file on a share snapshot will fail with 400 (InvalidQueryParameterValue).
    • createFileWithResponse

      public Response<ShareFileClient> createFileWithResponse(String fileName, long maxSize, ShareFileHttpHeaders httpHeaders, FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, Duration timeout, Context context)
      Creates the file in the share with the given name, file max size and associates the passed properties to it.

      Code Samples

      Create the file "myfile" with length of 1024 bytes, some headers, file smb properties and metadata

       ShareFileHttpHeaders httpHeaders = new ShareFileHttpHeaders()
           .setContentType("text/html")
           .setContentEncoding("gzip")
           .setContentLanguage("en")
           .setCacheControl("no-transform")
           .setContentDisposition("attachment");
       FileSmbProperties smbProperties = new FileSmbProperties()
           .setNtfsFileAttributes(EnumSet.of(NtfsFileAttributes.READ_ONLY))
           .setFileCreationTime(OffsetDateTime.now())
           .setFileLastWriteTime(OffsetDateTime.now())
           .setFilePermissionKey("filePermissionKey");
       String filePermission = "filePermission";
       // NOTE: filePermission and filePermissionKey should never be both set
       Response<ShareFileClient> response = shareClient.createFileWithResponse("myfile", 1024,
           httpHeaders, smbProperties, filePermission, Collections.singletonMap("directory", "metadata"),
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.printf("Creating the file completed with status code %d", response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      fileName - Name of the file.
      maxSize - The maximum size in bytes for the file.
      httpHeaders - Additional parameters for the operation.
      smbProperties - The user settable file smb properties.
      filePermission - The file permission of the file
      metadata - Optional name-value pairs associated with the file as metadata.
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing a ShareFileClient to interact with the created file and the status of its creation.
      Throws:
      ShareStorageException - If one of the following cases happen:
      • If the share or parent directory does not exist.
      • An attempt to create file on a share snapshot will fail with 400 (InvalidQueryParameterValue).
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • createFileWithResponse

      public Response<ShareFileClient> createFileWithResponse(String fileName, long maxSize, ShareFileHttpHeaders httpHeaders, FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, ShareRequestConditions requestConditions, Duration timeout, Context context)
      Creates the file in the share with the given name, file max size and associates the passed properties to it.

      Code Samples

      Create the file "myfile" with length of 1024 bytes, some headers, file smb properties and metadata

       ShareFileHttpHeaders httpHeaders = new ShareFileHttpHeaders()
           .setContentType("text/html")
           .setContentEncoding("gzip")
           .setContentLanguage("en")
           .setCacheControl("no-transform")
           .setContentDisposition("attachment");
       FileSmbProperties smbProperties = new FileSmbProperties()
           .setNtfsFileAttributes(EnumSet.of(NtfsFileAttributes.READ_ONLY))
           .setFileCreationTime(OffsetDateTime.now())
           .setFileLastWriteTime(OffsetDateTime.now())
           .setFilePermissionKey("filePermissionKey");
       String filePermission = "filePermission";
       // NOTE: filePermission and filePermissionKey should never be both set
      
       ShareRequestConditions requestConditions = new ShareRequestConditions().setLeaseId(leaseId);
      
       Response<ShareFileClient> response = shareClient.createFileWithResponse("myfile", 1024,
           httpHeaders, smbProperties, filePermission, Collections.singletonMap("directory", "metadata"),
           requestConditions, Duration.ofSeconds(1), new Context(key1, value1));
       System.out.printf("Creating the file completed with status code %d", response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      fileName - Name of the file.
      maxSize - The maximum size in bytes for the file.
      httpHeaders - Additional parameters for the operation.
      smbProperties - The user settable file smb properties.
      filePermission - The file permission of the file
      metadata - Optional name-value pairs associated with the file as metadata.
      requestConditions - ShareRequestConditions
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing a ShareFileClient to interact with the created file and the status of its creation.
      Throws:
      ShareStorageException - If one of the following cases happen:
      • If the share or parent directory does not exist.
      • An attempt to create file on a share snapshot will fail with 400 (InvalidQueryParameterValue).
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • deleteDirectory

      public void deleteDirectory(String directoryName)
      Deletes the specified directory in the share.

      Code Samples

      Delete the directory "mydirectory"

       shareClient.deleteDirectory("mydirectory");
       System.out.println("Completed deleting the directory.");
       

      For more information, see the Azure Docs.

      Parameters:
      directoryName - Name of the directory
      Throws:
      ShareStorageException - If the share doesn't exist or the directory isn't empty
    • deleteDirectoryWithResponse

      public Response<Void> deleteDirectoryWithResponse(String directoryName, Duration timeout, Context context)
      Deletes the specified directory in the share.

      Code Samples

      Delete the directory "mydirectory"

       Response<Void> response = shareClient.deleteDirectoryWithResponse("mydirectory",
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.println("Complete deleting the directory with status code: " + response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      directoryName - Name of the directory
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response that only contains headers and response status code
      Throws:
      ShareStorageException - If the share doesn't exist or the directory isn't empty
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • deleteDirectoryIfExists

      public boolean deleteDirectoryIfExists(String directoryName)
      Deletes the specified directory in the share if it exists.

      Code Samples

      Delete the directory "mydirectory"

       boolean result = shareClient.deleteDirectoryIfExists("mydirectory");
       System.out.println("Directory deleted: " + result);
       

      For more information, see the Azure Docs.

      Parameters:
      directoryName - Name of the directory
      Returns:
      true if the directory is successfully deleted, false if the directory does not exist.
      Throws:
      ShareStorageException - If the directory isn't empty
    • deleteDirectoryIfExistsWithResponse

      public Response<Boolean> deleteDirectoryIfExistsWithResponse(String directoryName, Duration timeout, Context context)
      Deletes the specified directory in the share if it exists.

      Code Samples

      Delete the directory "mydirectory"

       Response<Boolean> response = shareClient.deleteDirectoryIfExistsWithResponse("mydirectory",
           Duration.ofSeconds(1), new Context(key1, value1));
       if (response.getStatusCode() == 404) {
           System.out.println("Does not exist.");
       } else {
           System.out.printf("Delete completed with status %d%n", response.getStatusCode());
       }
       

      For more information, see the Azure Docs.

      Parameters:
      directoryName - Name of the directory
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing status code and HTTP headers. If Response's status code is 202, the directory was successfully deleted. If status code is 404, the directory does not exist.
      Throws:
      ShareStorageException - If the directory isn't empty
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • deleteFile

      public void deleteFile(String fileName)
      Deletes the specified file in the share.

      Code Samples

      Delete the file "myfile"

       shareClient.deleteFile("myfile");
       System.out.println("Complete deleting the file.");
       

      For more information, see the Azure Docs.

      Parameters:
      fileName - Name of the file
      Throws:
      ShareStorageException - If the share or the file doesn't exist.
    • deleteFileWithResponse

      public Response<Void> deleteFileWithResponse(String fileName, Duration timeout, Context context)
      Deletes the specified file in the share.

      Code Samples

      Delete the file "myfile"

       Response<Void> response = shareClient.deleteFileWithResponse("myfile",
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.println("Complete deleting the file with status code: " + response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      fileName - Name of the file
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response that only contains headers and response status code
      Throws:
      ShareStorageException - If the share or the file doesn't exist.
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • deleteFileWithResponse

      public Response<Void> deleteFileWithResponse(String fileName, ShareRequestConditions requestConditions, Duration timeout, Context context)
      Deletes the specified file in the share.

      Code Samples

      Delete the file "myfile"

       ShareRequestConditions requestConditions = new ShareRequestConditions().setLeaseId(leaseId);
       Response<Void> response = shareClient.deleteFileWithResponse("myfile", requestConditions,
           Duration.ofSeconds(1), new Context(key1, value1));
       System.out.println("Complete deleting the file with status code: " + response.getStatusCode());
       

      For more information, see the Azure Docs.

      Parameters:
      fileName - Name of the file
      requestConditions - ShareRequestConditions
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response that only contains headers and response status code
      Throws:
      ShareStorageException - If the share or the file doesn't exist.
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • deleteFileIfExists

      public boolean deleteFileIfExists(String fileName)
      Deletes the specified file in the share if it exists.

      Code Samples

      Delete the file "myfile"

       boolean result = shareClient.deleteFileIfExists("myfile");
       System.out.println("File deleted: " + result);
       

      For more information, see the Azure Docs.

      Parameters:
      fileName - Name of the file
      Returns:
      true if the file is successfully deleted, false if the file does not exist.
    • deleteFileIfExistsWithResponse

      public Response<Boolean> deleteFileIfExistsWithResponse(String fileName, ShareRequestConditions requestConditions, Duration timeout, Context context)
      Deletes the specified file in the share if it exists.

      Code Samples

      Delete the file "myfile"

       ShareRequestConditions requestConditions = new ShareRequestConditions().setLeaseId(leaseId);
      
       Response<Boolean> response = shareClient.deleteFileIfExistsWithResponse("myfile", requestConditions,
           Duration.ofSeconds(1), new Context(key1, value1));
       if (response.getStatusCode() == 404) {
           System.out.println("Does not exist.");
       } else {
           System.out.printf("Delete completed with status %d%n", response.getStatusCode());
       }
       

      For more information, see the Azure Docs.

      Parameters:
      fileName - Name of the file
      requestConditions - ShareRequestConditions
      timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response containing status code and HTTP headers. If Response's status code is 202, the file was successfully deleted. If status code is 404, the file does not exist.
      Throws:
      RuntimeException - if the operation doesn't complete before the timeout concludes.
    • createPermission

      public String createPermission(String filePermission)
      Creates a permission at the share level. If a permission already exists, it returns the key of it, else creates a new permission and returns the key.

      Code Samples

       String response = shareClient.createPermission("filePermission");
       System.out.printf("The file permission key is %s", response);
       
      Parameters:
      filePermission - The file permission to get/create.
      Returns:
      The file permission key associated with the file permission.
    • createPermissionWithResponse

      public Response<String> createPermissionWithResponse(String filePermission, Context context)
      Creates a permission t the share level. If a permission already exists, it returns the key of it, else creates a new permission and returns the key.

      Code Samples

       Response<String> response = shareClient.createPermissionWithResponse("filePermission", Context.NONE);
       System.out.printf("The file permission key is %s", response.getValue());
       
      Parameters:
      filePermission - The file permission to get/create.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response that contains the file permission key associated with the file permission.
    • getPermission

      public String getPermission(String filePermissionKey)
      Gets a permission for a given key

      Code Samples

       String response = shareClient.getPermission("filePermissionKey");
       System.out.printf("The file permission is %s", response);
       
      Parameters:
      filePermissionKey - The file permission key.
      Returns:
      The file permission associated with the file permission key.
    • getPermissionWithResponse

      public Response<String> getPermissionWithResponse(String filePermissionKey, Context context)
      Gets a permission for a given key.

      Code Samples

       Response<String> response = shareClient.getPermissionWithResponse("filePermissionKey", Context.NONE);
       System.out.printf("The file permission is %s", response.getValue());
       
      Parameters:
      filePermissionKey - The file permission key.
      context - Additional context that is passed through the Http pipeline during the service call.
      Returns:
      A response that contains th file permission associated with the file permission key.
    • getSnapshotId

      public String getSnapshotId()
      Get snapshot id which attached to ShareClient. Return null if no snapshot id attached.

      Code Samples

      Get the share snapshot id.

       OffsetDateTime currentTime = OffsetDateTime.of(LocalDateTime.now(), ZoneOffset.UTC);
       ShareClient shareClient = new ShareClientBuilder().endpoint("https://${accountName}.file.core.windows.net")
           .sasToken("${SASToken}")
           .shareName("myshare")
           .snapshot(currentTime.toString())
           .buildClient();
      
       System.out.printf("Snapshot ID: %s%n", shareClient.getSnapshotId());
       
      Returns:
      The snapshot id which is a unique DateTime value that identifies the share snapshot to its base share.
    • getShareName

      public String getShareName()
      Get share name from share client.

      Code Samples

       String shareName = shareClient.getShareName();
       System.out.println("The name of the share is " + shareName);
       
      Returns:
      The name of the share.
    • getAccountName

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

      public HttpPipeline getHttpPipeline()
      Gets the HttpPipeline powering this client.
      Returns:
      The pipeline.
    • generateSas

      public String generateSas(ShareServiceSasSignatureValues shareServiceSasSignatureValues)
      Generates a service sas for the queue using the specified ShareServiceSasSignatureValues

      Note : The client must be authenticated via StorageSharedKeyCredential

      See ShareServiceSasSignatureValues for more information on how to construct a service SAS.

      Code Samples

       OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
       ShareSasPermission permission = new ShareSasPermission().setReadPermission(true);
      
       ShareServiceSasSignatureValues values = new ShareServiceSasSignatureValues(expiryTime, permission)
           .setStartTime(OffsetDateTime.now());
      
       shareAsyncClient.generateSas(values); // Client must be authenticated via StorageSharedKeyCredential
       
      Parameters:
      shareServiceSasSignatureValues - ShareServiceSasSignatureValues
      Returns:
      A String representing the SAS query parameters.
    • generateSas

      public String generateSas(ShareServiceSasSignatureValues shareServiceSasSignatureValues, Context context)
      Generates a service sas for the queue using the specified ShareServiceSasSignatureValues

      Note : The client must be authenticated via StorageSharedKeyCredential

      See ShareServiceSasSignatureValues for more information on how to construct a service SAS.

      Code Samples

       OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
       ShareSasPermission permission = new ShareSasPermission().setReadPermission(true);
      
       ShareServiceSasSignatureValues values = new ShareServiceSasSignatureValues(expiryTime, permission)
           .setStartTime(OffsetDateTime.now());
      
       // Client must be authenticated via StorageSharedKeyCredential
       shareAsyncClient.generateSas(values, new Context("key", "value"));
       
      Parameters:
      shareServiceSasSignatureValues - ShareServiceSasSignatureValues
      context - Additional context that is passed through the code when generating a SAS.
      Returns:
      A String representing the SAS query parameters.