You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by er...@apache.org on 2025/05/12 19:14:15 UTC
(opendal) 05/05: doc(bindings/python): generate service pages
This is an automated email from the ASF dual-hosted git repository.
erickguan pushed a commit to branch docs-service-website
in repository https://gitbox.apache.org/repos/asf/opendal.git
commit 877cd7ee2f0eff913b015f3140f6a3fda3226f85
Author: Erick Guan <29...@users.noreply.github.com>
AuthorDate: Mon May 12 20:55:12 2025 +0200
doc(bindings/python): generate service pages
---
bindings/python/docs/services/SUMMARY.md | 60 ++++++
bindings/python/docs/services/aliyun_drive.md | 46 +++++
bindings/python/docs/services/alluxio.md | 16 ++
bindings/python/docs/services/atomicserver.md | 22 +++
bindings/python/docs/services/azblob.md | 49 +++++
bindings/python/docs/services/azdls.md | 22 +++
bindings/python/docs/services/azfile.md | 26 +++
bindings/python/docs/services/b2.md | 34 ++++
bindings/python/docs/services/cacache.md | 6 +
bindings/python/docs/services/cloudflare_kv.md | 18 ++
bindings/python/docs/services/compfs.md | 8 +
bindings/python/docs/services/cos.md | 30 +++
bindings/python/docs/services/d1.md | 30 +++
bindings/python/docs/services/dashmap.md | 6 +
bindings/python/docs/services/dbfs.md | 14 ++
bindings/python/docs/services/dropbox.md | 22 +++
bindings/python/docs/services/fs.md | 10 +
bindings/python/docs/services/gcs.md | 59 ++++++
bindings/python/docs/services/gdrive.md | 22 +++
bindings/python/docs/services/ghac.md | 18 ++
bindings/python/docs/services/github.md | 28 +++
bindings/python/docs/services/gridfs.md | 22 +++
bindings/python/docs/services/hdfs_native.md | 14 ++
bindings/python/docs/services/http.md | 22 +++
bindings/python/docs/services/huggingface.md | 34 ++++
bindings/python/docs/services/icloud.md | 39 ++++
bindings/python/docs/services/ipfs.md | 10 +
bindings/python/docs/services/ipmfs.md | 10 +
bindings/python/docs/services/koofr.md | 20 ++
bindings/python/docs/services/lakefs.md | 38 ++++
bindings/python/docs/services/memcached.md | 26 +++
bindings/python/docs/services/memory.md | 6 +
bindings/python/docs/services/mini_moka.md | 24 +++
bindings/python/docs/services/moka.md | 34 ++++
bindings/python/docs/services/mongodb.md | 26 +++
bindings/python/docs/services/monoiofs.md | 10 +
bindings/python/docs/services/mysql.md | 32 ++++
bindings/python/docs/services/nebula_graph.md | 38 ++++
bindings/python/docs/services/obs.md | 26 +++
bindings/python/docs/services/onedrive.md | 26 +++
bindings/python/docs/services/opfs.md | 2 +
bindings/python/docs/services/oss.md | 80 ++++++++
bindings/python/docs/services/pcloud.md | 20 ++
bindings/python/docs/services/persy.md | 14 ++
bindings/python/docs/services/postgresql.md | 33 ++++
bindings/python/docs/services/redb.md | 14 ++
bindings/python/docs/services/redis.md | 42 ++++
bindings/python/docs/services/s3.md | 222 ++++++++++++++++++++++
bindings/python/docs/services/seafile.md | 26 +++
bindings/python/docs/services/sftp.md | 26 +++
bindings/python/docs/services/sled.md | 14 ++
bindings/python/docs/services/sqlite.md | 38 ++++
bindings/python/docs/services/surrealdb.md | 38 ++++
bindings/python/docs/services/swift.md | 18 ++
bindings/python/docs/services/upyun.md | 20 ++
bindings/python/docs/services/vercel_artifacts.md | 6 +
bindings/python/docs/services/vercel_blob.md | 12 ++
bindings/python/docs/services/webdav.md | 26 +++
bindings/python/docs/services/webhdfs.md | 26 +++
bindings/python/docs/services/yandex_disk.md | 12 ++
bindings/python/python/opendal/__base.pyi | 1 +
61 files changed, 1693 insertions(+)
diff --git a/bindings/python/docs/services/SUMMARY.md b/bindings/python/docs/services/SUMMARY.md
new file mode 100644
index 000000000..3a60d5404
--- /dev/null
+++ b/bindings/python/docs/services/SUMMARY.md
@@ -0,0 +1,60 @@
+
+- [`aliyun_drive`](aliyun_drive.md)
+- [`alluxio`](alluxio.md)
+- [`atomicserver`](atomicserver.md)
+- [`azblob`](azblob.md)
+- [`azdls`](azdls.md)
+- [`azfile`](azfile.md)
+- [`b2`](b2.md)
+- [`cacache`](cacache.md)
+- [`cloudflare_kv`](cloudflare_kv.md)
+- [`compfs`](compfs.md)
+- [`cos`](cos.md)
+- [`d1`](d1.md)
+- [`dashmap`](dashmap.md)
+- [`dbfs`](dbfs.md)
+- [`dropbox`](dropbox.md)
+- [`fs`](fs.md)
+- [`gcs`](gcs.md)
+- [`gdrive`](gdrive.md)
+- [`ghac`](ghac.md)
+- [`github`](github.md)
+- [`gridfs`](gridfs.md)
+- [`hdfs_native`](hdfs_native.md)
+- [`http`](http.md)
+- [`huggingface`](huggingface.md)
+- [`icloud`](icloud.md)
+- [`ipfs`](ipfs.md)
+- [`ipmfs`](ipmfs.md)
+- [`koofr`](koofr.md)
+- [`lakefs`](lakefs.md)
+- [`memcached`](memcached.md)
+- [`memory`](memory.md)
+- [`mini_moka`](mini_moka.md)
+- [`moka`](moka.md)
+- [`mongodb`](mongodb.md)
+- [`monoiofs`](monoiofs.md)
+- [`mysql`](mysql.md)
+- [`nebula_graph`](nebula_graph.md)
+- [`obs`](obs.md)
+- [`onedrive`](onedrive.md)
+- [`opfs`](opfs.md)
+- [`oss`](oss.md)
+- [`pcloud`](pcloud.md)
+- [`persy`](persy.md)
+- [`postgresql`](postgresql.md)
+- [`redb`](redb.md)
+- [`redis`](redis.md)
+- [`s3`](s3.md)
+- [`seafile`](seafile.md)
+- [`sftp`](sftp.md)
+- [`sled`](sled.md)
+- [`sqlite`](sqlite.md)
+- [`surrealdb`](surrealdb.md)
+- [`swift`](swift.md)
+- [`upyun`](upyun.md)
+- [`vercel_artifacts`](vercel_artifacts.md)
+- [`vercel_blob`](vercel_blob.md)
+- [`webdav`](webdav.md)
+- [`webhdfs`](webhdfs.md)
+- [`yandex_disk`](yandex_disk.md)
\ No newline at end of file
diff --git a/bindings/python/docs/services/aliyun_drive.md b/bindings/python/docs/services/aliyun_drive.md
new file mode 100644
index 000000000..da8f376e1
--- /dev/null
+++ b/bindings/python/docs/services/aliyun_drive.md
@@ -0,0 +1,46 @@
+## AliyunDriveConfig
+
+### `drive_type`: `str`
+
+The drive_type of this backend.
+
+All operations will happen under this type of drive.
+
+Available values are `default`, `backup` and `resource`.
+
+Fallback to default if not set or no other drives can be found.
+
+### `root`: `str`
+
+The Root of this backend.
+
+All operations will happen under this root.
+
+Default to `/` if not set.
+
+### `access_token`: `str`
+
+The access_token of this backend.
+
+Solution for client-only purpose. #4733
+
+Required if no client_id, client_secret and refresh_token are provided.
+
+### `client_id`: `str`
+
+The client_id of this backend.
+
+Required if no access_token is provided.
+
+### `client_secret`: `str`
+
+The client_secret of this backend.
+
+Required if no access_token is provided.
+
+### `refresh_token`: `str`
+
+The refresh_token of this backend.
+
+Required if no access_token is provided.
+
diff --git a/bindings/python/docs/services/alluxio.md b/bindings/python/docs/services/alluxio.md
new file mode 100644
index 000000000..c2c0ce4af
--- /dev/null
+++ b/bindings/python/docs/services/alluxio.md
@@ -0,0 +1,16 @@
+## AlluxioConfig
+
+### `root`: `str`
+
+root of this backend.
+
+All operations will happen under this root.
+
+default to `/` if not set.
+
+### `endpoint`: `str`
+
+endpoint of this backend.
+
+Endpoint must be full uri, mostly like `http://127.0.0.1:39999`.
+
diff --git a/bindings/python/docs/services/atomicserver.md b/bindings/python/docs/services/atomicserver.md
new file mode 100644
index 000000000..4b4cb988b
--- /dev/null
+++ b/bindings/python/docs/services/atomicserver.md
@@ -0,0 +1,22 @@
+## AtomicserverConfig
+
+### `root`: `str`
+
+work dir of this backend
+
+### `endpoint`: `str`
+
+endpoint of this backend
+
+### `private_key`: `str`
+
+private_key of this backend
+
+### `public_key`: `str`
+
+public_key of this backend
+
+### `parent_resource_id`: `str`
+
+parent_resource_id of this backend
+
diff --git a/bindings/python/docs/services/azblob.md b/bindings/python/docs/services/azblob.md
new file mode 100644
index 000000000..338f7823c
--- /dev/null
+++ b/bindings/python/docs/services/azblob.md
@@ -0,0 +1,49 @@
+## AzblobConfig
+
+### `container`: `str`
+
+The container name of Azblob service backend.
+
+### `root`: `str`
+
+The root of Azblob service backend.
+
+All operations will happen under this root.
+
+### `endpoint`: `str`
+
+The endpoint of Azblob service backend.
+
+Endpoint must be full uri, e.g.
+
+- Azblob: `https://accountname.blob.core.windows.net`
+- Azurite: `http://127.0.0.1:10000/devstoreaccount1`
+
+### `account_name`: `str`
+
+The account name of Azblob service backend.
+
+### `account_key`: `str`
+
+The account key of Azblob service backend.
+
+### `encryption_key`: `str`
+
+The encryption key of Azblob service backend.
+
+### `encryption_key_sha256`: `str`
+
+The encryption key sha256 of Azblob service backend.
+
+### `encryption_algorithm`: `str`
+
+The encryption algorithm of Azblob service backend.
+
+### `sas_token`: `str`
+
+The sas token of Azblob service backend.
+
+### `batch_max_operations`: `_int`
+
+The maximum batch operations of Azblob service backend.
+
diff --git a/bindings/python/docs/services/azdls.md b/bindings/python/docs/services/azdls.md
new file mode 100644
index 000000000..98b0ae046
--- /dev/null
+++ b/bindings/python/docs/services/azdls.md
@@ -0,0 +1,22 @@
+## AzdlsConfig
+
+### `filesystem`: `str`
+
+Filesystem name of this backend.
+
+### `root`: `str`
+
+Root of this backend.
+
+### `endpoint`: `str`
+
+Endpoint of this backend.
+
+### `account_name`: `str`
+
+Account name of this backend.
+
+### `account_key`: `str`
+
+Account key of this backend.
+
diff --git a/bindings/python/docs/services/azfile.md b/bindings/python/docs/services/azfile.md
new file mode 100644
index 000000000..ded771001
--- /dev/null
+++ b/bindings/python/docs/services/azfile.md
@@ -0,0 +1,26 @@
+## AzfileConfig
+
+### `share_name`: `str`
+
+The share name for azfile.
+
+### `root`: `str`
+
+The root path for azfile.
+
+### `endpoint`: `str`
+
+The endpoint for azfile.
+
+### `account_name`: `str`
+
+The account name for azfile.
+
+### `account_key`: `str`
+
+The account key for azfile.
+
+### `sas_token`: `str`
+
+The sas token for azfile.
+
diff --git a/bindings/python/docs/services/b2.md b/bindings/python/docs/services/b2.md
new file mode 100644
index 000000000..9549c6a35
--- /dev/null
+++ b/bindings/python/docs/services/b2.md
@@ -0,0 +1,34 @@
+## B2Config
+
+### `bucket`: `str`
+
+bucket of this backend.
+
+required.
+
+### `bucket_id`: `str`
+
+bucket id of this backend.
+
+required.
+
+### `root`: `str`
+
+root of this backend.
+
+All operations will happen under this root.
+
+### `application_key_id`: `str`
+
+keyID of this backend.
+
+- If application_key_id is set, we will take user's input first.
+- If not, we will try to load it from environment.
+
+### `application_key`: `str`
+
+applicationKey of this backend.
+
+- If application_key is set, we will take user's input first.
+- If not, we will try to load it from environment.
+
diff --git a/bindings/python/docs/services/cacache.md b/bindings/python/docs/services/cacache.md
new file mode 100644
index 000000000..55ce5f84c
--- /dev/null
+++ b/bindings/python/docs/services/cacache.md
@@ -0,0 +1,6 @@
+## CacacheConfig
+
+### `datadir`: `str`
+
+That path to the cacache data directory.
+
diff --git a/bindings/python/docs/services/cloudflare_kv.md b/bindings/python/docs/services/cloudflare_kv.md
new file mode 100644
index 000000000..3dd6035cd
--- /dev/null
+++ b/bindings/python/docs/services/cloudflare_kv.md
@@ -0,0 +1,18 @@
+## CloudflareKvConfig
+
+### `token`: `str`
+
+The token used to authenticate with CloudFlare.
+
+### `account_id`: `str`
+
+The account ID used to authenticate with CloudFlare. Used as URI path parameter.
+
+### `namespace_id`: `str`
+
+The namespace ID. Used as URI path parameter.
+
+### `root`: `str`
+
+Root within this backend.
+
diff --git a/bindings/python/docs/services/compfs.md b/bindings/python/docs/services/compfs.md
new file mode 100644
index 000000000..388dc210e
--- /dev/null
+++ b/bindings/python/docs/services/compfs.md
@@ -0,0 +1,8 @@
+## CompfsConfig
+
+### `root`: `str`
+
+root of this backend.
+
+All operations will happen under this root.
+
diff --git a/bindings/python/docs/services/cos.md b/bindings/python/docs/services/cos.md
new file mode 100644
index 000000000..1c2e3f5bb
--- /dev/null
+++ b/bindings/python/docs/services/cos.md
@@ -0,0 +1,30 @@
+## CosConfig
+
+### `root`: `str`
+
+Root of this backend.
+
+### `endpoint`: `str`
+
+Endpoint of this backend.
+
+### `secret_id`: `str`
+
+Secret ID of this backend.
+
+### `secret_key`: `str`
+
+Secret key of this backend.
+
+### `bucket`: `str`
+
+Bucket of this backend.
+
+### `enable_versioning`: `_bool`
+
+is bucket versioning enabled for this bucket
+
+### `disable_config_load`: `_bool`
+
+Disable config load so that opendal will not load config from
+
diff --git a/bindings/python/docs/services/d1.md b/bindings/python/docs/services/d1.md
new file mode 100644
index 000000000..76628f0d6
--- /dev/null
+++ b/bindings/python/docs/services/d1.md
@@ -0,0 +1,30 @@
+## D1Config
+
+### `token`: `str`
+
+Set the token of cloudflare api.
+
+### `account_id`: `str`
+
+Set the account id of cloudflare api.
+
+### `database_id`: `str`
+
+Set the database id of cloudflare api.
+
+### `root`: `str`
+
+Set the working directory of OpenDAL.
+
+### `table`: `str`
+
+Set the table of D1 Database.
+
+### `key_field`: `str`
+
+Set the key field of D1 Database.
+
+### `value_field`: `str`
+
+Set the value field of D1 Database.
+
diff --git a/bindings/python/docs/services/dashmap.md b/bindings/python/docs/services/dashmap.md
new file mode 100644
index 000000000..bd93fa50c
--- /dev/null
+++ b/bindings/python/docs/services/dashmap.md
@@ -0,0 +1,6 @@
+## DashmapConfig
+
+### `root`: `str`
+
+The root path for dashmap.
+
diff --git a/bindings/python/docs/services/dbfs.md b/bindings/python/docs/services/dbfs.md
new file mode 100644
index 000000000..ff50f0437
--- /dev/null
+++ b/bindings/python/docs/services/dbfs.md
@@ -0,0 +1,14 @@
+## DbfsConfig
+
+### `root`: `str`
+
+The root for dbfs.
+
+### `endpoint`: `str`
+
+The endpoint for dbfs.
+
+### `token`: `str`
+
+The token for dbfs.
+
diff --git a/bindings/python/docs/services/dropbox.md b/bindings/python/docs/services/dropbox.md
new file mode 100644
index 000000000..02a23e7ea
--- /dev/null
+++ b/bindings/python/docs/services/dropbox.md
@@ -0,0 +1,22 @@
+## DropboxConfig
+
+### `root`: `str`
+
+root path for dropbox.
+
+### `access_token`: `str`
+
+access token for dropbox.
+
+### `refresh_token`: `str`
+
+refresh_token for dropbox.
+
+### `client_id`: `str`
+
+client_id for dropbox.
+
+### `client_secret`: `str`
+
+client_secret for dropbox.
+
diff --git a/bindings/python/docs/services/fs.md b/bindings/python/docs/services/fs.md
new file mode 100644
index 000000000..06ddbabdd
--- /dev/null
+++ b/bindings/python/docs/services/fs.md
@@ -0,0 +1,10 @@
+## FsConfig
+
+### `root`: `str`
+
+root dir for backend
+
+### `atomic_write_dir`: `str`
+
+tmp dir for atomic write
+
diff --git a/bindings/python/docs/services/gcs.md b/bindings/python/docs/services/gcs.md
new file mode 100644
index 000000000..f08f50e58
--- /dev/null
+++ b/bindings/python/docs/services/gcs.md
@@ -0,0 +1,59 @@
+## GcsConfig
+
+### `bucket`: `str`
+
+bucket name
+
+### `root`: `str`
+
+root URI, all operations happens under `root`
+
+### `endpoint`: `str`
+
+endpoint URI of GCS service,
+default is `https://storage.googleapis.com`
+
+### `scope`: `str`
+
+Scope for gcs.
+
+### `service_account`: `str`
+
+Service Account for gcs.
+
+### `credential`: `str`
+
+Credentials string for GCS service OAuth2 authentication.
+
+### `credential_path`: `str`
+
+Local path to credentials file for GCS service OAuth2 authentication.
+
+### `predefined_acl`: `str`
+
+The predefined acl for GCS.
+
+### `default_storage_class`: `str`
+
+The default storage class used by gcs.
+
+### `allow_anonymous`: `_bool`
+
+Allow opendal to send requests without signing when credentials are not
+loaded.
+
+### `disable_vm_metadata`: `_bool`
+
+Disable attempting to load credentials from the GCE metadata server when
+running within Google Cloud.
+
+### `disable_config_load`: `_bool`
+
+Disable loading configuration from the environment.
+
+### `token`: `str`
+
+A Google Cloud OAuth2 token.
+
+Takes precedence over `credential` and `credential_path`.
+
diff --git a/bindings/python/docs/services/gdrive.md b/bindings/python/docs/services/gdrive.md
new file mode 100644
index 000000000..fec703bb7
--- /dev/null
+++ b/bindings/python/docs/services/gdrive.md
@@ -0,0 +1,22 @@
+## GdriveConfig
+
+### `root`: `str`
+
+The root for gdrive
+
+### `access_token`: `str`
+
+Access token for gdrive.
+
+### `refresh_token`: `str`
+
+Refresh token for gdrive.
+
+### `client_id`: `str`
+
+Client id for gdrive.
+
+### `client_secret`: `str`
+
+Client secret for gdrive.
+
diff --git a/bindings/python/docs/services/ghac.md b/bindings/python/docs/services/ghac.md
new file mode 100644
index 000000000..5e7ef588b
--- /dev/null
+++ b/bindings/python/docs/services/ghac.md
@@ -0,0 +1,18 @@
+## GhacConfig
+
+### `root`: `str`
+
+The root path for ghac.
+
+### `version`: `str`
+
+The version that used by cache.
+
+### `endpoint`: `str`
+
+The endpoint for ghac service.
+
+### `runtime_token`: `str`
+
+The runtime token for ghac service.
+
diff --git a/bindings/python/docs/services/github.md b/bindings/python/docs/services/github.md
new file mode 100644
index 000000000..70f9ccf29
--- /dev/null
+++ b/bindings/python/docs/services/github.md
@@ -0,0 +1,28 @@
+## GithubConfig
+
+### `owner`: `str`
+
+GitHub repo owner.
+
+required.
+
+### `repo`: `str`
+
+GitHub repo name.
+
+required.
+
+### `root`: `str`
+
+root of this backend.
+
+All operations will happen under this root.
+
+### `token`: `str`
+
+GitHub access_token.
+
+optional.
+If not provided, the backend will only support read operations for public repositories.
+And rate limit will be limited to 60 requests per hour.
+
diff --git a/bindings/python/docs/services/gridfs.md b/bindings/python/docs/services/gridfs.md
new file mode 100644
index 000000000..c2cc9ed92
--- /dev/null
+++ b/bindings/python/docs/services/gridfs.md
@@ -0,0 +1,22 @@
+## GridfsConfig
+
+### `connection_string`: `str`
+
+The connection string of the MongoDB service.
+
+### `database`: `str`
+
+The database name of the MongoDB GridFs service to read/write.
+
+### `bucket`: `str`
+
+The bucket name of the MongoDB GridFs service to read/write.
+
+### `chunk_size`: `_int`
+
+The chunk size of the MongoDB GridFs service used to break the user file into chunks.
+
+### `root`: `str`
+
+The working directory, all operations will be performed under it.
+
diff --git a/bindings/python/docs/services/hdfs_native.md b/bindings/python/docs/services/hdfs_native.md
new file mode 100644
index 000000000..c227ca7ae
--- /dev/null
+++ b/bindings/python/docs/services/hdfs_native.md
@@ -0,0 +1,14 @@
+## HdfsNativeConfig
+
+### `root`: `str`
+
+work dir of this backend
+
+### `name_node`: `str`
+
+name_node of this backend
+
+### `enable_append`: `_bool`
+
+enable the append capacity
+
diff --git a/bindings/python/docs/services/http.md b/bindings/python/docs/services/http.md
new file mode 100644
index 000000000..9d2decbcc
--- /dev/null
+++ b/bindings/python/docs/services/http.md
@@ -0,0 +1,22 @@
+## HttpConfig
+
+### `endpoint`: `str`
+
+endpoint of this backend
+
+### `username`: `str`
+
+username of this backend
+
+### `password`: `str`
+
+password of this backend
+
+### `token`: `str`
+
+token of this backend
+
+### `root`: `str`
+
+root of this backend
+
diff --git a/bindings/python/docs/services/huggingface.md b/bindings/python/docs/services/huggingface.md
new file mode 100644
index 000000000..5f5c69c10
--- /dev/null
+++ b/bindings/python/docs/services/huggingface.md
@@ -0,0 +1,34 @@
+## HuggingfaceConfig
+
+### `repo_type`: `str`
+
+Repo type of this backend. Default is model.
+
+Available values:
+- model
+- dataset
+
+### `repo_id`: `str`
+
+Repo id of this backend.
+
+This is required.
+
+### `revision`: `str`
+
+Revision of this backend.
+
+Default is main.
+
+### `root`: `str`
+
+Root of this backend. Can be "/path/to/dir".
+
+Default is "/".
+
+### `token`: `str`
+
+Token of this backend.
+
+This is optional.
+
diff --git a/bindings/python/docs/services/icloud.md b/bindings/python/docs/services/icloud.md
new file mode 100644
index 000000000..159ea1071
--- /dev/null
+++ b/bindings/python/docs/services/icloud.md
@@ -0,0 +1,39 @@
+## IcloudConfig
+
+### `root`: `str`
+
+root of this backend.
+
+All operations will happen under this root.
+
+default to `/` if not set.
+
+### `apple_id`: `str`
+
+apple_id of this backend.
+
+apple_id must be full, mostly like `example@gmail.com`.
+
+### `password`: `str`
+
+password of this backend.
+
+password must be full.
+
+### `trust_token`: `str`
+
+Session
+
+token must be valid.
+
+### `ds_web_auth_token`: `str`
+
+ds_web_auth_token must be set in Session
+
+### `is_china_mainland`: `_bool`
+
+enable the china origin
+China region `origin` Header needs to be set to "https://www.icloud.com.cn".
+
+otherwise Apple server will return 302.
+
diff --git a/bindings/python/docs/services/ipfs.md b/bindings/python/docs/services/ipfs.md
new file mode 100644
index 000000000..a3f828e8c
--- /dev/null
+++ b/bindings/python/docs/services/ipfs.md
@@ -0,0 +1,10 @@
+## IpfsConfig
+
+### `endpoint`: `str`
+
+IPFS gateway endpoint.
+
+### `root`: `str`
+
+IPFS root.
+
diff --git a/bindings/python/docs/services/ipmfs.md b/bindings/python/docs/services/ipmfs.md
new file mode 100644
index 000000000..ce65c9938
--- /dev/null
+++ b/bindings/python/docs/services/ipmfs.md
@@ -0,0 +1,10 @@
+## IpmfsConfig
+
+### `root`: `str`
+
+Root for ipfs.
+
+### `endpoint`: `str`
+
+Endpoint for ipfs.
+
diff --git a/bindings/python/docs/services/koofr.md b/bindings/python/docs/services/koofr.md
new file mode 100644
index 000000000..b36a3e036
--- /dev/null
+++ b/bindings/python/docs/services/koofr.md
@@ -0,0 +1,20 @@
+## KoofrConfig
+
+### `endpoint`: `str`
+
+Koofr endpoint.
+
+### `email`: `str`
+
+Koofr email.
+
+### `root`: `str`
+
+root of this backend.
+
+All operations will happen under this root.
+
+### `password`: `str`
+
+password of this backend. (Must be the application password)
+
diff --git a/bindings/python/docs/services/lakefs.md b/bindings/python/docs/services/lakefs.md
new file mode 100644
index 000000000..d77dcc693
--- /dev/null
+++ b/bindings/python/docs/services/lakefs.md
@@ -0,0 +1,38 @@
+## LakefsConfig
+
+### `endpoint`: `str`
+
+Base url.
+
+This is required.
+
+### `username`: `str`
+
+Username for Lakefs basic authentication.
+
+This is required.
+
+### `password`: `str`
+
+Password for Lakefs basic authentication.
+
+This is required.
+
+### `root`: `str`
+
+Root of this backend. Can be "/path/to/dir".
+
+Default is "/".
+
+### `repository`: `str`
+
+The repository name
+
+This is required.
+
+### `branch`: `str`
+
+Name of the branch or a commit ID. Default is main.
+
+This is optional.
+
diff --git a/bindings/python/docs/services/memcached.md b/bindings/python/docs/services/memcached.md
new file mode 100644
index 000000000..369b7aee4
--- /dev/null
+++ b/bindings/python/docs/services/memcached.md
@@ -0,0 +1,26 @@
+## MemcachedConfig
+
+### `endpoint`: `str`
+
+network address of the memcached service.
+
+For example: "tcp://localhost:11211"
+
+### `root`: `str`
+
+the working directory of the service. Can be "/path/to/dir"
+
+default is "/"
+
+### `username`: `str`
+
+Memcached username, optional.
+
+### `password`: `str`
+
+Memcached password, optional.
+
+### `default_ttl`: `_duration`
+
+The default ttl for put operations.
+
diff --git a/bindings/python/docs/services/memory.md b/bindings/python/docs/services/memory.md
new file mode 100644
index 000000000..c0e1f8096
--- /dev/null
+++ b/bindings/python/docs/services/memory.md
@@ -0,0 +1,6 @@
+## MemoryConfig
+
+### `root`: `str`
+
+root of the backend.
+
diff --git a/bindings/python/docs/services/mini_moka.md b/bindings/python/docs/services/mini_moka.md
new file mode 100644
index 000000000..a8d66b533
--- /dev/null
+++ b/bindings/python/docs/services/mini_moka.md
@@ -0,0 +1,24 @@
+## MiniMokaConfig
+
+### `max_capacity`: `_int`
+
+Sets the max capacity of the cache.
+
+Refer to [`mini-moka::sync::CacheBuilder::max_capacity`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.max_capacity)
+
+### `time_to_live`: `_duration`
+
+Sets the time to live of the cache.
+
+Refer to [`mini-moka::sync::CacheBuilder::time_to_live`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.time_to_live)
+
+### `time_to_idle`: `_duration`
+
+Sets the time to idle of the cache.
+
+Refer to [`mini-moka::sync::CacheBuilder::time_to_idle`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.time_to_idle)
+
+### `root`: `str`
+
+root path of this backend
+
diff --git a/bindings/python/docs/services/moka.md b/bindings/python/docs/services/moka.md
new file mode 100644
index 000000000..5769f14bf
--- /dev/null
+++ b/bindings/python/docs/services/moka.md
@@ -0,0 +1,34 @@
+## MokaConfig
+
+### `name`: `str`
+
+Name for this cache instance.
+
+### `max_capacity`: `_int`
+
+Sets the max capacity of the cache.
+
+Refer to [`moka::sync::CacheBuilder::max_capacity`](https://docs.rs/moka/latest/moka/sync/struct.CacheBuilder.html#method.max_capacity)
+
+### `time_to_live`: `_duration`
+
+Sets the time to live of the cache.
+
+Refer to [`moka::sync::CacheBuilder::time_to_live`](https://docs.rs/moka/latest/moka/sync/struct.CacheBuilder.html#method.time_to_live)
+
+### `time_to_idle`: `_duration`
+
+Sets the time to idle of the cache.
+
+Refer to [`moka::sync::CacheBuilder::time_to_idle`](https://docs.rs/moka/latest/moka/sync/struct.CacheBuilder.html#method.time_to_idle)
+
+### `num_segments`: `_int`
+
+Sets the segments number of the cache.
+
+Refer to [`moka::sync::CacheBuilder::segments`](https://docs.rs/moka/latest/moka/sync/struct.CacheBuilder.html#method.segments)
+
+### `root`: `str`
+
+root path of this backend
+
diff --git a/bindings/python/docs/services/mongodb.md b/bindings/python/docs/services/mongodb.md
new file mode 100644
index 000000000..1757aaa9a
--- /dev/null
+++ b/bindings/python/docs/services/mongodb.md
@@ -0,0 +1,26 @@
+## MongodbConfig
+
+### `connection_string`: `str`
+
+connection string of this backend
+
+### `database`: `str`
+
+database of this backend
+
+### `collection`: `str`
+
+collection of this backend
+
+### `root`: `str`
+
+root of this backend
+
+### `key_field`: `str`
+
+key field of this backend
+
+### `value_field`: `str`
+
+value field of this backend
+
diff --git a/bindings/python/docs/services/monoiofs.md b/bindings/python/docs/services/monoiofs.md
new file mode 100644
index 000000000..346b47dc2
--- /dev/null
+++ b/bindings/python/docs/services/monoiofs.md
@@ -0,0 +1,10 @@
+## MonoiofsConfig
+
+### `root`: `str`
+
+The Root of this backend.
+
+All operations will happen under this root.
+
+Builder::build will return error if not set.
+
diff --git a/bindings/python/docs/services/mysql.md b/bindings/python/docs/services/mysql.md
new file mode 100644
index 000000000..f935e1c78
--- /dev/null
+++ b/bindings/python/docs/services/mysql.md
@@ -0,0 +1,32 @@
+## MysqlConfig
+
+### `connection_string`: `str`
+
+This connection string is used to connect to the mysql service. There are url based formats.
+
+The format of connect string resembles the url format of the mysql client.
+The format is: `[scheme://][user[:[password]]@]host[:port][/schema][?attribute1=value1&attribute2=value2...`
+
+- `mysql://user@localhost`
+- `mysql://user:password@localhost`
+- `mysql://user:password@localhost:3306`
+- `mysql://user:password@localhost:3306/db`
+
+For more information, please refer to <https://docs.rs/sqlx/latest/sqlx/mysql/struct.MySqlConnectOptions.html>.
+
+### `table`: `str`
+
+The table name for mysql.
+
+### `key_field`: `str`
+
+The key field name for mysql.
+
+### `value_field`: `str`
+
+The value field name for mysql.
+
+### `root`: `str`
+
+The root for mysql.
+
diff --git a/bindings/python/docs/services/nebula_graph.md b/bindings/python/docs/services/nebula_graph.md
new file mode 100644
index 000000000..0df6fc794
--- /dev/null
+++ b/bindings/python/docs/services/nebula_graph.md
@@ -0,0 +1,38 @@
+## NebulaGraphConfig
+
+### `host`: `str`
+
+The host addr of nebulagraph's graphd server
+
+### `port`: `_int`
+
+The host port of nebulagraph's graphd server
+
+### `username`: `str`
+
+The username of nebulagraph's graphd server
+
+### `password`: `str`
+
+The password of nebulagraph's graphd server
+
+### `space`: `str`
+
+The space name of nebulagraph's graphd server
+
+### `tag`: `str`
+
+The tag name of nebulagraph's graphd server
+
+### `key_field`: `str`
+
+The key field name of the NebulaGraph service to read/write.
+
+### `value_field`: `str`
+
+The value field name of the NebulaGraph service to read/write.
+
+### `root`: `str`
+
+The root for NebulaGraph
+
diff --git a/bindings/python/docs/services/obs.md b/bindings/python/docs/services/obs.md
new file mode 100644
index 000000000..cbb69ae42
--- /dev/null
+++ b/bindings/python/docs/services/obs.md
@@ -0,0 +1,26 @@
+## ObsConfig
+
+### `root`: `str`
+
+Root for obs.
+
+### `endpoint`: `str`
+
+Endpoint for obs.
+
+### `access_key_id`: `str`
+
+Access key id for obs.
+
+### `secret_access_key`: `str`
+
+Secret access key for obs.
+
+### `bucket`: `str`
+
+Bucket for obs.
+
+### `enable_versioning`: `_bool`
+
+Is bucket versioning enabled for this bucket
+
diff --git a/bindings/python/docs/services/onedrive.md b/bindings/python/docs/services/onedrive.md
new file mode 100644
index 000000000..43b475cde
--- /dev/null
+++ b/bindings/python/docs/services/onedrive.md
@@ -0,0 +1,26 @@
+## OnedriveConfig
+
+### `root`: `str`
+
+The root path for the OneDrive service for the file access
+
+### `access_token`: `str`
+
+Microsoft Graph API (also OneDrive API) access token
+
+### `refresh_token`: `str`
+
+Microsoft Graph API (also OneDrive API) refresh token
+
+### `client_id`: `str`
+
+Microsoft Graph API Application (client) ID that is in the Azure's app registration portal
+
+### `client_secret`: `str`
+
+Microsoft Graph API Application client secret that is in the Azure's app registration portal
+
+### `enable_versioning`: `_bool`
+
+Enabling version support
+
diff --git a/bindings/python/docs/services/opfs.md b/bindings/python/docs/services/opfs.md
new file mode 100644
index 000000000..fdef37cf8
--- /dev/null
+++ b/bindings/python/docs/services/opfs.md
@@ -0,0 +1,2 @@
+## OpfsConfig
+
diff --git a/bindings/python/docs/services/oss.md b/bindings/python/docs/services/oss.md
new file mode 100644
index 000000000..11b056a38
--- /dev/null
+++ b/bindings/python/docs/services/oss.md
@@ -0,0 +1,80 @@
+## OssConfig
+
+### `bucket`: `str`
+
+Bucket for oss.
+
+### `root`: `str`
+
+Root for oss.
+
+### `endpoint`: `str`
+
+Endpoint for oss.
+
+### `presign_endpoint`: `str`
+
+Presign endpoint for oss.
+
+### `enable_versioning`: `_bool`
+
+is bucket versioning enabled for this bucket
+
+### `server_side_encryption`: `str`
+
+Server side encryption for oss.
+
+### `server_side_encryption_key_id`: `str`
+
+Server side encryption key id for oss.
+
+### `allow_anonymous`: `_bool`
+
+Allow anonymous for oss.
+
+### `access_key_id`: `str`
+
+Access key id for oss.
+
+### `access_key_secret`: `str`
+
+Access key secret for oss.
+
+### `batch_max_operations`: `_int`
+
+**deprecated**: Please use `delete_max_size` instead of `batch_max_operations`The size of max batch operations.
+
+### `delete_max_size`: `_int`
+
+The size of max delete operations.
+
+### `role_arn`: `str`
+
+If `role_arn` is set, we will use already known config as source
+credential to assume role with `role_arn`.
+
+### `role_session_name`: `str`
+
+role_session_name for this backend.
+
+### `oidc_provider_arn`: `str`
+
+`oidc_provider_arn` will be loaded from
+
+- this field if it's `is_some`
+- env value: [`ALIBABA_CLOUD_OIDC_PROVIDER_ARN`]
+
+### `oidc_token_file`: `str`
+
+`oidc_token_file` will be loaded from
+
+- this field if it's `is_some`
+- env value: [`ALIBABA_CLOUD_OIDC_TOKEN_FILE`]
+
+### `sts_endpoint`: `str`
+
+`sts_endpoint` will be loaded from
+
+- this field if it's `is_some`
+- env value: [`ALIBABA_CLOUD_STS_ENDPOINT`]
+
diff --git a/bindings/python/docs/services/pcloud.md b/bindings/python/docs/services/pcloud.md
new file mode 100644
index 000000000..e51a2346b
--- /dev/null
+++ b/bindings/python/docs/services/pcloud.md
@@ -0,0 +1,20 @@
+## PcloudConfig
+
+### `endpoint`: `str`
+
+pCloud endpoint address.
+
+### `root`: `str`
+
+root of this backend.
+
+All operations will happen under this root.
+
+### `username`: `str`
+
+pCloud username.
+
+### `password`: `str`
+
+pCloud password.
+
diff --git a/bindings/python/docs/services/persy.md b/bindings/python/docs/services/persy.md
new file mode 100644
index 000000000..5960dd3d9
--- /dev/null
+++ b/bindings/python/docs/services/persy.md
@@ -0,0 +1,14 @@
+## PersyConfig
+
+### `datafile`: `str`
+
+That path to the persy data file. The directory in the path must already exist.
+
+### `segment`: `str`
+
+That name of the persy segment.
+
+### `index`: `str`
+
+That name of the persy index.
+
diff --git a/bindings/python/docs/services/postgresql.md b/bindings/python/docs/services/postgresql.md
new file mode 100644
index 000000000..88a31bed2
--- /dev/null
+++ b/bindings/python/docs/services/postgresql.md
@@ -0,0 +1,33 @@
+## PostgresqlConfig
+
+### `root`: `str`
+
+Root of this backend.
+
+All operations will happen under this root.
+
+Default to `/` if not set.
+
+### `connection_string`: `str`
+
+The URL should be with a scheme of either `postgres://` or `postgresql://`.
+
+- `postgresql://user@localhost`
+- `postgresql://user:password@%2Fvar%2Flib%2Fpostgresql/mydb?connect_timeout=10`
+- `postgresql://user@host1:1234,host2,host3:5678?target_session_attrs=read-write`
+- `postgresql:///mydb?user=user&host=/var/lib/postgresql`
+
+For more information, please visit <https://docs.rs/sqlx/latest/sqlx/postgres/struct.PgConnectOptions.html>.
+
+### `table`: `str`
+
+the table of postgresql
+
+### `key_field`: `str`
+
+the key field of postgresql
+
+### `value_field`: `str`
+
+the value field of postgresql
+
diff --git a/bindings/python/docs/services/redb.md b/bindings/python/docs/services/redb.md
new file mode 100644
index 000000000..80a3b3126
--- /dev/null
+++ b/bindings/python/docs/services/redb.md
@@ -0,0 +1,14 @@
+## RedbConfig
+
+### `datadir`: `str`
+
+path to the redb data directory.
+
+### `root`: `str`
+
+The root for redb.
+
+### `table`: `str`
+
+The table name for redb.
+
diff --git a/bindings/python/docs/services/redis.md b/bindings/python/docs/services/redis.md
new file mode 100644
index 000000000..784d961ed
--- /dev/null
+++ b/bindings/python/docs/services/redis.md
@@ -0,0 +1,42 @@
+## RedisConfig
+
+### `db`: `_int`
+
+the number of DBs redis can take is unlimited
+
+default is db 0
+
+### `endpoint`: `str`
+
+network address of the Redis service. Can be "tcp://127.0.0.1:6379", e.g.
+
+default is "tcp://127.0.0.1:6379"
+
+### `cluster_endpoints`: `str`
+
+network address of the Redis cluster service. Can be "tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0.1:6381", e.g.
+
+default is None
+
+### `username`: `str`
+
+the username to connect redis service.
+
+default is None
+
+### `password`: `str`
+
+the password for authentication
+
+default is None
+
+### `root`: `str`
+
+the working directory of the Redis service. Can be "/path/to/dir"
+
+default is "/"
+
+### `default_ttl`: `_duration`
+
+The default ttl for put operations.
+
diff --git a/bindings/python/docs/services/s3.md b/bindings/python/docs/services/s3.md
new file mode 100644
index 000000000..70d67b794
--- /dev/null
+++ b/bindings/python/docs/services/s3.md
@@ -0,0 +1,222 @@
+## S3Config
+
+### `bucket`: `str`
+
+bucket name of this backend.
+
+required.
+
+### `root`: `str`
+
+root of this backend.
+
+All operations will happen under this root.
+
+default to `/` if not set.
+
+### `enable_versioning`: `_bool`
+
+is bucket versioning enabled for this bucket
+
+### `endpoint`: `str`
+
+endpoint of this backend.
+
+Endpoint must be full uri, e.g.
+
+- AWS S3: `https://s3.amazonaws.com` or `https://s3.{region}.amazonaws.com`
+- Cloudflare R2: `https://<ACCOUNT_ID>.r2.cloudflarestorage.com`
+- Aliyun OSS: `https://{region}.aliyuncs.com`
+- Tencent COS: `https://cos.{region}.myqcloud.com`
+- Minio: `http://127.0.0.1:9000`
+
+If user inputs endpoint without scheme like "s3.amazonaws.com", we
+will prepend "https://" before it.
+
+- If endpoint is set, we will take user's input first.
+- If not, we will try to load it from environment.
+- If still not set, default to `https://s3.amazonaws.com`.
+
+### `region`: `str`
+
+Region represent the signing region of this endpoint. This is required
+if you are using the default AWS S3 endpoint.
+
+If using a custom endpoint,
+- If region is set, we will take user's input first.
+- If not, we will try to load it from environment.
+
+### `access_key_id`: `str`
+
+access_key_id of this backend.
+
+- If access_key_id is set, we will take user's input first.
+- If not, we will try to load it from environment.
+
+### `secret_access_key`: `str`
+
+secret_access_key of this backend.
+
+- If secret_access_key is set, we will take user's input first.
+- If not, we will try to load it from environment.
+
+### `session_token`: `str`
+
+session_token (aka, security token) of this backend.
+
+This token will expire after sometime, it's recommended to set session_token
+by hand.
+
+### `role_arn`: `str`
+
+role_arn for this backend.
+
+If `role_arn` is set, we will use already known config as source
+credential to assume role with `role_arn`.
+
+### `external_id`: `str`
+
+external_id for this backend.
+
+### `role_session_name`: `str`
+
+role_session_name for this backend.
+
+### `disable_config_load`: `_bool`
+
+Disable config load so that opendal will not load config from
+environment.
+
+For examples:
+
+- envs like `AWS_ACCESS_KEY_ID`
+- files like `~/.aws/config`
+
+### `disable_ec2_metadata`: `_bool`
+
+Disable load credential from ec2 metadata.
+
+This option is used to disable the default behavior of opendal
+to load credential from ec2 metadata, a.k.a, IMDSv2
+
+### `allow_anonymous`: `_bool`
+
+Allow anonymous will allow opendal to send request without signing
+when credential is not loaded.
+
+### `server_side_encryption`: `str`
+
+server_side_encryption for this backend.
+
+Available values: `AES256`, `aws:kms`.
+
+### `server_side_encryption_aws_kms_key_id`: `str`
+
+server_side_encryption_aws_kms_key_id for this backend
+
+- If `server_side_encryption` set to `aws:kms`, and `server_side_encryption_aws_kms_key_id`
+is not set, S3 will use aws managed kms key to encrypt data.
+- If `server_side_encryption` set to `aws:kms`, and `server_side_encryption_aws_kms_key_id`
+is a valid kms key id, S3 will use the provided kms key to encrypt data.
+- If the `server_side_encryption_aws_kms_key_id` is invalid or not found, an error will be
+returned.
+- If `server_side_encryption` is not `aws:kms`, setting `server_side_encryption_aws_kms_key_id`
+is a noop.
+
+### `server_side_encryption_customer_algorithm`: `str`
+
+server_side_encryption_customer_algorithm for this backend.
+
+Available values: `AES256`.
+
+### `server_side_encryption_customer_key`: `str`
+
+server_side_encryption_customer_key for this backend.
+
+Value: BASE64-encoded key that matches algorithm specified in
+`server_side_encryption_customer_algorithm`.
+
+### `server_side_encryption_customer_key_md5`: `str`
+
+Set server_side_encryption_customer_key_md5 for this backend.
+
+Value: MD5 digest of key specified in `server_side_encryption_customer_key`.
+
+### `default_storage_class`: `str`
+
+default storage_class for this backend.
+
+Available values:
+- `DEEP_ARCHIVE`
+- `GLACIER`
+- `GLACIER_IR`
+- `INTELLIGENT_TIERING`
+- `ONEZONE_IA`
+- `EXPRESS_ONEZONE`
+- `OUTPOSTS`
+- `REDUCED_REDUNDANCY`
+- `STANDARD`
+- `STANDARD_IA`
+
+S3 compatible services don't support all of them
+
+### `enable_virtual_host_style`: `_bool`
+
+Enable virtual host style so that opendal will send API requests
+in virtual host style instead of path style.
+
+- By default, opendal will send API to `https://s3.us-east-1.amazonaws.com/bucket_name`
+- Enabled, opendal will send API to `https://bucket_name.s3.us-east-1.amazonaws.com`
+
+### `batch_max_operations`: `_int`
+
+**deprecated**: Please use `delete_max_size` instead of `batch_max_operations`Set maximum batch operations of this backend.
+
+Some compatible services have a limit on the number of operations in a batch request.
+For example, R2 could return `Internal Error` while batch delete 1000 files.
+
+Please tune this value based on services' document.
+
+### `delete_max_size`: `_int`
+
+Set the maximum delete size of this backend.
+
+Some compatible services have a limit on the number of operations in a batch request.
+For example, R2 could return `Internal Error` while batch delete 1000 files.
+
+Please tune this value based on services' document.
+
+### `disable_stat_with_override`: `_bool`
+
+Disable stat with override so that opendal will not send stat request with override queries.
+
+For example, R2 doesn't support stat with `response_content_type` query.
+
+### `checksum_algorithm`: `str`
+
+Checksum Algorithm to use when sending checksums in HTTP headers.
+This is necessary when writing to AWS S3 Buckets with Object Lock enabled for example.
+
+Available options:
+- "crc32c"
+
+### `disable_write_with_if_match`: `_bool`
+
+Disable write with if match so that opendal will not send write request with if match headers.
+
+For example, Ceph RADOS S3 doesn't support write with if match.
+
+### `enable_write_with_append`: `_bool`
+
+Enable write with append so that opendal will send write request with append headers.
+
+### `disable_list_objects_v2`: `_bool`
+
+OpenDAL uses List Objects V2 by default to list objects.
+However, some legacy services do not yet support V2.
+This option allows users to switch back to the older List Objects V1.
+
+### `enable_request_payer`: `_bool`
+
+Indicates whether the client agrees to pay for the requests made to the S3 bucket.
+
diff --git a/bindings/python/docs/services/seafile.md b/bindings/python/docs/services/seafile.md
new file mode 100644
index 000000000..069868986
--- /dev/null
+++ b/bindings/python/docs/services/seafile.md
@@ -0,0 +1,26 @@
+## SeafileConfig
+
+### `repo_name`: `str`
+
+repo_name of this backend.
+
+required.
+
+### `root`: `str`
+
+root of this backend.
+
+All operations will happen under this root.
+
+### `endpoint`: `str`
+
+endpoint address of this backend.
+
+### `username`: `str`
+
+username of this backend.
+
+### `password`: `str`
+
+password of this backend.
+
diff --git a/bindings/python/docs/services/sftp.md b/bindings/python/docs/services/sftp.md
new file mode 100644
index 000000000..7d5357c90
--- /dev/null
+++ b/bindings/python/docs/services/sftp.md
@@ -0,0 +1,26 @@
+## SftpConfig
+
+### `endpoint`: `str`
+
+endpoint of this backend
+
+### `root`: `str`
+
+root of this backend
+
+### `user`: `str`
+
+user of this backend
+
+### `key`: `str`
+
+key of this backend
+
+### `known_hosts_strategy`: `str`
+
+known_hosts_strategy of this backend
+
+### `enable_copy`: `_bool`
+
+enable_copy of this backend
+
diff --git a/bindings/python/docs/services/sled.md b/bindings/python/docs/services/sled.md
new file mode 100644
index 000000000..842672bdd
--- /dev/null
+++ b/bindings/python/docs/services/sled.md
@@ -0,0 +1,14 @@
+## SledConfig
+
+### `datadir`: `str`
+
+That path to the sled data directory.
+
+### `root`: `str`
+
+The root for sled.
+
+### `tree`: `str`
+
+The tree for sled.
+
diff --git a/bindings/python/docs/services/sqlite.md b/bindings/python/docs/services/sqlite.md
new file mode 100644
index 000000000..29d1f5463
--- /dev/null
+++ b/bindings/python/docs/services/sqlite.md
@@ -0,0 +1,38 @@
+## SqliteConfig
+
+### `connection_string`: `str`
+
+Set the connection_string of the sqlite service.
+
+This connection string is used to connect to the sqlite service.
+
+The format of connect string resembles the url format of the sqlite client:
+
+- `sqlite::memory:`
+- `sqlite:data.db`
+- `sqlite://data.db`
+
+For more information, please visit <https://docs.rs/sqlx/latest/sqlx/sqlite/struct.SqliteConnectOptions.html>.
+
+### `table`: `str`
+
+Set the table name of the sqlite service to read/write.
+
+### `key_field`: `str`
+
+Set the key field name of the sqlite service to read/write.
+
+Default to `key` if not specified.
+
+### `value_field`: `str`
+
+Set the value field name of the sqlite service to read/write.
+
+Default to `value` if not specified.
+
+### `root`: `str`
+
+set the working directory, all operations will be performed under it.
+
+default: "/"
+
diff --git a/bindings/python/docs/services/surrealdb.md b/bindings/python/docs/services/surrealdb.md
new file mode 100644
index 000000000..213c30df0
--- /dev/null
+++ b/bindings/python/docs/services/surrealdb.md
@@ -0,0 +1,38 @@
+## SurrealdbConfig
+
+### `connection_string`: `str`
+
+The connection string for surrealdb.
+
+### `username`: `str`
+
+The username for surrealdb.
+
+### `password`: `str`
+
+The password for surrealdb.
+
+### `namespace`: `str`
+
+The namespace for surrealdb.
+
+### `database`: `str`
+
+The database for surrealdb.
+
+### `table`: `str`
+
+The table for surrealdb.
+
+### `key_field`: `str`
+
+The key field for surrealdb.
+
+### `value_field`: `str`
+
+The value field for surrealdb.
+
+### `root`: `str`
+
+The root for surrealdb.
+
diff --git a/bindings/python/docs/services/swift.md b/bindings/python/docs/services/swift.md
new file mode 100644
index 000000000..6aa62a9e1
--- /dev/null
+++ b/bindings/python/docs/services/swift.md
@@ -0,0 +1,18 @@
+## SwiftConfig
+
+### `endpoint`: `str`
+
+The endpoint for Swift.
+
+### `container`: `str`
+
+The container for Swift.
+
+### `root`: `str`
+
+The root for Swift.
+
+### `token`: `str`
+
+The token for Swift.
+
diff --git a/bindings/python/docs/services/upyun.md b/bindings/python/docs/services/upyun.md
new file mode 100644
index 000000000..9991f2c66
--- /dev/null
+++ b/bindings/python/docs/services/upyun.md
@@ -0,0 +1,20 @@
+## UpyunConfig
+
+### `bucket`: `str`
+
+bucket address of this backend.
+
+### `root`: `str`
+
+root of this backend.
+
+All operations will happen under this root.
+
+### `operator`: `str`
+
+username of this backend.
+
+### `password`: `str`
+
+password of this backend.
+
diff --git a/bindings/python/docs/services/vercel_artifacts.md b/bindings/python/docs/services/vercel_artifacts.md
new file mode 100644
index 000000000..8e441b400
--- /dev/null
+++ b/bindings/python/docs/services/vercel_artifacts.md
@@ -0,0 +1,6 @@
+## VercelArtifactsConfig
+
+### `access_token`: `str`
+
+The access token for Vercel.
+
diff --git a/bindings/python/docs/services/vercel_blob.md b/bindings/python/docs/services/vercel_blob.md
new file mode 100644
index 000000000..d50fc57fa
--- /dev/null
+++ b/bindings/python/docs/services/vercel_blob.md
@@ -0,0 +1,12 @@
+## VercelBlobConfig
+
+### `root`: `str`
+
+root of this backend.
+
+All operations will happen under this root.
+
+### `token`: `str`
+
+vercel blob token.
+
diff --git a/bindings/python/docs/services/webdav.md b/bindings/python/docs/services/webdav.md
new file mode 100644
index 000000000..7080b5f43
--- /dev/null
+++ b/bindings/python/docs/services/webdav.md
@@ -0,0 +1,26 @@
+## WebdavConfig
+
+### `endpoint`: `str`
+
+endpoint of this backend
+
+### `username`: `str`
+
+username of this backend
+
+### `password`: `str`
+
+password of this backend
+
+### `token`: `str`
+
+token of this backend
+
+### `root`: `str`
+
+root of this backend
+
+### `disable_copy`: `_bool`
+
+WebDAV Service doesn't support copy.
+
diff --git a/bindings/python/docs/services/webhdfs.md b/bindings/python/docs/services/webhdfs.md
new file mode 100644
index 000000000..6c01ab62f
--- /dev/null
+++ b/bindings/python/docs/services/webhdfs.md
@@ -0,0 +1,26 @@
+## WebhdfsConfig
+
+### `root`: `str`
+
+Root for webhdfs.
+
+### `endpoint`: `str`
+
+Endpoint for webhdfs.
+
+### `user_name`: `str`
+
+Name of the user for webhdfs.
+
+### `delegation`: `str`
+
+Delegation token for webhdfs.
+
+### `disable_list_batch`: `_bool`
+
+Disable batch listing
+
+### `atomic_write_dir`: `str`
+
+atomic_write_dir of this backend
+
diff --git a/bindings/python/docs/services/yandex_disk.md b/bindings/python/docs/services/yandex_disk.md
new file mode 100644
index 000000000..28bbe9307
--- /dev/null
+++ b/bindings/python/docs/services/yandex_disk.md
@@ -0,0 +1,12 @@
+## YandexDiskConfig
+
+### `access_token`: `str`
+
+yandex disk oauth access_token.
+
+### `root`: `str`
+
+root of this backend.
+
+All operations will happen under this root.
+
diff --git a/bindings/python/python/opendal/__base.pyi b/bindings/python/python/opendal/__base.pyi
index b717762b3..b97fd92a5 100644
--- a/bindings/python/python/opendal/__base.pyi
+++ b/bindings/python/python/opendal/__base.pyi
@@ -624,6 +624,7 @@ class _Base:
disable_write_with_if_match: _bool = ...,
enable_write_with_append: _bool = ...,
disable_list_objects_v2: _bool = ...,
+ enable_request_payer: _bool = ...,
) -> None: ...
@overload