code: @DoesServiceRequest
      public void delete(DeleteShareSnapshotsOption deleteSnapshotsOption, AccessCondition accessCondition, FileRequestOptions options, OperationContext opContext)
              throws StorageException {
          if (opContext == null) {
              opContext = new OperationContext();
          }
  
          opContext.initialize();
          options = FileRequestOptions.populateAndApplyDefaults(options, this.fileServiceClient);
  
          ExecutionEngine.executeWithRetry(this.fileServiceClient, this, deleteImpl(deleteSnapshotsOption, accessCondition, options),
                  options.getRetryPolicyFactory(), opContext);
      }
docs: Deletes the share using the specified snapshot and request options, and operation context.
  <p>
  A share that has snapshots cannot be deleted unless the snapshots are also deleted. If a share has snapshots, use
  the {@link DeleteShareSnapshotsOption#INCLUDE_SNAPSHOTS} value
  in the <code>deleteSnapshotsOption</code> parameter to include the snapshots when deleting the base share.
  
  @param deleteSnapshotsOption
  A {@link DeleteShareSnapshotsOption} object that indicates whether to delete only snapshots, or the share
  and its snapshots.
  @param accessCondition
  An {@link AccessCondition} object that represents the access conditions for the share.
  @param options
  A {@link FileRequestOptions} object that specifies any additional options for the request. Specifying
  <code>null</code> will use the default request options from the associated service client (
  {@link CloudFileClient}).
  @param opContext
  An {@link OperationContext} object that represents the context for the current operation. This object
  is used to track requests to the storage service, and to provide additional runtime information about
  the operation.
  
  @throws StorageException
  If a storage service error occurred.