{
  "description": "VMServiceScrape is scrape configuration for endpoints associated with\nkubernetes service,\nit generates scrape configuration for vmagent based on selectors.\nresult config will scrape service endpoints",
  "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": "VMServiceScrapeSpec defines the desired state of VMServiceScrape",
      "properties": {
        "attach_metadata": {
          "description": "AttachMetadata configures metadata attaching from service discovery",
          "properties": {
            "node": {
              "description": "Node instructs vmagent to add node specific metadata from service discovery\nValid for roles: pod, endpoints, endpointslice.",
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "discoveryRole": {
          "description": "DiscoveryRole - defines kubernetes_sd role for objects discovery.\nby default, its endpoints.\ncan be changed to service or endpointslices.\nnote, that with service setting, you have to use port: \"name\"\nand cannot use targetPort for endpoints.",
          "enum": [
            "endpoints",
            "service",
            "endpointslices"
          ],
          "type": "string"
        },
        "endpoints": {
          "description": "A list of endpoints allowed as part of this ServiceScrape.",
          "items": {
            "description": "Endpoint defines a scrapeable endpoint serving metrics.",
            "properties": {
              "attach_metadata": {
                "description": "AttachMetadata configures metadata attaching from service discovery",
                "properties": {
                  "node": {
                    "description": "Node instructs vmagent to add node specific metadata from service discovery\nValid for roles: pod, endpoints, endpointslice.",
                    "type": "boolean"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "authorization": {
                "description": "Authorization with http header Authorization",
                "properties": {
                  "credentials": {
                    "description": "Reference to the secret with value for authorization",
                    "properties": {
                      "key": {
                        "description": "The key of the secret to select from.  Must be a valid secret key.",
                        "type": "string"
                      },
                      "name": {
                        "default": "",
                        "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                        "type": "string"
                      },
                      "optional": {
                        "description": "Specify whether the Secret or its key must be defined",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "key"
                    ],
                    "type": "object",
                    "x-kubernetes-map-type": "atomic",
                    "additionalProperties": false
                  },
                  "credentialsFile": {
                    "description": "File with value for authorization",
                    "type": "string"
                  },
                  "type": {
                    "description": "Type of authorization, default to bearer",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "basicAuth": {
                "description": "BasicAuth allow an endpoint to authenticate over basic authentication",
                "properties": {
                  "password": {
                    "description": "Password defines reference for secret with password value\nThe secret needs to be in the same namespace as scrape object",
                    "properties": {
                      "key": {
                        "description": "The key of the secret to select from.  Must be a valid secret key.",
                        "type": "string"
                      },
                      "name": {
                        "default": "",
                        "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                        "type": "string"
                      },
                      "optional": {
                        "description": "Specify whether the Secret or its key must be defined",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "key"
                    ],
                    "type": "object",
                    "x-kubernetes-map-type": "atomic",
                    "additionalProperties": false
                  },
                  "password_file": {
                    "description": "PasswordFile defines path to password file at disk\nmust be pre-mounted",
                    "type": "string"
                  },
                  "username": {
                    "description": "Username defines reference for secret with username value\nThe secret needs to be in the same namespace as scrape object",
                    "properties": {
                      "key": {
                        "description": "The key of the secret to select from.  Must be a valid secret key.",
                        "type": "string"
                      },
                      "name": {
                        "default": "",
                        "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                        "type": "string"
                      },
                      "optional": {
                        "description": "Specify whether the Secret or its key must be defined",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "key"
                    ],
                    "type": "object",
                    "x-kubernetes-map-type": "atomic",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "bearerTokenFile": {
                "description": "File to read bearer token for scraping targets.",
                "type": "string"
              },
              "bearerTokenSecret": {
                "description": "Secret to mount to read bearer token for scraping targets. The secret\nneeds to be in the same namespace as the scrape object and accessible by\nthe victoria-metrics operator.",
                "nullable": true,
                "properties": {
                  "key": {
                    "description": "The key of the secret to select from.  Must be a valid secret key.",
                    "type": "string"
                  },
                  "name": {
                    "default": "",
                    "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                    "type": "string"
                  },
                  "optional": {
                    "description": "Specify whether the Secret or its key must be defined",
                    "type": "boolean"
                  }
                },
                "required": [
                  "key"
                ],
                "type": "object",
                "x-kubernetes-map-type": "atomic",
                "additionalProperties": false
              },
              "follow_redirects": {
                "description": "FollowRedirects controls redirects for scraping.",
                "type": "boolean"
              },
              "honorLabels": {
                "description": "HonorLabels chooses the metric's labels on collisions with target labels.",
                "type": "boolean"
              },
              "honorTimestamps": {
                "description": "HonorTimestamps controls whether vmagent respects the timestamps present in scraped data.",
                "type": "boolean"
              },
              "interval": {
                "description": "Interval at which metrics should be scraped",
                "type": "string"
              },
              "max_scrape_size": {
                "description": "MaxScrapeSize defines a maximum size of scraped data for a job",
                "type": "string"
              },
              "metricRelabelConfigs": {
                "description": "MetricRelabelConfigs to apply to samples after scrapping.",
                "items": {
                  "description": "RelabelConfig allows dynamic rewriting of the label set\nMore info: https://docs.victoriametrics.com/victoriametrics/#relabeling",
                  "properties": {
                    "action": {
                      "description": "Action to perform based on regex matching. Default is 'replace'",
                      "type": "string"
                    },
                    "if": {
                      "description": "If represents metricsQL match expression (or list of expressions): '{__name__=~\"foo_.*\"}'",
                      "x-kubernetes-preserve-unknown-fields": true
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels is used together with Match for `action: graphite`",
                      "type": "object"
                    },
                    "match": {
                      "description": "Match is used together with Labels for `action: graphite`",
                      "type": "string"
                    },
                    "modulus": {
                      "description": "Modulus to take of the hash of the source label values.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "regex": {
                      "description": "Regular expression against which the extracted value is matched. Default is '(.*)'\nvictoriaMetrics supports multiline regex joined with |\nhttps://docs.victoriametrics.com/victoriametrics/vmagent/#relabeling-enhancements",
                      "x-kubernetes-preserve-unknown-fields": true
                    },
                    "replacement": {
                      "description": "Replacement value against which a regex replace is performed if the\nregular expression matches. Regex capture groups are available. Default is '$1'",
                      "type": "string"
                    },
                    "separator": {
                      "description": "Separator placed between concatenated source label values. default is ';'.",
                      "type": "string"
                    },
                    "source_labels": {
                      "description": "UnderScoreSourceLabels - additional form of source labels source_labels\nfor compatibility with original relabel config.\nif set  both sourceLabels and source_labels, sourceLabels has priority.\nfor details https://github.com/VictoriaMetrics/operator/issues/131",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "sourceLabels": {
                      "description": "The source labels select values from existing labels. Their content is concatenated\nusing the configured separator and matched against the configured regular expression\nfor the replace, keep, and drop actions.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "target_label": {
                      "description": "UnderScoreTargetLabel - additional form of target label - target_label\nfor compatibility with original relabel config.\nif set  both targetLabel and target_label, targetLabel has priority.\nfor details https://github.com/VictoriaMetrics/operator/issues/131",
                      "type": "string"
                    },
                    "targetLabel": {
                      "description": "Label to which the resulting value is written in a replace action.\nIt is mandatory for replace actions. Regex capture groups are available.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "oauth2": {
                "description": "OAuth2 defines auth configuration",
                "properties": {
                  "client_id": {
                    "description": "The secret or configmap containing the OAuth2 client id",
                    "properties": {
                      "configMap": {
                        "description": "ConfigMap containing data to use for the targets.",
                        "properties": {
                          "key": {
                            "description": "The key to select.",
                            "type": "string"
                          },
                          "name": {
                            "default": "",
                            "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                            "type": "string"
                          },
                          "optional": {
                            "description": "Specify whether the ConfigMap or its key must be defined",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "key"
                        ],
                        "type": "object",
                        "x-kubernetes-map-type": "atomic",
                        "additionalProperties": false
                      },
                      "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": {
                            "default": "",
                            "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                            "type": "string"
                          },
                          "optional": {
                            "description": "Specify whether the Secret or its key must be defined",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "key"
                        ],
                        "type": "object",
                        "x-kubernetes-map-type": "atomic",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "client_secret": {
                    "description": "The secret containing the OAuth2 client secret",
                    "properties": {
                      "key": {
                        "description": "The key of the secret to select from.  Must be a valid secret key.",
                        "type": "string"
                      },
                      "name": {
                        "default": "",
                        "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                        "type": "string"
                      },
                      "optional": {
                        "description": "Specify whether the Secret or its key must be defined",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "key"
                    ],
                    "type": "object",
                    "x-kubernetes-map-type": "atomic",
                    "additionalProperties": false
                  },
                  "client_secret_file": {
                    "description": "ClientSecretFile defines path for client secret file.",
                    "type": "string"
                  },
                  "endpoint_params": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Parameters to append to the token URL",
                    "type": "object"
                  },
                  "proxy_url": {
                    "description": "The proxy URL for token_url connection\n( available from v0.55.0).\nIs only supported by Scrape objects family",
                    "type": "string"
                  },
                  "scopes": {
                    "description": "OAuth2 scopes used for the token request",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "tls_config": {
                    "description": "TLSConfig for token_url connection\n( available from v0.55.0).\nIs only supported by Scrape objects family",
                    "x-kubernetes-preserve-unknown-fields": true
                  },
                  "token_url": {
                    "description": "The URL to fetch the token from",
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "client_id",
                  "token_url"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "params": {
                "additionalProperties": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "description": "Optional HTTP URL parameters",
                "type": "object"
              },
              "path": {
                "description": "HTTP path to scrape for metrics.",
                "type": "string"
              },
              "port": {
                "description": "Name of the port exposed at Service.",
                "type": "string"
              },
              "proxyURL": {
                "description": "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.",
                "type": "string"
              },
              "relabelConfigs": {
                "description": "RelabelConfigs to apply to samples during service discovery.",
                "items": {
                  "description": "RelabelConfig allows dynamic rewriting of the label set\nMore info: https://docs.victoriametrics.com/victoriametrics/#relabeling",
                  "properties": {
                    "action": {
                      "description": "Action to perform based on regex matching. Default is 'replace'",
                      "type": "string"
                    },
                    "if": {
                      "description": "If represents metricsQL match expression (or list of expressions): '{__name__=~\"foo_.*\"}'",
                      "x-kubernetes-preserve-unknown-fields": true
                    },
                    "labels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "Labels is used together with Match for `action: graphite`",
                      "type": "object"
                    },
                    "match": {
                      "description": "Match is used together with Labels for `action: graphite`",
                      "type": "string"
                    },
                    "modulus": {
                      "description": "Modulus to take of the hash of the source label values.",
                      "format": "int64",
                      "type": "integer"
                    },
                    "regex": {
                      "description": "Regular expression against which the extracted value is matched. Default is '(.*)'\nvictoriaMetrics supports multiline regex joined with |\nhttps://docs.victoriametrics.com/victoriametrics/vmagent/#relabeling-enhancements",
                      "x-kubernetes-preserve-unknown-fields": true
                    },
                    "replacement": {
                      "description": "Replacement value against which a regex replace is performed if the\nregular expression matches. Regex capture groups are available. Default is '$1'",
                      "type": "string"
                    },
                    "separator": {
                      "description": "Separator placed between concatenated source label values. default is ';'.",
                      "type": "string"
                    },
                    "source_labels": {
                      "description": "UnderScoreSourceLabels - additional form of source labels source_labels\nfor compatibility with original relabel config.\nif set  both sourceLabels and source_labels, sourceLabels has priority.\nfor details https://github.com/VictoriaMetrics/operator/issues/131",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "sourceLabels": {
                      "description": "The source labels select values from existing labels. Their content is concatenated\nusing the configured separator and matched against the configured regular expression\nfor the replace, keep, and drop actions.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "target_label": {
                      "description": "UnderScoreTargetLabel - additional form of target label - target_label\nfor compatibility with original relabel config.\nif set  both targetLabel and target_label, targetLabel has priority.\nfor details https://github.com/VictoriaMetrics/operator/issues/131",
                      "type": "string"
                    },
                    "targetLabel": {
                      "description": "Label to which the resulting value is written in a replace action.\nIt is mandatory for replace actions. Regex capture groups are available.",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "type": "array"
              },
              "sampleLimit": {
                "description": "SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.",
                "type": "integer"
              },
              "scheme": {
                "description": "HTTP scheme to use for scraping.",
                "enum": [
                  "http",
                  "https",
                  "HTTPS",
                  "HTTP"
                ],
                "type": "string"
              },
              "scrape_interval": {
                "description": "ScrapeInterval is the same as Interval and has priority over it.\none of scrape_interval or interval can be used",
                "type": "string"
              },
              "scrapeTimeout": {
                "description": "Timeout after which the scrape is ended",
                "type": "string"
              },
              "seriesLimit": {
                "description": "SeriesLimit defines per-scrape limit on number of unique time series\na single target can expose during all the scrapes on the time window of 24h.",
                "type": "integer"
              },
              "targetPort": {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ],
                "description": "TargetPort\nName or number of the pod port this endpoint refers to. Mutually exclusive with port.",
                "x-kubernetes-int-or-string": true
              },
              "tlsConfig": {
                "description": "TLSConfig configuration to use when scraping the endpoint",
                "properties": {
                  "ca": {
                    "description": "Struct containing the CA cert to use for the targets.",
                    "properties": {
                      "configMap": {
                        "description": "ConfigMap containing data to use for the targets.",
                        "properties": {
                          "key": {
                            "description": "The key to select.",
                            "type": "string"
                          },
                          "name": {
                            "default": "",
                            "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                            "type": "string"
                          },
                          "optional": {
                            "description": "Specify whether the ConfigMap or its key must be defined",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "key"
                        ],
                        "type": "object",
                        "x-kubernetes-map-type": "atomic",
                        "additionalProperties": false
                      },
                      "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": {
                            "default": "",
                            "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                            "type": "string"
                          },
                          "optional": {
                            "description": "Specify whether the Secret or its key must be defined",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "key"
                        ],
                        "type": "object",
                        "x-kubernetes-map-type": "atomic",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "caFile": {
                    "description": "Path to the CA cert in the container to use for the targets.",
                    "type": "string"
                  },
                  "cert": {
                    "description": "Struct containing the client cert file for the targets.",
                    "properties": {
                      "configMap": {
                        "description": "ConfigMap containing data to use for the targets.",
                        "properties": {
                          "key": {
                            "description": "The key to select.",
                            "type": "string"
                          },
                          "name": {
                            "default": "",
                            "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                            "type": "string"
                          },
                          "optional": {
                            "description": "Specify whether the ConfigMap or its key must be defined",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "key"
                        ],
                        "type": "object",
                        "x-kubernetes-map-type": "atomic",
                        "additionalProperties": false
                      },
                      "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": {
                            "default": "",
                            "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                            "type": "string"
                          },
                          "optional": {
                            "description": "Specify whether the Secret or its key must be defined",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "key"
                        ],
                        "type": "object",
                        "x-kubernetes-map-type": "atomic",
                        "additionalProperties": false
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "certFile": {
                    "description": "Path to the client cert file in the container for the targets.",
                    "type": "string"
                  },
                  "insecureSkipVerify": {
                    "description": "Disable target certificate validation.",
                    "type": "boolean"
                  },
                  "keyFile": {
                    "description": "Path to the client key file in the container for the targets.",
                    "type": "string"
                  },
                  "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": {
                        "default": "",
                        "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                        "type": "string"
                      },
                      "optional": {
                        "description": "Specify whether the Secret or its key must be defined",
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "key"
                    ],
                    "type": "object",
                    "x-kubernetes-map-type": "atomic",
                    "additionalProperties": false
                  },
                  "serverName": {
                    "description": "Used to verify the hostname for the targets.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "vm_scrape_params": {
                "description": "VMScrapeParams defines VictoriaMetrics specific scrape parameters",
                "properties": {
                  "disable_compression": {
                    "description": "DisableCompression",
                    "type": "boolean"
                  },
                  "disable_keep_alive": {
                    "description": "disable_keepalive allows disabling HTTP keep-alive when scraping targets.\nBy default, HTTP keep-alive is enabled, so TCP connections to scrape targets\ncould be reused.\nSee https://docs.victoriametrics.com/victoriametrics/vmagent/#scrape_config-enhancements",
                    "type": "boolean"
                  },
                  "headers": {
                    "description": "Headers allows sending custom headers to scrape targets\nmust be in of semicolon separated header with it's value\neg:\nheaderName: headerValue\nvmagent supports since 1.79.0 version",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "no_stale_markers": {
                    "type": "boolean"
                  },
                  "proxy_client_config": {
                    "description": "ProxyClientConfig configures proxy auth settings for scraping\nSee feature description https://docs.victoriametrics.com/victoriametrics/vmagent/#scraping-targets-via-a-proxy",
                    "properties": {
                      "basic_auth": {
                        "description": "BasicAuth allow an endpoint to authenticate over basic authentication",
                        "properties": {
                          "password": {
                            "description": "Password defines reference for secret with password value\nThe secret needs to be in the same namespace as scrape object",
                            "properties": {
                              "key": {
                                "description": "The key of the secret to select from.  Must be a valid secret key.",
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                "type": "string"
                              },
                              "optional": {
                                "description": "Specify whether the Secret or its key must be defined",
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          },
                          "password_file": {
                            "description": "PasswordFile defines path to password file at disk\nmust be pre-mounted",
                            "type": "string"
                          },
                          "username": {
                            "description": "Username defines reference for secret with username value\nThe secret needs to be in the same namespace as scrape object",
                            "properties": {
                              "key": {
                                "description": "The key of the secret to select from.  Must be a valid secret key.",
                                "type": "string"
                              },
                              "name": {
                                "default": "",
                                "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                "type": "string"
                              },
                              "optional": {
                                "description": "Specify whether the Secret or its key must be defined",
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "key"
                            ],
                            "type": "object",
                            "x-kubernetes-map-type": "atomic",
                            "additionalProperties": false
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "bearer_token": {
                        "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": {
                            "default": "",
                            "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                            "type": "string"
                          },
                          "optional": {
                            "description": "Specify whether the Secret or its key must be defined",
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "key"
                        ],
                        "type": "object",
                        "x-kubernetes-map-type": "atomic",
                        "additionalProperties": false
                      },
                      "bearer_token_file": {
                        "type": "string"
                      },
                      "tls_config": {
                        "x-kubernetes-preserve-unknown-fields": true
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "scrape_align_interval": {
                    "type": "string"
                  },
                  "scrape_offset": {
                    "type": "string"
                  },
                  "stream_parse": {
                    "type": "boolean"
                  }
                },
                "type": "object",
                "additionalProperties": false
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "jobLabel": {
          "description": "The label to use to retrieve the job name from.",
          "type": "string"
        },
        "namespaceSelector": {
          "description": "Selector to select which namespaces the Endpoints objects are discovered from.",
          "properties": {
            "any": {
              "description": "Boolean describing whether all namespaces are selected in contrast to a\nlist restricting them.",
              "type": "boolean"
            },
            "matchNames": {
              "description": "List of namespace names.",
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "podTargetLabels": {
          "description": "PodTargetLabels transfers labels on the Kubernetes Pod onto the target.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "sampleLimit": {
          "description": "SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.",
          "type": "integer"
        },
        "scrapeClass": {
          "description": "ScrapeClass defined scrape class to apply",
          "type": "string"
        },
        "selector": {
          "description": "Selector to select Endpoints objects by corresponding Service labels.",
          "properties": {
            "matchExpressions": {
              "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
              "items": {
                "description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.",
                "properties": {
                  "key": {
                    "description": "key is the label key that the selector applies to.",
                    "type": "string"
                  },
                  "operator": {
                    "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.",
                    "type": "string"
                  },
                  "values": {
                    "description": "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array",
                    "x-kubernetes-list-type": "atomic"
                  }
                },
                "required": [
                  "key",
                  "operator"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array",
              "x-kubernetes-list-type": "atomic"
            },
            "matchLabels": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.",
              "type": "object"
            }
          },
          "type": "object",
          "x-kubernetes-map-type": "atomic",
          "additionalProperties": false
        },
        "seriesLimit": {
          "description": "SeriesLimit defines per-scrape limit on number of unique time series\na single target can expose during all the scrapes on the time window of 24h.",
          "type": "integer"
        },
        "targetLabels": {
          "description": "TargetLabels transfers labels on the Kubernetes Service onto the target.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "endpoints"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "ScrapeObjectStatus defines the observed state of ScrapeObjects",
      "properties": {
        "conditions": {
          "description": "Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"",
          "items": {
            "description": "Condition defines status condition of the resource",
            "properties": {
              "lastTransitionTime": {
                "description": "lastTransitionTime is the last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "lastUpdateTime": {
                "description": "LastUpdateTime is the last time of given type update.\nThis value is used for status TTL update and removal",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "message is a human readable message indicating details about the transition.\nThis may be an empty string.",
                "maxLength": 32768,
                "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",
                "minimum": 0,
                "type": "integer"
              },
              "reason": {
                "description": "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.",
                "maxLength": 1024,
                "minLength": 1,
                "type": "string"
              },
              "status": {
                "description": "status of the condition, one of True, False, Unknown.",
                "enum": [
                  "True",
                  "False",
                  "Unknown"
                ],
                "type": "string"
              },
              "type": {
                "description": "Type of condition in CamelCase or in name.namespace.resource.victoriametrics.com/CamelCase.",
                "maxLength": 316,
                "type": "string"
              }
            },
            "required": [
              "lastTransitionTime",
              "lastUpdateTime",
              "reason",
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array",
          "x-kubernetes-list-map-keys": [
            "type"
          ],
          "x-kubernetes-list-type": "map"
        },
        "observedGeneration": {
          "description": "ObservedGeneration defines current generation picked by operator for the\nreconcile",
          "format": "int64",
          "type": "integer"
        },
        "reason": {
          "description": "Reason defines human readable error reason",
          "type": "string"
        },
        "updateStatus": {
          "description": "UpdateStatus defines a status for update rollout",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
