Skip to content
Start here

Add one operation to a zone

client.APIGateway.Operations.New(ctx, params) (*OperationNewResponse, error)
POST/zones/{zone_id}/api_gateway/operations/item

Add one operation to a zone. Endpoints can contain path variables. Host, method, endpoint will be normalized to a canoncial form when creating an operation and must be unique on the zone. Inserting an operation that matches an existing one will return the record of the already existing operation and update its last_updated date.

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)
Account API GatewayDomain API Gateway
ParametersExpand Collapse
params OperationNewParams
ZoneID param.Field[string]

Path param: Identifier.

maxLength32
Endpoint param.Field[string]

Body param: The endpoint which can contain path parameter templates in curly braces, each will be replaced from left to right with {varN}, starting with {var1}, during insertion. This will further be Cloudflare-normalized upon insertion. See: https://developers.cloudflare.com/rules/normalization/how-it-works/.

formaturi-template
maxLength4096
Host param.Field[string]

Body param: RFC3986-compliant host.

formathostname
maxLength255
Method param.Field[OperationNewParamsMethod]

Body param: The HTTP method used to access the endpoint.

const OperationNewParamsMethodGet OperationNewParamsMethod = "GET"
const OperationNewParamsMethodPost OperationNewParamsMethod = "POST"
const OperationNewParamsMethodHead OperationNewParamsMethod = "HEAD"
const OperationNewParamsMethodOptions OperationNewParamsMethod = "OPTIONS"
const OperationNewParamsMethodPut OperationNewParamsMethod = "PUT"
const OperationNewParamsMethodDelete OperationNewParamsMethod = "DELETE"
const OperationNewParamsMethodConnect OperationNewParamsMethod = "CONNECT"
const OperationNewParamsMethodPatch OperationNewParamsMethod = "PATCH"
const OperationNewParamsMethodTrace OperationNewParamsMethod = "TRACE"
ReturnsExpand Collapse
type OperationNewResponse struct{…}
Endpoint string

The endpoint which can contain path parameter templates in curly braces, each will be replaced from left to right with {varN}, starting with {var1}, during insertion. This will further be Cloudflare-normalized upon insertion. See: https://developers.cloudflare.com/rules/normalization/how-it-works/.

formaturi-template
maxLength4096
Host string

RFC3986-compliant host.

formathostname
maxLength255
LastUpdated Time
formatdate-time
Method OperationNewResponseMethod

The HTTP method used to access the endpoint.

One of the following:
const OperationNewResponseMethodGet OperationNewResponseMethod = "GET"
const OperationNewResponseMethodPost OperationNewResponseMethod = "POST"
const OperationNewResponseMethodHead OperationNewResponseMethod = "HEAD"
const OperationNewResponseMethodOptions OperationNewResponseMethod = "OPTIONS"
const OperationNewResponseMethodPut OperationNewResponseMethod = "PUT"
const OperationNewResponseMethodDelete OperationNewResponseMethod = "DELETE"
const OperationNewResponseMethodConnect OperationNewResponseMethod = "CONNECT"
const OperationNewResponseMethodPatch OperationNewResponseMethod = "PATCH"
const OperationNewResponseMethodTrace OperationNewResponseMethod = "TRACE"
OperationID string

UUID.

maxLength36
minLength36
Features OperationNewResponseFeaturesoptional
One of the following:
type OperationNewResponseFeaturesAPIShieldOperationFeatureThresholds struct{…}
Thresholds OperationNewResponseFeaturesAPIShieldOperationFeatureThresholdsThresholdsoptional
AuthIDTokens int64optional

The total number of auth-ids seen across this calculation.

DataPoints int64optional

The number of data points used for the threshold suggestion calculation.

LastUpdated Timeoptional
formatdate-time
P50 int64optional

The p50 quantile of requests (in period_seconds).

P90 int64optional

The p90 quantile of requests (in period_seconds).

P99 int64optional

The p99 quantile of requests (in period_seconds).

PeriodSeconds int64optional

The period over which this threshold is suggested.

Requests int64optional

The estimated number of requests covered by these calculations.

SuggestedThreshold int64optional

The suggested threshold in requests done by the same auth_id or period_seconds.

type OperationNewResponseFeaturesAPIShieldOperationFeatureParameterSchemas struct{…}
ParameterSchemas OperationNewResponseFeaturesAPIShieldOperationFeatureParameterSchemasParameterSchemas
LastUpdated Timeoptional
formatdate-time
ParameterSchemas OperationNewResponseFeaturesAPIShieldOperationFeatureParameterSchemasParameterSchemasParameterSchemasoptional

An operation schema object containing a response.

Parameters []unknownoptional

An array containing the learned parameter schemas.

Responses unknownoptional

An empty response object. This field is required to yield a valid operation schema.

type OperationNewResponseFeaturesAPIShieldOperationFeatureAPIRouting struct{…}
APIRouting OperationNewResponseFeaturesAPIShieldOperationFeatureAPIRoutingAPIRoutingoptional

API Routing settings on endpoint.

LastUpdated Timeoptional
formatdate-time
Route stringoptional

Target route.

type OperationNewResponseFeaturesAPIShieldOperationFeatureConfidenceIntervals struct{…}
ConfidenceIntervals OperationNewResponseFeaturesAPIShieldOperationFeatureConfidenceIntervalsConfidenceIntervalsoptional
LastUpdated Timeoptional
formatdate-time
SuggestedThreshold OperationNewResponseFeaturesAPIShieldOperationFeatureConfidenceIntervalsConfidenceIntervalsSuggestedThresholdoptional
ConfidenceIntervals OperationNewResponseFeaturesAPIShieldOperationFeatureConfidenceIntervalsConfidenceIntervalsSuggestedThresholdConfidenceIntervalsoptional
P90 OperationNewResponseFeaturesAPIShieldOperationFeatureConfidenceIntervalsConfidenceIntervalsSuggestedThresholdConfidenceIntervalsP90optional

Upper and lower bound for percentile estimate

Lower float64optional

Lower bound for percentile estimate

Upper float64optional

Upper bound for percentile estimate

P95 OperationNewResponseFeaturesAPIShieldOperationFeatureConfidenceIntervalsConfidenceIntervalsSuggestedThresholdConfidenceIntervalsP95optional

Upper and lower bound for percentile estimate

Lower float64optional

Lower bound for percentile estimate

Upper float64optional

Upper bound for percentile estimate

P99 OperationNewResponseFeaturesAPIShieldOperationFeatureConfidenceIntervalsConfidenceIntervalsSuggestedThresholdConfidenceIntervalsP99optional

Upper and lower bound for percentile estimate

Lower float64optional

Lower bound for percentile estimate

Upper float64optional

Upper bound for percentile estimate

Mean float64optional

Suggested threshold.

type OperationNewResponseFeaturesAPIShieldOperationFeatureSchemaInfo struct{…}
SchemaInfo OperationNewResponseFeaturesAPIShieldOperationFeatureSchemaInfoSchemaInfooptional
ActiveSchema OperationNewResponseFeaturesAPIShieldOperationFeatureSchemaInfoSchemaInfoActiveSchemaoptional

Schema active on endpoint.

ID stringoptional

UUID.

maxLength36
minLength36
CreatedAt Timeoptional
formatdate-time
IsLearned booloptional

True if schema is Cloudflare-provided.

Name stringoptional

Schema file name.

LearnedAvailable booloptional

True if a Cloudflare-provided learned schema is available for this endpoint.

MitigationAction OperationNewResponseFeaturesAPIShieldOperationFeatureSchemaInfoSchemaInfoMitigationActionoptional

Action taken on requests failing validation.

One of the following:
const OperationNewResponseFeaturesAPIShieldOperationFeatureSchemaInfoSchemaInfoMitigationActionNone OperationNewResponseFeaturesAPIShieldOperationFeatureSchemaInfoSchemaInfoMitigationAction = "none"
const OperationNewResponseFeaturesAPIShieldOperationFeatureSchemaInfoSchemaInfoMitigationActionLog OperationNewResponseFeaturesAPIShieldOperationFeatureSchemaInfoSchemaInfoMitigationAction = "log"
const OperationNewResponseFeaturesAPIShieldOperationFeatureSchemaInfoSchemaInfoMitigationActionBlock OperationNewResponseFeaturesAPIShieldOperationFeatureSchemaInfoSchemaInfoMitigationAction = "block"

Add one operation to a zone

package main

import (
  "context"
  "fmt"

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

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  operation, err := client.APIGateway.Operations.New(context.TODO(), api_gateway.OperationNewParams{
    ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    Endpoint: cloudflare.F("/api/v1/users/{var1}"),
    Host: cloudflare.F("www.example.com"),
    Method: cloudflare.F(api_gateway.OperationNewParamsMethodGet),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", operation.OperationID)
}
{
  "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": {
    "endpoint": "/api/v1/users/{var1}",
    "host": "www.example.com",
    "last_updated": "2014-01-01T05:20:00.12345Z",
    "method": "GET",
    "operation_id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
    "features": {
      "thresholds": {
        "auth_id_tokens": 0,
        "data_points": 0,
        "last_updated": "2014-01-01T05:20:00.12345Z",
        "p50": 0,
        "p90": 0,
        "p99": 0,
        "period_seconds": 0,
        "requests": 0,
        "suggested_threshold": 0
      }
    }
  },
  "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": {
    "endpoint": "/api/v1/users/{var1}",
    "host": "www.example.com",
    "last_updated": "2014-01-01T05:20:00.12345Z",
    "method": "GET",
    "operation_id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
    "features": {
      "thresholds": {
        "auth_id_tokens": 0,
        "data_points": 0,
        "last_updated": "2014-01-01T05:20:00.12345Z",
        "p50": 0,
        "p90": 0,
        "p99": 0,
        "period_seconds": 0,
        "requests": 0,
        "suggested_threshold": 0
      }
    }
  },
  "success": true
}