Skip to content
Start here

Replace Hyperdrive

hyperdrive.configs.update(strhyperdrive_id, ConfigUpdateParams**kwargs) -> Hyperdrive
PUT/accounts/{account_id}/hyperdrive/configs/{hyperdrive_id}

Replaces and returns the specified Hyperdrive configuration. The request must include the name and complete origin connection details. Omitted caching settings are reset to their defaults, while omitted mTLS settings and origin connection limits are preserved. Use the update operation to modify only selected fields.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Hyperdrive Write
ParametersExpand Collapse
account_id: str

Define configurations using a unique string identifier.

maxLength32
hyperdrive_id: str

Define configurations using a unique string identifier.

maxLength32
name: str

The name of the Hyperdrive configuration. Used to identify the configuration in the Cloudflare dashboard and API.

origin: Origin
One of the following:
class OriginPublicDatabase:
database: str

Set the name of your origin database.

host: str

Defines the host (hostname or IP) of your origin database.

password: str

Set the password needed to access your origin database. The API never returns this write-only value.

port: int

Defines the port of your origin database. Defaults to 5432 for PostgreSQL or 3306 for MySQL if not specified.

scheme: Literal["postgres", "postgresql", "mysql"]

Specifies the URL scheme used to connect to your origin database.

One of the following:
"postgres"
"postgresql"
"mysql"
user: str

Set the user of your origin database.

class OriginAccessProtectedDatabaseBehindCloudflareTunnel:
access_client_id: str

Defines the Client ID of the Access token to use when connecting to the origin database.

access_client_secret: str

Defines the Client Secret of the Access Token to use when connecting to the origin database. The API never returns this write-only value.

database: str

Set the name of your origin database.

host: str

Defines the host (hostname or IP) of your origin database.

password: str

Set the password needed to access your origin database. The API never returns this write-only value.

scheme: Literal["postgres", "postgresql", "mysql"]

Specifies the URL scheme used to connect to your origin database.

One of the following:
"postgres"
"postgresql"
"mysql"
user: str

Set the user of your origin database.

class OriginDatabaseReachableThroughAWorkersVPC:
database: str

Set the name of your origin database.

password: str

Set the password needed to access your origin database. The API never returns this write-only value.

scheme: Literal["postgres", "postgresql", "mysql"]

Specifies the URL scheme used to connect to your origin database.

One of the following:
"postgres"
"postgresql"
"mysql"
service_id: str

The identifier of the Workers VPC Service to connect through. Hyperdrive will egress through the specified VPC Service to reach the origin database.

user: str

Set the user of your origin database.

caching: Optional[Caching]
One of the following:
class CachingHyperdriveHyperdriveCachingCommon:
disabled: Optional[bool]

Set to true to disable caching of SQL responses. Default is false.

class CachingHyperdriveHyperdriveCachingEnabled:
disabled: Optional[bool]

Set to true to disable caching of SQL responses. Default is false.

max_age: Optional[int]

Specify the maximum duration (in seconds) items should persist in the cache. Defaults to 60 seconds if not specified.

stale_while_revalidate: Optional[int]

Specify the number of seconds the cache may serve a stale response. Defaults to 15 seconds if not specified.

mtls: Optional[MTLS]

mTLS configuration for the origin connection. Cannot be used with VPC Service origins; TLS must be managed on the VPC Service.

ca_certificate_id: Optional[str]

Define CA certificate ID obtained after uploading CA cert.

mtls_certificate_id: Optional[str]

Define mTLS certificate ID obtained after uploading client cert.

sslmode: Optional[str]

Set SSL mode to ‘require’, ‘verify-ca’, or ‘verify-full’ to verify the CA.

origin_connection_limit: Optional[int]

The (soft) maximum number of connections the Hyperdrive is allowed to make to the origin database.

Maximum allowed: 20 for free tier accounts, 100 for paid tier accounts. If not specified, defaults to 20 for free tier and 60 for paid tier. Certain Cloudflare-managed origins may be permitted a higher limit. Contact Cloudflare if you need a higher limit.

minimum5
ReturnsExpand Collapse
class Hyperdrive:
id: str

Define configurations using a unique string identifier.

maxLength32
name: str

The name of the Hyperdrive configuration. Used to identify the configuration in the Cloudflare dashboard and API.

origin: Origin
One of the following:
class OriginPublicDatabase:
database: str

Set the name of your origin database.

host: str

Defines the host (hostname or IP) of your origin database.

password: str

Set the password needed to access your origin database. The API never returns this write-only value.

port: int

Defines the port of your origin database. Defaults to 5432 for PostgreSQL or 3306 for MySQL if not specified.

scheme: Literal["postgres", "postgresql", "mysql"]

Specifies the URL scheme used to connect to your origin database.

One of the following:
"postgres"
"postgresql"
"mysql"
user: str

Set the user of your origin database.

class OriginAccessProtectedDatabaseBehindCloudflareTunnel:
access_client_id: str

Defines the Client ID of the Access token to use when connecting to the origin database.

access_client_secret: str

Defines the Client Secret of the Access Token to use when connecting to the origin database. The API never returns this write-only value.

database: str

Set the name of your origin database.

host: str

Defines the host (hostname or IP) of your origin database.

password: str

Set the password needed to access your origin database. The API never returns this write-only value.

scheme: Literal["postgres", "postgresql", "mysql"]

Specifies the URL scheme used to connect to your origin database.

One of the following:
"postgres"
"postgresql"
"mysql"
user: str

Set the user of your origin database.

class OriginDatabaseReachableThroughAWorkersVPC:
database: str

Set the name of your origin database.

password: str

Set the password needed to access your origin database. The API never returns this write-only value.

scheme: Literal["postgres", "postgresql", "mysql"]

Specifies the URL scheme used to connect to your origin database.

One of the following:
"postgres"
"postgresql"
"mysql"
service_id: str

The identifier of the Workers VPC Service to connect through. Hyperdrive will egress through the specified VPC Service to reach the origin database.

user: str

Set the user of your origin database.

caching: Optional[Caching]
One of the following:
class CachingHyperdriveHyperdriveCachingCommon:
disabled: Optional[bool]

Set to true to disable caching of SQL responses. Default is false.

class CachingHyperdriveHyperdriveCachingEnabled:
disabled: Optional[bool]

Set to true to disable caching of SQL responses. Default is false.

max_age: Optional[int]

Specify the maximum duration (in seconds) items should persist in the cache. Defaults to 60 seconds if not specified.

stale_while_revalidate: Optional[int]

Specify the number of seconds the cache may serve a stale response. Defaults to 15 seconds if not specified.

created_on: Optional[datetime]

Defines the creation time of the Hyperdrive configuration.

formatdate-time
modified_on: Optional[datetime]

Defines the last modified time of the Hyperdrive configuration.

formatdate-time
mtls: Optional[MTLS]

mTLS configuration for the origin connection. Cannot be used with VPC Service origins; TLS must be managed on the VPC Service.

ca_certificate_id: Optional[str]

Define CA certificate ID obtained after uploading CA cert.

mtls_certificate_id: Optional[str]

Define mTLS certificate ID obtained after uploading client cert.

sslmode: Optional[str]

Set SSL mode to ‘require’, ‘verify-ca’, or ‘verify-full’ to verify the CA.

origin_connection_limit: Optional[int]

The (soft) maximum number of connections the Hyperdrive is allowed to make to the origin database.

Maximum allowed: 20 for free tier accounts, 100 for paid tier accounts. If not specified, defaults to 20 for free tier and 60 for paid tier. Certain Cloudflare-managed origins may be permitted a higher limit. Contact Cloudflare if you need a higher limit.

minimum5
restarted_on: Optional[datetime]

Defines the last time the Hyperdrive connection pool was explicitly restarted via the restart endpoint. Omitted if the pool has never been explicitly restarted.

formatdate-time

Replace Hyperdrive

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
hyperdrive = client.hyperdrive.configs.update(
    hyperdrive_id="023e105f4ecef8ad9ca31a8372d0c353",
    account_id="023e105f4ecef8ad9ca31a8372d0c353",
    name="example-hyperdrive",
    origin={
        "database": "postgres",
        "host": "database.example.com",
        "password": "password",
        "port": 5432,
        "scheme": "postgres",
        "user": "postgres",
    },
)
print(hyperdrive.id)
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "id": "023e105f4ecef8ad9ca31a8372d0c353",
    "name": "example-hyperdrive",
    "origin": {
      "database": "postgres",
      "host": "database.example.com",
      "port": 5432,
      "scheme": "postgres",
      "user": "postgres"
    },
    "caching": {
      "disabled": true
    },
    "created_on": "2017-01-01T00:00:00Z",
    "modified_on": "2017-01-01T00:00:00Z",
    "mtls": {
      "ca_certificate_id": "00000000-0000-0000-0000-0000000000",
      "mtls_certificate_id": "00000000-0000-0000-0000-0000000000",
      "sslmode": "verify-full"
    },
    "origin_connection_limit": 60,
    "restarted_on": "2017-01-01T00:00:00Z"
  },
  "success": true
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "id": "023e105f4ecef8ad9ca31a8372d0c353",
    "name": "example-hyperdrive",
    "origin": {
      "database": "postgres",
      "host": "database.example.com",
      "port": 5432,
      "scheme": "postgres",
      "user": "postgres"
    },
    "caching": {
      "disabled": true
    },
    "created_on": "2017-01-01T00:00:00Z",
    "modified_on": "2017-01-01T00:00:00Z",
    "mtls": {
      "ca_certificate_id": "00000000-0000-0000-0000-0000000000",
      "mtls_certificate_id": "00000000-0000-0000-0000-0000000000",
      "sslmode": "verify-full"
    },
    "origin_connection_limit": 60,
    "restarted_on": "2017-01-01T00:00:00Z"
  },
  "success": true
}