Source code for document.agent.catalog

from elasticsearch_dsl import Boolean
from elasticsearch_dsl import InnerDoc as Inner_Doc
from elasticsearch_dsl import Nested, Text

from document.base import Base_Document


class Agent_Catalog_Action_Config_Inner_Doc(Inner_Doc):
    """Agent action configuration."""

    cmd = Text(required=True)
    args = Text()
    daemon = Boolean()


class Agent_Catalog_Action_Inner_Doc(Inner_Doc):
    """Agent action."""

    config = Nested(Agent_Catalog_Action_Config_Inner_Doc, required=True)
    status = Text()
    description = Text()
    example = Text()


class Agent_Catalog_Parameter_Config_Inner_Doc(Inner_Doc):
    """Agent parameter configuration."""

    schema = Text(required=True)
    source = Text(required=True)
    path = Text(required=True)


class Agent_Catalog_Parameter_Inner_Doc(Inner_Doc):
    """Agent parameter."""

    id = Text(required=True)
    # possible values: integer, number, time-duration, string, choice, boolean, binary
    type = Text(required=True)
    config = Nested(Agent_Catalog_Parameter_Config_Inner_Doc, required=True)
    list = Boolean()
    values = Text()  # when type = choice
    description = Text()
    example = Text()


class Agent_Catalog_Resource_Config_Inner_Doc(Inner_Doc):
    """Agent resource configuration."""

    path = Text(required=True)


class Agent_Catalog_Resource_Inner_Doc(Inner_Doc):
    """Agent resource."""

    id = Text(required=True)
    config = Nested(Agent_Catalog_Resource_Config_Inner_Doc, required=True)
    description = Text()
    example = Text()


[docs]class Agent_Catalog_Document(Base_Document): """Represents an agent in the catalog.""" # id already defined by Elasticsearch actions = Nested(Agent_Catalog_Action_Inner_Doc) parameters = Nested(Agent_Catalog_Parameter_Inner_Doc) resources = Nested(Agent_Catalog_Resource_Inner_Doc) description = Text() deployment_source = Text()
[docs] class Index: """Elasticsearch configuration.""" name = 'agent-catalog'