{
  "description": "RuleGroup is the Schema for the RuleGroups API. Manages Grafana Alerting rule groups. Official documentation https://grafana.com/docs/grafana/latest/developers/http_api/alerting_provisioning/#alert-rules This resource requires Grafana 9.1.0 or later.",
  "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": "RuleGroupSpec defines the desired state of RuleGroup",
      "properties": {
        "deletionPolicy": {
          "default": "Delete",
          "description": "DeletionPolicy specifies what will happen to the underlying external\nwhen this managed resource is deleted - either \"Delete\" or \"Orphan\" the\nexternal resource.\nThis field is planned to be deprecated in favor of the ManagementPolicies\nfield in a future release. Currently, both could be set independently and\nnon-default values would be honored if the feature flag is enabled.\nSee the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223",
          "enum": [
            "Orphan",
            "Delete"
          ],
          "type": "string"
        },
        "forProvider": {
          "properties": {
            "disableProvenance": {
              "description": "Defaults to false. Defaults to `false`.",
              "type": "boolean"
            },
            "folderRef": {
              "description": "Reference to a Folder in oss to populate folderUid.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "folderSelector": {
              "description": "Selector for a Folder in oss to populate folderUid.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "folderUid": {
              "description": "(String) The UID of the folder that the group belongs to.\nThe UID of the folder that the group belongs to.",
              "type": "string"
            },
            "intervalSeconds": {
              "description": "(Number) The interval, in seconds, at which all rules in the group are evaluated. If a group contains many rules, the rules are evaluated sequentially.\nThe interval, in seconds, at which all rules in the group are evaluated. If a group contains many rules, the rules are evaluated sequentially.",
              "type": "number"
            },
            "name": {
              "description": "(String) The name of the rule group.\nThe name of the rule group.",
              "type": "string"
            },
            "orgId": {
              "description": "(String) The Organization ID. If not set, the Org ID defined in the provider block will be used.\nThe Organization ID. If not set, the Org ID defined in the provider block will be used.",
              "type": "string"
            },
            "organizationRef": {
              "description": "Reference to a Organization in oss to populate orgId.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "organizationSelector": {
              "description": "Selector for a Organization in oss to populate orgId.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "rule": {
              "description": "(Block List, Min: 1) The rules within the group. (see below for nested schema)\nThe rules within the group.",
              "items": {
                "properties": {
                  "annotations": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "value pairs of metadata to attach to the alert rule. They add additional information, such as a summary or runbook_url, to help identify and investigate alerts. The __dashboardUid__ and __panelId__ annotations, which link alerts to a panel, must be set together. Defaults to map[].\nKey-value pairs of metadata to attach to the alert rule. They add additional information, such as a `summary` or `runbook_url`, to help identify and investigate alerts. The `__dashboardUid__` and `__panelId__` annotations, which link alerts to a panel, must be set together. Defaults to `map[]`.",
                    "type": "object",
                    "x-kubernetes-map-type": "granular"
                  },
                  "condition": {
                    "description": "(String) The ref_id of the query node in the data field to use as the alert condition.\nThe `ref_id` of the query node in the `data` field to use as the alert condition.",
                    "type": "string"
                  },
                  "data": {
                    "description": "(Block List, Min: 1) A sequence of stages that describe the contents of the rule. (see below for nested schema)\nA sequence of stages that describe the contents of the rule.",
                    "items": {
                      "properties": {
                        "datasourceUid": {
                          "description": "100\" if this stage is an expression stage.\nThe UID of the datasource being queried, or \"-100\" if this stage is an expression stage.",
                          "type": "string"
                        },
                        "model": {
                          "description": "(String) Custom JSON data to send to the specified datasource when querying.\nCustom JSON data to send to the specified datasource when querying.",
                          "type": "string"
                        },
                        "queryType": {
                          "description": "(String) An optional identifier for the type of query being executed. Defaults to \u201c.\nAn optional identifier for the type of query being executed. Defaults to \u201c.",
                          "type": "string"
                        },
                        "refId": {
                          "description": "(String) A unique string to identify this query stage within a rule.\nA unique string to identify this query stage within a rule.",
                          "type": "string"
                        },
                        "relativeTimeRange": {
                          "description": "(Block List, Min: 1, Max: 1) The time range, relative to when the query is executed, across which to query. (see below for nested schema)\nThe time range, relative to when the query is executed, across which to query.",
                          "items": {
                            "properties": {
                              "from": {
                                "description": "(Number) The number of seconds in the past, relative to when the rule is evaluated, at which the time range begins.\nThe number of seconds in the past, relative to when the rule is evaluated, at which the time range begins.",
                                "type": "number"
                              },
                              "to": {
                                "description": "(Number) The number of seconds in the past, relative to when the rule is evaluated, at which the time range ends.\nThe number of seconds in the past, relative to when the rule is evaluated, at which the time range ends.",
                                "type": "number"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "execErrState": {
                    "description": "(String) Describes what state to enter when the rule's query is invalid and the rule cannot be executed. Options are OK, Error, KeepLast, and Alerting.  Defaults to Alerting if not set.\nDescribes what state to enter when the rule's query is invalid and the rule cannot be executed. Options are OK, Error, KeepLast, and Alerting.  Defaults to Alerting if not set.",
                    "type": "string"
                  },
                  "for": {
                    "description": "(String) The amount of time for which the rule must be breached for the rule to be considered to be Firing. Before this time has elapsed, the rule is only considered to be Pending. Defaults to 0.\nThe amount of time for which the rule must be breached for the rule to be considered to be Firing. Before this time has elapsed, the rule is only considered to be Pending. Defaults to `0`.",
                    "type": "string"
                  },
                  "isPaused": {
                    "description": "(Boolean) Sets whether the alert should be paused or not. Defaults to false.\nSets whether the alert should be paused or not. Defaults to `false`.",
                    "type": "boolean"
                  },
                  "keepFiringFor": {
                    "description": "(String) The amount of time for which the rule will considered to be Recovering after initially Firing. Before this time has elapsed, the rule will continue to fire once it's been triggered.\nThe amount of time for which the rule will considered to be Recovering after initially Firing. Before this time has elapsed, the rule will continue to fire once it's been triggered.",
                    "type": "string"
                  },
                  "labels": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "value pairs to attach to the alert rule that can be used in matching, grouping, and routing. Defaults to map[].\nKey-value pairs to attach to the alert rule that can be used in matching, grouping, and routing. Defaults to `map[]`.",
                    "type": "object",
                    "x-kubernetes-map-type": "granular"
                  },
                  "missingSeriesEvalsToResolve": {
                    "description": "(Number) The number of missing series evaluations that must occur before the rule is considered to be resolved.\nThe number of missing series evaluations that must occur before the rule is considered to be resolved.",
                    "type": "number"
                  },
                  "name": {
                    "description": "(String) The name of the rule group.\nThe name of the alert rule.",
                    "type": "string"
                  },
                  "noDataState": {
                    "description": "(String) Describes what state to enter when the rule's query returns No Data. Options are OK, NoData, KeepLast, and Alerting. Defaults to NoData if not set.\nDescribes what state to enter when the rule's query returns No Data. Options are OK, NoData, KeepLast, and Alerting. Defaults to NoData if not set.",
                    "type": "string"
                  },
                  "notificationSettings": {
                    "description": "(Block List, Max: 1) Notification settings for the rule. If specified, it overrides the notification policies. Available since Grafana 10.4, requires feature flag 'alertingSimplifiedRouting' to be enabled. (see below for nested schema)\nNotification settings for the rule. If specified, it overrides the notification policies. Available since Grafana 10.4, requires feature flag 'alertingSimplifiedRouting' to be enabled.",
                    "items": {
                      "properties": {
                        "activeTimings": {
                          "description": "(List of String) A list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time. Supported in Grafana 12.1.0 and later\nA list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time. Supported in Grafana 12.1.0 and later",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "contactPoint": {
                          "description": "(String) The contact point to route notifications that match this rule to.\nThe contact point to route notifications that match this rule to.",
                          "type": "string"
                        },
                        "contactPointRef": {
                          "description": "Reference to a ContactPoint in alerting to populate contactPoint.",
                          "properties": {
                            "name": {
                              "description": "Name of the referenced object.",
                              "type": "string"
                            },
                            "policy": {
                              "description": "Policies for referencing.",
                              "properties": {
                                "resolution": {
                                  "default": "Required",
                                  "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                                  "enum": [
                                    "Required",
                                    "Optional"
                                  ],
                                  "type": "string"
                                },
                                "resolve": {
                                  "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                                  "enum": [
                                    "Always",
                                    "IfNotPresent"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "type": "object",
                          "additionalProperties": false
                        },
                        "contactPointSelector": {
                          "description": "Selector for a ContactPoint in alerting to populate contactPoint.",
                          "properties": {
                            "matchControllerRef": {
                              "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                              "type": "boolean"
                            },
                            "matchLabels": {
                              "additionalProperties": {
                                "type": "string"
                              },
                              "description": "MatchLabels ensures an object with matching labels is selected.",
                              "type": "object"
                            },
                            "policy": {
                              "description": "Policies for selection.",
                              "properties": {
                                "resolution": {
                                  "default": "Required",
                                  "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                                  "enum": [
                                    "Required",
                                    "Optional"
                                  ],
                                  "type": "string"
                                },
                                "resolve": {
                                  "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                                  "enum": [
                                    "Always",
                                    "IfNotPresent"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "groupBy": {
                          "description": "(List of String) A list of alert labels to group alerts into notifications by. Use the special label ... to group alerts by all labels, effectively disabling grouping. If empty, no grouping is used. If specified, requires labels 'alertname' and 'grafana_folder' to be included.\nA list of alert labels to group alerts into notifications by. Use the special label `...` to group alerts by all labels, effectively disabling grouping. If empty, no grouping is used. If specified, requires labels 'alertname' and 'grafana_folder' to be included.",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "groupInterval": {
                          "description": "(String) Minimum time interval between two notifications for the same group. Default is 5 minutes.\nMinimum time interval between two notifications for the same group. Default is 5 minutes.",
                          "type": "string"
                        },
                        "groupWait": {
                          "description": "(String) Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.\nTime to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.",
                          "type": "string"
                        },
                        "muteTimings": {
                          "description": "(List of String) A list of mute timing names to apply to alerts that match this policy.\nA list of mute timing names to apply to alerts that match this policy.",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "repeatInterval": {
                          "description": "sending a notification if an alert is still firing. Default is 4 hours.\nMinimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "record": {
                    "description": "(Block List, Max: 1) Settings for a recording rule. Available since Grafana 11.2, requires feature flag 'grafanaManagedRecordingRules' to be enabled. (see below for nested schema)\nSettings for a recording rule. Available since Grafana 11.2, requires feature flag 'grafanaManagedRecordingRules' to be enabled.",
                    "items": {
                      "properties": {
                        "from": {
                          "description": "(Number) The number of seconds in the past, relative to when the rule is evaluated, at which the time range begins.\nThe ref id of the query node in the data field to use as the source of the metric.",
                          "type": "string"
                        },
                        "metric": {
                          "description": "(String) The name of the metric to write to.\nThe name of the metric to write to.",
                          "type": "string"
                        },
                        "targetDatasourceUid": {
                          "description": "(String) The UID of the datasource to write the metric to.\nThe UID of the datasource to write the metric to.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "uid": {
                    "description": "(String) The unique identifier of the alert rule.\nThe unique identifier of the alert rule.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "initProvider": {
          "description": "THIS IS A BETA FIELD. It will be honored\nunless the Management Policies feature flag is disabled.\nInitProvider holds the same fields as ForProvider, with the exception\nof Identifier and other resource reference fields. The fields that are\nin InitProvider are merged into ForProvider when the resource is created.\nThe same fields are also added to the terraform ignore_changes hook, to\navoid updating them after creation. This is useful for fields that are\nrequired on creation, but we do not desire to update them after creation,\nfor example because of an external controller is managing them, like an\nautoscaler.",
          "properties": {
            "disableProvenance": {
              "description": "Defaults to false. Defaults to `false`.",
              "type": "boolean"
            },
            "folderRef": {
              "description": "Reference to a Folder in oss to populate folderUid.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "folderSelector": {
              "description": "Selector for a Folder in oss to populate folderUid.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "folderUid": {
              "description": "(String) The UID of the folder that the group belongs to.\nThe UID of the folder that the group belongs to.",
              "type": "string"
            },
            "intervalSeconds": {
              "description": "(Number) The interval, in seconds, at which all rules in the group are evaluated. If a group contains many rules, the rules are evaluated sequentially.\nThe interval, in seconds, at which all rules in the group are evaluated. If a group contains many rules, the rules are evaluated sequentially.",
              "type": "number"
            },
            "name": {
              "description": "(String) The name of the rule group.\nThe name of the rule group.",
              "type": "string"
            },
            "orgId": {
              "description": "(String) The Organization ID. If not set, the Org ID defined in the provider block will be used.\nThe Organization ID. If not set, the Org ID defined in the provider block will be used.",
              "type": "string"
            },
            "organizationRef": {
              "description": "Reference to a Organization in oss to populate orgId.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "organizationSelector": {
              "description": "Selector for a Organization in oss to populate orgId.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "rule": {
              "description": "(Block List, Min: 1) The rules within the group. (see below for nested schema)\nThe rules within the group.",
              "items": {
                "properties": {
                  "annotations": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "value pairs of metadata to attach to the alert rule. They add additional information, such as a summary or runbook_url, to help identify and investigate alerts. The __dashboardUid__ and __panelId__ annotations, which link alerts to a panel, must be set together. Defaults to map[].\nKey-value pairs of metadata to attach to the alert rule. They add additional information, such as a `summary` or `runbook_url`, to help identify and investigate alerts. The `__dashboardUid__` and `__panelId__` annotations, which link alerts to a panel, must be set together. Defaults to `map[]`.",
                    "type": "object",
                    "x-kubernetes-map-type": "granular"
                  },
                  "condition": {
                    "description": "(String) The ref_id of the query node in the data field to use as the alert condition.\nThe `ref_id` of the query node in the `data` field to use as the alert condition.",
                    "type": "string"
                  },
                  "data": {
                    "description": "(Block List, Min: 1) A sequence of stages that describe the contents of the rule. (see below for nested schema)\nA sequence of stages that describe the contents of the rule.",
                    "items": {
                      "properties": {
                        "datasourceUid": {
                          "description": "100\" if this stage is an expression stage.\nThe UID of the datasource being queried, or \"-100\" if this stage is an expression stage.",
                          "type": "string"
                        },
                        "model": {
                          "description": "(String) Custom JSON data to send to the specified datasource when querying.\nCustom JSON data to send to the specified datasource when querying.",
                          "type": "string"
                        },
                        "queryType": {
                          "description": "(String) An optional identifier for the type of query being executed. Defaults to \u201c.\nAn optional identifier for the type of query being executed. Defaults to \u201c.",
                          "type": "string"
                        },
                        "refId": {
                          "description": "(String) A unique string to identify this query stage within a rule.\nA unique string to identify this query stage within a rule.",
                          "type": "string"
                        },
                        "relativeTimeRange": {
                          "description": "(Block List, Min: 1, Max: 1) The time range, relative to when the query is executed, across which to query. (see below for nested schema)\nThe time range, relative to when the query is executed, across which to query.",
                          "items": {
                            "properties": {
                              "from": {
                                "description": "(Number) The number of seconds in the past, relative to when the rule is evaluated, at which the time range begins.\nThe number of seconds in the past, relative to when the rule is evaluated, at which the time range begins.",
                                "type": "number"
                              },
                              "to": {
                                "description": "(Number) The number of seconds in the past, relative to when the rule is evaluated, at which the time range ends.\nThe number of seconds in the past, relative to when the rule is evaluated, at which the time range ends.",
                                "type": "number"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "execErrState": {
                    "description": "(String) Describes what state to enter when the rule's query is invalid and the rule cannot be executed. Options are OK, Error, KeepLast, and Alerting.  Defaults to Alerting if not set.\nDescribes what state to enter when the rule's query is invalid and the rule cannot be executed. Options are OK, Error, KeepLast, and Alerting.  Defaults to Alerting if not set.",
                    "type": "string"
                  },
                  "for": {
                    "description": "(String) The amount of time for which the rule must be breached for the rule to be considered to be Firing. Before this time has elapsed, the rule is only considered to be Pending. Defaults to 0.\nThe amount of time for which the rule must be breached for the rule to be considered to be Firing. Before this time has elapsed, the rule is only considered to be Pending. Defaults to `0`.",
                    "type": "string"
                  },
                  "isPaused": {
                    "description": "(Boolean) Sets whether the alert should be paused or not. Defaults to false.\nSets whether the alert should be paused or not. Defaults to `false`.",
                    "type": "boolean"
                  },
                  "keepFiringFor": {
                    "description": "(String) The amount of time for which the rule will considered to be Recovering after initially Firing. Before this time has elapsed, the rule will continue to fire once it's been triggered.\nThe amount of time for which the rule will considered to be Recovering after initially Firing. Before this time has elapsed, the rule will continue to fire once it's been triggered.",
                    "type": "string"
                  },
                  "labels": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "value pairs to attach to the alert rule that can be used in matching, grouping, and routing. Defaults to map[].\nKey-value pairs to attach to the alert rule that can be used in matching, grouping, and routing. Defaults to `map[]`.",
                    "type": "object",
                    "x-kubernetes-map-type": "granular"
                  },
                  "missingSeriesEvalsToResolve": {
                    "description": "(Number) The number of missing series evaluations that must occur before the rule is considered to be resolved.\nThe number of missing series evaluations that must occur before the rule is considered to be resolved.",
                    "type": "number"
                  },
                  "name": {
                    "description": "(String) The name of the rule group.\nThe name of the alert rule.",
                    "type": "string"
                  },
                  "noDataState": {
                    "description": "(String) Describes what state to enter when the rule's query returns No Data. Options are OK, NoData, KeepLast, and Alerting. Defaults to NoData if not set.\nDescribes what state to enter when the rule's query returns No Data. Options are OK, NoData, KeepLast, and Alerting. Defaults to NoData if not set.",
                    "type": "string"
                  },
                  "notificationSettings": {
                    "description": "(Block List, Max: 1) Notification settings for the rule. If specified, it overrides the notification policies. Available since Grafana 10.4, requires feature flag 'alertingSimplifiedRouting' to be enabled. (see below for nested schema)\nNotification settings for the rule. If specified, it overrides the notification policies. Available since Grafana 10.4, requires feature flag 'alertingSimplifiedRouting' to be enabled.",
                    "items": {
                      "properties": {
                        "activeTimings": {
                          "description": "(List of String) A list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time. Supported in Grafana 12.1.0 and later\nA list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time. Supported in Grafana 12.1.0 and later",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "contactPoint": {
                          "description": "(String) The contact point to route notifications that match this rule to.\nThe contact point to route notifications that match this rule to.",
                          "type": "string"
                        },
                        "contactPointRef": {
                          "description": "Reference to a ContactPoint in alerting to populate contactPoint.",
                          "properties": {
                            "name": {
                              "description": "Name of the referenced object.",
                              "type": "string"
                            },
                            "policy": {
                              "description": "Policies for referencing.",
                              "properties": {
                                "resolution": {
                                  "default": "Required",
                                  "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                                  "enum": [
                                    "Required",
                                    "Optional"
                                  ],
                                  "type": "string"
                                },
                                "resolve": {
                                  "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                                  "enum": [
                                    "Always",
                                    "IfNotPresent"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "name"
                          ],
                          "type": "object",
                          "additionalProperties": false
                        },
                        "contactPointSelector": {
                          "description": "Selector for a ContactPoint in alerting to populate contactPoint.",
                          "properties": {
                            "matchControllerRef": {
                              "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                              "type": "boolean"
                            },
                            "matchLabels": {
                              "additionalProperties": {
                                "type": "string"
                              },
                              "description": "MatchLabels ensures an object with matching labels is selected.",
                              "type": "object"
                            },
                            "policy": {
                              "description": "Policies for selection.",
                              "properties": {
                                "resolution": {
                                  "default": "Required",
                                  "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                                  "enum": [
                                    "Required",
                                    "Optional"
                                  ],
                                  "type": "string"
                                },
                                "resolve": {
                                  "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                                  "enum": [
                                    "Always",
                                    "IfNotPresent"
                                  ],
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "groupBy": {
                          "description": "(List of String) A list of alert labels to group alerts into notifications by. Use the special label ... to group alerts by all labels, effectively disabling grouping. If empty, no grouping is used. If specified, requires labels 'alertname' and 'grafana_folder' to be included.\nA list of alert labels to group alerts into notifications by. Use the special label `...` to group alerts by all labels, effectively disabling grouping. If empty, no grouping is used. If specified, requires labels 'alertname' and 'grafana_folder' to be included.",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "groupInterval": {
                          "description": "(String) Minimum time interval between two notifications for the same group. Default is 5 minutes.\nMinimum time interval between two notifications for the same group. Default is 5 minutes.",
                          "type": "string"
                        },
                        "groupWait": {
                          "description": "(String) Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.\nTime to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.",
                          "type": "string"
                        },
                        "muteTimings": {
                          "description": "(List of String) A list of mute timing names to apply to alerts that match this policy.\nA list of mute timing names to apply to alerts that match this policy.",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "repeatInterval": {
                          "description": "sending a notification if an alert is still firing. Default is 4 hours.\nMinimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "record": {
                    "description": "(Block List, Max: 1) Settings for a recording rule. Available since Grafana 11.2, requires feature flag 'grafanaManagedRecordingRules' to be enabled. (see below for nested schema)\nSettings for a recording rule. Available since Grafana 11.2, requires feature flag 'grafanaManagedRecordingRules' to be enabled.",
                    "items": {
                      "properties": {
                        "from": {
                          "description": "(Number) The number of seconds in the past, relative to when the rule is evaluated, at which the time range begins.\nThe ref id of the query node in the data field to use as the source of the metric.",
                          "type": "string"
                        },
                        "metric": {
                          "description": "(String) The name of the metric to write to.\nThe name of the metric to write to.",
                          "type": "string"
                        },
                        "targetDatasourceUid": {
                          "description": "(String) The UID of the datasource to write the metric to.\nThe UID of the datasource to write the metric to.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "uid": {
                    "description": "(String) The unique identifier of the alert rule.\nThe unique identifier of the alert rule.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "managementPolicies": {
          "default": [
            "*"
          ],
          "description": "THIS IS A BETA FIELD. It is on by default but can be opted out\nthrough a Crossplane feature flag.\nManagementPolicies specify the array of actions Crossplane is allowed to\ntake on the managed and external resources.\nThis field is planned to replace the DeletionPolicy field in a future\nrelease. Currently, both could be set independently and non-default\nvalues would be honored if the feature flag is enabled. If both are\ncustom, the DeletionPolicy field will be ignored.\nSee the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223\nand this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md",
          "items": {
            "description": "A ManagementAction represents an action that the Crossplane controllers\ncan take on an external resource.",
            "enum": [
              "Observe",
              "Create",
              "Update",
              "Delete",
              "LateInitialize",
              "*"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "providerConfigRef": {
          "default": {
            "name": "default"
          },
          "description": "ProviderConfigReference specifies how the provider that will be used to\ncreate, observe, update, and delete this managed resource should be\nconfigured.",
          "properties": {
            "name": {
              "description": "Name of the referenced object.",
              "type": "string"
            },
            "policy": {
              "description": "Policies for referencing.",
              "properties": {
                "resolution": {
                  "default": "Required",
                  "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                  "enum": [
                    "Required",
                    "Optional"
                  ],
                  "type": "string"
                },
                "resolve": {
                  "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                  "enum": [
                    "Always",
                    "IfNotPresent"
                  ],
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "required": [
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "publishConnectionDetailsTo": {
          "description": "PublishConnectionDetailsTo specifies the connection secret config which\ncontains a name, metadata and a reference to secret store config to\nwhich any connection details for this managed resource should be written.\nConnection details frequently include the endpoint, username,\nand password required to connect to the managed resource.",
          "properties": {
            "configRef": {
              "default": {
                "name": "default"
              },
              "description": "SecretStoreConfigRef specifies which secret store config should be used\nfor this ConnectionSecret.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "metadata": {
              "description": "Metadata is the metadata for connection secret.",
              "properties": {
                "annotations": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Annotations are the annotations to be added to connection secret.\n- For Kubernetes secrets, this will be used as \"metadata.annotations\".\n- It is up to Secret Store implementation for others store types.",
                  "type": "object"
                },
                "labels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Labels are the labels/tags to be added to connection secret.\n- For Kubernetes secrets, this will be used as \"metadata.labels\".\n- It is up to Secret Store implementation for others store types.",
                  "type": "object"
                },
                "type": {
                  "description": "Type is the SecretType for the connection secret.\n- Only valid for Kubernetes Secret Stores.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "name": {
              "description": "Name is the name of the connection secret.",
              "type": "string"
            }
          },
          "required": [
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "writeConnectionSecretToRef": {
          "description": "WriteConnectionSecretToReference specifies the namespace and name of a\nSecret to which any connection details for this managed resource should\nbe written. Connection details frequently include the endpoint, username,\nand password required to connect to the managed resource.\nThis field is planned to be replaced in a future release in favor of\nPublishConnectionDetailsTo. Currently, both could be set independently\nand connection details would be published to both without affecting\neach other.",
          "properties": {
            "name": {
              "description": "Name of the secret.",
              "type": "string"
            },
            "namespace": {
              "description": "Namespace of the secret.",
              "type": "string"
            }
          },
          "required": [
            "name",
            "namespace"
          ],
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "forProvider"
      ],
      "type": "object",
      "x-kubernetes-validations": [
        {
          "message": "spec.forProvider.intervalSeconds is a required parameter",
          "rule": "!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.intervalSeconds) || (has(self.initProvider) && has(self.initProvider.intervalSeconds))"
        },
        {
          "message": "spec.forProvider.name is a required parameter",
          "rule": "!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))"
        },
        {
          "message": "spec.forProvider.rule is a required parameter",
          "rule": "!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.rule) || (has(self.initProvider) && has(self.initProvider.rule))"
        }
      ],
      "additionalProperties": false
    },
    "status": {
      "description": "RuleGroupStatus defines the observed state of RuleGroup.",
      "properties": {
        "atProvider": {
          "properties": {
            "disableProvenance": {
              "description": "Defaults to false. Defaults to `false`.",
              "type": "boolean"
            },
            "folderUid": {
              "description": "(String) The UID of the folder that the group belongs to.\nThe UID of the folder that the group belongs to.",
              "type": "string"
            },
            "id": {
              "description": "(String) The ID of this resource.",
              "type": "string"
            },
            "intervalSeconds": {
              "description": "(Number) The interval, in seconds, at which all rules in the group are evaluated. If a group contains many rules, the rules are evaluated sequentially.\nThe interval, in seconds, at which all rules in the group are evaluated. If a group contains many rules, the rules are evaluated sequentially.",
              "type": "number"
            },
            "name": {
              "description": "(String) The name of the rule group.\nThe name of the rule group.",
              "type": "string"
            },
            "orgId": {
              "description": "(String) The Organization ID. If not set, the Org ID defined in the provider block will be used.\nThe Organization ID. If not set, the Org ID defined in the provider block will be used.",
              "type": "string"
            },
            "rule": {
              "description": "(Block List, Min: 1) The rules within the group. (see below for nested schema)\nThe rules within the group.",
              "items": {
                "properties": {
                  "annotations": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "value pairs of metadata to attach to the alert rule. They add additional information, such as a summary or runbook_url, to help identify and investigate alerts. The __dashboardUid__ and __panelId__ annotations, which link alerts to a panel, must be set together. Defaults to map[].\nKey-value pairs of metadata to attach to the alert rule. They add additional information, such as a `summary` or `runbook_url`, to help identify and investigate alerts. The `__dashboardUid__` and `__panelId__` annotations, which link alerts to a panel, must be set together. Defaults to `map[]`.",
                    "type": "object",
                    "x-kubernetes-map-type": "granular"
                  },
                  "condition": {
                    "description": "(String) The ref_id of the query node in the data field to use as the alert condition.\nThe `ref_id` of the query node in the `data` field to use as the alert condition.",
                    "type": "string"
                  },
                  "data": {
                    "description": "(Block List, Min: 1) A sequence of stages that describe the contents of the rule. (see below for nested schema)\nA sequence of stages that describe the contents of the rule.",
                    "items": {
                      "properties": {
                        "datasourceUid": {
                          "description": "100\" if this stage is an expression stage.\nThe UID of the datasource being queried, or \"-100\" if this stage is an expression stage.",
                          "type": "string"
                        },
                        "model": {
                          "description": "(String) Custom JSON data to send to the specified datasource when querying.\nCustom JSON data to send to the specified datasource when querying.",
                          "type": "string"
                        },
                        "queryType": {
                          "description": "(String) An optional identifier for the type of query being executed. Defaults to \u201c.\nAn optional identifier for the type of query being executed. Defaults to \u201c.",
                          "type": "string"
                        },
                        "refId": {
                          "description": "(String) A unique string to identify this query stage within a rule.\nA unique string to identify this query stage within a rule.",
                          "type": "string"
                        },
                        "relativeTimeRange": {
                          "description": "(Block List, Min: 1, Max: 1) The time range, relative to when the query is executed, across which to query. (see below for nested schema)\nThe time range, relative to when the query is executed, across which to query.",
                          "items": {
                            "properties": {
                              "from": {
                                "description": "(Number) The number of seconds in the past, relative to when the rule is evaluated, at which the time range begins.\nThe number of seconds in the past, relative to when the rule is evaluated, at which the time range begins.",
                                "type": "number"
                              },
                              "to": {
                                "description": "(Number) The number of seconds in the past, relative to when the rule is evaluated, at which the time range ends.\nThe number of seconds in the past, relative to when the rule is evaluated, at which the time range ends.",
                                "type": "number"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "type": "array"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "execErrState": {
                    "description": "(String) Describes what state to enter when the rule's query is invalid and the rule cannot be executed. Options are OK, Error, KeepLast, and Alerting.  Defaults to Alerting if not set.\nDescribes what state to enter when the rule's query is invalid and the rule cannot be executed. Options are OK, Error, KeepLast, and Alerting.  Defaults to Alerting if not set.",
                    "type": "string"
                  },
                  "for": {
                    "description": "(String) The amount of time for which the rule must be breached for the rule to be considered to be Firing. Before this time has elapsed, the rule is only considered to be Pending. Defaults to 0.\nThe amount of time for which the rule must be breached for the rule to be considered to be Firing. Before this time has elapsed, the rule is only considered to be Pending. Defaults to `0`.",
                    "type": "string"
                  },
                  "isPaused": {
                    "description": "(Boolean) Sets whether the alert should be paused or not. Defaults to false.\nSets whether the alert should be paused or not. Defaults to `false`.",
                    "type": "boolean"
                  },
                  "keepFiringFor": {
                    "description": "(String) The amount of time for which the rule will considered to be Recovering after initially Firing. Before this time has elapsed, the rule will continue to fire once it's been triggered.\nThe amount of time for which the rule will considered to be Recovering after initially Firing. Before this time has elapsed, the rule will continue to fire once it's been triggered.",
                    "type": "string"
                  },
                  "labels": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "value pairs to attach to the alert rule that can be used in matching, grouping, and routing. Defaults to map[].\nKey-value pairs to attach to the alert rule that can be used in matching, grouping, and routing. Defaults to `map[]`.",
                    "type": "object",
                    "x-kubernetes-map-type": "granular"
                  },
                  "missingSeriesEvalsToResolve": {
                    "description": "(Number) The number of missing series evaluations that must occur before the rule is considered to be resolved.\nThe number of missing series evaluations that must occur before the rule is considered to be resolved.",
                    "type": "number"
                  },
                  "name": {
                    "description": "(String) The name of the rule group.\nThe name of the alert rule.",
                    "type": "string"
                  },
                  "noDataState": {
                    "description": "(String) Describes what state to enter when the rule's query returns No Data. Options are OK, NoData, KeepLast, and Alerting. Defaults to NoData if not set.\nDescribes what state to enter when the rule's query returns No Data. Options are OK, NoData, KeepLast, and Alerting. Defaults to NoData if not set.",
                    "type": "string"
                  },
                  "notificationSettings": {
                    "description": "(Block List, Max: 1) Notification settings for the rule. If specified, it overrides the notification policies. Available since Grafana 10.4, requires feature flag 'alertingSimplifiedRouting' to be enabled. (see below for nested schema)\nNotification settings for the rule. If specified, it overrides the notification policies. Available since Grafana 10.4, requires feature flag 'alertingSimplifiedRouting' to be enabled.",
                    "items": {
                      "properties": {
                        "activeTimings": {
                          "description": "(List of String) A list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time. Supported in Grafana 12.1.0 and later\nA list of time interval names to apply to alerts that match this policy to suppress them unless they are sent at the specified time. Supported in Grafana 12.1.0 and later",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "contactPoint": {
                          "description": "(String) The contact point to route notifications that match this rule to.\nThe contact point to route notifications that match this rule to.",
                          "type": "string"
                        },
                        "groupBy": {
                          "description": "(List of String) A list of alert labels to group alerts into notifications by. Use the special label ... to group alerts by all labels, effectively disabling grouping. If empty, no grouping is used. If specified, requires labels 'alertname' and 'grafana_folder' to be included.\nA list of alert labels to group alerts into notifications by. Use the special label `...` to group alerts by all labels, effectively disabling grouping. If empty, no grouping is used. If specified, requires labels 'alertname' and 'grafana_folder' to be included.",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "groupInterval": {
                          "description": "(String) Minimum time interval between two notifications for the same group. Default is 5 minutes.\nMinimum time interval between two notifications for the same group. Default is 5 minutes.",
                          "type": "string"
                        },
                        "groupWait": {
                          "description": "(String) Time to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.\nTime to wait to buffer alerts of the same group before sending a notification. Default is 30 seconds.",
                          "type": "string"
                        },
                        "muteTimings": {
                          "description": "(List of String) A list of mute timing names to apply to alerts that match this policy.\nA list of mute timing names to apply to alerts that match this policy.",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "repeatInterval": {
                          "description": "sending a notification if an alert is still firing. Default is 4 hours.\nMinimum time interval for re-sending a notification if an alert is still firing. Default is 4 hours.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "record": {
                    "description": "(Block List, Max: 1) Settings for a recording rule. Available since Grafana 11.2, requires feature flag 'grafanaManagedRecordingRules' to be enabled. (see below for nested schema)\nSettings for a recording rule. Available since Grafana 11.2, requires feature flag 'grafanaManagedRecordingRules' to be enabled.",
                    "items": {
                      "properties": {
                        "from": {
                          "description": "(Number) The number of seconds in the past, relative to when the rule is evaluated, at which the time range begins.\nThe ref id of the query node in the data field to use as the source of the metric.",
                          "type": "string"
                        },
                        "metric": {
                          "description": "(String) The name of the metric to write to.\nThe name of the metric to write to.",
                          "type": "string"
                        },
                        "targetDatasourceUid": {
                          "description": "(String) The UID of the datasource to write the metric to.\nThe UID of the datasource to write the metric to.",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "uid": {
                    "description": "(String) The unique identifier of the alert rule.\nThe unique identifier of the alert rule.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "Conditions of the resource.",
          "items": {
            "description": "A Condition that may apply to a resource.",
            "properties": {
              "lastTransitionTime": {
                "description": "LastTransitionTime is the last time this condition transitioned from one\nstatus to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A Message containing details about this condition's last transition from\none status to another, if any.",
                "type": "string"
              },
              "observedGeneration": {
                "description": "ObservedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.",
                "format": "int64",
                "type": "integer"
              },
              "reason": {
                "description": "A Reason for this condition's last transition from one status to another.",
                "type": "string"
              },
              "status": {
                "description": "Status of this condition; is it currently True, False, or Unknown?",
                "type": "string"
              },
              "type": {
                "description": "Type of this condition. At most one of each condition type may apply to\na resource at any point in time.",
                "type": "string"
              }
            },
            "required": [
              "lastTransitionTime",
              "reason",
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array",
          "x-kubernetes-list-map-keys": [
            "type"
          ],
          "x-kubernetes-list-type": "map"
        },
        "observedGeneration": {
          "description": "ObservedGeneration is the latest metadata.generation\nwhich resulted in either a ready state, or stalled due to error\nit can not recover from without human intervention.",
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
