Source code for document.ebpf_program.catalog

from document.base import Base_Document
from elasticsearch_dsl import Boolean, InnerDoc as Inner_Doc, Nested, Text

__all__ = [
    'eBPF_Program_Catalog_Document'
]


class eBPF_Program_Catalog_Config_Metric_Open_Metrics_Metadata_Label_Inner_Doc(Inner_Doc):
    """eBPF program open metrics label."""
    name = Text(required=True)
    value = Text(required=True)


class eBPF_Program_Catalog_Config_Metric_Open_Metrics_Metadata_Inner_Doc(Inner_Doc):
    """eBPF program open metrics metadata."""
    type = Text(required=True)
    help = Text()
    labels = Nested(eBPF_Program_Catalog_Config_Metric_Open_Metrics_Metadata_Label_Inner_Doc)


class eBPF_Program_Catalog_Config_Metric_Inner_Doc(Inner_Doc):
    """eBPF program metric data."""
    name = Text(required=True)
    map_name = Text() # FIXME required=True (map-name the correct name)
    open_metrics_metadata = Nested(
        eBPF_Program_Catalog_Config_Metric_Open_Metrics_Metadata_Inner_Doc)


class eBPF_Program_Catalog_Config_Inner_Doc(Inner_Doc):
    """eBPF program parameter configuration."""
    code = Text(required=True)
    metrics = Nested(eBPF_Program_Catalog_Config_Metric_Inner_Doc)


class eBPF_Program_Catalog_Parameter_Inner_Doc(Inner_Doc):
    """eBPF program parameter."""
    id = Text(required=True)
    # possible values: integer, number, string, choice, boolean
    type = Text(required=True)
    list = Boolean()
    values = Text()  # when type = choice
    description = Text()
    example = Text()


[docs]class eBPF_Program_Catalog_Document(Base_Document): """Represents an eBPF program in the catalog.""" # id already defined by Elasticsearch config = Nested(eBPF_Program_Catalog_Config_Inner_Doc, required=True) parameters = Nested(eBPF_Program_Catalog_Parameter_Inner_Doc) description = Text()
[docs] class Index: """Elasticsearch configuration.""" name = 'ebpf-program-catalog'