{
  "apiVersion": "apiextensions.k8s.io/v1",
  "kind": "CustomResourceDefinition",
  "metadata": {
    "annotations": {
      "controller-gen.kubebuilder.io/version": "v0.13.0",
      "operator.prometheus.io/version": "0.69.1"
    },
    "name": "scrapeconfigs.monitoring.coreos.com"
  },
  "spec": {
    "group": "monitoring.coreos.com",
    "names": {
      "categories": [
        "prometheus-operator"
      ],
      "kind": "ScrapeConfig",
      "listKind": "ScrapeConfigList",
      "plural": "scrapeconfigs",
      "shortNames": [
        "scfg"
      ],
      "singular": "scrapeconfig"
    },
    "scope": "Namespaced",
    "versions": [
      {
        "name": "v1alpha1",
        "schema": {
          "openAPIV3Schema": {
            "description": "ScrapeConfig defines a namespaced Prometheus scrape_config to be aggregated across multiple namespaces into the Prometheus configuration.",
            "properties": {
              "apiVersion": {
                "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
                "type": "string"
              },
              "kind": {
                "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
                "type": "string"
              },
              "metadata": {
                "type": "object"
              },
              "spec": {
                "description": "ScrapeConfigSpec is a specification of the desired configuration for a scrape configuration.",
                "properties": {
                  "authorization": {
                    "description": "Authorization header to use on every scrape request.",
                    "properties": {
                      "credentials": {
                        "description": "Selects a key of a Secret in the namespace that contains the credentials for authentication.",
                        "properties": {
                          "key": {
                            "description": "The key of the secret to select from.  Must be a valid secret key.",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                            "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"
                      },
                      "type": {
                        "description": "Defines the authentication type. The value is case-insensitive. \n \"Basic\" is not a supported value. \n Default: \"Bearer\"",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "azureSDConfigs": {
                    "description": "AzureSDConfigs defines a list of Azure service discovery configurations.",
                    "items": {
                      "description": "AzureSDConfig allow retrieving scrape targets from Azure VMs. See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#azure_sd_config",
                      "properties": {
                        "authenticationMethod": {
                          "description": "# The authentication method, either OAuth or ManagedIdentity. See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview",
                          "enum": [
                            "OAuth",
                            "ManagedIdentity"
                          ],
                          "type": "string"
                        },
                        "clientID": {
                          "description": "Optional client ID. Only required with the OAuth authentication method.",
                          "type": "string"
                        },
                        "clientSecret": {
                          "description": "Optional client secret. Only required with the OAuth authentication method.",
                          "properties": {
                            "key": {
                              "description": "The key of the secret to select from.  Must be a valid secret key.",
                              "type": "string"
                            },
                            "name": {
                              "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                              "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"
                        },
                        "environment": {
                          "description": "The Azure environment.",
                          "type": "string"
                        },
                        "port": {
                          "description": "The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule.",
                          "type": "integer"
                        },
                        "refreshInterval": {
                          "description": "RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list.",
                          "pattern": "^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$",
                          "type": "string"
                        },
                        "resourceGroup": {
                          "description": "Optional resource group name. Limits discovery to this resource group.",
                          "type": "string"
                        },
                        "subscriptionID": {
                          "description": "The subscription ID. Always required.",
                          "minLength": 1,
                          "type": "string"
                        },
                        "tenantID": {
                          "description": "Optional tenant ID. Only required with the OAuth authentication method.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "subscriptionID"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "basicAuth": {
                    "description": "BasicAuth information to use on every scrape request.",
                    "properties": {
                      "password": {
                        "description": "`password` specifies a key of a Secret containing the password for authentication.",
                        "properties": {
                          "key": {
                            "description": "The key of the secret to select from.  Must be a valid secret key.",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                            "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"
                      },
                      "username": {
                        "description": "`username` specifies a key of a Secret containing the username for authentication.",
                        "properties": {
                          "key": {
                            "description": "The key of the secret to select from.  Must be a valid secret key.",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                            "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"
                      }
                    },
                    "type": "object"
                  },
                  "consulSDConfigs": {
                    "description": "ConsulSDConfigs defines a list of Consul service discovery configurations.",
                    "items": {
                      "description": "ConsulSDConfig defines a Consul service discovery configuration See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#consul_sd_config",
                      "properties": {
                        "allowStale": {
                          "description": "Allow stale Consul results (see https://www.consul.io/api/features/consistency.html). Will reduce load on Consul. If unset, Prometheus uses its default value.",
                          "type": "boolean"
                        },
                        "authorization": {
                          "description": "Authorization header configuration to authenticate against the Consul Server.",
                          "properties": {
                            "credentials": {
                              "description": "Selects a key of a Secret in the namespace that contains the credentials for authentication.",
                              "properties": {
                                "key": {
                                  "description": "The key of the secret to select from.  Must be a valid secret key.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                  "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"
                            },
                            "type": {
                              "description": "Defines the authentication type. The value is case-insensitive. \n \"Basic\" is not a supported value. \n Default: \"Bearer\"",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "basicAuth": {
                          "description": "BasicAuth information to authenticate against the Consul Server. More info: https://prometheus.io/docs/operating/configuration/#endpoints",
                          "properties": {
                            "password": {
                              "description": "`password` specifies a key of a Secret containing the password for authentication.",
                              "properties": {
                                "key": {
                                  "description": "The key of the secret to select from.  Must be a valid secret key.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                  "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"
                            },
                            "username": {
                              "description": "`username` specifies a key of a Secret containing the username for authentication.",
                              "properties": {
                                "key": {
                                  "description": "The key of the secret to select from.  Must be a valid secret key.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                  "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"
                            }
                          },
                          "type": "object"
                        },
                        "datacenter": {
                          "description": "Consul Datacenter name, if not provided it will use the local Consul Agent Datacenter.",
                          "type": "string"
                        },
                        "enableHTTP2": {
                          "description": "Whether to enable HTTP2. If unset, Prometheus uses its default value.",
                          "type": "boolean"
                        },
                        "followRedirects": {
                          "description": "Configure whether HTTP requests follow HTTP 3xx redirects. If unset, Prometheus uses its default value.",
                          "type": "boolean"
                        },
                        "namespace": {
                          "description": "Namespaces are only supported in Consul Enterprise.",
                          "type": "string"
                        },
                        "noProxy": {
                          "description": "Comma-separated string that can contain IPs, CIDR notation, domain names that should be excluded from proxying. IP and domain names can contain port numbers.",
                          "type": "string"
                        },
                        "nodeMeta": {
                          "additionalProperties": {
                            "type": "string"
                          },
                          "description": "Node metadata key/value pairs to filter nodes for a given service.",
                          "type": "object",
                          "x-kubernetes-map-type": "atomic"
                        },
                        "oauth2": {
                          "description": "Optional OAuth 2.0 configuration.",
                          "properties": {
                            "clientId": {
                              "description": "`clientId` specifies a key of a Secret or ConfigMap containing the OAuth2 client's ID.",
                              "properties": {
                                "configMap": {
                                  "description": "ConfigMap containing data to use for the targets.",
                                  "properties": {
                                    "key": {
                                      "description": "The key to select.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                      "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"
                                },
                                "secret": {
                                  "description": "Secret containing data to use for the targets.",
                                  "properties": {
                                    "key": {
                                      "description": "The key of the secret to select from.  Must be a valid secret key.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                      "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"
                                }
                              },
                              "type": "object"
                            },
                            "clientSecret": {
                              "description": "`clientSecret` specifies a key of a Secret containing the OAuth2 client's secret.",
                              "properties": {
                                "key": {
                                  "description": "The key of the secret to select from.  Must be a valid secret key.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                  "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"
                            },
                            "endpointParams": {
                              "additionalProperties": {
                                "type": "string"
                              },
                              "description": "`endpointParams` configures the HTTP parameters to append to the token URL.",
                              "type": "object"
                            },
                            "scopes": {
                              "description": "`scopes` defines the OAuth2 scopes used for the token request.",
                              "items": {
                                "type": "string"
                              },
                              "type": "array"
                            },
                            "tokenUrl": {
                              "description": "`tokenURL` configures the URL to fetch the token from.",
                              "minLength": 1,
                              "type": "string"
                            }
                          },
                          "required": [
                            "clientId",
                            "clientSecret",
                            "tokenUrl"
                          ],
                          "type": "object"
                        },
                        "partition": {
                          "description": "Admin Partitions are only supported in Consul Enterprise.",
                          "type": "string"
                        },
                        "proxyConnectHeader": {
                          "additionalProperties": {
                            "description": "SecretKeySelector selects a key of a Secret.",
                            "properties": {
                              "key": {
                                "description": "The key of the secret to select from.  Must be a valid secret key.",
                                "type": "string"
                              },
                              "name": {
                                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                "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"
                          },
                          "description": "Specifies headers to send to proxies during CONNECT requests.",
                          "type": "object",
                          "x-kubernetes-map-type": "atomic"
                        },
                        "proxyFromEnvironment": {
                          "description": "Use proxy URL indicated by environment variables (HTTP_PROXY, https_proxy, HTTPs_PROXY, https_proxy, and no_proxy) If unset, Prometheus uses its default value.",
                          "type": "boolean"
                        },
                        "proxyUrl": {
                          "description": "Optional proxy URL.",
                          "type": "string"
                        },
                        "refreshInterval": {
                          "description": "The time after which the provided names are refreshed. On large setup it might be a good idea to increase this value because the catalog will change all the time. If unset, Prometheus uses its default value.",
                          "pattern": "^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$",
                          "type": "string"
                        },
                        "scheme": {
                          "description": "HTTP Scheme default \"http\"",
                          "enum": [
                            "HTTP",
                            "HTTPS"
                          ],
                          "type": "string"
                        },
                        "server": {
                          "description": "A valid string consisting of a hostname or IP followed by an optional port number.",
                          "minLength": 1,
                          "type": "string"
                        },
                        "services": {
                          "description": "A list of services for which targets are retrieved. If omitted, all services are scraped.",
                          "items": {
                            "type": "string"
                          },
                          "type": "array",
                          "x-kubernetes-list-type": "atomic"
                        },
                        "tagSeparator": {
                          "description": "The string by which Consul tags are joined into the tag label. If unset, Prometheus uses its default value.",
                          "type": "string"
                        },
                        "tags": {
                          "description": "An optional list of tags used to filter nodes for a given service. Services must contain all tags in the list.",
                          "items": {
                            "type": "string"
                          },
                          "type": "array",
                          "x-kubernetes-list-type": "atomic"
                        },
                        "tlsConfig": {
                          "description": "TLS Config",
                          "properties": {
                            "ca": {
                              "description": "Certificate authority used when verifying server certificates.",
                              "properties": {
                                "configMap": {
                                  "description": "ConfigMap containing data to use for the targets.",
                                  "properties": {
                                    "key": {
                                      "description": "The key to select.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                      "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"
                                },
                                "secret": {
                                  "description": "Secret containing data to use for the targets.",
                                  "properties": {
                                    "key": {
                                      "description": "The key of the secret to select from.  Must be a valid secret key.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                      "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"
                                }
                              },
                              "type": "object"
                            },
                            "cert": {
                              "description": "Client certificate to present when doing client-authentication.",
                              "properties": {
                                "configMap": {
                                  "description": "ConfigMap containing data to use for the targets.",
                                  "properties": {
                                    "key": {
                                      "description": "The key to select.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                      "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"
                                },
                                "secret": {
                                  "description": "Secret containing data to use for the targets.",
                                  "properties": {
                                    "key": {
                                      "description": "The key of the secret to select from.  Must be a valid secret key.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                      "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"
                                }
                              },
                              "type": "object"
                            },
                            "insecureSkipVerify": {
                              "description": "Disable target certificate validation.",
                              "type": "boolean"
                            },
                            "keySecret": {
                              "description": "Secret containing the client key file for the targets.",
                              "properties": {
                                "key": {
                                  "description": "The key of the secret to select from.  Must be a valid secret key.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                  "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"
                            },
                            "serverName": {
                              "description": "Used to verify the hostname for the targets.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "tokenRef": {
                          "description": "Consul ACL TokenRef, if not provided it will use the ACL from the local Consul Agent.",
                          "properties": {
                            "key": {
                              "description": "The key of the secret to select from.  Must be a valid secret key.",
                              "type": "string"
                            },
                            "name": {
                              "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                              "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"
                        }
                      },
                      "required": [
                        "server"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "dnsSDConfigs": {
                    "description": "DNSSDConfigs defines a list of DNS service discovery configurations.",
                    "items": {
                      "description": "DNSSDConfig allows specifying a set of DNS domain names which are periodically queried to discover a list of targets. The DNS servers to be contacted are read from /etc/resolv.conf. See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#dns_sd_config",
                      "properties": {
                        "names": {
                          "description": "A list of DNS domain names to be queried.",
                          "items": {
                            "type": "string"
                          },
                          "minItems": 1,
                          "type": "array"
                        },
                        "port": {
                          "description": "The port number used if the query type is not SRV Ignored for SRV records",
                          "type": "integer"
                        },
                        "refreshInterval": {
                          "description": "RefreshInterval configures the time after which the provided names are refreshed. If not set, Prometheus uses its default value.",
                          "pattern": "^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$",
                          "type": "string"
                        },
                        "type": {
                          "description": "The type of DNS query to perform. One of SRV, A, AAAA or MX. If not set, Prometheus uses its default value.",
                          "enum": [
                            "SRV",
                            "A",
                            "AAAA",
                            "MX"
                          ],
                          "type": "string"
                        }
                      },
                      "required": [
                        "names"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "ec2SDConfigs": {
                    "description": "EC2SDConfigs defines a list of EC2 service discovery configurations.",
                    "items": {
                      "description": "EC2SDConfig allow retrieving scrape targets from AWS EC2 instances. The private IP address is used by default, but may be changed to the public IP address with relabeling. The IAM credentials used must have the ec2:DescribeInstances permission to discover scrape targets See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#ec2_sd_config",
                      "properties": {
                        "accessKey": {
                          "description": "AccessKey is the AWS API key.",
                          "properties": {
                            "key": {
                              "description": "The key of the secret to select from.  Must be a valid secret key.",
                              "type": "string"
                            },
                            "name": {
                              "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                              "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"
                        },
                        "filters": {
                          "description": "Filters can be used optionally to filter the instance list by other criteria. Available filter criteria can be found here: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html Filter API documentation: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Filter.html",
                          "items": {
                            "description": "EC2Filter is the configuration for filtering EC2 instances.",
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "values": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              }
                            },
                            "required": [
                              "name",
                              "values"
                            ],
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "port": {
                          "description": "The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule.",
                          "type": "integer"
                        },
                        "refreshInterval": {
                          "description": "RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list.",
                          "pattern": "^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$",
                          "type": "string"
                        },
                        "region": {
                          "description": "The AWS region",
                          "type": "string"
                        },
                        "roleARN": {
                          "description": "AWS Role ARN, an alternative to using AWS API keys.",
                          "type": "string"
                        },
                        "secretKey": {
                          "description": "SecretKey is the AWS API secret.",
                          "properties": {
                            "key": {
                              "description": "The key of the secret to select from.  Must be a valid secret key.",
                              "type": "string"
                            },
                            "name": {
                              "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                              "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"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "fileSDConfigs": {
                    "description": "FileSDConfigs defines a list of file service discovery configurations.",
                    "items": {
                      "description": "FileSDConfig defines a Prometheus file service discovery configuration See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#file_sd_config",
                      "properties": {
                        "files": {
                          "description": "List of files to be used for file discovery. Recommendation: use absolute paths. While relative paths work, the prometheus-operator project makes no guarantees about the working directory where the configuration file is stored. Files must be mounted using Prometheus.ConfigMaps or Prometheus.Secrets.",
                          "items": {
                            "description": "SDFile represents a file used for service discovery",
                            "pattern": "^[^*]*(\\*[^/]*)?\\.(json|yml|yaml|JSON|YML|YAML)$",
                            "type": "string"
                          },
                          "minItems": 1,
                          "type": "array"
                        },
                        "refreshInterval": {
                          "description": "RefreshInterval configures the refresh interval at which Prometheus will reload the content of the files.",
                          "pattern": "^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "files"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "gceSDConfigs": {
                    "description": "GCESDConfigs defines a list of GCE service discovery configurations.",
                    "items": {
                      "description": "GCESDConfig configures scrape targets from GCP GCE instances. The private IP address is used by default, but may be changed to the public IP address with relabeling. See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#gce_sd_config \n The GCE service discovery will load the Google Cloud credentials from the file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable. See https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform \n A pre-requisite for using GCESDConfig is that a Secret containing valid Google Cloud credentials is mounted into the Prometheus or PrometheusAgent pod via the `.spec.secrets` field and that the GOOGLE_APPLICATION_CREDENTIALS environment variable is set to /etc/prometheus/secrets/<secret-name>/<credentials-filename.json>.",
                      "properties": {
                        "filter": {
                          "description": "Filter can be used optionally to filter the instance list by other criteria Syntax of this filter is described in the filter query parameter section: https://cloud.google.com/compute/docs/reference/latest/instances/list",
                          "type": "string"
                        },
                        "port": {
                          "description": "The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule.",
                          "type": "integer"
                        },
                        "project": {
                          "description": "The Google Cloud Project ID",
                          "minLength": 1,
                          "type": "string"
                        },
                        "refreshInterval": {
                          "description": "RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list.",
                          "pattern": "^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$",
                          "type": "string"
                        },
                        "tagSeparator": {
                          "description": "The tag separator is used to separate the tags on concatenation",
                          "type": "string"
                        },
                        "zone": {
                          "description": "The zone of the scrape targets. If you need multiple zones use multiple GCESDConfigs.",
                          "minLength": 1,
                          "type": "string"
                        }
                      },
                      "required": [
                        "project",
                        "zone"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "honorLabels": {
                    "description": "HonorLabels chooses the metric's labels on collisions with target labels.",
                    "type": "boolean"
                  },
                  "honorTimestamps": {
                    "description": "HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data.",
                    "type": "boolean"
                  },
                  "httpSDConfigs": {
                    "description": "HTTPSDConfigs defines a list of HTTP service discovery configurations.",
                    "items": {
                      "description": "HTTPSDConfig defines a prometheus HTTP service discovery configuration See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#http_sd_config",
                      "properties": {
                        "authorization": {
                          "description": "Authorization header configuration to authenticate against the target HTTP endpoint.",
                          "properties": {
                            "credentials": {
                              "description": "Selects a key of a Secret in the namespace that contains the credentials for authentication.",
                              "properties": {
                                "key": {
                                  "description": "The key of the secret to select from.  Must be a valid secret key.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                  "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"
                            },
                            "type": {
                              "description": "Defines the authentication type. The value is case-insensitive. \n \"Basic\" is not a supported value. \n Default: \"Bearer\"",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "basicAuth": {
                          "description": "BasicAuth information to authenticate against the target HTTP endpoint. More info: https://prometheus.io/docs/operating/configuration/#endpoints",
                          "properties": {
                            "password": {
                              "description": "`password` specifies a key of a Secret containing the password for authentication.",
                              "properties": {
                                "key": {
                                  "description": "The key of the secret to select from.  Must be a valid secret key.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                  "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"
                            },
                            "username": {
                              "description": "`username` specifies a key of a Secret containing the username for authentication.",
                              "properties": {
                                "key": {
                                  "description": "The key of the secret to select from.  Must be a valid secret key.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                  "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"
                            }
                          },
                          "type": "object"
                        },
                        "refreshInterval": {
                          "description": "RefreshInterval configures the refresh interval at which Prometheus will re-query the endpoint to update the target list.",
                          "pattern": "^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$",
                          "type": "string"
                        },
                        "tlsConfig": {
                          "description": "TLS configuration applying to the target HTTP endpoint.",
                          "properties": {
                            "ca": {
                              "description": "Certificate authority used when verifying server certificates.",
                              "properties": {
                                "configMap": {
                                  "description": "ConfigMap containing data to use for the targets.",
                                  "properties": {
                                    "key": {
                                      "description": "The key to select.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                      "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"
                                },
                                "secret": {
                                  "description": "Secret containing data to use for the targets.",
                                  "properties": {
                                    "key": {
                                      "description": "The key of the secret to select from.  Must be a valid secret key.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                      "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"
                                }
                              },
                              "type": "object"
                            },
                            "cert": {
                              "description": "Client certificate to present when doing client-authentication.",
                              "properties": {
                                "configMap": {
                                  "description": "ConfigMap containing data to use for the targets.",
                                  "properties": {
                                    "key": {
                                      "description": "The key to select.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                      "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"
                                },
                                "secret": {
                                  "description": "Secret containing data to use for the targets.",
                                  "properties": {
                                    "key": {
                                      "description": "The key of the secret to select from.  Must be a valid secret key.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                      "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"
                                }
                              },
                              "type": "object"
                            },
                            "insecureSkipVerify": {
                              "description": "Disable target certificate validation.",
                              "type": "boolean"
                            },
                            "keySecret": {
                              "description": "Secret containing the client key file for the targets.",
                              "properties": {
                                "key": {
                                  "description": "The key of the secret to select from.  Must be a valid secret key.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                  "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"
                            },
                            "serverName": {
                              "description": "Used to verify the hostname for the targets.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "url": {
                          "description": "URL from which the targets are fetched.",
                          "minLength": 1,
                          "pattern": "^http(s)?://.+$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "keepDroppedTargets": {
                    "description": "Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit. \n It requires Prometheus >= v2.47.0.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "kubernetesSDConfigs": {
                    "description": "KubernetesSDConfigs defines a list of Kubernetes service discovery configurations.",
                    "items": {
                      "description": "KubernetesSDConfig allows retrieving scrape targets from Kubernetes' REST API. See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config",
                      "properties": {
                        "role": {
                          "description": "Role of the Kubernetes entities that should be discovered.",
                          "enum": [
                            "Node",
                            "node",
                            "Service",
                            "service",
                            "Pod",
                            "pod",
                            "Endpoints",
                            "endpoints",
                            "EndpointSlice",
                            "endpointslice",
                            "Ingress",
                            "ingress"
                          ],
                          "type": "string"
                        },
                        "selectors": {
                          "description": "Selector to select objects.",
                          "items": {
                            "description": "K8SSelectorConfig is Kubernetes Selector Config",
                            "properties": {
                              "field": {
                                "type": "string"
                              },
                              "label": {
                                "type": "string"
                              },
                              "role": {
                                "description": "Role is role of the service in Kubernetes.",
                                "enum": [
                                  "Node",
                                  "node",
                                  "Service",
                                  "service",
                                  "Pod",
                                  "pod",
                                  "Endpoints",
                                  "endpoints",
                                  "EndpointSlice",
                                  "endpointslice",
                                  "Ingress",
                                  "ingress"
                                ],
                                "type": "string"
                              }
                            },
                            "required": [
                              "role"
                            ],
                            "type": "object"
                          },
                          "type": "array",
                          "x-kubernetes-list-map-keys": [
                            "role"
                          ],
                          "x-kubernetes-list-type": "map"
                        }
                      },
                      "required": [
                        "role"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "labelLimit": {
                    "description": "Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "labelNameLengthLimit": {
                    "description": "Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "labelValueLengthLimit": {
                    "description": "Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "metricRelabelings": {
                    "description": "MetricRelabelConfigs to apply to samples before ingestion.",
                    "items": {
                      "description": "RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. \n More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config",
                      "properties": {
                        "action": {
                          "default": "replace",
                          "description": "Action to perform based on the regex matching. \n `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. \n Default: \"Replace\"",
                          "enum": [
                            "replace",
                            "Replace",
                            "keep",
                            "Keep",
                            "drop",
                            "Drop",
                            "hashmod",
                            "HashMod",
                            "labelmap",
                            "LabelMap",
                            "labeldrop",
                            "LabelDrop",
                            "labelkeep",
                            "LabelKeep",
                            "lowercase",
                            "Lowercase",
                            "uppercase",
                            "Uppercase",
                            "keepequal",
                            "KeepEqual",
                            "dropequal",
                            "DropEqual"
                          ],
                          "type": "string"
                        },
                        "modulus": {
                          "description": "Modulus to take of the hash of the source label values. \n Only applicable when the action is `HashMod`.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "regex": {
                          "description": "Regular expression against which the extracted value is matched.",
                          "type": "string"
                        },
                        "replacement": {
                          "description": "Replacement value against which a Replace action is performed if the regular expression matches. \n Regex capture groups are available.",
                          "type": "string"
                        },
                        "separator": {
                          "description": "Separator is the string between concatenated SourceLabels.",
                          "type": "string"
                        },
                        "sourceLabels": {
                          "description": "The source labels select values from existing labels. Their content is concatenated using the configured Separator and matched against the configured regular expression.",
                          "items": {
                            "description": "LabelName is a valid Prometheus label name which may only contain ASCII letters, numbers, as well as underscores.",
                            "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$",
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "targetLabel": {
                          "description": "Label to which the resulting string is written in a replacement. \n It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. \n Regex capture groups are available.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "metricsPath": {
                    "description": "MetricsPath HTTP path to scrape for metrics. If empty, Prometheus uses the default value (e.g. /metrics).",
                    "type": "string"
                  },
                  "params": {
                    "additionalProperties": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "description": "Optional HTTP URL parameters",
                    "type": "object",
                    "x-kubernetes-map-type": "atomic"
                  },
                  "relabelings": {
                    "description": "RelabelConfigs defines how to rewrite the target's labels before scraping. Prometheus Operator automatically adds relabelings for a few standard Kubernetes fields. The original scrape job's name is available via the `__tmp_prometheus_job_name` label. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config",
                    "items": {
                      "description": "RelabelConfig allows dynamic rewriting of the label set for targets, alerts, scraped samples and remote write samples. \n More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config",
                      "properties": {
                        "action": {
                          "default": "replace",
                          "description": "Action to perform based on the regex matching. \n `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. \n Default: \"Replace\"",
                          "enum": [
                            "replace",
                            "Replace",
                            "keep",
                            "Keep",
                            "drop",
                            "Drop",
                            "hashmod",
                            "HashMod",
                            "labelmap",
                            "LabelMap",
                            "labeldrop",
                            "LabelDrop",
                            "labelkeep",
                            "LabelKeep",
                            "lowercase",
                            "Lowercase",
                            "uppercase",
                            "Uppercase",
                            "keepequal",
                            "KeepEqual",
                            "dropequal",
                            "DropEqual"
                          ],
                          "type": "string"
                        },
                        "modulus": {
                          "description": "Modulus to take of the hash of the source label values. \n Only applicable when the action is `HashMod`.",
                          "format": "int64",
                          "type": "integer"
                        },
                        "regex": {
                          "description": "Regular expression against which the extracted value is matched.",
                          "type": "string"
                        },
                        "replacement": {
                          "description": "Replacement value against which a Replace action is performed if the regular expression matches. \n Regex capture groups are available.",
                          "type": "string"
                        },
                        "separator": {
                          "description": "Separator is the string between concatenated SourceLabels.",
                          "type": "string"
                        },
                        "sourceLabels": {
                          "description": "The source labels select values from existing labels. Their content is concatenated using the configured Separator and matched against the configured regular expression.",
                          "items": {
                            "description": "LabelName is a valid Prometheus label name which may only contain ASCII letters, numbers, as well as underscores.",
                            "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$",
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "targetLabel": {
                          "description": "Label to which the resulting string is written in a replacement. \n It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions. \n Regex capture groups are available.",
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "sampleLimit": {
                    "description": "SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "scheme": {
                    "description": "Configures the protocol scheme used for requests. If empty, Prometheus uses HTTP by default.",
                    "enum": [
                      "HTTP",
                      "HTTPS"
                    ],
                    "type": "string"
                  },
                  "scrapeInterval": {
                    "description": "ScrapeInterval is the interval between consecutive scrapes.",
                    "pattern": "^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$",
                    "type": "string"
                  },
                  "scrapeTimeout": {
                    "description": "ScrapeTimeout is the number of seconds to wait until a scrape request times out.",
                    "pattern": "^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$",
                    "type": "string"
                  },
                  "staticConfigs": {
                    "description": "StaticConfigs defines a list of static targets with a common label set.",
                    "items": {
                      "description": "StaticConfig defines a Prometheus static configuration. See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config",
                      "properties": {
                        "labels": {
                          "additionalProperties": {
                            "type": "string"
                          },
                          "description": "Labels assigned to all metrics scraped from the targets.",
                          "type": "object",
                          "x-kubernetes-map-type": "atomic"
                        },
                        "targets": {
                          "description": "List of targets for this static configuration.",
                          "items": {
                            "description": "Target represents a target for Prometheus to scrape",
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "targetLimit": {
                    "description": "TargetLimit defines a limit on the number of scraped targets that will be accepted.",
                    "format": "int64",
                    "type": "integer"
                  },
                  "tlsConfig": {
                    "description": "TLS configuration to use on every scrape request",
                    "properties": {
                      "ca": {
                        "description": "Certificate authority used when verifying server certificates.",
                        "properties": {
                          "configMap": {
                            "description": "ConfigMap containing data to use for the targets.",
                            "properties": {
                              "key": {
                                "description": "The key to select.",
                                "type": "string"
                              },
                              "name": {
                                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                "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"
                          },
                          "secret": {
                            "description": "Secret containing data to use for the targets.",
                            "properties": {
                              "key": {
                                "description": "The key of the secret to select from.  Must be a valid secret key.",
                                "type": "string"
                              },
                              "name": {
                                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                "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"
                          }
                        },
                        "type": "object"
                      },
                      "cert": {
                        "description": "Client certificate to present when doing client-authentication.",
                        "properties": {
                          "configMap": {
                            "description": "ConfigMap containing data to use for the targets.",
                            "properties": {
                              "key": {
                                "description": "The key to select.",
                                "type": "string"
                              },
                              "name": {
                                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                "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"
                          },
                          "secret": {
                            "description": "Secret containing data to use for the targets.",
                            "properties": {
                              "key": {
                                "description": "The key of the secret to select from.  Must be a valid secret key.",
                                "type": "string"
                              },
                              "name": {
                                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                                "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"
                          }
                        },
                        "type": "object"
                      },
                      "insecureSkipVerify": {
                        "description": "Disable target certificate validation.",
                        "type": "boolean"
                      },
                      "keySecret": {
                        "description": "Secret containing the client key file for the targets.",
                        "properties": {
                          "key": {
                            "description": "The key of the secret to select from.  Must be a valid secret key.",
                            "type": "string"
                          },
                          "name": {
                            "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
                            "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"
                      },
                      "serverName": {
                        "description": "Used to verify the hostname for the targets.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "trackTimestampsStaleness": {
                    "description": "TrackTimestampsStaleness whether Prometheus tracks staleness of the metrics that have an explicit timestamp present in scraped data. Has no effect if `honorTimestamps` is false. It requires Prometheus >= v2.48.0.",
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "spec"
            ],
            "type": "object"
          }
        },
        "served": true,
        "storage": true
      }
    ]
  }
}
