This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-rs-object-store.git
The following commit(s) were added to refs/heads/main by this push:
new 1b8ecc7 docs: document missing config keys (#498)
1b8ecc7 is described below
commit 1b8ecc7f41eab2a3c2c373f1c2fe21bebe391727
Author: Frank Elsinga <[email protected]>
AuthorDate: Mon Nov 3 21:32:18 2025 +0100
docs: document missing config keys (#498)
* document all the missing keys
* Apply suggestion from @CommanderStorm
* Apply suggestion from @CommanderStorm
* Apply suggestion from @CommanderStorm
* Apply suggestion from @CommanderStorm
* Update src/aws/builder.rs
* Update src/aws/builder.rs
* Update src/aws/builder.rs
* Update src/aws/builder.rs
---------
Co-authored-by: Andrew Lamb <[email protected]>
---
src/aws/builder.rs | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++----
src/client/mod.rs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/gcp/builder.rs | 8 ++++++++
3 files changed, 114 insertions(+), 4 deletions(-)
diff --git a/src/aws/builder.rs b/src/aws/builder.rs
index 79d6b0f..7c05964 100644
--- a/src/aws/builder.rs
+++ b/src/aws/builder.rs
@@ -318,16 +318,28 @@ pub enum AmazonS3ConfigKey {
/// Set the container credentials relative URI when used in ECS
///
///
<https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html>
+ ///
+ /// Supported keys:
+ /// - `aws_container_credentials_relative_uri`
+ /// - `container_credentials_relative_uri`
ContainerCredentialsRelativeUri,
/// Set the container credentials full URI when used in EKS
///
///
<https://docs.aws.amazon.com/sdkref/latest/guide/feature-container-credentials.html>
+ ///
+ /// Supported keys:
+ /// - `aws_container_credentials_full_uri`
+ /// - `container_credentials_full_uri`
ContainerCredentialsFullUri,
/// Set the authorization token in plain text when used in EKS to
authenticate with ContainerCredentialsFullUri
///
///
<https://docs.aws.amazon.com/sdkref/latest/guide/feature-container-credentials.html>
+ ///
+ /// Supported keys:
+ /// - `aws_container_authorization_token_file`
+ /// - `container_authorization_token_file`
ContainerAuthorizationTokenFile,
/// Web identity token file path for AssumeRoleWithWebIdentity
@@ -361,14 +373,26 @@ pub enum AmazonS3ConfigKey {
/// Configure how to provide `copy_if_not_exists`
///
/// See [`S3CopyIfNotExists`]
+ ///
+ /// Supported keys:
+ /// - `aws_copy_if_not_exists`
+ /// - `copy_if_not_exists`
CopyIfNotExists,
/// Configure how to provide conditional put operations
///
/// See [`S3ConditionalPut`]
+ ///
+ /// Supported keys:
+ /// - `aws_conditional_put`
+ /// - `conditional_put`
ConditionalPut,
/// Skip signing request
+ ///
+ /// Supported keys:
+ /// - `aws_skip_signature`
+ /// - `skip_signature`
SkipSignature,
/// Disable tagging objects
@@ -1206,17 +1230,41 @@ fn parse_bucket_az(bucket: &str) -> Option<&str> {
#[derive(PartialEq, Eq, Hash, Clone, Debug, Copy, Serialize, Deserialize)]
#[non_exhaustive]
pub enum S3EncryptionConfigKey {
- /// Type of encryption to use. If set, must be one of "AES256" (SSE-S3),
"aws:kms" (SSE-KMS), "aws:kms:dsse" (DSSE-KMS) or "sse-c".
+ /// Type of encryption to use.
+ ///
+ /// If set, must be one of
+ /// - "AES256" (SSE-S3),
+ /// - "aws:kms" (SSE-KMS),
+ /// - "aws:kms:dsse" (DSSE-KMS) or
+ /// - "sse-c"
+ ///
+ /// Supported keys:
+ /// - `aws_server_side_encryption`
+ /// - `server_side_encryption`
ServerSideEncryption,
- /// The KMS key ID to use for server-side encryption. If set,
ServerSideEncryption
- /// must be "aws:kms" or "aws:kms:dsse".
+ /// The KMS key ID to use for server-side encryption.
+ ///
+ /// If set, [ServerSideEncryption](Self::ServerSideEncryption) must be
"aws:kms" or "aws:kms:dsse".
+ ///
+ /// Supported keys:
+ /// - `aws_sse_kms_key_id`
+ /// - `sse_kms_key_id`
KmsKeyId,
/// If set to true, will use the bucket's default KMS key for server-side
encryption.
/// If set to false, will disable the use of the bucket's default KMS key
for server-side encryption.
+ ///
+ /// Supported keys:
+ /// - `aws_sse_bucket_key_enabled`
+ /// - `sse_bucket_key_enabled`
BucketKeyEnabled,
/// The base64 encoded, 256-bit customer encryption key to use for
server-side encryption.
- /// If set, ServerSideEncryption must be "sse-c".
+ ///
+ /// If set, [ServerSideEncryption](Self::ServerSideEncryption) must be
"sse-c".
+ ///
+ /// Supported keys:
+ /// - `aws_sse_customer_key_base64`
+ /// - `sse_customer_key_base64`
CustomerEncryptionKey,
}
diff --git a/src/client/mod.rs b/src/client/mod.rs
index 58b27d2..def8aca 100644
--- a/src/client/mod.rs
+++ b/src/client/mod.rs
@@ -82,6 +82,9 @@ static DEFAULT_USER_AGENT: &str =
concat!(env!("CARGO_PKG_NAME"), "/", env!("CAR
#[non_exhaustive]
pub enum ClientConfigKey {
/// Allow non-TLS, i.e. non-HTTPS connections
+ ///
+ /// Supported keys:
+ /// - `allow_http`
AllowHttp,
/// Skip certificate validation on https connections.
///
@@ -92,45 +95,96 @@ pub enum ClientConfigKey {
/// will be trusted for use. This includes expired certificates. This
/// introduces significant vulnerabilities, and should only be used
/// as a last resort or for testing
+ ///
+ /// Supported keys:
+ /// - `allow_invalid_certificates`
AllowInvalidCertificates,
/// Timeout for only the connect phase of a Client
+ ///
+ /// Supported keys:
+ /// - `connect_timeout`
ConnectTimeout,
/// default CONTENT_TYPE for uploads
+ ///
+ /// Supported keys:
+ /// - `default_content_type`
DefaultContentType,
/// Only use http1 connections
+ ///
+ /// Supported keys:
+ /// - `http1_only`
Http1Only,
/// Interval for HTTP2 Ping frames should be sent to keep a connection
alive.
+ ///
+ /// Supported keys:
+ /// - `http2_keep_alive_interval`
Http2KeepAliveInterval,
/// Timeout for receiving an acknowledgement of the keep-alive ping.
+ ///
+ /// Supported keys:
+ /// - `http2_keep_alive_timeout`
Http2KeepAliveTimeout,
/// Enable HTTP2 keep alive pings for idle connections
+ ///
+ /// Supported keys:
+ /// - `http2_keep_alive_while_idle`
Http2KeepAliveWhileIdle,
/// Sets the maximum frame size to use for HTTP2.
+ ///
+ /// Supported keys:
+ /// - `http2_max_frame_size`
Http2MaxFrameSize,
/// Only use http2 connections
+ ///
+ /// Supported keys:
+ /// - `http2_only`
Http2Only,
/// The pool max idle timeout
///
/// This is the length of time an idle connection will be kept alive
+ ///
+ /// Supported keys:
+ /// - `pool_idle_timeout`
PoolIdleTimeout,
/// maximum number of idle connections per host
+ ///
+ /// Supported keys:
+ /// - `pool_max_idle_per_host`
PoolMaxIdlePerHost,
/// HTTP proxy to use for requests
+ ///
+ /// Supported keys:
+ /// - `proxy_url`
ProxyUrl,
/// PEM-formatted CA certificate for proxy connections
+ ///
+ /// Supported keys:
+ /// - `proxy_ca_certificate`
ProxyCaCertificate,
/// List of hosts that bypass proxy
+ ///
+ /// Supported keys:
+ /// - `proxy_excludes`
ProxyExcludes,
/// Randomize order addresses that the DNS resolution yields.
///
/// This will spread the connections across more servers.
+ ///
+ /// Supported keys:
+ /// - `randomize_addresses`
RandomizeAddresses,
/// Request timeout
///
/// The timeout is applied from when the request starts connecting until
the
/// response body has finished
+ ///
+ /// Supported keys:
+ /// - `timeout`
Timeout,
/// User-Agent header to be used by this client
+ ///
+ /// Supported keys:
+ /// - `user_agent`
UserAgent,
}
diff --git a/src/gcp/builder.rs b/src/gcp/builder.rs
index 1d3a495..581e701 100644
--- a/src/gcp/builder.rs
+++ b/src/gcp/builder.rs
@@ -162,9 +162,17 @@ pub enum GoogleConfigKey {
/// Application credentials path
///
/// See [`GoogleCloudStorageBuilder::with_application_credentials`].
+ ///
+ /// Supported keys:
+ /// - `google_application_credentials`
+ /// - `application_credentials`
ApplicationCredentials,
/// Skip signing request
+ ///
+ /// Supported keys:
+ /// - `google_skip_signature`
+ /// - `skip_signature`
SkipSignature,
/// Client options