Skip to content
Start here

Update a User Agent Blocking rule

client.Firewall.UARules.Update(ctx, uaRuleID, params) (*UARuleUpdateResponse, error)
PUT/zones/{zone_id}/firewall/ua_rules/{ua_rule_id}

Updates an existing User Agent Blocking rule.

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)
Firewall Services Write
ParametersExpand Collapse
uaRuleID string

The unique identifier of the User Agent Blocking rule.

maxLength32
params UARuleUpdateParams
ZoneID param.Field[string]

Path param: Defines an identifier.

maxLength32
Configuration param.Field[UARuleUpdateParamsConfiguration]

Body param: The rule configuration.

type AccessRuleIPConfiguration struct{…}
Target AccessRuleIPConfigurationTargetoptional

The configuration target. You must set the target to ip when specifying an IP address in the rule.

Value stringoptional

The IP address to match. This address will be compared to the IP address of incoming requests.

type IPV6Configuration struct{…}
Target IPV6ConfigurationTargetoptional

The configuration target. You must set the target to ip6 when specifying an IPv6 address in the rule.

Value stringoptional

The IPv6 address to match.

type AccessRuleCIDRConfiguration struct{…}
Target AccessRuleCIDRConfigurationTargetoptional

The configuration target. You must set the target to ip_range when specifying an IP address range in the rule.

Value stringoptional

The IP address range to match. You can only use prefix lengths /16 and /24 for IPv4 ranges, and prefix lengths /32, /48, and /64 for IPv6 ranges.

type ASNConfiguration struct{…}
Target ASNConfigurationTargetoptional

The configuration target. You must set the target to asn when specifying an Autonomous System Number (ASN) in the rule.

Value stringoptional

The AS number to match.

type CountryConfiguration struct{…}
Target CountryConfigurationTargetoptional

The configuration target. You must set the target to country when specifying a country code in the rule.

Value stringoptional

The two-letter ISO-3166-1 alpha-2 code to match. For more information, refer to IP Access rules: Parameters.

Mode param.Field[UARuleUpdateParamsMode]

Body param: The action to apply to a matched request.

const UARuleUpdateParamsModeBlock UARuleUpdateParamsMode = "block"
const UARuleUpdateParamsModeChallenge UARuleUpdateParamsMode = "challenge"
const UARuleUpdateParamsModeWhitelist UARuleUpdateParamsMode = "whitelist"
const UARuleUpdateParamsModeJSChallenge UARuleUpdateParamsMode = "js_challenge"
const UARuleUpdateParamsModeManagedChallenge UARuleUpdateParamsMode = "managed_challenge"
Description param.Field[string]optional

Body param: An informative summary of the rule. This value is sanitized and any tags will be removed.

maxLength1024
Paused param.Field[bool]optional

Body param: When true, indicates that the rule is currently paused.

ReturnsExpand Collapse
type UARuleUpdateResponse struct{…}
ID stringoptional

The unique identifier of the User Agent Blocking rule.

maxLength32
Configuration UARuleUpdateResponseConfigurationoptional

The configuration object for the current rule.

Target stringoptional

The configuration target for this rule. You must set the target to ua for User Agent Blocking rules.

Value stringoptional

The exact user agent string to match. This value will be compared to the received User-Agent HTTP header value.

Description stringoptional

An informative summary of the rule.

maxLength1024
Mode UARuleUpdateResponseModeoptional

The action to apply to a matched request.

maxLength12
One of the following:
const UARuleUpdateResponseModeBlock UARuleUpdateResponseMode = "block"
const UARuleUpdateResponseModeChallenge UARuleUpdateResponseMode = "challenge"
const UARuleUpdateResponseModeJSChallenge UARuleUpdateResponseMode = "js_challenge"
const UARuleUpdateResponseModeManagedChallenge UARuleUpdateResponseMode = "managed_challenge"
Paused booloptional

When true, indicates that the rule is currently paused.

Update a User Agent Blocking rule

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/firewall"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  uaRule, err := client.Firewall.UARules.Update(
    context.TODO(),
    "372e67954025e0ba6aaa6d586b9e0b59",
    firewall.UARuleUpdateParams{
      ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
      Configuration: cloudflare.F[firewall.UARuleUpdateParamsConfigurationUnion](firewall.AccessRuleIPConfigurationParam{

      }),
      Mode: cloudflare.F(firewall.UARuleUpdateParamsModeChallenge),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", uaRule.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": "372e67954025e0ba6aaa6d586b9e0b59",
    "configuration": {
      "target": "ua",
      "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4"
    },
    "description": "Prevent access from abusive clients identified by this User Agent to mitigate a DDoS attack",
    "mode": "js_challenge",
    "paused": false
  },
  "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": "372e67954025e0ba6aaa6d586b9e0b59",
    "configuration": {
      "target": "ua",
      "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4"
    },
    "description": "Prevent access from abusive clients identified by this User Agent to mitigate a DDoS attack",
    "mode": "js_challenge",
    "paused": false
  },
  "success": true
}