addedInput schema / properties / addPorts
Added value: +{
+ "description": "Listeners to add, or to change by number: protocol, tls, or cors (each replaces its block); their routes stay.",
+ "items": {
+ "properties": {
+ "cors": {
+ "description": "Replaces the whole CORS block. Shape: {allowOrigins: [{exact} or {regex}], allowMethods: [], allowHeaders: [], exposeHeaders: [], maxAge: e.g. 12h, allowCredentials}.",
+ "type": "object"
+ },
+ "number": {
+ "description": "Listener port. Only 443 and 80 serve without a dedicated load balancer; tcp needs one too.",
+ "maximum": 65535,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "protocol": {
+ "description": "Required for a new listener; an existing one keeps its own when omitted.",
+ "enum": [
+ "http",
+ "http2",
+ "tcp"
+ ],
+ "type": "string"
+ },
+ "tls": {
+ "description": "Replaces the whole TLS block. Shape: {minProtocolVersion: TLSV1_0|TLSV1_1|TLSV1_2|TLSV1_3, cipherSuites: [name, e.g. ECDHE-RSA-AES128-GCM-SHA256], serverCertificate: {secretLink} (keypair secret, PEM), clientCertificate: {secretLink} (client CA for mTLS)}.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "number"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedInput schema / properties / addRoutes
Added value: +{
+ "description": "Routes to add; the one with the same port, prefix or regex, and hostPrefix or hostRegex is replaced. Minimal: {portNumber, workloadLink}; omit prefix and regex to match /. Canaries split traffic by weight.",
+ "items": {
+ "properties": {
+ "canaries": {
+ "description": "Optional traffic split by weight to more workloads: weights total at most 100 and the rest goes to workloadLink; a canary not deployed in a location is dropped there.",
+ "items": {
+ "properties": {
+ "port": {
+ "description": "Optional workload port; omit for the workload's first port.",
+ "maximum": 65535,
+ "minimum": 80,
+ "type": "integer"
+ },
+ "weight": {
+ "description": "Percent of the route's traffic; 0 disables the canary.",
+ "maximum": 100,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "workloadLink": {
+ "description": "Required workload target link, e.g. //gvc/{gvc}/workload/{name} or /org/{org}/gvc/{gvc}/workload/{name}.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "workloadLink",
+ "weight"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "caseInsensitive": {
+ "description": "Optional. When true, prefix matches the path regardless of case. Prefix only; for a case-insensitive regex start it with (?i).",
+ "type": "boolean"
+ },
+ "headers": {
+ "description": "Header rewrites for this route.",
+ "properties": {
+ "request": {
+ "description": "Mutations applied to the upstream request headers.",
+ "properties": {
+ "set": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Key/value pairs to set on the headers (overrides existing values). Values may embed only the Envoy wildcards %REQUESTED_SERVER_NAME%, %DOWNSTREAM_REMOTE_ADDRESS_WITHOUT_PORT%, %START_TIME%.",
+ "type": "object"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "hostPrefix": {
+ "description": "Optional Host header prefix matcher. Requires acceptAllHosts or acceptAllSubdomains on the domain.",
+ "type": "string"
+ },
+ "hostRegex": {
+ "description": "Optional Host header regex matcher. Requires acceptAllHosts or acceptAllSubdomains on the domain.",
+ "type": "string"
+ },
+ "mirror": {
+ "description": "Optional traffic mirroring targets for shadow testing; only workloadLink answers. Shape: [{workloadLink, percent 0 to 100, port (optional)}].",
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "port": {
+ "description": "Optional workload port override. Omit to forward to the listener port.",
+ "maximum": 65535,
+ "minimum": 80,
+ "type": "integer"
+ },
+ "portNumber": {
+ "description": "Listener the route belongs to.",
+ "maximum": 65535,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "prefix": {
+ "description": "Optional path prefix to match. Exclusive with regex; omit both to match /.",
+ "type": "string"
+ },
+ "regex": {
+ "description": "Optional path regex match. Exclusive with prefix; omit both to match /. Regex routes match in written order.",
+ "type": "string"
+ },
+ "replacePrefix": {
+ "description": "Optional prefix replacement when forwarding traffic to the workload.",
+ "type": "string"
+ },
+ "replica": {
+ "description": "Optional workload replica index to target (advanced; sticky routing).",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "workloadLink": {
+ "description": "Required workload target link, e.g. //gvc/{gvc}/workload/{name} or /org/{org}/gvc/{gvc}/workload/{name}.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "portNumber",
+ "workloadLink"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedInput schema / properties / certChallengeType
Added value: +{
+ "description": "Switch the certificate challenge, for example to dns01 when a CDN or WAF blocks http01. Not for .internal domains.",
+ "enum": [
+ "http01",
+ "dns01"
+ ],
+ "type": "string"
+}
addedInput schema / properties / removeCors
Added value: +{
+ "description": "Listeners whose CORS block is deleted.",
+ "items": {
+ "maximum": 65535,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "type": "array"
+}
addedInput schema / properties / removePorts
Added value: +{
+ "description": "Listeners to delete; their traffic stops at once.",
+ "items": {
+ "maximum": 65535,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "type": "array"
+}
addedInput schema / properties / removeRoutes
Added value: +{
+ "description": "Routes to delete, named by port, prefix or regex, and hostPrefix or hostRegex if set; their requests then get 404.",
+ "items": {
+ "properties": {
+ "hostPrefix": {
+ "type": "string"
+ },
+ "hostRegex": {
+ "type": "string"
+ },
+ "portNumber": {
+ "maximum": 65535,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "prefix": {
+ "type": "string"
+ },
+ "regex": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "portNumber"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedInput schema / properties / removeTls
Added value: +{
+ "description": "Listeners whose TLS block is deleted; 443 with http or http2 gets the platform default back.",
+ "items": {
+ "maximum": 65535,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "type": "array"
+}