UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

1,437 lines 42.9 kB
export default { "rules": { "invalid-kind-value-combined": { "description": "Kind must be one of 'API' | 'Scope' | 'Project' | 'StagedPolicySequence' | 'InvokeAWSLambda' | 'ValidateAPISpecification' | 'CORS' | 'Quota' | 'Plan' | 'Product' | 'URISchemes' | 'properties' | 'Telemetry' | 'Properties' | 'LoadBalancer' | 'SetAuthorization' | 'Invoke' | 'GlobalPolicy' | 'InboundBulkHead' | 'SetMediaType' | 'InboundMessaging' | 'IAM' | 'AuthorizeUser' | 'SetContextVariable' | 'WebMethodsISService' | 'Log' | 'MonitorTraffic' | 'CacheServiceResult' | 'OutboundAlias' | 'OutboundAnonymous' | 'HTTPInvoke' | 'InvokeMessagingExtension' | 'DataMasking' | 'TransformRequest' | 'TransformResponse' | 'Route' | 'MessageConfig' | 'HTTPEndpoint' | 'MockEndpoint' | 'MockResponse' | 'ErrorProcessing' | 'Set' | 'RateLimitDef' | 'RateLimit' | 'Redact' | 'Remove' | 'Transform' | 'DataPowerAssembly' | 'Switch' | 'If' | 'OperationSwitch' | 'Try' | 'IBMCloudLogin' | 'WatsonXAIInvoke' | 'OpenAIInvoke' | 'FreeFlowPolicySequence' | 'Block' | 'TokenMediation' | 'EnforceCircuitBreaker' | 'JavaScript' | 'LuaScript' | 'Cache' | 'Antivirus' | 'SQLInjectionFilter' | 'CountLimit' | 'CountLimitDef' | 'Return' | 'Retry' | 'Throw' | 'HandlebarsTemplate' | 'ExtractIdentity' | 'Authorize' | 'Authenticate' | 'Parse' | 'test' | 'assertion' | 'environment' | 'MCPTool' | 'MCPServerConfig'", "severity": "error", "given": "$", "then": { "field": "kind", "function": "schema", "functionOptions": { "schema": { "type": "string", "enum": [ "API", "Scope", "Project", "StagedPolicySequence", "InvokeAWSLambda", "ValidateAPISpecification", "CORS", "Quota", "Plan", "Product", "URISchemes", "properties", "Telemetry", "Properties", "LoadBalancer", "SetAuthorization", "Invoke", "GlobalPolicy", "InboundBulkHead", "SetMediaType", "InboundMessaging", "IAM", "AuthorizeUser", "SetContextVariable", "WebMethodsISService", "Log", "MonitorTraffic", "CacheServiceResult", "OutboundAlias", "OutboundAnonymous", "HTTPInvoke", "InvokeMessagingExtension", "DataMasking", "TransformRequest", "TransformResponse", "Route", "MessageConfig", "HTTPEndpoint", "MockEndpoint", "MockResponse", "ErrorProcessing", "Set", "RateLimitDef", "RateLimit", "Redact", "Remove", "Transform", "DataPowerAssembly", "Switch", "If", "OperationSwitch", "Try", "IBMCloudLogin", "WatsonXAIInvoke", "OpenAIInvoke", "FreeFlowPolicySequence", "Block", "TokenMediation", "EnforceCircuitBreaker", "JavaScript", "LuaScript", "Cache", "Antivirus", "SQLInjectionFilter", "CountLimit", "CountLimitDef", "Return", "Retry", "Throw", "HandlebarsTemplate", "ExtractIdentity", "Authorize", "Authenticate", "Parse", "test", "assertion", "environment", "MCPTool", "MCPServerConfig" ] } } } }, "kind-not-exist": { "description": "Kind does not exist.", "severity": "error", "given": "$", "resolved": false, "then": { "field": "kind", "function": "truthy" } }, "invalid-kind-value": { "description": "Kind must be 'LoadBalancer'", "severity": "error", "given": "$", "then": { "field": "kind", "function": "schema", "functionOptions": { "schema": { "type": "string", "enum": [ "LoadBalancer" ] } } } }, "invalid-kind-spl-character": { "description": "kind should not be having empty or special characters", "severity": "error", "given": "$", "resolved": false, "then": { "field": "kind", "function": "pattern", "functionOptions": { "match": "^(?![\\s\\W_]+$).+$" } } }, "invalid-api-version": { "description": "apiVersion must be one of the valid values 'api.ibm.com/v1'", "severity": "error", "given": "$", "resolved": false, "then": { "field": "apiVersion", "function": "schema", "functionOptions": { "schema": { "type": "string", "enum": [ "api.ibm.com/v1" ] } } } }, "api-version-not-exist": { "description": "apiVersion does not exist.", "severity": "error", "given": "$", "resolved": false, "then": { "field": "apiVersion", "function": "truthy" } }, "metadata-not-exist": { "description": "Metadata does not exist.", "severity": "error", "given": "$", "resolved": false, "then": { "field": "metadata", "function": "truthy" } }, "metadata-whitelist-check": { "description": "Metadata should not be having empty or special characters", "severity": "error", "given": "$", "resolved": false, "then": { "field": "metadata", "function": "pattern", "functionOptions": { "match": "^(?![\\s\\W_]+$).+$" } } }, "metadata-name-not-exist": { "description": "Metadata name does not exist", "severity": "error", "given": "$.metadata", "resolved": false, "then": { "field": "name", "function": "truthy" } }, "metadata-name-whitelist-check": { "description": "Metadata name should not be having empty or special characters", "severity": "error", "given": "$.metadata", "resolved": false, "then": { "field": "name", "function": "pattern", "functionOptions": { "match": "^(?![\\s\\W_]+$).+$" } } }, "metadata-version-not-exist": { "description": "Metadata version does not exist", "severity": "error", "given": "$.metadata", "resolved": false, "then": { "field": "version", "function": "truthy" } }, "metadata-version-whitelist-check": { "description": "Metadata version should not be having empty or special characters", "severity": "error", "given": "$.metadata", "resolved": false, "then": { "field": "version", "function": "pattern", "functionOptions": { "match": "^(?![\\s\\W_]+$).+$" } } }, "metadata-namespace-not-exist": { "description": "Metadata namespace does not exist", "severity": "warn", "given": "$.metadata", "resolved": false, "then": { "field": "namespace", "function": "truthy" } }, "metadata-namespace-whitelist-check": { "description": "Metadata namespace should not be having empty or special characters", "severity": "warn", "given": "$.metadata", "resolved": false, "then": { "field": "namespace", "function": "pattern", "functionOptions": { "match": "^(?![\\s\\W_]+$).+$" } } }, "spec-details-not-exist": { "description": "Spec details does not exist", "severity": "error", "given": "$", "resolved": false, "then": { "field": "spec", "function": "truthy" } }, "spec-details-whitelist-check": { "description": "Spec should not be having empty or special characters", "severity": "error", "given": "$", "resolved": false, "then": { "field": "spec", "function": "pattern", "functionOptions": { "match": "^(?![\\s\\W_]+$).+$" } } }, "tags-not-exist": { "description": "Tag does not exist", "severity": "warn", "given": "$.metadata", "resolved": false, "then": { "field": "tags", "function": "truthy" } }, "invalid-tag-type": { "description": "Invalid Tag Type", "severity": "error", "given": "$.metadata.tags", "resolved": false, "then": { "function": "schema", "functionOptions": { "schema": { "type": "array" } } } }, "$-metadata-description-type": { "description": "The description field must be of type string", "severity": "error", "given": "$.metadata.description", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-metadata-name-required": { "description": "The name field is required in the $.metadata", "severity": "error", "given": "$.metadata", "then": { "field": "name", "function": "defined" } }, "$-metadata-name-type": { "description": "The name field must be of type string", "severity": "error", "given": "$.metadata.name", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-metadata-namespace-type": { "description": "The namespace field must be of type string", "severity": "error", "given": "$.metadata.namespace", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-metadata-tags-type": { "description": "The tags field must be of type array", "severity": "error", "given": "$.metadata.tags", "then": { "function": "schema", "functionOptions": { "schema": { "type": "array" } } } }, "$-metadata-tags-items-type": { "description": "Items in the tags array must be of type string", "severity": "error", "given": "$.metadata.tags[*]", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-metadata-type-type": { "description": "The type field must be of type string", "severity": "error", "given": "$.metadata.type", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-metadata-type-enum": { "description": "The type field must be one of: REST, SWAGGER, SOAP, GRAPHQL, ODATA", "severity": "error", "given": "$.metadata.type", "then": { "function": "schema", "functionOptions": { "schema": { "enum": [ "REST", "SWAGGER", "SOAP", "GRAPHQL", "ODATA" ] } } } }, "$-metadata-version-required": { "description": "The version field is required in the $.metadata", "severity": "error", "given": "$.metadata", "then": { "field": "version", "function": "defined" } }, "$-metadata-version-type": { "description": "The version field must be of type string", "severity": "error", "given": "$.metadata.version", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-metadata-labels-type": { "description": "The labels field must be of type object", "severity": "error", "given": "$.metadata.labels", "then": { "function": "schema", "functionOptions": { "schema": { "type": "object" } } } }, "$-metadata-labels-gatewayTypes-type": { "description": "The gatewayTypes field must be of type array", "severity": "error", "given": "$.metadata.labels.gatewayTypes", "then": { "function": "schema", "functionOptions": { "schema": { "type": "array" } } } }, "$-metadata-labels-gatewayTypes-items-type": { "description": "Items in the gatewayTypes array must be of type string", "severity": "error", "given": "$.metadata.labels.gatewayTypes[*]", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-input-type": { "description": "The input field must be of type string", "severity": "error", "given": "$.spec.input", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-output-type": { "description": "The output field must be of type string", "severity": "error", "given": "$.spec.output", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-weightedRandomHttp-type": { "description": "The weightedRandomHttp field must be of type object", "severity": "error", "given": "$.spec.weightedRandomHttp", "then": { "function": "schema", "functionOptions": { "schema": { "type": "object" } } } }, "$-spec-weightedRandomHttp-verb-type": { "description": "The verb field must be of type string", "severity": "error", "given": "$.spec.weightedRandomHttp.verb", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-weightedRandomHttp-statusException-type": { "description": "The statusException field must be of type array", "severity": "error", "given": "$.spec.weightedRandomHttp.statusException", "then": { "function": "schema", "functionOptions": { "schema": { "type": "array" } } } }, "$-spec-weightedRandomHttp-statusException-items-type": { "description": "Items in the statusException array must be of type object", "severity": "error", "given": "$.spec.weightedRandomHttp.statusException[*]", "then": { "function": "schema", "functionOptions": { "schema": { "type": "object" } } } }, "$-spec-weightedRandomHttp-statusException[*]-pattern-type": { "description": "The pattern field must be of type string", "severity": "error", "given": "$.spec.weightedRandomHttp.statusException[*].pattern", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "type:$.spec.weightedRandomHttp.statusException[*].pattern:string": { "description": "The pattern field in statusException array items must be of type string", "severity": "error", "given": "$.spec.weightedRandomHttp.statusException[*].pattern", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-weightedRandomHttp-endpoints-type": { "description": "The endpoints field must be of type array", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints", "then": { "function": "schema", "functionOptions": { "schema": { "type": "array" } } } }, "$-spec-weightedRandomHttp-endpoints-minItems": { "description": "The endpoints array must have at least 1 items", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints", "then": { "function": "schema", "functionOptions": { "schema": { "type": "array", "minItems": 1 } } } }, "$-spec-weightedRandomHttp-endpoints-items-type": { "description": "Items in the endpoints array must be of type object", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*]", "then": { "function": "schema", "functionOptions": { "schema": { "type": "object" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-type": { "description": "The endpoint field must be of type object", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint", "then": { "function": "schema", "functionOptions": { "schema": { "type": "object" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-name-type": { "description": "The name field must be of type string", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.name", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-tlsClientProfile-type": { "description": "The tlsClientProfile field must be of type string", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.tlsClientProfile", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-url-type": { "description": "The url field must be of type string", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.url", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-urlType-type": { "description": "The urlType field must be of type string", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.urlType", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-urlType-enum": { "description": "The urlType field must be one of: plain, variables, jsonata, distributedVariable", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.urlType", "then": { "function": "schema", "functionOptions": { "schema": { "enum": [ "plain", "variables", "jsonata", "distributedVariable" ] } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-version-type": { "description": "The version field must be of type string", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.version", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-version-enum": { "description": "The version field must be one of: HTTP/1.0, HTTP/1.1, HTTP/2", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.version", "then": { "function": "schema", "functionOptions": { "schema": { "enum": [ "HTTP/1.0", "HTTP/1.1", "HTTP/2" ] } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-timeout-type": { "description": "The timeout field must be of type integer", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.timeout", "then": { "function": "schema", "functionOptions": { "schema": { "type": "integer" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-compressRequest-type": { "description": "The compressRequest field must be of type string", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.compressRequest", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-compressRequest-enum": { "description": "The compressRequest field must be one of: gzip, br, deflate, none", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.compressRequest", "then": { "function": "schema", "functionOptions": { "schema": { "enum": [ "gzip", "br", "deflate", "none" ] } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-decompressResponse-type": { "description": "The decompressResponse field must be of type boolean", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.decompressResponse", "then": { "function": "schema", "functionOptions": { "schema": { "type": "boolean" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-followRedirects-type": { "description": "The followRedirects field must be of type boolean", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.followRedirects", "then": { "function": "schema", "functionOptions": { "schema": { "type": "boolean" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-chunkedUpload-type": { "description": "The chunkedUpload field must be of type boolean", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.chunkedUpload", "then": { "function": "schema", "functionOptions": { "schema": { "type": "boolean" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-endpoint-persistentConnections-type": { "description": "The persistentConnections field must be of type boolean", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint.persistentConnections", "then": { "function": "schema", "functionOptions": { "schema": { "type": "boolean" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-suspendTimeout-type": { "description": "The suspendTimeout field must be of type integer", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].suspendTimeout", "then": { "function": "schema", "functionOptions": { "schema": { "type": "integer" } } } }, "$-spec-weightedRandomHttp-endpoints[*]-weight-type": { "description": "The weight field must be of type integer", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].weight", "then": { "function": "schema", "functionOptions": { "schema": { "type": "integer" } } } }, "required:$.spec.weightedRandomHttp.endpoints[*]:endpoint": { "description": "The endpoint field is required in endpoints array items", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*]", "then": { "field": "endpoint", "function": "defined" } }, "type:$.spec.weightedRandomHttp.endpoints[*].endpoint:object": { "description": "The endpoint field in endpoints array items must be of type object", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].endpoint", "then": { "function": "schema", "functionOptions": { "schema": { "type": "object" } } } }, "type:$.spec.weightedRandomHttp.endpoints[*].suspendTimeout:integer": { "description": "The suspendTimeout field in endpoints array items must be of type integer", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].suspendTimeout", "then": { "function": "schema", "functionOptions": { "schema": { "type": "integer" } } } }, "type:$.spec.weightedRandomHttp.endpoints[*].weight:integer": { "description": "The weight field in endpoints array items must be of type integer", "severity": "error", "given": "$.spec.weightedRandomHttp.endpoints[*].weight", "then": { "function": "schema", "functionOptions": { "schema": { "type": "integer" } } } }, "$-spec-weightedRandomHttp-no-additional-properties": { "description": "The weightedRandomHttp object should only contain the defined properties: verb, statusException, endpoints", "severity": "error", "given": "$.spec.weightedRandomHttp", "then": { "function": "schema", "functionOptions": { "schema": { "additionalProperties": false, "properties": { "verb": {}, "statusException": {}, "endpoints": {} } } } } }, "$-spec-roundRobinHttp-type": { "description": "The roundRobinHttp field must be of type object", "severity": "error", "given": "$.spec.roundRobinHttp", "then": { "function": "schema", "functionOptions": { "schema": { "type": "object" } } } }, "$-spec-roundRobinHttp-verb-type": { "description": "The verb field must be of type string", "severity": "error", "given": "$.spec.roundRobinHttp.verb", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-roundRobinHttp-statusException-type": { "description": "The statusException field must be of type array", "severity": "error", "given": "$.spec.roundRobinHttp.statusException", "then": { "function": "schema", "functionOptions": { "schema": { "type": "array" } } } }, "$-spec-roundRobinHttp-statusException-items-type": { "description": "Items in the statusException array must be of type object", "severity": "error", "given": "$.spec.roundRobinHttp.statusException[*]", "then": { "function": "schema", "functionOptions": { "schema": { "type": "object" } } } }, "$-spec-roundRobinHttp-statusException[*]-pattern-type": { "description": "The pattern field must be of type string", "severity": "error", "given": "$.spec.roundRobinHttp.statusException[*].pattern", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-roundRobinHttp-statusException[*]-pattern-pattern": { "description": "The pattern field must match the pattern: ^[0-9*]{3}$", "severity": "error", "given": "$.spec.roundRobinHttp.statusException[*].pattern", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string", "pattern": "^[0-9*]{3}$" } } } }, "required:$.spec.roundRobinHttp.statusException[*]:pattern": { "description": "The pattern field is required in statusException array items", "severity": "error", "given": "$.spec.roundRobinHttp.statusException[*]", "then": { "field": "pattern", "function": "defined" } }, "type:$.spec.roundRobinHttp.statusException[*].pattern:string": { "description": "The pattern field in statusException array items must be of type string", "severity": "error", "given": "$.spec.roundRobinHttp.statusException[*].pattern", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-roundRobinHttp-endpoints-type": { "description": "The endpoints field must be of type array", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints", "then": { "function": "schema", "functionOptions": { "schema": { "type": "array" } } } }, "$-spec-roundRobinHttp-endpoints-minItems": { "description": "The endpoints array must have at least 1 items", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints", "then": { "function": "schema", "functionOptions": { "schema": { "type": "array", "minItems": 1 } } } }, "$-spec-roundRobinHttp-endpoints-items-type": { "description": "Items in the endpoints array must be of type object", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*]", "then": { "function": "schema", "functionOptions": { "schema": { "type": "object" } } } }, "$-spec-roundRobinHttp-endpoints[*]-suspendTimeout-type": { "description": "The suspendTimeout field must be of type integer", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].suspendTimeout", "then": { "function": "schema", "functionOptions": { "schema": { "type": "integer" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-type": { "description": "The endpoint field must be of type object", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint", "then": { "function": "schema", "functionOptions": { "schema": { "type": "object" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-name-type": { "description": "The name field must be of type string", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.name", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-tlsClientProfile-type": { "description": "The tlsClientProfile field must be of type string", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.tlsClientProfile", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-url-type": { "description": "The url field must be of type string", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.url", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-urlType-type": { "description": "The urlType field must be of type string", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.urlType", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-urlType-enum": { "description": "The urlType field must be one of: plain, variables, jsonata, distributedVariable", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.urlType", "then": { "function": "schema", "functionOptions": { "schema": { "enum": [ "plain", "variables", "jsonata", "distributedVariable" ] } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-compressRequest-type": { "description": "The compressRequest field must be of type string", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.compressRequest", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-compressRequest-enum": { "description": "The compressRequest field must be one of: br, gzip, deflate, none", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.compressRequest", "then": { "function": "schema", "functionOptions": { "schema": { "enum": [ "br", "gzip", "deflate", "none" ] } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-version-type": { "description": "The version field must be of type string", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.version", "then": { "function": "schema", "functionOptions": { "schema": { "type": "string" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-version-enum": { "description": "The version field must be one of: HTTP/1.0, HTTP/1.1, HTTP/2", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.version", "then": { "function": "schema", "functionOptions": { "schema": { "enum": [ "HTTP/1.0", "HTTP/1.1", "HTTP/2" ] } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-timeout-type": { "description": "The timeout field must be of type integer", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.timeout", "then": { "function": "schema", "functionOptions": { "schema": { "type": "integer" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-decompressResponse-type": { "description": "The decompressResponse field must be of type boolean", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.decompressResponse", "then": { "function": "schema", "functionOptions": { "schema": { "type": "boolean" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-followRedirects-type": { "description": "The followRedirects field must be of type boolean", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.followRedirects", "then": { "function": "schema", "functionOptions": { "schema": { "type": "boolean" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-chunkedUpload-type": { "description": "The chunkedUpload field must be of type boolean", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.chunkedUpload", "then": { "function": "schema", "functionOptions": { "schema": { "type": "boolean" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-persistentConnections-type": { "description": "The persistentConnections field must be of type boolean", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint.persistentConnections", "then": { "function": "schema", "functionOptions": { "schema": { "type": "boolean" } } } }, "$-spec-roundRobinHttp-endpoints[*]-endpoint-no-additional-properties": { "description": "The endpoint object should only contain the defined properties: name, tlsClientProfile, url, urlType, compressRequest, version, timeout, decompressResponse, followRedirects, chunkedUpload, persistentConnections", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint", "then": { "function": "schema", "functionOptions": { "schema": { "additionalProperties": false, "properties": { "name": {}, "tlsClientProfile": {}, "url": {}, "urlType": {}, "compressRequest": {}, "version": {}, "timeout": {}, "decompressResponse": {}, "followRedirects": {}, "chunkedUpload": {}, "persistentConnections": {} } } } } }, "$-spec-roundRobinHttp-endpoints-no-additional-properties": { "description": "The endpoints object should only contain the defined properties: suspendTimeout, endpoint", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*]", "then": { "function": "schema", "functionOptions": { "schema": { "additionalProperties": false, "properties": { "suspendTimeout": {}, "endpoint": {} } } } } }, "type:$.spec.roundRobinHttp.endpoints[*].suspendTimeout:integer": { "description": "The suspendTimeout field in endpoints array items must be of type integer", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].suspendTimeout", "then": { "function": "schema", "functionOptions": { "schema": { "type": "integer" } } } }, "required:$.spec.roundRobinHttp.endpoints[*]:endpoint": { "description": "The endpoint field is required in endpoints array items", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*]", "then": { "field": "endpoint", "function": "defined" } }, "type:$.spec.roundRobinHttp.endpoints[*].endpoint:object": { "description": "The endpoint field in endpoints array items must be of type object", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*].endpoint", "then": { "function": "schema", "functionOptions": { "schema": { "type": "object" } } } }, "no-additional-properties:$.spec.roundRobinHttp.endpoints[*]": { "description": "Items in the endpoints array should only contain the defined properties: suspendTimeout, endpoint", "severity": "error", "given": "$.spec.roundRobinHttp.endpoints[*]", "then": { "function": "schema", "functionOptions": { "schema": { "additionalProperties": false, "properties": { "suspendTimeout": {}, "endpoint": {} } } } } }, "$-spec-roundRobinHttp-no-additional-properties": { "description": "The roundRobinHttp object should only contain the defined properties: verb, statusException, endpoints", "severity": "error", "given": "$.spec.roundRobinHttp", "then": { "function": "schema", "functionOptions": { "schema": { "additionalProperties": false, "properties": { "verb": {}, "statusException": {}, "endpoints": {} } } } } }, "spec-oneOf": { "description": "The spec field must match the oneOf schema definition", "severity": "error", "given": "$.spec", "then": { "function": "schema", "functionOptions": { "schema": { "oneOf": [ { "required": [ "roundRobinHttp" ] }, { "required": [ "weightedRandomHttp" ] } ] } } } }, "spec-no-additional-properties": { "description": "The spec object should only contain the defined properties: input, output, weightedRandomHttp, roundRobinHttp", "severity": "error", "given": "$.spec", "then": { "function": "schema", "functionOptions": { "schema": { "additionalProperties": false, "properties": { "input": {}, "output": {}, "weightedRandomHttp": {}, "roundRobinHttp": {} } } } } } } };