## Create a new AI Gateway Dynamic Route Version. `client.AIGateway.DynamicRouting.NewVersion(ctx, gatewayID, id, params) (*DynamicRoutingNewVersionResponse, error)` **post** `/accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes/{id}/versions` Create a new AI Gateway Dynamic Route Version. ### Parameters - `gatewayID string` - `id string` - `params DynamicRoutingNewVersionParams` - `AccountID param.Field[string]` Path param - `Elements param.Field[[]DynamicRoutingNewVersionParamsElement]` Body param - `type DynamicRoutingNewVersionParamsElementsObject struct{…}` - `ID string` - `Outputs DynamicRoutingNewVersionParamsElementsObjectOutputs` - `Next DynamicRoutingNewVersionParamsElementsObjectOutputsNext` - `ElementID string` - `Type DynamicRoutingNewVersionParamsElementsObjectType` - `const DynamicRoutingNewVersionParamsElementsObjectTypeStart DynamicRoutingNewVersionParamsElementsObjectType = "start"` - `type DynamicRoutingNewVersionParamsElementsObject struct{…}` - `ID string` - `Outputs DynamicRoutingNewVersionParamsElementsObjectOutputs` - `False DynamicRoutingNewVersionParamsElementsObjectOutputsFalse` - `ElementID string` - `True DynamicRoutingNewVersionParamsElementsObjectOutputsTrue` - `ElementID string` - `Properties DynamicRoutingNewVersionParamsElementsObjectProperties` - `Conditions unknown` - `Type DynamicRoutingNewVersionParamsElementsObjectType` - `const DynamicRoutingNewVersionParamsElementsObjectTypeConditional DynamicRoutingNewVersionParamsElementsObjectType = "conditional"` - `type DynamicRoutingNewVersionParamsElementsObject struct{…}` - `ID string` - `Outputs map[string, DynamicRoutingNewVersionParamsElementsObjectOutputs]` - `ElementID string` - `Type DynamicRoutingNewVersionParamsElementsObjectType` - `const DynamicRoutingNewVersionParamsElementsObjectTypePercentage DynamicRoutingNewVersionParamsElementsObjectType = "percentage"` - `type DynamicRoutingNewVersionParamsElementsObject struct{…}` - `ID string` - `Outputs DynamicRoutingNewVersionParamsElementsObjectOutputs` - `Fallback DynamicRoutingNewVersionParamsElementsObjectOutputsFallback` - `ElementID string` - `Success DynamicRoutingNewVersionParamsElementsObjectOutputsSuccess` - `ElementID string` - `Properties DynamicRoutingNewVersionParamsElementsObjectProperties` - `Key string` - `Limit float64` - `LimitType DynamicRoutingNewVersionParamsElementsObjectPropertiesLimitType` - `const DynamicRoutingNewVersionParamsElementsObjectPropertiesLimitTypeCount DynamicRoutingNewVersionParamsElementsObjectPropertiesLimitType = "count"` - `const DynamicRoutingNewVersionParamsElementsObjectPropertiesLimitTypeCost DynamicRoutingNewVersionParamsElementsObjectPropertiesLimitType = "cost"` - `Window float64` - `Type DynamicRoutingNewVersionParamsElementsObjectType` - `const DynamicRoutingNewVersionParamsElementsObjectTypeRate DynamicRoutingNewVersionParamsElementsObjectType = "rate"` - `type DynamicRoutingNewVersionParamsElementsObject struct{…}` - `ID string` - `Outputs DynamicRoutingNewVersionParamsElementsObjectOutputs` - `Fallback DynamicRoutingNewVersionParamsElementsObjectOutputsFallback` - `ElementID string` - `Success DynamicRoutingNewVersionParamsElementsObjectOutputsSuccess` - `ElementID string` - `Properties DynamicRoutingNewVersionParamsElementsObjectProperties` - `Model string` - `Provider string` - `Retries float64` - `Timeout float64` - `Type DynamicRoutingNewVersionParamsElementsObjectType` - `const DynamicRoutingNewVersionParamsElementsObjectTypeModel DynamicRoutingNewVersionParamsElementsObjectType = "model"` - `type DynamicRoutingNewVersionParamsElementsObject struct{…}` - `ID string` - `Outputs map[string, DynamicRoutingNewVersionParamsElementsObjectOutputs]` - `ElementID string` - `Type DynamicRoutingNewVersionParamsElementsObjectType` - `const DynamicRoutingNewVersionParamsElementsObjectTypeEnd DynamicRoutingNewVersionParamsElementsObjectType = "end"` ### Returns - `type DynamicRoutingNewVersionResponse struct{…}` - `ID string` - `CreatedAt Time` - `Elements []DynamicRoutingNewVersionResponseElement` - `type DynamicRoutingNewVersionResponseElementsObject struct{…}` - `ID string` - `Outputs DynamicRoutingNewVersionResponseElementsObjectOutputs` - `Next DynamicRoutingNewVersionResponseElementsObjectOutputsNext` - `ElementID string` - `Type DynamicRoutingNewVersionResponseElementsObjectType` - `const DynamicRoutingNewVersionResponseElementsObjectTypeStart DynamicRoutingNewVersionResponseElementsObjectType = "start"` - `type DynamicRoutingNewVersionResponseElementsObject struct{…}` - `ID string` - `Outputs DynamicRoutingNewVersionResponseElementsObjectOutputs` - `False DynamicRoutingNewVersionResponseElementsObjectOutputsFalse` - `ElementID string` - `True DynamicRoutingNewVersionResponseElementsObjectOutputsTrue` - `ElementID string` - `Properties DynamicRoutingNewVersionResponseElementsObjectProperties` - `Conditions unknown` - `Type DynamicRoutingNewVersionResponseElementsObjectType` - `const DynamicRoutingNewVersionResponseElementsObjectTypeConditional DynamicRoutingNewVersionResponseElementsObjectType = "conditional"` - `type DynamicRoutingNewVersionResponseElementsObject struct{…}` - `ID string` - `Outputs map[string, DynamicRoutingNewVersionResponseElementsObjectOutput]` - `ElementID string` - `Type DynamicRoutingNewVersionResponseElementsObjectType` - `const DynamicRoutingNewVersionResponseElementsObjectTypePercentage DynamicRoutingNewVersionResponseElementsObjectType = "percentage"` - `type DynamicRoutingNewVersionResponseElementsObject struct{…}` - `ID string` - `Outputs DynamicRoutingNewVersionResponseElementsObjectOutputs` - `Fallback DynamicRoutingNewVersionResponseElementsObjectOutputsFallback` - `ElementID string` - `Success DynamicRoutingNewVersionResponseElementsObjectOutputsSuccess` - `ElementID string` - `Properties DynamicRoutingNewVersionResponseElementsObjectProperties` - `Key string` - `Limit float64` - `LimitType DynamicRoutingNewVersionResponseElementsObjectPropertiesLimitType` - `const DynamicRoutingNewVersionResponseElementsObjectPropertiesLimitTypeCount DynamicRoutingNewVersionResponseElementsObjectPropertiesLimitType = "count"` - `const DynamicRoutingNewVersionResponseElementsObjectPropertiesLimitTypeCost DynamicRoutingNewVersionResponseElementsObjectPropertiesLimitType = "cost"` - `Window float64` - `Type DynamicRoutingNewVersionResponseElementsObjectType` - `const DynamicRoutingNewVersionResponseElementsObjectTypeRate DynamicRoutingNewVersionResponseElementsObjectType = "rate"` - `type DynamicRoutingNewVersionResponseElementsObject struct{…}` - `ID string` - `Outputs DynamicRoutingNewVersionResponseElementsObjectOutputs` - `Fallback DynamicRoutingNewVersionResponseElementsObjectOutputsFallback` - `ElementID string` - `Success DynamicRoutingNewVersionResponseElementsObjectOutputsSuccess` - `ElementID string` - `Properties DynamicRoutingNewVersionResponseElementsObjectProperties` - `Model string` - `Provider string` - `Retries float64` - `Timeout float64` - `Type DynamicRoutingNewVersionResponseElementsObjectType` - `const DynamicRoutingNewVersionResponseElementsObjectTypeModel DynamicRoutingNewVersionResponseElementsObjectType = "model"` - `type DynamicRoutingNewVersionResponseElementsObject struct{…}` - `ID string` - `Outputs map[string, DynamicRoutingNewVersionResponseElementsObjectOutput]` - `ElementID string` - `Type DynamicRoutingNewVersionResponseElementsObjectType` - `const DynamicRoutingNewVersionResponseElementsObjectTypeEnd DynamicRoutingNewVersionResponseElementsObjectType = "end"` - `GatewayID string` - `ModifiedAt Time` - `Name string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_gateway" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.AIGateway.DynamicRouting.NewVersion( context.TODO(), "54442216", "54442216", ai_gateway.DynamicRoutingNewVersionParams{ AccountID: cloudflare.F("0d37909e38d3e99c29fa2cd343ac421a"), Elements: cloudflare.F([]ai_gateway.DynamicRoutingNewVersionParamsElementUnion{ai_gateway.DynamicRoutingNewVersionParamsElementsObject{ ID: cloudflare.F("id"), Outputs: cloudflare.F(ai_gateway.DynamicRoutingNewVersionParamsElementsObjectOutputs{ Next: cloudflare.F(ai_gateway.DynamicRoutingNewVersionParamsElementsObjectOutputsNext{ ElementID: cloudflare.F("elementId"), }), }), Type: cloudflare.F(ai_gateway.DynamicRoutingNewVersionParamsElementsObjectTypeStart), }}), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.ID) } ``` #### Response ```json { "result": { "id": "id", "created_at": "2019-12-27T18:11:19.117Z", "elements": [ { "id": "id", "outputs": { "next": { "elementId": "elementId" } }, "type": "start" } ], "gateway_id": "gateway_id", "modified_at": "2019-12-27T18:11:19.117Z", "name": "name" }, "success": true } ```