Skip to content
Start here

Update a Gateway

ai_gateway.update(strid, AIGatewayUpdateParams**kwargs) -> AIGatewayUpdateResponse
PUT/accounts/{account_id}/ai-gateway/gateways/{id}

Updates an existing AI Gateway dataset.

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)
AI Gateway Write
ParametersExpand Collapse
account_id: str
id: str

gateway id

maxLength64
minLength1
cache_invalidate_on_update: bool
cache_ttl: Optional[int]
minimum0
collect_logs: bool
rate_limiting_interval: Optional[int]
minimum0
rate_limiting_limit: Optional[int]
minimum0
authentication: Optional[bool]
dlp: Optional[DLP]
One of the following:
class DLPUnionMember0:
action: Literal["BLOCK", "FLAG"]
One of the following:
"BLOCK"
"FLAG"
enabled: bool
profiles: SequenceNotStr[str]
class DLPUnionMember1:
enabled: bool
policies: Iterable[DLPUnionMember1Policy]
id: str
action: Literal["FLAG", "BLOCK"]
One of the following:
"FLAG"
"BLOCK"
check: List[Literal["REQUEST", "RESPONSE"]]
One of the following:
"REQUEST"
"RESPONSE"
enabled: bool
profiles: SequenceNotStr[str]
log_management: Optional[int]
maximum10000000
minimum10000
log_management_strategy: Optional[Literal["STOP_INSERTING", "DELETE_OLDEST"]]
One of the following:
"STOP_INSERTING"
"DELETE_OLDEST"
logpush: Optional[bool]
logpush_public_key: Optional[str]
maxLength1024
minLength16
otel: Optional[Iterable[Otel]]
authorization: str
headers: Dict[str, str]
url: str
content_type: Optional[Literal["json", "protobuf"]]
One of the following:
"json"
"protobuf"
rate_limiting_technique: Optional[Literal["fixed", "sliding"]]
One of the following:
"fixed"
"sliding"
retry_backoff: Optional[Literal["constant", "linear", "exponential"]]

Backoff strategy for retry delays

One of the following:
"constant"
"linear"
"exponential"
retry_delay: Optional[int]

Delay between retry attempts in milliseconds (0-5000)

maximum5000
minimum0
retry_max_attempts: Optional[int]

Maximum number of retry attempts for failed requests (1-5)

maximum5
minimum1
store_id: Optional[str]
stripe: Optional[Stripe]
authorization: str
usage_events: Iterable[StripeUsageEvent]
payload: str
workers_ai_billing_mode: Optional[Literal["postpaid"]]

Controls how Workers AI inference calls routed through this gateway are billed. Only 'postpaid' is currently supported.

zdr: Optional[bool]
ReturnsExpand Collapse
class AIGatewayUpdateResponse:
id: str

gateway id

maxLength64
minLength1
cache_invalidate_on_update: bool
cache_ttl: Optional[int]
minimum0
collect_logs: bool
created_at: datetime
formatdate-time
modified_at: datetime
formatdate-time
rate_limiting_interval: Optional[int]
minimum0
rate_limiting_limit: Optional[int]
minimum0
authentication: Optional[bool]
dlp: Optional[DLP]
One of the following:
class DLPUnionMember0:
action: Literal["BLOCK", "FLAG"]
One of the following:
"BLOCK"
"FLAG"
enabled: bool
profiles: List[str]
class DLPUnionMember1:
enabled: bool
policies: List[DLPUnionMember1Policy]
id: str
action: Literal["FLAG", "BLOCK"]
One of the following:
"FLAG"
"BLOCK"
check: List[Literal["REQUEST", "RESPONSE"]]
One of the following:
"REQUEST"
"RESPONSE"
enabled: bool
profiles: List[str]
is_default: Optional[bool]
log_management: Optional[int]
maximum10000000
minimum10000
log_management_strategy: Optional[Literal["STOP_INSERTING", "DELETE_OLDEST"]]
One of the following:
"STOP_INSERTING"
"DELETE_OLDEST"
logpush: Optional[bool]
logpush_public_key: Optional[str]
maxLength1024
minLength16
otel: Optional[List[Otel]]
authorization: str
headers: Dict[str, str]
url: str
content_type: Optional[Literal["json", "protobuf"]]
One of the following:
"json"
"protobuf"
rate_limiting_technique: Optional[Literal["fixed", "sliding"]]
One of the following:
"fixed"
"sliding"
retry_backoff: Optional[Literal["constant", "linear", "exponential"]]

Backoff strategy for retry delays

One of the following:
"constant"
"linear"
"exponential"
retry_delay: Optional[int]

Delay between retry attempts in milliseconds (0-5000)

maximum5000
minimum0
retry_max_attempts: Optional[int]

Maximum number of retry attempts for failed requests (1-5)

maximum5
minimum1
store_id: Optional[str]
stripe: Optional[Stripe]
authorization: str
usage_events: List[StripeUsageEvent]
payload: str
workers_ai_billing_mode: Optional[Literal["postpaid"]]

Controls how Workers AI inference calls routed through this gateway are billed. Only 'postpaid' is currently supported.

zdr: Optional[bool]

Update a Gateway

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
ai_gateway = client.ai_gateway.update(
    id="my-gateway",
    account_id="3ebbcb006d4d46d7bb6a8c7f14676cb0",
    cache_invalidate_on_update=True,
    cache_ttl=0,
    collect_logs=True,
    rate_limiting_interval=0,
    rate_limiting_limit=0,
)
print(ai_gateway.id)
{
  "result": {
    "id": "my-gateway",
    "cache_invalidate_on_update": true,
    "cache_ttl": 0,
    "collect_logs": true,
    "created_at": "2019-12-27T18:11:19.117Z",
    "modified_at": "2019-12-27T18:11:19.117Z",
    "rate_limiting_interval": 0,
    "rate_limiting_limit": 0,
    "authentication": true,
    "dlp": {
      "action": "BLOCK",
      "enabled": true,
      "profiles": [
        "string"
      ]
    },
    "is_default": true,
    "log_management": 10000,
    "log_management_strategy": "STOP_INSERTING",
    "logpush": true,
    "logpush_public_key": "xxxxxxxxxxxxxxxx",
    "otel": [
      {
        "authorization": "authorization",
        "headers": {
          "foo": "string"
        },
        "url": "url",
        "content_type": "json"
      }
    ],
    "rate_limiting_technique": "fixed",
    "retry_backoff": "constant",
    "retry_delay": 0,
    "retry_max_attempts": 1,
    "store_id": "store_id",
    "stripe": {
      "authorization": "authorization",
      "usage_events": [
        {
          "payload": "payload"
        }
      ]
    },
    "workers_ai_billing_mode": "postpaid",
    "zdr": true
  },
  "success": true
}
Returns Examples
{
  "result": {
    "id": "my-gateway",
    "cache_invalidate_on_update": true,
    "cache_ttl": 0,
    "collect_logs": true,
    "created_at": "2019-12-27T18:11:19.117Z",
    "modified_at": "2019-12-27T18:11:19.117Z",
    "rate_limiting_interval": 0,
    "rate_limiting_limit": 0,
    "authentication": true,
    "dlp": {
      "action": "BLOCK",
      "enabled": true,
      "profiles": [
        "string"
      ]
    },
    "is_default": true,
    "log_management": 10000,
    "log_management_strategy": "STOP_INSERTING",
    "logpush": true,
    "logpush_public_key": "xxxxxxxxxxxxxxxx",
    "otel": [
      {
        "authorization": "authorization",
        "headers": {
          "foo": "string"
        },
        "url": "url",
        "content_type": "json"
      }
    ],
    "rate_limiting_technique": "fixed",
    "retry_backoff": "constant",
    "retry_delay": 0,
    "retry_max_attempts": 1,
    "store_id": "store_id",
    "stripe": {
      "authorization": "authorization",
      "usage_events": [
        {
          "payload": "payload"
        }
      ]
    },
    "workers_ai_billing_mode": "postpaid",
    "zdr": true
  },
  "success": true
}