diff --git a/canaries.flanksource.com/canary_v1.json b/canaries.flanksource.com/canary_v1.json new file mode 100644 index 00000000..9512b357 --- /dev/null +++ b/canaries.flanksource.com/canary_v1.json @@ -0,0 +1,13279 @@ +{ + "description": "Canary is the Schema for the canaries API", + "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": "CanarySpec defines the desired state of Canary", + "properties": { + "alertmanager": { + "items": { + "properties": { + "alerts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "connection": { + "description": "Connection name e.g. connection://http/google", + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "exclude_filters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "filters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "icon": { + "type": "string" + }, + "ignore": { + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + }, + "url": { + "description": "Connection url, interpolated with username,password", + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "awsConfig": { + "items": { + "properties": { + "accessKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "aggregatorName": { + "type": "string" + }, + "assumeRole": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey.", + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "query": { + "type": "string" + }, + "region": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "secretKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "sessionToken": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "skipTLSVerify": { + "description": "Skip TLS verify when connecting to aws", + "type": "boolean" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name", + "query" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "awsConfigRule": { + "items": { + "properties": { + "accessKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "assumeRole": { + "type": "string" + }, + "complianceTypes": { + "description": "Filters the results by compliance. The allowed values are INSUFFICIENT_DATA, NON_COMPLIANT, NOT_APPLICABLE, COMPLIANT", + "items": { + "type": "string" + }, + "type": "array" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey.", + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "ignoreRules": { + "description": "List of rules which would be omitted from the fetch result", + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "region": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "rules": { + "description": "Specify one or more Config rule names to filter the results by rule.", + "items": { + "type": "string" + }, + "type": "array" + }, + "secretKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "sessionToken": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "skipTLSVerify": { + "description": "Skip TLS verify when connecting to aws", + "type": "boolean" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "azureDevops": { + "items": { + "properties": { + "branch": { + "items": { + "type": "string" + }, + "type": "array" + }, + "connection": { + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "organization": { + "type": "string" + }, + "personalAccessToken": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "pipeline": { + "type": "string" + }, + "project": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "thresholdMillis": { + "description": "ThresholdMillis the maximum duration of a Run. (Optional)", + "type": "integer" + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + }, + "variables": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "branch", + "name", + "organization", + "personalAccessToken", + "pipeline", + "project", + "thresholdMillis", + "variables" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "catalog": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "selector": { + "items": { + "properties": { + "agent": { + "description": "Agent can be the agent id or the name of the agent.\n Additionally, the special \"self\" value can be used to select resources without an agent.", + "type": "string" + }, + "cache": { + "description": "Cache directives\n 'no-cache' (should not fetch from cache but can be cached)\n 'no-store' (should not cache)\n 'max-age=X' (cache for X duration)", + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "health": { + "description": "Health filters resources by the health.\nMultiple healths can be provided separated by comma.", + "type": "string" + }, + "id": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "labelSelector": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "scope": { + "description": "Scope is the reference for parent of the resource to select.\nFor config items, the scope is the scraper id\nFor checks, it's canaries and\nFor components, it's topology.\nIt can either be a uuid or namespace/name", + "type": "string" + }, + "search": { + "description": "Search query that applies to the resource name, tag & labels.", + "type": "string" + }, + "statuses": { + "description": "Statuses filter resources by the status", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagSelector": { + "type": "string" + }, + "types": { + "description": "Types filter resources by the type", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name", + "selector" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "cloudwatch": { + "items": { + "properties": { + "accessKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "actionPrefix": { + "type": "string" + }, + "alarmPrefix": { + "type": "string" + }, + "alarms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "assumeRole": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey.", + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "region": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "secretKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "sessionToken": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "skipTLSVerify": { + "description": "Skip TLS verify when connecting to aws", + "type": "boolean" + }, + "state": { + "type": "string" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "containerd": { + "items": { + "properties": { + "auth": { + "properties": { + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "description": { + "type": "string" + }, + "expectedDigest": { + "type": "string" + }, + "expectedSize": { + "format": "int64", + "type": "integer" + }, + "icon": { + "type": "string" + }, + "image": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "image", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "containerdPush": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "image": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "password": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "transformDeleteStrategy": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": [ + "image", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "databaseBackup": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "gcp": { + "properties": { + "gcpConnection": { + "properties": { + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint and credentials.", + "type": "string" + }, + "credentials": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "description": "Skip TLS verify", + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "instance": { + "type": "string" + }, + "project": { + "type": "string" + } + }, + "required": [ + "instance", + "project" + ], + "type": "object", + "additionalProperties": false + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "maxAge": { + "type": "string" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "dns": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "exactreply": { + "items": { + "type": "string" + }, + "type": "array" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "minrecords": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "port": { + "type": "integer" + }, + "query": { + "type": "string" + }, + "querytype": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "server": { + "type": "string" + }, + "thresholdMillis": { + "type": "integer" + }, + "timeout": { + "type": "integer" + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "docker": { + "items": { + "properties": { + "auth": { + "properties": { + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "description": { + "type": "string" + }, + "expectedDigest": { + "type": "string" + }, + "expectedSize": { + "format": "int64", + "type": "integer" + }, + "icon": { + "type": "string" + }, + "image": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "image", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "dockerPush": { + "items": { + "properties": { + "auth": { + "properties": { + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "image": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "image", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "dynatrace": { + "items": { + "properties": { + "apiKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "connection": { + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "host": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "scheme": { + "type": "string" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "elasticsearch": { + "items": { + "properties": { + "connection": { + "description": "Connection name e.g. connection://http/google", + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "icon": { + "type": "string" + }, + "index": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "query": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "results": { + "type": "integer" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + }, + "url": { + "description": "Connection url, interpolated with username,password", + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "env": { + "additionalProperties": { + "description": "VarSource represents a source for a value", + "properties": { + "configMapKeyRef": { + "description": "Selects a key of a ConfigMap.", + "properties": { + "key": { + "description": "The key to select.", + "type": "string" + }, + "name": { + "default": "", + "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the ConfigMap or its key must be defined", + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "x-kubernetes-map-type": "atomic", + "additionalProperties": false + }, + "fieldRef": { + "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.", + "properties": { + "apiVersion": { + "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".", + "type": "string" + }, + "fieldPath": { + "description": "Path of the field to select in the specified API version.", + "type": "string" + } + }, + "required": [ + "fieldPath" + ], + "type": "object", + "x-kubernetes-map-type": "atomic", + "additionalProperties": false + }, + "secretKeyRef": { + "description": "Selects a key of a secret in the pod's namespace", + "properties": { + "key": { + "description": "The key of the secret to select from. Must be a valid secret key.", + "type": "string" + }, + "name": { + "default": "", + "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "type": "string" + }, + "optional": { + "description": "Specify whether the Secret or its key must be defined", + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "x-kubernetes-map-type": "atomic", + "additionalProperties": false + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "object" + }, + "exec": { + "items": { + "properties": { + "artifacts": { + "description": "Artifacts configure the artifacts generated by the check", + "items": { + "properties": { + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "checkout": { + "description": "Checkout details the git repository that should be mounted to the process", + "properties": { + "branch": { + "type": "string" + }, + "certificate": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "connection": { + "type": "string" + }, + "destination": { + "description": "Destination is the full path to where the contents of the URL should be downloaded to.\nIf left empty, the sha256 hash of the URL will be used as the dir name.", + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "type": { + "description": "Type of connection e.g. github, gitlab", + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "connections": { + "properties": { + "aws": { + "properties": { + "accessKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "assumeRole": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey.", + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "region": { + "type": "string" + }, + "secretKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "sessionToken": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "skipTLSVerify": { + "description": "Skip TLS verify when connecting to aws", + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "azure": { + "properties": { + "clientID": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "clientSecret": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "connection": { + "type": "string" + }, + "tenantID": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "eksPodIdentity": { + "description": "EKSPodIdentity when enabled will allow access to AWS_* env vars", + "type": "boolean" + }, + "fromConfigItem": { + "type": "string" + }, + "gcp": { + "properties": { + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint and credentials.", + "type": "string" + }, + "credentials": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "description": "Skip TLS verify", + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "kubernetes": { + "properties": { + "cnrm": { + "properties": { + "clusterResource": { + "type": "string" + }, + "clusterResourceNamespace": { + "type": "string" + }, + "gke": { + "properties": { + "cluster": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint and credentials.", + "type": "string" + }, + "credentials": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "projectID": { + "type": "string" + }, + "skipTLSVerify": { + "description": "Skip TLS verify", + "type": "boolean" + }, + "zone": { + "type": "string" + } + }, + "required": [ + "cluster", + "projectID", + "zone" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "clusterResource", + "clusterResourceNamespace", + "gke" + ], + "type": "object", + "additionalProperties": false + }, + "connection": { + "description": "Connection name to populate kubeconfig", + "type": "string" + }, + "eks": { + "properties": { + "accessKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "assumeRole": { + "type": "string" + }, + "cluster": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey.", + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "region": { + "type": "string" + }, + "secretKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "sessionToken": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "skipTLSVerify": { + "description": "Skip TLS verify when connecting to aws", + "type": "boolean" + } + }, + "required": [ + "cluster" + ], + "type": "object", + "additionalProperties": false + }, + "gke": { + "properties": { + "cluster": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint and credentials.", + "type": "string" + }, + "credentials": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "projectID": { + "type": "string" + }, + "skipTLSVerify": { + "description": "Skip TLS verify", + "type": "boolean" + }, + "zone": { + "type": "string" + } + }, + "required": [ + "cluster", + "projectID", + "zone" + ], + "type": "object", + "additionalProperties": false + }, + "kubeconfig": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount when enabled will allow access to KUBERNETES env vars", + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "env": { + "description": "EnvVars are the environment variables that are accessible to exec processes", + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "script": { + "description": "Script can be a inline script or a path to a script that needs to be executed\nOn windows executed via powershell and in darwin and linux executed using bash", + "type": "string" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name", + "script" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "folder": { + "items": { + "properties": { + "availableSize": { + "description": "AvailableSize present on the filesystem", + "type": "string" + }, + "awsConnection": { + "properties": { + "accessKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "assumeRole": { + "type": "string" + }, + "bucket": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey.", + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "objectPath": { + "description": "glob path to restrict matches to a subset", + "type": "string" + }, + "region": { + "type": "string" + }, + "secretKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "sessionToken": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "skipTLSVerify": { + "description": "Skip TLS verify when connecting to aws", + "type": "boolean" + }, + "usePathStyle": { + "description": "Use path style path: http://s3.amazonaws.com/BUCKET/KEY instead of http://BUCKET.s3.amazonaws.com/KEY", + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "filter": { + "properties": { + "maxAge": { + "type": "string" + }, + "maxSize": { + "type": "string" + }, + "minAge": { + "type": "string" + }, + "minSize": { + "type": "string" + }, + "regex": { + "type": "string" + }, + "since": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "gcpConnection": { + "properties": { + "bucket": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint and credentials.", + "type": "string" + }, + "credentials": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "skipTLSVerify": { + "description": "Skip TLS verify", + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "maxAge": { + "description": "MaxAge the latest object should be younger than defined age", + "type": "string" + }, + "maxCount": { + "description": "MinCount the minimum number of files inside the searchPath", + "type": "integer" + }, + "maxSize": { + "description": "MaxSize of the files inside the searchPath", + "type": "string" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "minAge": { + "description": "MinAge the latest object should be older than defined age", + "type": "string" + }, + "minCount": { + "description": "MinCount the minimum number of files inside the searchPath", + "type": "integer" + }, + "minSize": { + "description": "MinSize of the files inside the searchPath", + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "path": { + "description": "Path to folder or object storage, e.g. `s3://`, `gcs://`, `/path/tp/folder`", + "type": "string" + }, + "recursive": { + "description": "Recursive when set to true will recursively scan the folder to list the files in it.\nHowever, symlinks are simply listed but not traversed.", + "type": "boolean" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "sftpConnection": { + "properties": { + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the connection fields.", + "type": "string" + }, + "host": { + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "port": { + "description": "Port for the SSH server. Defaults to 22", + "type": "integer" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "smbConnection": { + "properties": { + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the connection fields.", + "type": "string" + }, + "domain": { + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "port": { + "description": "Port on which smb server is running. Defaults to 445", + "type": "integer" + }, + "share": { + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "totalSize": { + "description": "TotalSize present on the filesystem", + "type": "string" + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name", + "path" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "gitProtocol": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "filename": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "repository": { + "type": "string" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name", + "password", + "repository", + "username" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "github": { + "items": { + "properties": { + "connection": { + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "githubToken": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "query": { + "description": "Query to be executed. Please see https://github.com/askgitdev/askgit for more details regarding syntax", + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name", + "query" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "helm": { + "items": { + "properties": { + "auth": { + "properties": { + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "cafile": { + "type": "string" + }, + "chartmuseum": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "project": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "http": { + "items": { + "properties": { + "body": { + "description": "Request Body Contents", + "type": "string" + }, + "connection": { + "description": "Connection name e.g. connection://http/google", + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "description": "Deprecated: Use url instead", + "type": "string" + }, + "env": { + "description": "EnvVars are the environment variables that are accessible to templated body", + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "headers": { + "description": "Header fields to be used in the query", + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "maxSSLExpiry": { + "description": "Maximum number of days until the SSL Certificate expires.", + "type": "integer" + }, + "method": { + "description": "Method to use - defaults to GET", + "type": "string" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "ntlm": { + "description": "NTLM when set to true will do authentication using NTLM v1 protocol", + "type": "boolean" + }, + "ntlmv2": { + "description": "NTLM when set to true will do authentication using NTLM v2 protocol", + "type": "boolean" + }, + "oauth2": { + "description": "Oauth2 Configuration. The client ID & Client secret should go to username & password respectively.", + "properties": { + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "responseCodes": { + "description": "Expected response codes for the HTTP Request.", + "items": { + "type": "integer" + }, + "type": "array" + }, + "responseContent": { + "description": "Exact response content expected to be returned by the endpoint.", + "type": "string" + }, + "responseJSONContent": { + "description": "Deprecated, use expr and jsonpath function", + "properties": { + "path": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "path", + "value" + ], + "type": "object", + "additionalProperties": false + }, + "templateBody": { + "description": "Template the request body", + "type": "boolean" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "thresholdMillis": { + "description": "Maximum duration in milliseconds for the HTTP request. It will fail the check if it takes longer.", + "type": "integer" + }, + "tlsConfig": { + "description": "TLS Config", + "properties": { + "ca": { + "description": "PEM encoded certificate of the CA to verify the server certificate", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "cert": { + "description": "PEM encoded client certificate", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "handshakeTimeout": { + "description": "HandshakeTimeout defaults to 10 seconds", + "format": "int64", + "type": "integer" + }, + "insecureSkipVerify": { + "description": "InsecureSkipVerify controls whether a client verifies the server's\ncertificate chain and host name", + "type": "boolean" + }, + "key": { + "description": "PEM encoded client private key", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + }, + "url": { + "description": "Connection url, interpolated with username,password", + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "icmp": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "packetCount": { + "type": "integer" + }, + "packetLossThreshold": { + "format": "int64", + "type": "integer" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "thresholdMillis": { + "format": "int64", + "type": "integer" + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "icon": { + "type": "string" + }, + "interval": { + "description": "interval (in seconds) to run checks on Deprecated in favor of Schedule", + "format": "int64", + "type": "integer" + }, + "jmeter": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "host": { + "description": "Host is the server against which test plan needs to be executed", + "type": "string" + }, + "icon": { + "type": "string" + }, + "jmx": { + "description": "Jmx defines the ConfigMap or Secret reference to get the JMX test plan", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "port": { + "description": "Port on which the server is running", + "format": "int32", + "type": "integer" + }, + "properties": { + "description": "Properties defines the local Jmeter properties", + "items": { + "type": "string" + }, + "type": "array" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "responseDuration": { + "description": "ResponseDuration under which the all the test should pass", + "type": "string" + }, + "systemProperties": { + "description": "SystemProperties defines the java system property", + "items": { + "type": "string" + }, + "type": "array" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "additionalProperties": false + }, + "required": [ + "jmx", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "junit": { + "items": { + "properties": { + "artifacts": { + "description": "Artifacts configure the artifacts generated by the check", + "items": { + "properties": { + "path": { + "description": "Path to the artifact on the check runner.\nSpecial paths: /dev/stdout & /dev/stdin", + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "spec": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "testResults": { + "type": "string" + }, + "timeout": { + "description": "Timeout in minutes to wait for specified container to finish its job. Defaults to 5 minutes", + "type": "integer" + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name", + "spec", + "testResults" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "kubernetes": { + "items": { + "properties": { + "cnrm": { + "properties": { + "clusterResource": { + "type": "string" + }, + "clusterResourceNamespace": { + "type": "string" + }, + "gke": { + "properties": { + "cluster": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint and credentials.", + "type": "string" + }, + "credentials": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "projectID": { + "type": "string" + }, + "skipTLSVerify": { + "description": "Skip TLS verify", + "type": "boolean" + }, + "zone": { + "type": "string" + } + }, + "required": [ + "cluster", + "projectID", + "zone" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "clusterResource", + "clusterResourceNamespace", + "gke" + ], + "type": "object", + "additionalProperties": false + }, + "connection": { + "description": "Connection name to populate kubeconfig", + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "eks": { + "properties": { + "accessKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "assumeRole": { + "type": "string" + }, + "cluster": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey.", + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "region": { + "type": "string" + }, + "secretKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "sessionToken": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "skipTLSVerify": { + "description": "Skip TLS verify when connecting to aws", + "type": "boolean" + } + }, + "required": [ + "cluster" + ], + "type": "object", + "additionalProperties": false + }, + "gke": { + "properties": { + "cluster": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint and credentials.", + "type": "string" + }, + "credentials": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "projectID": { + "type": "string" + }, + "skipTLSVerify": { + "description": "Skip TLS verify", + "type": "boolean" + }, + "zone": { + "type": "string" + } + }, + "required": [ + "cluster", + "projectID", + "zone" + ], + "type": "object", + "additionalProperties": false + }, + "healthy": { + "description": "Fail the check if any resources are unhealthy", + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "ignore": { + "description": "Ignore the specified resources from the fetched resources. Can be a glob pattern.", + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "type": "string" + }, + "kubeconfig": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "namespaceSelector": { + "properties": { + "fieldSelector": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "ready": { + "description": "Fail the check if any resources are not ready", + "type": "boolean" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "resource": { + "properties": { + "fieldSelector": { + "type": "string" + }, + "labelSelector": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "kubernetesResource": { + "items": { + "properties": { + "checkRetries": { + "description": "Set initial delays and retry intervals for checks.", + "properties": { + "delay": { + "description": "Delay is the initial delay", + "type": "string" + }, + "interval": { + "type": "string" + }, + "timeout": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "checks": { + "description": "Checks to run against the kubernetes resources.", + "items": { + "description": "KubernetesResourceChecks is the canary spec.\nNOTE: It's only created to make crd generation possible.\nembedding CanarySpec into KubernetesResourceCheck.checks\ndirectly generates an invalid crd.", + "type": "object" + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "clearResources": { + "description": "Ensure that the resources are deleted before creating them.", + "type": "boolean" + }, + "cnrm": { + "properties": { + "clusterResource": { + "type": "string" + }, + "clusterResourceNamespace": { + "type": "string" + }, + "gke": { + "properties": { + "cluster": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint and credentials.", + "type": "string" + }, + "credentials": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "projectID": { + "type": "string" + }, + "skipTLSVerify": { + "description": "Skip TLS verify", + "type": "boolean" + }, + "zone": { + "type": "string" + } + }, + "required": [ + "cluster", + "projectID", + "zone" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "clusterResource", + "clusterResourceNamespace", + "gke" + ], + "type": "object", + "additionalProperties": false + }, + "connection": { + "description": "Connection name to populate kubeconfig", + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "eks": { + "properties": { + "accessKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "assumeRole": { + "type": "string" + }, + "cluster": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey.", + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "region": { + "type": "string" + }, + "secretKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "sessionToken": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "skipTLSVerify": { + "description": "Skip TLS verify when connecting to aws", + "type": "boolean" + } + }, + "required": [ + "cluster" + ], + "type": "object", + "additionalProperties": false + }, + "gke": { + "properties": { + "cluster": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint and credentials.", + "type": "string" + }, + "credentials": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "projectID": { + "type": "string" + }, + "skipTLSVerify": { + "description": "Skip TLS verify", + "type": "boolean" + }, + "zone": { + "type": "string" + } + }, + "required": [ + "cluster", + "projectID", + "zone" + ], + "type": "object", + "additionalProperties": false + }, + "icon": { + "type": "string" + }, + "kubeconfig": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "resources": { + "description": "Resources are kubernetes resources that are created & cleared\nafter every check run.", + "x-kubernetes-preserve-unknown-fields": true + }, + "staticResources": { + "description": "StaticResources are kubernetes resources that are created & only\ncleared when the canary is deleted", + "x-kubernetes-preserve-unknown-fields": true + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + }, + "waitFor": { + "properties": { + "delete": { + "description": "Whether to wait for deletion or not", + "type": "boolean" + }, + "disable": { + "description": "Disable waiting for resources to get to their desired state.", + "type": "boolean" + }, + "expr": { + "description": "Expr is a cel expression that determines whether all the resources\nare in their desired state before running checks on them.\n\tDefault: `dyn(resources).all(r, k8s.isHealthy(r))`", + "type": "string" + }, + "interval": { + "description": "Interval to check if all static & non-static resources are ready.\n\tDefault: 5s", + "type": "string" + }, + "timeout": { + "description": "Timeout to wait for all static & non-static resources to be ready.\n\tDefault: 10m", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name", + "resources" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "ldap": { + "items": { + "properties": { + "bindDN": { + "type": "string" + }, + "connection": { + "description": "Connection name e.g. connection://http/google", + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "skipTLSVerify": { + "type": "boolean" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "url": { + "description": "Connection url, interpolated with username,password", + "type": "string" + }, + "userSearch": { + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "bindDN", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "mongodb": { + "items": { + "properties": { + "connection": { + "description": "Connection name e.g. connection://http/google", + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + }, + "url": { + "description": "Connection url, interpolated with username,password", + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "mssql": { + "items": { + "properties": { + "connection": { + "description": "Connection name e.g. connection://http/google", + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "query": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "results": { + "description": "Number rows to check for", + "type": "integer" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + }, + "url": { + "description": "Connection url, interpolated with username,password", + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "mysql": { + "items": { + "properties": { + "connection": { + "description": "Connection name e.g. connection://http/google", + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "query": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "results": { + "description": "Number rows to check for", + "type": "integer" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + }, + "url": { + "description": "Connection url, interpolated with username,password", + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "namespace": { + "items": { + "properties": { + "deadline": { + "format": "int64", + "type": "integer" + }, + "deleteTimeout": { + "format": "int64", + "type": "integer" + }, + "description": { + "type": "string" + }, + "expectedContent": { + "type": "string" + }, + "expectedHttpStatuses": { + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array" + }, + "httpRetryInterval": { + "format": "int64", + "type": "integer" + }, + "httpTimeout": { + "format": "int64", + "type": "integer" + }, + "icon": { + "type": "string" + }, + "ingressHost": { + "type": "string" + }, + "ingressName": { + "type": "string" + }, + "ingressTimeout": { + "format": "int64", + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "namespaceAnnotations": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "namespaceLabels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "namespaceNamePrefix": { + "type": "string" + }, + "path": { + "type": "string" + }, + "podSpec": { + "type": "string" + }, + "port": { + "format": "int64", + "type": "integer" + }, + "priorityClass": { + "type": "string" + }, + "readyTimeout": { + "format": "int64", + "type": "integer" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "schedule_timeout": { + "format": "int64", + "type": "integer" + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name", + "podSpec" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "opensearch": { + "items": { + "properties": { + "connection": { + "description": "Connection name e.g. connection://http/google", + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "icon": { + "type": "string" + }, + "index": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "query": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "results": { + "format": "int64", + "type": "integer" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + }, + "url": { + "description": "Connection url, interpolated with username,password", + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "index", + "name", + "query" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "owner": { + "type": "string" + }, + "pod": { + "items": { + "properties": { + "deadline": { + "format": "int64", + "type": "integer" + }, + "deleteTimeout": { + "format": "int64", + "type": "integer" + }, + "description": { + "type": "string" + }, + "expectedContent": { + "type": "string" + }, + "expectedHttpStatuses": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "httpRetryInterval": { + "format": "int64", + "type": "integer" + }, + "httpTimeout": { + "format": "int64", + "type": "integer" + }, + "icon": { + "type": "string" + }, + "ingressClass": { + "type": "string" + }, + "ingressHost": { + "type": "string" + }, + "ingressName": { + "type": "string" + }, + "ingressTimeout": { + "format": "int64", + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "path": { + "type": "string" + }, + "port": { + "format": "int64", + "type": "integer" + }, + "priorityClass": { + "type": "string" + }, + "readyTimeout": { + "format": "int64", + "type": "integer" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "roundRobinNodes": { + "type": "boolean" + }, + "scheduleTimeout": { + "format": "int64", + "type": "integer" + }, + "spec": { + "type": "string" + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "postgres": { + "items": { + "properties": { + "connection": { + "description": "Connection name e.g. connection://http/google", + "type": "string" + }, + "description": { + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "query": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "results": { + "description": "Number rows to check for", + "type": "integer" + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + }, + "url": { + "description": "Connection url, interpolated with username,password", + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "prometheus": { + "items": { + "properties": { + "bearer": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "connection": { + "type": "string" + }, + "description": { + "type": "string" + }, + "digest": { + "type": "boolean" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "host": { + "description": "Deprecated: use `url` instead", + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "oauth": { + "properties": { + "clientID": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "clientSecret": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "query": { + "description": "PromQL query", + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "tls": { + "properties": { + "ca": { + "description": "PEM encoded certificate of the CA to verify the server certificate", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "cert": { + "description": "PEM encoded client certificate", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "handshakeTimeout": { + "description": "HandshakeTimeout defaults to 10 seconds", + "format": "int64", + "type": "integer" + }, + "insecureSkipVerify": { + "description": "InsecureSkipVerify controls whether a client verifies the server's\ncertificate chain and host name", + "type": "boolean" + }, + "key": { + "description": "PEM encoded client private key", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + }, + "url": { + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name", + "query" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "redis": { + "items": { + "properties": { + "addr": { + "description": "Deprecated: Use url instead", + "type": "string" + }, + "connection": { + "description": "Connection name e.g. connection://http/google", + "type": "string" + }, + "db": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "transformDeleteStrategy": { + "type": "string" + }, + "url": { + "description": "Connection url, interpolated with username,password", + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "replicas": { + "default": 1, + "description": "Replicas pauses the canary if = 0.", + "type": "integer" + }, + "restic": { + "items": { + "properties": { + "accessKey": { + "description": "AccessKey access key id for connection with aws s3, minio, wasabi, alibaba oss", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "awsConnectionName": { + "description": "Name of the AWS connection used to derive the access key and secret key.", + "type": "string" + }, + "caCert": { + "description": "CaCert path to the root cert. In case of self-signed certificates", + "type": "string" + }, + "checkIntegrity": { + "description": "CheckIntegrity when enabled will check the Integrity and consistency of the restic reposiotry", + "type": "boolean" + }, + "connection": { + "description": "Name of the connection used to derive restic password.", + "type": "string" + }, + "description": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "maxAge": { + "description": "MaxAge for backup freshness", + "type": "string" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "password": { + "description": "Password for the restic repository", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "repository": { + "description": "Repository The restic repository path eg: rest:https://user:pass@host:8000/ or rest:https://host:8000/ or s3:s3.amazonaws.com/bucket_name", + "type": "string" + }, + "secretKey": { + "description": "SecretKey secret access key for connection with aws s3, minio, wasabi, alibaba oss", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "maxAge", + "name", + "password", + "repository" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "resultMode": { + "type": "string" + }, + "s3": { + "items": { + "properties": { + "accessKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "assumeRole": { + "type": "string" + }, + "bucket": { + "type": "string" + }, + "bucketName": { + "type": "string" + }, + "connection": { + "description": "ConnectionName of the connection. It'll be used to populate the endpoint, accessKey and secretKey.", + "type": "string" + }, + "description": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "objectPath": { + "description": "glob path to restrict matches to a subset", + "type": "string" + }, + "region": { + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "secretKey": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "sessionToken": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "skipTLSVerify": { + "description": "Skip TLS verify when connecting to aws", + "type": "boolean" + }, + "storageClass": { + "type": "string" + }, + "transformDeleteStrategy": { + "type": "string" + }, + "usePathStyle": { + "description": "Use path style path: http://s3.amazonaws.com/BUCKET/KEY instead of http://BUCKET.s3.amazonaws.com/KEY", + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "schedule": { + "description": "Schedule to run checks on. Supports all cron expression, example: '30 3-6,20-23 * * *'. For more info about cron expression syntax see https://en.wikipedia.org/wiki/Cron\n Also supports golang duration, can be set as '@every 1m30s' which runs the check every 1 minute and 30 seconds.", + "type": "string" + }, + "severity": { + "type": "string" + }, + "tcp": { + "items": { + "properties": { + "description": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "relationships": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "thresholdMillis": { + "format": "int64", + "type": "integer" + }, + "transformDeleteStrategy": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "webhook": { + "properties": { + "description": { + "description": "Description for the check", + "type": "string" + }, + "display": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "icon": { + "description": "Icon for overwriting default icon on the dashboard", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the check", + "type": "object" + }, + "metrics": { + "description": "Metrics to expose from check.\nhttps://canarychecker.io/concepts/metrics-exporter", + "items": { + "properties": { + "labels": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueExpr": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "description": "Name of the check", + "type": "string" + }, + "namespace": { + "description": "Namespace to insert the check into, if different to the namespace the canary is defined, e.g.", + "type": "string" + }, + "relationships": { + "description": "Relationships defines a way to link the check results to components and configs\nusing lookup expressions.", + "properties": { + "components": { + "items": { + "properties": { + "agent": { + "description": "Agent can be one of\n - agent id\n - agent name\n - 'self' (no agent)", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "external_id": { + "description": "Lookup offers different ways to specify a lookup value", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "id": { + "description": "Lookup offers different ways to specify a lookup value", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "name": { + "description": "Lookup offers different ways to specify a lookup value", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "namespace": { + "description": "Lookup offers different ways to specify a lookup value", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "scope": { + "description": "Scope is the id of the parent of the resource to select.\nExample: For config items, the scope is the scraper id\n- for checks, it's canaries and\n- for components, it's topology.\nIf left empty, the scope is the requester's scope.\nUse `all` to disregard scope.", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": { + "description": "Lookup offers different ways to specify a lookup value", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "configs": { + "items": { + "properties": { + "agent": { + "description": "Agent can be one of\n - agent id\n - agent name\n - 'self' (no agent)", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "external_id": { + "description": "Lookup offers different ways to specify a lookup value", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "id": { + "description": "Lookup offers different ways to specify a lookup value", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "name": { + "description": "Lookup offers different ways to specify a lookup value", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "namespace": { + "description": "Lookup offers different ways to specify a lookup value", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "scope": { + "description": "Scope is the id of the parent of the resource to select.\nExample: For config items, the scope is the scraper id\n- for checks, it's canaries and\n- for components, it's topology.\nIf left empty, the scope is the requester's scope.\nUse `all` to disregard scope.", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": { + "description": "Lookup offers different ways to specify a lookup value", + "properties": { + "expr": { + "type": "string" + }, + "label": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "test": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "token": { + "description": "Token is an optional authorization token to run this check", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "transform": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "transformDeleteStrategy": { + "description": "Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "status": { + "description": "CanaryStatus defines the observed state of Canary", + "properties": { + "checkStatus": { + "additionalProperties": { + "properties": { + "errorMessage": { + "type": "string" + }, + "lastCheck": { + "format": "date-time", + "type": "string" + }, + "lastTransitionedTime": { + "format": "date-time", + "type": "string" + }, + "latency1h": { + "description": "Average latency to complete all checks", + "type": "string" + }, + "message": { + "type": "string" + }, + "uptime1h": { + "description": "Availibility over a rolling 1h period", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "object" + }, + "checks": { + "additionalProperties": { + "type": "string" + }, + "description": "contains the name and id of the checks associated with the canary", + "type": "object" + }, + "errorMessage": { + "type": "string" + }, + "lastCheck": { + "format": "date-time", + "type": "string" + }, + "lastTransitionedTime": { + "format": "date-time", + "type": "string" + }, + "latency1h": { + "description": "Average latency to complete all checks", + "type": "string" + }, + "message": { + "type": "string" + }, + "observedGeneration": { + "format": "int64", + "type": "integer" + }, + "persistedID": { + "type": "string" + }, + "replicas": { + "description": "Replicas keep track of the number of replicas", + "type": "integer" + }, + "selector": { + "type": "string" + }, + "status": { + "type": "string" + }, + "uptime1h": { + "description": "Availibility over a rolling 1h period", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/canaries.flanksource.com/component_v1.json b/canaries.flanksource.com/component_v1.json new file mode 100644 index 00000000..159243fb --- /dev/null +++ b/canaries.flanksource.com/component_v1.json @@ -0,0 +1,610 @@ +{ + "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": "ComponentSpec defines the specification for a component.", + "properties": { + "checks": { + "items": { + "type": "object" + }, + "type": "array" + }, + "components": { + "description": "Create new child components", + "items": { + "type": "object" + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "configID": { + "type": "string" + }, + "configs": { + "description": "Lookup and associate config items with this component", + "items": { + "description": "ConfigQuery is used to look up and associate\nconfig items with a component.", + "properties": { + "agent": { + "description": "Agent can be the agent id or the name of the agent.\n Additionally, the special \"self\" value can be used to select resources without an agent.", + "type": "string" + }, + "cache": { + "description": "Cache directives\n 'no-cache' (should not fetch from cache but can be cached)\n 'no-store' (should not cache)\n 'max-age=X' (cache for X duration)", + "type": "string" + }, + "class": { + "description": "Deprecated. Use `fieldSelector (config_class=)`", + "type": "string" + }, + "external_id": { + "description": "Deprecated. Use `fieldSelector (external_id=)`", + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "health": { + "description": "Health filters resources by the health.\nMultiple healths can be provided separated by comma.", + "type": "string" + }, + "id": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "labelSelector": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "search": { + "description": "Search query that applies to the resource name, tag & labels.", + "type": "string" + }, + "statuses": { + "description": "Statuses filter resources by the status", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagSelector": { + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "Deprecated. Use `labelSelector`", + "type": "object" + }, + "type": { + "description": "Deprecated. Use `types`", + "type": "string" + }, + "types": { + "description": "Types filter resources by the type", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "externalID": { + "type": "string" + }, + "forEach": { + "description": "Only applies when using lookup, when specified the components and properties\nspecified under ForEach will be templated using the components returned by the lookup\n${.properties} can be used to reference the properties of the component\n${.component} can be used to reference the component itself", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "health": { + "type": "string" + }, + "healthExpr": { + "description": "healthExpr allows defining a cel expression to evaluate the health of a component\nbased on the summary.", + "type": "string" + }, + "hidden": { + "description": "If set to true, do not display in UI", + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "id": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "lifecycle": { + "description": "The lifecycle state of the component e.g. production, staging, dev, etc.", + "type": "string" + }, + "logs": { + "description": "Logs is a list of logs selector for apm-hub.", + "items": { + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "lookup": { + "description": "Lookup component definitions from an external source, use the\nforEach property to iterate over the results to further enrich each component.", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "owner": { + "type": "string" + }, + "parentLookup": { + "description": "Reference to populate parent_id", + "properties": { + "externalID": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "properties": { + "items": { + "properties": { + "color": { + "type": "string" + }, + "configLookup": { + "properties": { + "config": { + "description": "Lookup a config by it", + "properties": { + "agent": { + "description": "Agent can be the agent id or the name of the agent.\n Additionally, the special \"self\" value can be used to select resources without an agent.", + "type": "string" + }, + "cache": { + "description": "Cache directives\n 'no-cache' (should not fetch from cache but can be cached)\n 'no-store' (should not cache)\n 'max-age=X' (cache for X duration)", + "type": "string" + }, + "class": { + "description": "Deprecated. Use `fieldSelector (config_class=)`", + "type": "string" + }, + "external_id": { + "description": "Deprecated. Use `fieldSelector (external_id=)`", + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "health": { + "description": "Health filters resources by the health.\nMultiple healths can be provided separated by comma.", + "type": "string" + }, + "id": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "labelSelector": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "search": { + "description": "Search query that applies to the resource name, tag & labels.", + "type": "string" + }, + "statuses": { + "description": "Statuses filter resources by the status", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagSelector": { + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "Deprecated. Use `labelSelector`", + "type": "object" + }, + "type": { + "description": "Deprecated. Use `types`", + "type": "string" + }, + "types": { + "description": "Types filter resources by the type", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "display": { + "description": "Apply transformations to the value", + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "field": { + "description": "A JSONPath expression to lookup the value in the config", + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "headline": { + "type": "boolean" + }, + "hidden": { + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "properties": { + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "text": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "type": { + "description": "e.g. documentation, support, playbook", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "lookup": { + "description": "CanarySpec defines the desired state of Canary", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "max": { + "format": "int64", + "type": "integer" + }, + "min": { + "format": "int64", + "type": "integer" + }, + "name": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "summary": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "text": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "description": "e.g. milliseconds, bytes, millicores, epoch etc.", + "type": "string" + }, + "value": { + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "relationships": { + "items": { + "properties": { + "ref": { + "type": "string" + }, + "type": { + "description": "The type of relationship, e.g. dependsOn, subcomponentOf, providesApis, consumesApis", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "selectors": { + "description": "Lookup and associcate other components with this component", + "items": { + "properties": { + "agent": { + "description": "Agent can be the agent id or the name of the agent.\n Additionally, the special \"self\" value can be used to select resources without an agent.", + "type": "string" + }, + "cache": { + "description": "Cache directives\n 'no-cache' (should not fetch from cache but can be cached)\n 'no-store' (should not cache)\n 'max-age=X' (cache for X duration)", + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "health": { + "description": "Health filters resources by the health.\nMultiple healths can be provided separated by comma.", + "type": "string" + }, + "id": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "labelSelector": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "search": { + "description": "Search query that applies to the resource name, tag & labels.", + "type": "string" + }, + "statuses": { + "description": "Statuses filter resources by the status", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagSelector": { + "type": "string" + }, + "types": { + "description": "Types filter resources by the type", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "statusExpr": { + "description": "statusExpr allows defining a cel expression to evaluate the status of a component\nbased on the summary.", + "type": "string" + }, + "summary": { + "description": "Summary is the health, incidents, insights & check summary", + "properties": { + "checks": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + "healthy": { + "type": "integer" + }, + "incidents": { + "additionalProperties": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + "type": "object" + }, + "info": { + "type": "integer" + }, + "insights": { + "additionalProperties": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + "type": "object" + }, + "unhealthy": { + "type": "integer" + }, + "warning": { + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "tooltip": { + "type": "string" + }, + "type": { + "description": "The type of component, e.g. service, API, website, library, database, etc.", + "type": "string" + }, + "additionalProperties": false + }, + "type": "object", + "additionalProperties": false + }, + "status": { + "properties": { + "status": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/canaries.flanksource.com/topology_v1.json b/canaries.flanksource.com/topology_v1.json new file mode 100644 index 00000000..3eecbbc1 --- /dev/null +++ b/canaries.flanksource.com/topology_v1.json @@ -0,0 +1,1741 @@ +{ + "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": { + "properties": { + "components": { + "items": { + "description": "ComponentSpec defines the specification for a component.", + "properties": { + "checks": { + "items": { + "properties": { + "inline": { + "description": "CanarySpec defines the desired state of Canary", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "selector": { + "properties": { + "agent": { + "description": "Agent can be the agent id or the name of the agent.\n Additionally, the special \"self\" value can be used to select resources without an agent.", + "type": "string" + }, + "cache": { + "description": "Cache directives\n 'no-cache' (should not fetch from cache but can be cached)\n 'no-store' (should not cache)\n 'max-age=X' (cache for X duration)", + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "health": { + "description": "Health filters resources by the health.\nMultiple healths can be provided separated by comma.", + "type": "string" + }, + "id": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "labelSelector": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "search": { + "description": "Search query that applies to the resource name, tag & labels.", + "type": "string" + }, + "statuses": { + "description": "Statuses filter resources by the status", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagSelector": { + "type": "string" + }, + "types": { + "description": "Types filter resources by the type", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "components": { + "description": "Create new child components", + "items": { + "type": "object" + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "configID": { + "type": "string" + }, + "configs": { + "description": "Lookup and associate config items with this component", + "items": { + "description": "ConfigQuery is used to look up and associate\nconfig items with a component.", + "properties": { + "agent": { + "description": "Agent can be the agent id or the name of the agent.\n Additionally, the special \"self\" value can be used to select resources without an agent.", + "type": "string" + }, + "cache": { + "description": "Cache directives\n 'no-cache' (should not fetch from cache but can be cached)\n 'no-store' (should not cache)\n 'max-age=X' (cache for X duration)", + "type": "string" + }, + "class": { + "description": "Deprecated. Use `fieldSelector (config_class=)`", + "type": "string" + }, + "external_id": { + "description": "Deprecated. Use `fieldSelector (external_id=)`", + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "health": { + "description": "Health filters resources by the health.\nMultiple healths can be provided separated by comma.", + "type": "string" + }, + "id": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "labelSelector": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "search": { + "description": "Search query that applies to the resource name, tag & labels.", + "type": "string" + }, + "statuses": { + "description": "Statuses filter resources by the status", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagSelector": { + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "Deprecated. Use `labelSelector`", + "type": "object" + }, + "type": { + "description": "Deprecated. Use `types`", + "type": "string" + }, + "types": { + "description": "Types filter resources by the type", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "externalID": { + "type": "string" + }, + "forEach": { + "description": "Only applies when using lookup, when specified the components and properties\nspecified under ForEach will be templated using the components returned by the lookup\n${.properties} can be used to reference the properties of the component\n${.component} can be used to reference the component itself", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "health": { + "type": "string" + }, + "healthExpr": { + "description": "healthExpr allows defining a cel expression to evaluate the health of a component\nbased on the summary.", + "type": "string" + }, + "hidden": { + "description": "If set to true, do not display in UI", + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "id": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "lifecycle": { + "description": "The lifecycle state of the component e.g. production, staging, dev, etc.", + "type": "string" + }, + "logs": { + "description": "Logs is a list of logs selector for apm-hub.", + "items": { + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "lookup": { + "description": "Lookup component definitions from an external source, use the\nforEach property to iterate over the results to further enrich each component.", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "owner": { + "type": "string" + }, + "parentLookup": { + "description": "Reference to populate parent_id", + "properties": { + "externalID": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "properties": { + "items": { + "properties": { + "color": { + "type": "string" + }, + "configLookup": { + "properties": { + "config": { + "description": "Lookup a config by it", + "properties": { + "agent": { + "description": "Agent can be the agent id or the name of the agent.\n Additionally, the special \"self\" value can be used to select resources without an agent.", + "type": "string" + }, + "cache": { + "description": "Cache directives\n 'no-cache' (should not fetch from cache but can be cached)\n 'no-store' (should not cache)\n 'max-age=X' (cache for X duration)", + "type": "string" + }, + "class": { + "description": "Deprecated. Use `fieldSelector (config_class=)`", + "type": "string" + }, + "external_id": { + "description": "Deprecated. Use `fieldSelector (external_id=)`", + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "health": { + "description": "Health filters resources by the health.\nMultiple healths can be provided separated by comma.", + "type": "string" + }, + "id": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "labelSelector": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "search": { + "description": "Search query that applies to the resource name, tag & labels.", + "type": "string" + }, + "statuses": { + "description": "Statuses filter resources by the status", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagSelector": { + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "Deprecated. Use `labelSelector`", + "type": "object" + }, + "type": { + "description": "Deprecated. Use `types`", + "type": "string" + }, + "types": { + "description": "Types filter resources by the type", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "display": { + "description": "Apply transformations to the value", + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "field": { + "description": "A JSONPath expression to lookup the value in the config", + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "headline": { + "type": "boolean" + }, + "hidden": { + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "properties": { + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "text": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "type": { + "description": "e.g. documentation, support, playbook", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "lookup": { + "description": "CanarySpec defines the desired state of Canary", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "max": { + "format": "int64", + "type": "integer" + }, + "min": { + "format": "int64", + "type": "integer" + }, + "name": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "summary": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "text": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "description": "e.g. milliseconds, bytes, millicores, epoch etc.", + "type": "string" + }, + "value": { + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array", + "x-kubernetes-preserve-unknown-fields": true + }, + "relationships": { + "items": { + "properties": { + "ref": { + "type": "string" + }, + "type": { + "description": "The type of relationship, e.g. dependsOn, subcomponentOf, providesApis, consumesApis", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "selectors": { + "description": "Lookup and associcate other components with this component", + "items": { + "properties": { + "agent": { + "description": "Agent can be the agent id or the name of the agent.\n Additionally, the special \"self\" value can be used to select resources without an agent.", + "type": "string" + }, + "cache": { + "description": "Cache directives\n 'no-cache' (should not fetch from cache but can be cached)\n 'no-store' (should not cache)\n 'max-age=X' (cache for X duration)", + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "health": { + "description": "Health filters resources by the health.\nMultiple healths can be provided separated by comma.", + "type": "string" + }, + "id": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "labelSelector": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "search": { + "description": "Search query that applies to the resource name, tag & labels.", + "type": "string" + }, + "statuses": { + "description": "Statuses filter resources by the status", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagSelector": { + "type": "string" + }, + "types": { + "description": "Types filter resources by the type", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "statusExpr": { + "description": "statusExpr allows defining a cel expression to evaluate the status of a component\nbased on the summary.", + "type": "string" + }, + "summary": { + "description": "Summary is the health, incidents, insights & check summary", + "properties": { + "checks": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + "healthy": { + "type": "integer" + }, + "incidents": { + "additionalProperties": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + "type": "object" + }, + "info": { + "type": "integer" + }, + "insights": { + "additionalProperties": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + "type": "object" + }, + "unhealthy": { + "type": "integer" + }, + "warning": { + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "tooltip": { + "type": "string" + }, + "type": { + "description": "The type of component, e.g. service, API, website, library, database, etc.", + "type": "string" + }, + "additionalProperties": false + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "configs": { + "description": "Lookup and associate config items with this component", + "items": { + "description": "ConfigQuery is used to look up and associate\nconfig items with a component.", + "properties": { + "agent": { + "description": "Agent can be the agent id or the name of the agent.\n Additionally, the special \"self\" value can be used to select resources without an agent.", + "type": "string" + }, + "cache": { + "description": "Cache directives\n 'no-cache' (should not fetch from cache but can be cached)\n 'no-store' (should not cache)\n 'max-age=X' (cache for X duration)", + "type": "string" + }, + "class": { + "description": "Deprecated. Use `fieldSelector (config_class=)`", + "type": "string" + }, + "external_id": { + "description": "Deprecated. Use `fieldSelector (external_id=)`", + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "health": { + "description": "Health filters resources by the health.\nMultiple healths can be provided separated by comma.", + "type": "string" + }, + "id": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "labelSelector": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "search": { + "description": "Search query that applies to the resource name, tag & labels.", + "type": "string" + }, + "statuses": { + "description": "Statuses filter resources by the status", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagSelector": { + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "Deprecated. Use `labelSelector`", + "type": "object" + }, + "type": { + "description": "Deprecated. Use `types`", + "type": "string" + }, + "types": { + "description": "Types filter resources by the type", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "groupBy": { + "description": "Specify the catalog tag (& optionally the tag selector) to group\nthe topology.", + "properties": { + "selector": { + "properties": { + "agent": { + "description": "Agent can be the agent id or the name of the agent.\n Additionally, the special \"self\" value can be used to select resources without an agent.", + "type": "string" + }, + "cache": { + "description": "Cache directives\n 'no-cache' (should not fetch from cache but can be cached)\n 'no-store' (should not cache)\n 'max-age=X' (cache for X duration)", + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "health": { + "description": "Health filters resources by the health.\nMultiple healths can be provided separated by comma.", + "type": "string" + }, + "id": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "labelSelector": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "search": { + "description": "Search query that applies to the resource name, tag & labels.", + "type": "string" + }, + "statuses": { + "description": "Statuses filter resources by the status", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagSelector": { + "type": "string" + }, + "types": { + "description": "Types filter resources by the type", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "tag": { + "type": "string" + } + }, + "required": [ + "tag" + ], + "type": "object", + "additionalProperties": false + }, + "healthExpr": { + "description": "statusExpr allows defining a cel expression to evaluate the status of a component\nbased on the summary.", + "type": "string" + }, + "icon": { + "type": "string" + }, + "id": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "label": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "properties": { + "description": "Properties are created once the full component tree is created, property lookup functions\ncan return a map of coomponent name => properties to allow for bulk property lookups\nbeing applied to multiple components in the tree", + "items": { + "properties": { + "color": { + "type": "string" + }, + "configLookup": { + "properties": { + "config": { + "description": "Lookup a config by it", + "properties": { + "agent": { + "description": "Agent can be the agent id or the name of the agent.\n Additionally, the special \"self\" value can be used to select resources without an agent.", + "type": "string" + }, + "cache": { + "description": "Cache directives\n 'no-cache' (should not fetch from cache but can be cached)\n 'no-store' (should not cache)\n 'max-age=X' (cache for X duration)", + "type": "string" + }, + "class": { + "description": "Deprecated. Use `fieldSelector (config_class=)`", + "type": "string" + }, + "external_id": { + "description": "Deprecated. Use `fieldSelector (external_id=)`", + "type": "string" + }, + "fieldSelector": { + "type": "string" + }, + "health": { + "description": "Health filters resources by the health.\nMultiple healths can be provided separated by comma.", + "type": "string" + }, + "id": { + "type": "string" + }, + "includeDeleted": { + "type": "boolean" + }, + "labelSelector": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "search": { + "description": "Search query that applies to the resource name, tag & labels.", + "type": "string" + }, + "statuses": { + "description": "Statuses filter resources by the status", + "items": { + "type": "string" + }, + "type": "array" + }, + "tagSelector": { + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "Deprecated. Use `labelSelector`", + "type": "object" + }, + "type": { + "description": "Deprecated. Use `types`", + "type": "string" + }, + "types": { + "description": "Types filter resources by the type", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "display": { + "description": "Apply transformations to the value", + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "field": { + "description": "A JSONPath expression to lookup the value in the config", + "type": "string" + }, + "id": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "headline": { + "type": "boolean" + }, + "hidden": { + "type": "boolean" + }, + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "lastTransition": { + "type": "string" + }, + "links": { + "items": { + "properties": { + "icon": { + "type": "string" + }, + "label": { + "type": "string" + }, + "text": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "type": { + "description": "e.g. documentation, support, playbook", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "lookup": { + "description": "CanarySpec defines the desired state of Canary", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "max": { + "format": "int64", + "type": "integer" + }, + "min": { + "format": "int64", + "type": "integer" + }, + "name": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "status": { + "type": "string" + }, + "summary": { + "properties": { + "expr": { + "type": "string" + }, + "javascript": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "template": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "text": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "type": { + "type": "string" + }, + "unit": { + "description": "e.g. milliseconds, bytes, millicores, epoch etc.", + "type": "string" + }, + "value": { + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "push": { + "description": "Agent will push topology to specified path", + "properties": { + "bearer": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "connection": { + "type": "string" + }, + "digest": { + "type": "boolean" + }, + "ntlm": { + "type": "boolean" + }, + "ntlmv2": { + "type": "boolean" + }, + "oauth": { + "properties": { + "clientID": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "clientSecret": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "params": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "scope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURL": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "password": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "tls": { + "properties": { + "ca": { + "description": "PEM encoded certificate of the CA to verify the server certificate", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "cert": { + "description": "PEM encoded client certificate", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "handshakeTimeout": { + "description": "HandshakeTimeout defaults to 10 seconds", + "format": "int64", + "type": "integer" + }, + "insecureSkipVerify": { + "description": "InsecureSkipVerify controls whether a client verifies the server's\ncertificate chain and host name", + "type": "boolean" + }, + "key": { + "description": "PEM encoded client private key", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "url": { + "type": "string" + }, + "username": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "helmRef": { + "properties": { + "key": { + "description": "Key is a JSONPath expression used to fetch the key from the merged JSON.", + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "serviceAccount": { + "description": "ServiceAccount specifies the service account whose token should be fetched", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "schedule": { + "type": "string" + }, + "statusExpr": { + "description": "statusExpr allows defining a cel expression to evaluate the status of a component\nbased on the summary.", + "type": "string" + }, + "text": { + "type": "string" + }, + "tooltip": { + "type": "string" + }, + "type": { + "type": "string" + }, + "additionalProperties": false + }, + "type": "object", + "additionalProperties": false + }, + "status": { + "properties": { + "observedGeneration": { + "format": "int64", + "type": "integer" + }, + "persistentID": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +}