{
  "description": "Alert is the Schema for the alerts 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",
        "null"
      ]
    },
    "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",
        "null"
      ]
    },
    "metadata": {
      "type": [
        "object",
        "null"
      ]
    },
    "spec": {
      "additionalProperties": false,
      "description": "AlertSpec defines an alerting rule for events involving a list of objects.",
      "properties": {
        "eventMetadata": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "EventMetadata adds metadata to events. Sources, from lowest to highest precedence:\n`event.toolkit.fluxcd.io/` annotations on the involved object, Alert `.spec.eventMetadata`,\nand controller-defined `\u003ccontroller group\u003e.toolkit.fluxcd.io/` event metadata.\nHigher precedence wins; conflicts produce an info log and a Warning Event.\nSee the Alert API docs (Event metadata section).",
          "type": [
            "object",
            "null"
          ]
        },
        "eventSeverity": {
          "default": "info",
          "description": "EventSeverity specifies how to filter events based on severity.\nIf set to 'info' no events will be filtered.",
          "enum": [
            "info",
            "error"
          ],
          "type": [
            "string",
            "null"
          ]
        },
        "eventSources": {
          "description": "EventSources specifies how to filter events based\non the involved object kind, name and namespace.",
          "items": {
            "additionalProperties": false,
            "description": "CrossNamespaceObjectReference contains enough information to let you locate the\ntyped referenced object at cluster level",
            "properties": {
              "apiVersion": {
                "description": "API version of the referent",
                "type": [
                  "string",
                  "null"
                ]
              },
              "kind": {
                "description": "Kind of the referent",
                "enum": [
                  "Bucket",
                  "GitRepository",
                  "Kustomization",
                  "HelmRelease",
                  "HelmChart",
                  "HelmRepository",
                  "ImageRepository",
                  "ImagePolicy",
                  "ImageUpdateAutomation",
                  "OCIRepository",
                  "ArtifactGenerator",
                  "ExternalArtifact",
                  "FluxInstance",
                  "ResourceSet",
                  "ResourceSetInputProvider"
                ],
                "type": "string"
              },
              "matchLabels": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.\nMatchLabels requires the name to be set to `*`.",
                "type": [
                  "object",
                  "null"
                ]
              },
              "name": {
                "description": "Name of the referent\nIf multiple resources are targeted `*` may be set.",
                "maxLength": 253,
                "minLength": 1,
                "type": "string"
              },
              "namespace": {
                "description": "Namespace of the referent",
                "maxLength": 253,
                "minLength": 1,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "kind",
              "name"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "exclusionList": {
          "description": "ExclusionList specifies a list of Golang regular expressions\nto be used for excluding messages.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "inclusionList": {
          "description": "InclusionList specifies a list of Golang regular expressions\nto be used for including messages.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "providerRef": {
          "additionalProperties": false,
          "description": "ProviderRef specifies which Provider this Alert should use.",
          "properties": {
            "name": {
              "description": "Name of the referent.",
              "type": "string"
            }
          },
          "required": [
            "name"
          ],
          "type": "object"
        },
        "suspend": {
          "description": "Suspend tells the controller to suspend subsequent\nevents handling for this Alert.",
          "type": [
            "boolean",
            "null"
          ]
        }
      },
      "required": [
        "eventSources",
        "providerRef"
      ],
      "type": [
        "object",
        "null"
      ]
    }
  },
  "type": "object"
}