diff --git a/appprotect.f5.com/aplogconf_v1beta1.json b/appprotect.f5.com/aplogconf_v1beta1.json index f0eb8601..06d2d683 100644 --- a/appprotect.f5.com/aplogconf_v1beta1.json +++ b/appprotect.f5.com/aplogconf_v1beta1.json @@ -59,7 +59,7 @@ "type": "string" }, "max_request_size": { - "pattern": "^([1-9]|[1-9][0-9]|[1-9][0-9]{2}|1[0-9]{3}|20[1-3][0-9]|204[1-8]|any)$", + "pattern": "^([1-9]|[1-9][0-9]|[1-9][0-9]{2}|[1-9][0-9]{3}|10[0-2][0-9][0-9]|[1-9]k|10k|any)$", "type": "string" } }, diff --git a/appprotect.f5.com/appolicy_v1beta1.json b/appprotect.f5.com/appolicy_v1beta1.json index 21f4fc6e..62071155 100644 --- a/appprotect.f5.com/appolicy_v1beta1.json +++ b/appprotect.f5.com/appolicy_v1beta1.json @@ -112,7 +112,11 @@ "Directory traversals", "IIS backslashes", "IIS Unicode codepoints", - "Multiple decoding" + "Multiple decoding", + "Multiple slashes", + "Semicolon path parameters", + "Trailing dot", + "Trailing slash" ], "type": "string" }, @@ -146,6 +150,7 @@ "CRLF characters before request start", "Content length should be a positive number", "Chunked request with Content-Length header", + "Check maximum number of cookies", "Check maximum number of parameters", "Check maximum number of headers", "Body in GET or HEAD requests", @@ -159,10 +164,19 @@ "enabled": { "type": "boolean" }, + "maxCookies": { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, "maxHeaders": { + "maximum": 150, + "minimum": 1, "type": "integer" }, "maxParams": { + "maximum": 5000, + "minimum": 1, "type": "integer" } }, @@ -185,38 +199,45 @@ }, "name": { "enum": [ - "VIOL_GRPC_FORMAT", - "VIOL_GRPC_MALFORMED", - "VIOL_GRPC_METHOD", - "VIOL_PARAMETER_ARRAY_VALUE", - "VIOL_PARAMETER_VALUE_REGEXP", - "VIOL_CSRF", - "VIOL_PARAMETER_VALUE_BASE64", - "VIOL_MANDATORY_HEADER", - "VIOL_HEADER_REPEATED", + "VIOL_ACCESS_INVALID", + "VIOL_ACCESS_MALFORMED", + "VIOL_ACCESS_MISSING", + "VIOL_ACCESS_UNAUTHORIZED", + "VIOL_ASM_COOKIE_HIJACKING", "VIOL_ASM_COOKIE_MODIFIED", "VIOL_BLACKLISTED_IP", "VIOL_COOKIE_EXPIRED", "VIOL_COOKIE_LENGTH", "VIOL_COOKIE_MALFORMED", "VIOL_COOKIE_MODIFIED", + "VIOL_CSRF", "VIOL_DATA_GUARD", "VIOL_ENCODING", "VIOL_EVASION", - "VIOL_FILETYPE", "VIOL_FILE_UPLOAD", "VIOL_FILE_UPLOAD_IN_BODY", + "VIOL_FILETYPE", + "VIOL_GRAPHQL_ERROR_RESPONSE", + "VIOL_GRAPHQL_FORMAT", + "VIOL_GRAPHQL_INTROSPECTION_QUERY", + "VIOL_GRAPHQL_MALFORMED", + "VIOL_GRPC_FORMAT", + "VIOL_GRPC_MALFORMED", + "VIOL_GRPC_METHOD", "VIOL_HEADER_LENGTH", "VIOL_HEADER_METACHAR", + "VIOL_HEADER_REPEATED", "VIOL_HTTP_PROTOCOL", "VIOL_HTTP_RESPONSE_STATUS", "VIOL_JSON_FORMAT", "VIOL_JSON_MALFORMED", "VIOL_JSON_SCHEMA", + "VIOL_MANDATORY_HEADER", "VIOL_MANDATORY_PARAMETER", "VIOL_MANDATORY_REQUEST_BODY", "VIOL_METHOD", "VIOL_PARAMETER", + "VIOL_PARAMETER_ARRAY_VALUE", "VIOL_PARAMETER_DATA_TYPE", "VIOL_PARAMETER_EMPTY_VALUE", "VIOL_PARAMETER_LOCATION", @@ -225,14 +246,16 @@ "VIOL_PARAMETER_NUMERIC_VALUE", "VIOL_PARAMETER_REPEATED", "VIOL_PARAMETER_STATIC_VALUE", + "VIOL_PARAMETER_VALUE_BASE64", "VIOL_PARAMETER_VALUE_LENGTH", "VIOL_PARAMETER_VALUE_METACHAR", + "VIOL_PARAMETER_VALUE_REGEXP", "VIOL_POST_DATA_LENGTH", "VIOL_QUERY_STRING_LENGTH", - "VIOL_RATING_THREAT", "VIOL_RATING_NEED_EXAMINATION", - "VIOL_REQUEST_MAX_LENGTH", + "VIOL_RATING_THREAT", "VIOL_REQUEST_LENGTH", + "VIOL_REQUEST_MAX_LENGTH", "VIOL_THREAT_CAMPAIGN", "VIOL_URL", "VIOL_URL_CONTENT_TYPE", @@ -290,8 +313,15 @@ "type": "string" }, "scoreThreshold": { - "pattern": "[0-9]|[1-9][0-9]|1[0-4][0-9]|150|default", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true } }, "type": "object", @@ -316,30 +346,6 @@ ], "type": "string" }, - "browserDefinition": { - "properties": { - "$action": { - "enum": [ - "delete" - ], - "type": "string" - }, - "isUserDefined": { - "type": "boolean" - }, - "matchRegex": { - "type": "string" - }, - "matchString": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "type": "object", - "additionalProperties": false - }, "maxVersion": { "maximum": 2147483647, "minimum": 0, @@ -515,8 +521,15 @@ "cookie-settings": { "properties": { "maximumCookieHeaderLength": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true } }, "type": "object", @@ -577,6 +590,9 @@ ], "type": "string" }, + "maskValueInLogs": { + "type": "boolean" + }, "name": { "type": "string" }, @@ -677,6 +693,15 @@ "creditCardNumbers": { "type": "boolean" }, + "customPatterns": { + "type": "boolean" + }, + "customPatternsList": { + "items": { + "type": "string" + }, + "type": "array" + }, "enabled": { "type": "boolean" }, @@ -693,9 +718,15 @@ }, "type": "array" }, + "firstCustomCharactersToExpose": { + "type": "integer" + }, "lastCcnDigitsToExpose": { "type": "integer" }, + "lastCustomCharactersToExpose": { + "type": "integer" + }, "lastSsnDigitsToExpose": { "type": "integer" }, @@ -871,6 +902,163 @@ "type": "object", "additionalProperties": false }, + "graphql-profiles": { + "items": { + "properties": { + "$action": { + "enum": [ + "delete" + ], + "type": "string" + }, + "attackSignaturesCheck": { + "type": "boolean" + }, + "defenseAttributes": { + "properties": { + "allowIntrospectionQueries": { + "type": "boolean" + }, + "maximumBatchedQueries": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "maximumQueryCost": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "maximumStructureDepth": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "maximumTotalLength": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "maximumValueLength": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true + }, + "tolerateParsingWarnings": { + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "description": { + "type": "string" + }, + "metacharElementCheck": { + "type": "boolean" + }, + "metacharOverrides": { + "items": { + "properties": { + "isAllowed": { + "type": "boolean" + }, + "metachar": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "responseEnforcement": { + "properties": { + "blockDisallowedPatterns": { + "type": "boolean" + }, + "disallowedPatterns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "sensitiveData": { + "items": { + "properties": { + "parameterName": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "signatureOverrides": { + "items": { + "properties": { + "enabled": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "signatureId": { + "type": "integer" + }, + "tag": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, "grpc-profiles": { "items": { "properties": { @@ -886,14 +1074,28 @@ "attackSignaturesCheck": { "type": "boolean" }, + "decodeStringValuesAsBase64": { + "enum": [ + "disabled", + "enabled" + ], + "type": "string" + }, "defenseAttributes": { "properties": { "allowUnknownFields": { "type": "boolean" }, "maximumDataLength": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true } }, "type": "object", @@ -938,6 +1140,9 @@ }, "type": "array" }, + "metacharCheck": { + "type": "boolean" + }, "metacharElementCheck": { "type": "boolean" }, @@ -974,8 +1179,15 @@ "header-settings": { "properties": { "maximumHttpHeaderLength": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true } }, "type": "object", @@ -1139,20 +1351,48 @@ "defenseAttributes": { "properties": { "maximumArrayLength": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "maximumStructureDepth": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "maximumTotalLengthOfJSONData": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "maximumValueLength": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "tolerateJSONParsingWarnings": { "type": "boolean" @@ -1554,7 +1794,72 @@ "type": "string" }, "url": { - "type": "object" + "properties": { + "method": { + "enum": [ + "ACL", + "BCOPY", + "BDELETE", + "BMOVE", + "BPROPFIND", + "BPROPPATCH", + "CHECKIN", + "CHECKOUT", + "CONNECT", + "COPY", + "DELETE", + "GET", + "HEAD", + "LINK", + "LOCK", + "MERGE", + "MKCOL", + "MKWORKSPACE", + "MOVE", + "NOTIFY", + "OPTIONS", + "PATCH", + "POLL", + "POST", + "PROPFIND", + "PROPPATCH", + "PUT", + "REPORT", + "RPC_IN_DATA", + "RPC_OUT_DATA", + "SEARCH", + "SUBSCRIBE", + "TRACE", + "TRACK", + "UNLINK", + "UNLOCK", + "UNSUBSCRIBE", + "VERSION_CONTROL", + "X-MS-ENUMATTS", + "*" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "protocol": { + "enum": [ + "http", + "https" + ], + "type": "string" + }, + "type": { + "enum": [ + "explicit", + "wildcard" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false }, "valueMetacharOverrides": { "items": { @@ -2027,8 +2332,15 @@ "type": "string" }, "originPort": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "originProtocol": { "enum": [ @@ -2396,7 +2708,72 @@ "type": "string" }, "url": { - "type": "object" + "properties": { + "method": { + "enum": [ + "ACL", + "BCOPY", + "BDELETE", + "BMOVE", + "BPROPFIND", + "BPROPPATCH", + "CHECKIN", + "CHECKOUT", + "CONNECT", + "COPY", + "DELETE", + "GET", + "HEAD", + "LINK", + "LOCK", + "MERGE", + "MKCOL", + "MKWORKSPACE", + "MOVE", + "NOTIFY", + "OPTIONS", + "PATCH", + "POLL", + "POST", + "PROPFIND", + "PROPPATCH", + "PUT", + "REPORT", + "RPC_IN_DATA", + "RPC_OUT_DATA", + "SEARCH", + "SUBSCRIBE", + "TRACE", + "TRACK", + "UNLINK", + "UNLOCK", + "UNSUBSCRIBE", + "VERSION_CONTROL", + "X-MS-ENUMATTS", + "*" + ], + "type": "string" + }, + "name": { + "type": "string" + }, + "protocol": { + "enum": [ + "http", + "https" + ], + "type": "string" + }, + "type": { + "enum": [ + "explicit", + "wildcard" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false }, "valueMetacharOverrides": { "items": { @@ -2496,7 +2873,15 @@ "type": "string" }, "headerOrder": { - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "headerValue": { "type": "string" @@ -2604,40 +2989,103 @@ "type": "boolean" }, "maximumAttributeValueLength": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "maximumAttributesPerElement": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "maximumChildrenPerElement": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "maximumDocumentDepth": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "maximumDocumentSize": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "maximumElements": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "maximumNSDeclarations": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "maximumNameLength": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "maximumNamespaceLength": { - "pattern": "any|\\d+", - "type": "string" + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ], + "x-kubernetes-int-or-string": true }, "tolerateCloseTagShorthand": { "type": "boolean" @@ -2684,6 +3132,9 @@ "additionalProperties": false }, "type": "array" + }, + "useXmlResponsePage": { + "type": "boolean" } }, "type": "object", diff --git a/appprotect.f5.com/apusersig_v1beta1.json b/appprotect.f5.com/apusersig_v1beta1.json index 2f9307f3..f9496569 100644 --- a/appprotect.f5.com/apusersig_v1beta1.json +++ b/appprotect.f5.com/apusersig_v1beta1.json @@ -98,6 +98,9 @@ }, "type": "array" }, + "softwareVersion": { + "type": "string" + }, "tag": { "type": "string" }, diff --git a/appprotectdos.f5.com/dosprotectedresource_v1beta1.json b/appprotectdos.f5.com/dosprotectedresource_v1beta1.json index 71f0aa55..a1882fc6 100644 --- a/appprotectdos.f5.com/dosprotectedresource_v1beta1.json +++ b/appprotectdos.f5.com/dosprotectedresource_v1beta1.json @@ -1,13 +1,12 @@ { "description": "DosProtectedResource defines a Dos protected resource.", - "type": "object", "properties": { "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { @@ -15,32 +14,45 @@ }, "spec": { "description": "DosProtectedResourceSpec defines the properties and values a DosProtectedResource can have.", - "type": "object", "properties": { + "allowList": { + "description": "AllowList is a list of allowed IPs and subnet masks", + "items": { + "description": "AllowListEntry represents an IP address and a subnet mask.", + "properties": { + "ipWithMask": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, "apDosMonitor": { "description": "ApDosMonitor is how NGINX App Protect DoS monitors the stress level of the protected object. The monitor requests are sent from localhost (127.0.0.1). Default value: URI - None, protocol - http1, timeout - NGINX App Protect DoS default.", - "type": "object", "properties": { "protocol": { "description": "Protocol determines if the server listens on http1 / http2 / grpc / websocket. The default is http1.", - "type": "string", "enum": [ "http1", "http2", "grpc", "websocket" - ] + ], + "type": "string" }, "timeout": { "description": "Timeout determines how long (in seconds) should NGINX App Protect DoS wait for a response. Default is 10 seconds for http1/http2 and 5 seconds for grpc.", - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" }, "uri": { "description": "URI is the destination to the desired protected object in the nginx.conf:", "type": "string" } }, + "type": "object", "additionalProperties": false }, "apDosPolicy": { @@ -53,7 +65,6 @@ }, "dosSecurityLog": { "description": "DosSecurityLog defines the security log of the DosProtectedResource.", - "type": "object", "properties": { "apDosLogConf": { "description": "ApDosLogConf is the namespace/name of a APDosLogConf resource", @@ -68,6 +79,7 @@ "type": "boolean" } }, + "type": "object", "additionalProperties": false }, "enable": { @@ -79,7 +91,9 @@ "type": "string" } }, + "type": "object", "additionalProperties": false } - } + }, + "type": "object" } diff --git a/externaldns.nginx.org/dnsendpoint_v1.json b/externaldns.nginx.org/dnsendpoint_v1.json index 829f96b4..09d12625 100644 --- a/externaldns.nginx.org/dnsendpoint_v1.json +++ b/externaldns.nginx.org/dnsendpoint_v1.json @@ -1,13 +1,12 @@ { "description": "DNSEndpoint is the CRD wrapper for Endpoint", - "type": "object", "properties": { "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { @@ -15,31 +14,26 @@ }, "spec": { "description": "DNSEndpointSpec holds information about endpoints.", - "type": "object", "properties": { "endpoints": { - "type": "array", "items": { "description": "Endpoint describes DNS Endpoint.", - "type": "object", "properties": { "dnsName": { "description": "The hostname for the DNS record", "type": "string" }, "labels": { - "description": "Labels stores labels defined for the Endpoint", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Labels stores labels defined for the Endpoint", + "type": "object" }, "providerSpecific": { "description": "ProviderSpecific stores provider specific config", - "type": "array", "items": { "description": "ProviderSpecificProperty represents provider specific config property.", - "type": "object", "properties": { "name": { "description": "Name of the property", @@ -50,13 +44,15 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "recordTTL": { "description": "TTL for the record", - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" }, "recordType": { "description": "RecordType type of record, e.g. CNAME, A, SRV, TXT, MX", @@ -64,29 +60,33 @@ }, "targets": { "description": "The targets the DNS service points to", - "type": "array", "items": { "type": "string" - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "status": { "description": "DNSEndpointStatus represents generation observed by the external dns controller.", - "type": "object", "properties": { "observedGeneration": { "description": "The generation observed by by the external-dns controller.", - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" } }, + "type": "object", "additionalProperties": false } - } + }, + "type": "object" } diff --git a/k8s.nginx.org/globalconfiguration_v1.json b/k8s.nginx.org/globalconfiguration_v1.json new file mode 100644 index 00000000..140ab64f --- /dev/null +++ b/k8s.nginx.org/globalconfiguration_v1.json @@ -0,0 +1,52 @@ +{ + "description": "GlobalConfiguration defines the GlobalConfiguration resource.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "GlobalConfigurationSpec is the spec of the GlobalConfiguration resource.", + "properties": { + "listeners": { + "items": { + "description": "Listener defines a listener.", + "properties": { + "ipv4": { + "type": "string" + }, + "ipv6": { + "type": "string" + }, + "name": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "protocol": { + "type": "string" + }, + "ssl": { + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/k8s.nginx.org/globalconfiguration_v1alpha1.json b/k8s.nginx.org/globalconfiguration_v1alpha1.json index ee65bdb9..96652d91 100644 --- a/k8s.nginx.org/globalconfiguration_v1alpha1.json +++ b/k8s.nginx.org/globalconfiguration_v1alpha1.json @@ -1,13 +1,12 @@ { "description": "GlobalConfiguration defines the GlobalConfiguration resource.", - "type": "object", "properties": { "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { @@ -15,13 +14,10 @@ }, "spec": { "description": "GlobalConfigurationSpec is the spec of the GlobalConfiguration resource.", - "type": "object", "properties": { "listeners": { - "type": "array", "items": { "description": "Listener defines a listener.", - "type": "object", "properties": { "name": { "type": "string" @@ -36,11 +32,15 @@ "type": "boolean" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false } - } + }, + "type": "object" } diff --git a/k8s.nginx.org/policy_v1.json b/k8s.nginx.org/policy_v1.json index b840d69c..83b9ffcf 100644 --- a/k8s.nginx.org/policy_v1.json +++ b/k8s.nginx.org/policy_v1.json @@ -1,44 +1,70 @@ { "description": "Policy defines a Policy for VirtualServer and VirtualServerRoute resources.", - "type": "object", "properties": { "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "type": "object" }, "spec": { - "description": "PolicySpec is the spec of the Policy resource. The spec includes multiple fields, where each field represents a different policy. Only one policy (field) is allowed.", - "type": "object", + "description": "PolicySpec is the spec of the Policy resource.\nThe spec includes multiple fields, where each field represents a different policy.\nOnly one policy (field) is allowed.", "properties": { "accessControl": { "description": "AccessControl defines an access policy based on the source IP of a request.", - "type": "object", "properties": { "allow": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "deny": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, - "basicAuth": { - "description": "BasicAuth holds HTTP Basic authentication configuration policy status: preview", + "apiKey": { + "description": "APIKey defines an API Key policy.", + "properties": { + "clientSecret": { + "type": "string" + }, + "suppliedIn": { + "description": "SuppliedIn defines the locations API Key should be supplied in.", + "properties": { + "header": { + "items": { + "type": "string" + }, + "type": "array" + }, + "query": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + } + }, "type": "object", + "additionalProperties": false + }, + "basicAuth": { + "description": "BasicAuth holds HTTP Basic authentication configuration", "properties": { "realm": { "type": "string" @@ -47,11 +73,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "egressMTLS": { "description": "EgressMTLS defines an Egress MTLS policy.", - "type": "object", "properties": { "ciphers": { "type": "string" @@ -81,6 +107,7 @@ "type": "boolean" } }, + "type": "object", "additionalProperties": false }, "ingressClassName": { @@ -88,7 +115,6 @@ }, "ingressMTLS": { "description": "IngressMTLS defines an Ingress MTLS policy.", - "type": "object", "properties": { "clientCertSecret": { "type": "string" @@ -103,11 +129,11 @@ "type": "integer" } }, + "type": "object", "additionalProperties": false }, "jwt": { "description": "JWTAuth holds JWT authentication configuration.", - "type": "object", "properties": { "jwksURI": { "type": "string" @@ -125,11 +151,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "oidc": { "description": "OIDC defines an Open ID Connect policy.", - "type": "object", "properties": { "accessTokenEnable": { "type": "boolean" @@ -138,10 +164,10 @@ "type": "string" }, "authExtraArgs": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "clientID": { "type": "string" @@ -149,9 +175,15 @@ "clientSecret": { "type": "string" }, + "endSessionEndpoint": { + "type": "string" + }, "jwksURI": { "type": "string" }, + "postLogoutRedirectURI": { + "type": "string" + }, "redirectURI": { "type": "string" }, @@ -165,11 +197,11 @@ "type": "integer" } }, + "type": "object", "additionalProperties": false }, "rateLimit": { "description": "RateLimit defines a rate limit policy.", - "type": "object", "properties": { "burst": { "type": "integer" @@ -195,15 +227,18 @@ "rejectCode": { "type": "integer" }, + "scale": { + "type": "boolean" + }, "zoneSize": { "type": "string" } }, + "type": "object", "additionalProperties": false }, "waf": { "description": "WAF defines an WAF policy.", - "type": "object", "properties": { "apBundle": { "type": "string" @@ -216,8 +251,10 @@ }, "securityLog": { "description": "SecurityLog defines the security log of a WAF policy.", - "type": "object", "properties": { + "apLogBundle": { + "type": "string" + }, "apLogConf": { "type": "string" }, @@ -228,14 +265,16 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "securityLogs": { - "type": "array", "items": { "description": "SecurityLog defines the security log of a WAF policy.", - "type": "object", "properties": { + "apLogBundle": { + "type": "string" + }, "apLogConf": { "type": "string" }, @@ -246,18 +285,21 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false }, "status": { "description": "PolicyStatus is the status of the policy resource", - "type": "object", "properties": { "message": { "type": "string" @@ -269,7 +311,9 @@ "type": "string" } }, + "type": "object", "additionalProperties": false } - } + }, + "type": "object" } diff --git a/k8s.nginx.org/policy_v1alpha1.json b/k8s.nginx.org/policy_v1alpha1.json index 661cb55e..56f7ccb0 100644 --- a/k8s.nginx.org/policy_v1alpha1.json +++ b/k8s.nginx.org/policy_v1alpha1.json @@ -1,44 +1,41 @@ { "description": "Policy defines a Policy for VirtualServer and VirtualServerRoute resources.", - "type": "object", "properties": { "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "type": "object" }, "spec": { - "description": "PolicySpec is the spec of the Policy resource. The spec includes multiple fields, where each field represents a different policy. Only one policy (field) is allowed.", - "type": "object", + "description": "PolicySpec is the spec of the Policy resource.\nThe spec includes multiple fields, where each field represents a different policy.\nOnly one policy (field) is allowed.", "properties": { "accessControl": { "description": "AccessControl defines an access policy based on the source IP of a request.", - "type": "object", "properties": { "allow": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "deny": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "egressMTLS": { "description": "EgressMTLS defines an Egress MTLS policy.", - "type": "object", "properties": { "ciphers": { "type": "string" @@ -68,11 +65,11 @@ "type": "boolean" } }, + "type": "object", "additionalProperties": false }, "ingressMTLS": { "description": "IngressMTLS defines an Ingress MTLS policy.", - "type": "object", "properties": { "clientCertSecret": { "type": "string" @@ -84,11 +81,11 @@ "type": "integer" } }, + "type": "object", "additionalProperties": false }, "jwt": { "description": "JWTAuth holds JWT authentication configuration.", - "type": "object", "properties": { "realm": { "type": "string" @@ -100,11 +97,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "rateLimit": { "description": "RateLimit defines a rate limit policy.", - "type": "object", "properties": { "burst": { "type": "integer" @@ -134,10 +131,13 @@ "type": "string" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false } - } + }, + "type": "object" } diff --git a/k8s.nginx.org/transportserver_v1.json b/k8s.nginx.org/transportserver_v1.json new file mode 100644 index 00000000..ab5566f2 --- /dev/null +++ b/k8s.nginx.org/transportserver_v1.json @@ -0,0 +1,198 @@ +{ + "description": "TransportServer defines the TransportServer resource.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "TransportServerSpec is the spec of the TransportServer resource.", + "properties": { + "action": { + "description": "TransportServerAction defines an action.", + "properties": { + "pass": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "host": { + "type": "string" + }, + "ingressClassName": { + "type": "string" + }, + "listener": { + "description": "TransportServerListener defines a listener for a TransportServer.", + "properties": { + "name": { + "type": "string" + }, + "protocol": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "serverSnippets": { + "type": "string" + }, + "sessionParameters": { + "description": "SessionParameters defines session parameters.", + "properties": { + "timeout": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "streamSnippets": { + "type": "string" + }, + "tls": { + "description": "TransportServerTLS defines TransportServerTLS configuration for a TransportServer.", + "properties": { + "secret": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "upstreamParameters": { + "description": "UpstreamParameters defines parameters for an upstream.", + "properties": { + "connectTimeout": { + "type": "string" + }, + "nextUpstream": { + "type": "boolean" + }, + "nextUpstreamTimeout": { + "type": "string" + }, + "nextUpstreamTries": { + "type": "integer" + }, + "udpRequests": { + "type": "integer" + }, + "udpResponses": { + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "upstreams": { + "items": { + "description": "TransportServerUpstream defines an upstream.", + "properties": { + "backup": { + "type": "string" + }, + "backupPort": { + "type": "integer" + }, + "failTimeout": { + "type": "string" + }, + "healthCheck": { + "description": "TransportServerHealthCheck defines the parameters for active Upstream HealthChecks.", + "properties": { + "enable": { + "type": "boolean" + }, + "fails": { + "type": "integer" + }, + "interval": { + "type": "string" + }, + "jitter": { + "type": "string" + }, + "match": { + "description": "TransportServerMatch defines the parameters of a custom health check.", + "properties": { + "expect": { + "type": "string" + }, + "send": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "passes": { + "type": "integer" + }, + "port": { + "type": "integer" + }, + "timeout": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "loadBalancingMethod": { + "type": "string" + }, + "maxConns": { + "type": "integer" + }, + "maxFails": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "port": { + "type": "integer" + }, + "service": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "status": { + "description": "TransportServerStatus defines the status for the TransportServer resource.", + "properties": { + "message": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/k8s.nginx.org/transportserver_v1alpha1.json b/k8s.nginx.org/transportserver_v1alpha1.json index 8cf6563a..ab5566f2 100644 --- a/k8s.nginx.org/transportserver_v1alpha1.json +++ b/k8s.nginx.org/transportserver_v1alpha1.json @@ -1,13 +1,12 @@ { "description": "TransportServer defines the TransportServer resource.", - "type": "object", "properties": { "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { @@ -15,16 +14,15 @@ }, "spec": { "description": "TransportServerSpec is the spec of the TransportServer resource.", - "type": "object", "properties": { "action": { - "description": "Action defines an action.", - "type": "object", + "description": "TransportServerAction defines an action.", "properties": { "pass": { "type": "string" } }, + "type": "object", "additionalProperties": false }, "host": { @@ -35,7 +33,6 @@ }, "listener": { "description": "TransportServerListener defines a listener for a TransportServer.", - "type": "object", "properties": { "name": { "type": "string" @@ -44,6 +41,7 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "serverSnippets": { @@ -51,30 +49,29 @@ }, "sessionParameters": { "description": "SessionParameters defines session parameters.", - "type": "object", "properties": { "timeout": { "type": "string" } }, + "type": "object", "additionalProperties": false }, "streamSnippets": { "type": "string" }, "tls": { - "description": "TLS defines TLS configuration for a TransportServer.", - "type": "object", + "description": "TransportServerTLS defines TransportServerTLS configuration for a TransportServer.", "properties": { "secret": { "type": "string" } }, + "type": "object", "additionalProperties": false }, "upstreamParameters": { "description": "UpstreamParameters defines parameters for an upstream.", - "type": "object", "properties": { "connectTimeout": { "type": "string" @@ -95,20 +92,24 @@ "type": "integer" } }, + "type": "object", "additionalProperties": false }, "upstreams": { - "type": "array", "items": { - "description": "Upstream defines an upstream.", - "type": "object", + "description": "TransportServerUpstream defines an upstream.", "properties": { + "backup": { + "type": "string" + }, + "backupPort": { + "type": "integer" + }, "failTimeout": { "type": "string" }, "healthCheck": { - "description": "HealthCheck defines the parameters for active Upstream HealthChecks.", - "type": "object", + "description": "TransportServerHealthCheck defines the parameters for active Upstream HealthChecks.", "properties": { "enable": { "type": "boolean" @@ -123,8 +124,7 @@ "type": "string" }, "match": { - "description": "Match defines the parameters of a custom health check.", - "type": "object", + "description": "TransportServerMatch defines the parameters of a custom health check.", "properties": { "expect": { "type": "string" @@ -133,6 +133,7 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "passes": { @@ -145,6 +146,7 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "loadBalancingMethod": { @@ -166,15 +168,17 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "status": { "description": "TransportServerStatus defines the status for the TransportServer resource.", - "type": "object", "properties": { "message": { "type": "string" @@ -186,7 +190,9 @@ "type": "string" } }, + "type": "object", "additionalProperties": false } - } + }, + "type": "object" } diff --git a/k8s.nginx.org/virtualserver_v1.json b/k8s.nginx.org/virtualserver_v1.json index b3de486f..ab81cfa0 100644 --- a/k8s.nginx.org/virtualserver_v1.json +++ b/k8s.nginx.org/virtualserver_v1.json @@ -1,13 +1,12 @@ { "description": "VirtualServer defines the VirtualServer resource.", - "type": "object", "properties": { "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { @@ -15,31 +14,27 @@ }, "spec": { "description": "VirtualServerSpec is the spec of the VirtualServer resource.", - "type": "object", "properties": { "dos": { "type": "string" }, "externalDNS": { "description": "ExternalDNS defines externaldns sub-resource of a virtual server.", - "type": "object", "properties": { "enable": { "type": "boolean" }, "labels": { - "description": "Labels stores labels defined for the Endpoint", - "type": "object", "additionalProperties": { "type": "string" - } + }, + "description": "Labels stores labels defined for the Endpoint", + "type": "object" }, "providerSpecific": { "description": "ProviderSpecific stores provider specific config", - "type": "array", "items": { - "description": "ProviderSpecificProperty defines specific property for using with ExternalDNS sub-resource.", - "type": "object", + "description": "ProviderSpecificProperty defines specific property\nfor using with ExternalDNS sub-resource.", "properties": { "name": { "description": "Name of the property", @@ -50,18 +45,21 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "recordTTL": { "description": "TTL for the record", - "type": "integer", - "format": "int64" + "format": "int64", + "type": "integer" }, "recordType": { "type": "string" } }, + "type": "object", "additionalProperties": false }, "gunzip": { @@ -81,8 +79,7 @@ "type": "boolean" }, "listener": { - "description": "Listener references a custom http and/or https listener defined in GlobalConfiguration.", - "type": "object", + "description": "VirtualServerListener references a custom http and/or https listener defined in GlobalConfiguration.", "properties": { "http": { "type": "string" @@ -91,13 +88,12 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "policies": { - "type": "array", "items": { "description": "PolicyReference references a policy by name and an optional namespace.", - "type": "object", "properties": { "name": { "type": "string" @@ -106,38 +102,33 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "routes": { - "type": "array", "items": { "description": "Route defines a route.", - "type": "object", "properties": { "action": { "description": "Action defines an action.", - "type": "object", "properties": { "pass": { "type": "string" }, "proxy": { "description": "ActionProxy defines a proxy in an Action.", - "type": "object", "properties": { "requestHeaders": { "description": "ProxyRequestHeaders defines the request headers manipulation in an ActionProxy.", - "type": "object", "properties": { "pass": { "type": "boolean" }, "set": { - "type": "array", "items": { "description": "Header defines an HTTP Header.", - "type": "object", "properties": { "name": { "type": "string" @@ -146,21 +137,21 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "responseHeaders": { "description": "ProxyResponseHeaders defines the response headers manipulation in an ActionProxy.", - "type": "object", "properties": { "add": { - "type": "array", "items": { "description": "AddHeader defines an HTTP Header with an optional Always field to use with the add_header NGINX directive.", - "type": "object", "properties": { "always": { "type": "boolean" @@ -172,28 +163,31 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "hide": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "ignore": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "pass": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "rewritePath": { @@ -203,11 +197,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "redirect": { "description": "ActionRedirect defines a redirect in an Action.", - "type": "object", "properties": { "code": { "type": "integer" @@ -216,11 +210,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "return": { "description": "ActionReturn defines a return in an Action.", - "type": "object", "properties": { "body": { "type": "string" @@ -228,33 +222,48 @@ "code": { "type": "integer" }, + "headers": { + "items": { + "description": "Header defines an HTTP Header.", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, "type": { "type": "string" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false }, "dos": { "type": "string" }, "errorPages": { - "type": "array", "items": { "description": "ErrorPage defines an ErrorPage in a Route.", - "type": "object", "properties": { "codes": { - "type": "array", "items": { "type": "integer" - } + }, + "type": "array" }, "redirect": { "description": "ErrorPageRedirect defines a redirect for an ErrorPage.", - "type": "object", "properties": { "code": { "type": "integer" @@ -263,11 +272,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "return": { "description": "ErrorPageReturn defines a return for an ErrorPage.", - "type": "object", "properties": { "body": { "type": "string" @@ -276,10 +285,8 @@ "type": "integer" }, "headers": { - "type": "array", "items": { "description": "Header defines an HTTP Header.", - "type": "object", "properties": { "name": { "type": "string" @@ -288,51 +295,49 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "type": { "type": "string" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "location-snippets": { "type": "string" }, "matches": { - "type": "array", "items": { "description": "Match defines a match.", - "type": "object", "properties": { "action": { "description": "Action defines an action.", - "type": "object", "properties": { "pass": { "type": "string" }, "proxy": { "description": "ActionProxy defines a proxy in an Action.", - "type": "object", "properties": { "requestHeaders": { "description": "ProxyRequestHeaders defines the request headers manipulation in an ActionProxy.", - "type": "object", "properties": { "pass": { "type": "boolean" }, "set": { - "type": "array", "items": { "description": "Header defines an HTTP Header.", - "type": "object", "properties": { "name": { "type": "string" @@ -341,21 +346,21 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "responseHeaders": { "description": "ProxyResponseHeaders defines the response headers manipulation in an ActionProxy.", - "type": "object", "properties": { "add": { - "type": "array", "items": { "description": "AddHeader defines an HTTP Header with an optional Always field to use with the add_header NGINX directive.", - "type": "object", "properties": { "always": { "type": "boolean" @@ -367,28 +372,31 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "hide": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "ignore": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "pass": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "rewritePath": { @@ -398,11 +406,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "redirect": { "description": "ActionRedirect defines a redirect in an Action.", - "type": "object", "properties": { "code": { "type": "integer" @@ -411,11 +419,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "return": { "description": "ActionReturn defines a return in an Action.", - "type": "object", "properties": { "body": { "type": "string" @@ -423,20 +431,36 @@ "code": { "type": "integer" }, + "headers": { + "items": { + "description": "Header defines an HTTP Header.", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, "type": { "type": "string" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false }, "conditions": { - "type": "array", "items": { "description": "Condition defines a condition in a MatchRule.", - "type": "object", "properties": { "argument": { "type": "string" @@ -454,38 +478,33 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "splits": { - "type": "array", "items": { "description": "Split defines a split.", - "type": "object", "properties": { "action": { "description": "Action defines an action.", - "type": "object", "properties": { "pass": { "type": "string" }, "proxy": { "description": "ActionProxy defines a proxy in an Action.", - "type": "object", "properties": { "requestHeaders": { "description": "ProxyRequestHeaders defines the request headers manipulation in an ActionProxy.", - "type": "object", "properties": { "pass": { "type": "boolean" }, "set": { - "type": "array", "items": { "description": "Header defines an HTTP Header.", - "type": "object", "properties": { "name": { "type": "string" @@ -494,21 +513,21 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "responseHeaders": { "description": "ProxyResponseHeaders defines the response headers manipulation in an ActionProxy.", - "type": "object", "properties": { "add": { - "type": "array", "items": { "description": "AddHeader defines an HTTP Header with an optional Always field to use with the add_header NGINX directive.", - "type": "object", "properties": { "always": { "type": "boolean" @@ -520,28 +539,31 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "hide": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "ignore": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "pass": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "rewritePath": { @@ -551,11 +573,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "redirect": { "description": "ActionRedirect defines a redirect in an Action.", - "type": "object", "properties": { "code": { "type": "integer" @@ -564,11 +586,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "return": { "description": "ActionReturn defines a return in an Action.", - "type": "object", "properties": { "body": { "type": "string" @@ -576,34 +598,54 @@ "code": { "type": "integer" }, + "headers": { + "items": { + "description": "Header defines an HTTP Header.", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, "type": { "type": "string" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false }, "weight": { "type": "integer" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "path": { "type": "string" }, "policies": { - "type": "array", "items": { "description": "PolicyReference references a policy by name and an optional namespace.", - "type": "object", "properties": { "name": { "type": "string" @@ -612,41 +654,36 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "route": { "type": "string" }, "splits": { - "type": "array", "items": { "description": "Split defines a split.", - "type": "object", "properties": { "action": { "description": "Action defines an action.", - "type": "object", "properties": { "pass": { "type": "string" }, "proxy": { "description": "ActionProxy defines a proxy in an Action.", - "type": "object", "properties": { "requestHeaders": { "description": "ProxyRequestHeaders defines the request headers manipulation in an ActionProxy.", - "type": "object", "properties": { "pass": { "type": "boolean" }, "set": { - "type": "array", "items": { "description": "Header defines an HTTP Header.", - "type": "object", "properties": { "name": { "type": "string" @@ -655,21 +692,21 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "responseHeaders": { "description": "ProxyResponseHeaders defines the response headers manipulation in an ActionProxy.", - "type": "object", "properties": { "add": { - "type": "array", "items": { "description": "AddHeader defines an HTTP Header with an optional Always field to use with the add_header NGINX directive.", - "type": "object", "properties": { "always": { "type": "boolean" @@ -681,28 +718,31 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "hide": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "ignore": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "pass": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "rewritePath": { @@ -712,11 +752,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "redirect": { "description": "ActionRedirect defines a redirect in an Action.", - "type": "object", "properties": { "code": { "type": "integer" @@ -725,11 +765,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "return": { "description": "ActionReturn defines a return in an Action.", - "type": "object", "properties": { "body": { "type": "string" @@ -737,36 +777,56 @@ "code": { "type": "integer" }, + "headers": { + "items": { + "description": "Header defines an HTTP Header.", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, "type": { "type": "string" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false }, "weight": { "type": "integer" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "server-snippets": { "type": "string" }, "tls": { "description": "TLS defines TLS configuration for a VirtualServer.", - "type": "object", "properties": { "cert-manager": { "description": "CertManager defines a cert manager config for a TLS.", - "type": "object", "properties": { "cluster-issuer": { "type": "string" @@ -777,6 +837,9 @@ "duration": { "type": "string" }, + "issue-temp-cert": { + "type": "boolean" + }, "issuer": { "type": "string" }, @@ -793,11 +856,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "redirect": { "description": "TLSRedirect defines a redirect for a TLS.", - "type": "object", "properties": { "basedOn": { "type": "string" @@ -809,20 +872,26 @@ "type": "boolean" } }, + "type": "object", "additionalProperties": false }, "secret": { "type": "string" } }, + "type": "object", "additionalProperties": false }, "upstreams": { - "type": "array", "items": { "description": "Upstream defines an upstream.", - "type": "object", "properties": { + "backup": { + "type": "string" + }, + "backupPort": { + "type": "integer" + }, "buffer-size": { "type": "string" }, @@ -831,7 +900,6 @@ }, "buffers": { "description": "UpstreamBuffers defines Buffer Configuration for an Upstream.", - "type": "object", "properties": { "number": { "type": "integer" @@ -840,6 +908,7 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "client-max-body-size": { @@ -853,7 +922,6 @@ }, "healthCheck": { "description": "HealthCheck defines the parameters for active Upstream HealthChecks.", - "type": "object", "properties": { "connect-timeout": { "type": "string" @@ -871,10 +939,8 @@ "type": "integer" }, "headers": { - "type": "array", "items": { "description": "Header defines an HTTP Header.", - "type": "object", "properties": { "name": { "type": "string" @@ -883,8 +949,10 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "interval": { "type": "string" @@ -921,15 +989,16 @@ }, "tls": { "description": "UpstreamTLS defines a TLS configuration for an Upstream.", - "type": "object", "properties": { "enable": { "type": "boolean" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false }, "keepalive": { @@ -964,7 +1033,6 @@ }, "queue": { "description": "UpstreamQueue defines Queue Configuration for an Upstream.", - "type": "object", "properties": { "size": { "type": "integer" @@ -973,6 +1041,7 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "read-timeout": { @@ -986,7 +1055,6 @@ }, "sessionCookie": { "description": "SessionCookie defines the parameters for session persistence.", - "type": "object", "properties": { "domain": { "type": "string" @@ -1013,25 +1081,26 @@ "type": "boolean" } }, + "type": "object", "additionalProperties": false }, "slow-start": { "type": "string" }, "subselector": { - "type": "object", "additionalProperties": { "type": "string" - } + }, + "type": "object" }, "tls": { "description": "UpstreamTLS defines a TLS configuration for an Upstream.", - "type": "object", "properties": { "enable": { "type": "boolean" } }, + "type": "object", "additionalProperties": false }, "type": { @@ -1041,21 +1110,21 @@ "type": "boolean" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "status": { "description": "VirtualServerStatus defines the status for the VirtualServer resource.", - "type": "object", "properties": { "externalEndpoints": { - "type": "array", "items": { "description": "ExternalEndpoint defines the IP/ Hostname and ports used to connect to this resource.", - "type": "object", "properties": { "hostname": { "type": "string" @@ -1067,8 +1136,10 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "message": { "type": "string" @@ -1080,7 +1151,9 @@ "type": "string" } }, + "type": "object", "additionalProperties": false } - } + }, + "type": "object" } diff --git a/k8s.nginx.org/virtualserverroute_v1.json b/k8s.nginx.org/virtualserverroute_v1.json index b4718cbd..e6a7229f 100644 --- a/k8s.nginx.org/virtualserverroute_v1.json +++ b/k8s.nginx.org/virtualserverroute_v1.json @@ -1,13 +1,12 @@ { "description": "VirtualServerRoute defines the VirtualServerRoute resource.", - "type": "object", "properties": { "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { @@ -15,7 +14,6 @@ }, "spec": { "description": "VirtualServerRouteSpec is the spec of the VirtualServerRoute resource.", - "type": "object", "properties": { "host": { "type": "string" @@ -24,34 +22,27 @@ "type": "string" }, "subroutes": { - "type": "array", "items": { "description": "Route defines a route.", - "type": "object", "properties": { "action": { "description": "Action defines an action.", - "type": "object", "properties": { "pass": { "type": "string" }, "proxy": { "description": "ActionProxy defines a proxy in an Action.", - "type": "object", "properties": { "requestHeaders": { "description": "ProxyRequestHeaders defines the request headers manipulation in an ActionProxy.", - "type": "object", "properties": { "pass": { "type": "boolean" }, "set": { - "type": "array", "items": { "description": "Header defines an HTTP Header.", - "type": "object", "properties": { "name": { "type": "string" @@ -60,21 +51,21 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "responseHeaders": { "description": "ProxyResponseHeaders defines the response headers manipulation in an ActionProxy.", - "type": "object", "properties": { "add": { - "type": "array", "items": { "description": "AddHeader defines an HTTP Header with an optional Always field to use with the add_header NGINX directive.", - "type": "object", "properties": { "always": { "type": "boolean" @@ -86,28 +77,31 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "hide": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "ignore": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "pass": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "rewritePath": { @@ -117,11 +111,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "redirect": { "description": "ActionRedirect defines a redirect in an Action.", - "type": "object", "properties": { "code": { "type": "integer" @@ -130,11 +124,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "return": { "description": "ActionReturn defines a return in an Action.", - "type": "object", "properties": { "body": { "type": "string" @@ -142,33 +136,48 @@ "code": { "type": "integer" }, + "headers": { + "items": { + "description": "Header defines an HTTP Header.", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, "type": { "type": "string" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false }, "dos": { "type": "string" }, "errorPages": { - "type": "array", "items": { "description": "ErrorPage defines an ErrorPage in a Route.", - "type": "object", "properties": { "codes": { - "type": "array", "items": { "type": "integer" - } + }, + "type": "array" }, "redirect": { "description": "ErrorPageRedirect defines a redirect for an ErrorPage.", - "type": "object", "properties": { "code": { "type": "integer" @@ -177,11 +186,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "return": { "description": "ErrorPageReturn defines a return for an ErrorPage.", - "type": "object", "properties": { "body": { "type": "string" @@ -190,10 +199,8 @@ "type": "integer" }, "headers": { - "type": "array", "items": { "description": "Header defines an HTTP Header.", - "type": "object", "properties": { "name": { "type": "string" @@ -202,51 +209,49 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "type": { "type": "string" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "location-snippets": { "type": "string" }, "matches": { - "type": "array", "items": { "description": "Match defines a match.", - "type": "object", "properties": { "action": { "description": "Action defines an action.", - "type": "object", "properties": { "pass": { "type": "string" }, "proxy": { "description": "ActionProxy defines a proxy in an Action.", - "type": "object", "properties": { "requestHeaders": { "description": "ProxyRequestHeaders defines the request headers manipulation in an ActionProxy.", - "type": "object", "properties": { "pass": { "type": "boolean" }, "set": { - "type": "array", "items": { "description": "Header defines an HTTP Header.", - "type": "object", "properties": { "name": { "type": "string" @@ -255,21 +260,21 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "responseHeaders": { "description": "ProxyResponseHeaders defines the response headers manipulation in an ActionProxy.", - "type": "object", "properties": { "add": { - "type": "array", "items": { "description": "AddHeader defines an HTTP Header with an optional Always field to use with the add_header NGINX directive.", - "type": "object", "properties": { "always": { "type": "boolean" @@ -281,28 +286,31 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "hide": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "ignore": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "pass": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "rewritePath": { @@ -312,11 +320,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "redirect": { "description": "ActionRedirect defines a redirect in an Action.", - "type": "object", "properties": { "code": { "type": "integer" @@ -325,11 +333,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "return": { "description": "ActionReturn defines a return in an Action.", - "type": "object", "properties": { "body": { "type": "string" @@ -337,20 +345,36 @@ "code": { "type": "integer" }, + "headers": { + "items": { + "description": "Header defines an HTTP Header.", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, "type": { "type": "string" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false }, "conditions": { - "type": "array", "items": { "description": "Condition defines a condition in a MatchRule.", - "type": "object", "properties": { "argument": { "type": "string" @@ -368,38 +392,33 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "splits": { - "type": "array", "items": { "description": "Split defines a split.", - "type": "object", "properties": { "action": { "description": "Action defines an action.", - "type": "object", "properties": { "pass": { "type": "string" }, "proxy": { "description": "ActionProxy defines a proxy in an Action.", - "type": "object", "properties": { "requestHeaders": { "description": "ProxyRequestHeaders defines the request headers manipulation in an ActionProxy.", - "type": "object", "properties": { "pass": { "type": "boolean" }, "set": { - "type": "array", "items": { "description": "Header defines an HTTP Header.", - "type": "object", "properties": { "name": { "type": "string" @@ -408,21 +427,21 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "responseHeaders": { "description": "ProxyResponseHeaders defines the response headers manipulation in an ActionProxy.", - "type": "object", "properties": { "add": { - "type": "array", "items": { "description": "AddHeader defines an HTTP Header with an optional Always field to use with the add_header NGINX directive.", - "type": "object", "properties": { "always": { "type": "boolean" @@ -434,28 +453,31 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "hide": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "ignore": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "pass": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "rewritePath": { @@ -465,11 +487,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "redirect": { "description": "ActionRedirect defines a redirect in an Action.", - "type": "object", "properties": { "code": { "type": "integer" @@ -478,11 +500,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "return": { "description": "ActionReturn defines a return in an Action.", - "type": "object", "properties": { "body": { "type": "string" @@ -490,34 +512,54 @@ "code": { "type": "integer" }, + "headers": { + "items": { + "description": "Header defines an HTTP Header.", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, "type": { "type": "string" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false }, "weight": { "type": "integer" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "path": { "type": "string" }, "policies": { - "type": "array", "items": { "description": "PolicyReference references a policy by name and an optional namespace.", - "type": "object", "properties": { "name": { "type": "string" @@ -526,41 +568,36 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "route": { "type": "string" }, "splits": { - "type": "array", "items": { "description": "Split defines a split.", - "type": "object", "properties": { "action": { "description": "Action defines an action.", - "type": "object", "properties": { "pass": { "type": "string" }, "proxy": { "description": "ActionProxy defines a proxy in an Action.", - "type": "object", "properties": { "requestHeaders": { "description": "ProxyRequestHeaders defines the request headers manipulation in an ActionProxy.", - "type": "object", "properties": { "pass": { "type": "boolean" }, "set": { - "type": "array", "items": { "description": "Header defines an HTTP Header.", - "type": "object", "properties": { "name": { "type": "string" @@ -569,21 +606,21 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "responseHeaders": { "description": "ProxyResponseHeaders defines the response headers manipulation in an ActionProxy.", - "type": "object", "properties": { "add": { - "type": "array", "items": { "description": "AddHeader defines an HTTP Header with an optional Always field to use with the add_header NGINX directive.", - "type": "object", "properties": { "always": { "type": "boolean" @@ -595,28 +632,31 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "hide": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "ignore": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" }, "pass": { - "type": "array", "items": { "type": "string" - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "rewritePath": { @@ -626,11 +666,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "redirect": { "description": "ActionRedirect defines a redirect in an Action.", - "type": "object", "properties": { "code": { "type": "integer" @@ -639,11 +679,11 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "return": { "description": "ActionReturn defines a return in an Action.", - "type": "object", "properties": { "body": { "type": "string" @@ -651,32 +691,58 @@ "code": { "type": "integer" }, + "headers": { + "items": { + "description": "Header defines an HTTP Header.", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, "type": { "type": "string" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false }, "weight": { "type": "integer" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "upstreams": { - "type": "array", "items": { "description": "Upstream defines an upstream.", - "type": "object", "properties": { + "backup": { + "type": "string" + }, + "backupPort": { + "type": "integer" + }, "buffer-size": { "type": "string" }, @@ -685,7 +751,6 @@ }, "buffers": { "description": "UpstreamBuffers defines Buffer Configuration for an Upstream.", - "type": "object", "properties": { "number": { "type": "integer" @@ -694,6 +759,7 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "client-max-body-size": { @@ -707,7 +773,6 @@ }, "healthCheck": { "description": "HealthCheck defines the parameters for active Upstream HealthChecks.", - "type": "object", "properties": { "connect-timeout": { "type": "string" @@ -725,10 +790,8 @@ "type": "integer" }, "headers": { - "type": "array", "items": { "description": "Header defines an HTTP Header.", - "type": "object", "properties": { "name": { "type": "string" @@ -737,8 +800,10 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "interval": { "type": "string" @@ -775,15 +840,16 @@ }, "tls": { "description": "UpstreamTLS defines a TLS configuration for an Upstream.", - "type": "object", "properties": { "enable": { "type": "boolean" } }, + "type": "object", "additionalProperties": false } }, + "type": "object", "additionalProperties": false }, "keepalive": { @@ -818,7 +884,6 @@ }, "queue": { "description": "UpstreamQueue defines Queue Configuration for an Upstream.", - "type": "object", "properties": { "size": { "type": "integer" @@ -827,6 +892,7 @@ "type": "string" } }, + "type": "object", "additionalProperties": false }, "read-timeout": { @@ -840,7 +906,6 @@ }, "sessionCookie": { "description": "SessionCookie defines the parameters for session persistence.", - "type": "object", "properties": { "domain": { "type": "string" @@ -867,25 +932,26 @@ "type": "boolean" } }, + "type": "object", "additionalProperties": false }, "slow-start": { "type": "string" }, "subselector": { - "type": "object", "additionalProperties": { "type": "string" - } + }, + "type": "object" }, "tls": { "description": "UpstreamTLS defines a TLS configuration for an Upstream.", - "type": "object", "properties": { "enable": { "type": "boolean" } }, + "type": "object", "additionalProperties": false }, "type": { @@ -895,21 +961,21 @@ "type": "boolean" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" } }, + "type": "object", "additionalProperties": false }, "status": { "description": "VirtualServerRouteStatus defines the status for the VirtualServerRoute resource.", - "type": "object", "properties": { "externalEndpoints": { - "type": "array", "items": { "description": "ExternalEndpoint defines the IP/ Hostname and ports used to connect to this resource.", - "type": "object", "properties": { "hostname": { "type": "string" @@ -921,8 +987,10 @@ "type": "string" } }, + "type": "object", "additionalProperties": false - } + }, + "type": "array" }, "message": { "type": "string" @@ -937,7 +1005,9 @@ "type": "string" } }, + "type": "object", "additionalProperties": false } - } + }, + "type": "object" }