Source code for document.agent.catalog

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

__all__ = [
    'Agent_Catalog_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()
[docs] class Index: """Elasticsearch configuration.""" name = 'agent-catalog'