## Uses of Class
net.snowflake.client.core.SFSession

Packages that use SFSession
net.snowflake.client.core
net.snowflake.client.jdbc
net.snowflake.client.jdbc.cloud.storage
net.snowflake.client.jdbc.telemetry

### Uses of SFSession in net.snowflake.client.core

Methods in net.snowflake.client.core with parameters of type SFSession
`protected void` HeartbeatBackground.`addSession(SFSession session, long masterTokenValidityInSecs, int heartbeatFrequencyInSecs)` Method to add a session
`protected static com.fasterxml.jackson.databind.JsonNode` StmtUtil.`getQueryResultJSON(String queryId, SFSession session)` Issue get-result call to get query result given an in progress response.

Constructors in net.snowflake.client.core with parameters of type SFSession
Constructor and Description
`Incident(SFSession session, Throwable exc, String jobId, String requestId)` Submit an exception to GS from a Throwable, this is the only constructor that should be used to report incidents
`SFStatement(SFSession session)`

### Uses of SFSession in net.snowflake.client.jdbc

Methods in net.snowflake.client.jdbc that return SFSession
`SFSession` SnowflakeFileTransferConfig.`getSession()`
`SFSession` SnowflakeConnectionV1.`getSfSession()`

Methods in net.snowflake.client.jdbc with parameters of type SFSession

`static Callable<Void>`

SnowflakeFileTransferAgent.`getDownloadFileCallable(StageInfo stage, String srcFilePath, String localLocation, Map<String,net.snowflake.client.jdbc.SnowflakeFileTransferAgent.FileMetadata> fileMetadataMap, SnowflakeStorageClient client, SFSession session, String command, int parallel, net.snowflake.common.core.RemoteStoreFileEncryptionMaterial encMat, String presignedUrl)`
A callable that can be executed in a separate thread using executor service.

`static Callable<Void>`

SnowflakeFileTransferAgent.`getUploadFileCallable(StageInfo stage, String srcFilePath, net.snowflake.client.jdbc.SnowflakeFileTransferAgent.FileMetadata metadata, SnowflakeStorageClient client, SFSession session, String command, InputStream inputStream, boolean sourceFromStream, int parallel, File srcFile, net.snowflake.common.core.RemoteStoreFileEncryptionMaterial encMat)`
A callable that can be executed in a separate thread using exeuctor service.

`static void` SnowflakeFileTransferAgent.`renewExpiredToken(SFSession session, String command, SnowflakeStorageClient client)` This static method is called when we are handling an expired token exception It retrieves a fresh token from GS and then calls .renew() on the storage client to refresh itself with the new token
`SnowflakeFileTransferConfig.Builder` SnowflakeFileTransferConfig.Builder.`setSFSession(SFSession session)`

Constructors in net.snowflake.client.jdbc with parameters of type SFSession
Constructor and Description
`SnowflakeFileTransferAgent(String command, SFSession session, SFStatement statement)`

### Uses of SFSession in net.snowflake.client.jdbc.cloud.storage

Methods in net.snowflake.client.jdbc.cloud.storage with parameters of type SFSession
`SnowflakeStorageClient` StorageClientFactory.`createClient(StageInfo stage, int parallel, net.snowflake.common.core.RemoteStoreFileEncryptionMaterial encMat, SFSession session)` Creates a storage client based on the value of stageLocationType
`static SnowflakeGCSClient` SnowflakeGCSClient.`createSnowflakeGCSClient(StageInfo stage, net.snowflake.common.core.RemoteStoreFileEncryptionMaterial encMat, SFSession session)`
`void` SnowflakeStorageClient.`download(SFSession connection, String command, String localLocation, String destFileName, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage.
`void` SnowflakeS3Client.`download(SFSession session, String command, String localLocation, String destFileName, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from S3.
`void` SnowflakeGCSClient.`download(SFSession session, String command, String localLocation, String destFileName, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage.
`void` SnowflakeAzureClient.`download(SFSession session, String command, String localLocation, String destFileName, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage.
`InputStream` SnowflakeStorageClient.`downloadToStream(SFSession connection, String command, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage
`InputStream` SnowflakeS3Client.`downloadToStream(SFSession session, String command, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage
`InputStream` SnowflakeGCSClient.`downloadToStream(SFSession session, String command, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage
`InputStream` SnowflakeAzureClient.`downloadToStream(SFSession session, String command, int parallelism, String remoteStorageLocation, String stageFilePath, String stageRegion, String presignedUrl)` Download a file from remote storage
`void` SnowflakeStorageClient.`handleStorageException(Exception ex, int retryCount, String operation, SFSession connection, String command)` Handles exceptions thrown by the remote storage provider
`void` SnowflakeS3Client.`handleStorageException(Exception ex, int retryCount, String operation, SFSession session, String command)`
`void` SnowflakeGCSClient.`handleStorageException(Exception ex, int retryCount, String operation, SFSession session, String command)`
`void` SnowflakeAzureClient.`handleStorageException(Exception ex, int retryCount, String operation, SFSession session, String command)` Handles exceptions thrown by Azure Storage
`void` SnowflakeStorageClient.`upload(SFSession connection, String command, int parallelism, boolean uploadFromStream, String remoteStorageLocation, File srcFile, String destFileName, InputStream inputStream, FileBackedOutputStream fileBackedOutputStream, StorageObjectMetadata meta, String stageRegion, String presignedUrl)` Upload a file (-stream) to remote storage
`void` SnowflakeS3Client.`upload(SFSession session, String command, int parallelism, boolean uploadFromStream, String remoteStorageLocation, File srcFile, String destFileName, InputStream inputStream, FileBackedOutputStream fileBackedOutputStream, StorageObjectMetadata meta, String stageRegion, String presignedUrl)` Upload a file (-stream) to S3.
`void` SnowflakeGCSClient.`upload(SFSession session, String command, int parallelism, boolean uploadFromStream, String remoteStorageLocation, File srcFile, String destFileName, InputStream inputStream, FileBackedOutputStream fileBackedOutputStream, StorageObjectMetadata meta, String stageRegion, String presignedUrl)` Upload a file/stream to remote storage
`void` SnowflakeAzureClient.`upload(SFSession session, String command, int parallelism, boolean uploadFromStream, String remoteStorageLocation, File srcFile, String destFileName, InputStream inputStream, FileBackedOutputStream fileBackedOutputStream, StorageObjectMetadata meta, String stageRegion, String presignedUrl)` Upload a file/stream to remote storage

### Uses of SFSession in net.snowflake.client.jdbc.telemetry

Methods in net.snowflake.client.jdbc.telemetry with parameters of type SFSession
`static Telemetry` TelemetryClient.`createTelemetry(SFSession session)` Initialize the telemetry connector
`static Telemetry` TelemetryClient.`createTelemetry(SFSession session, int flushSize)` Initialize the telemetry connector