from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class ModelData(_message.Message):
    __slots__ = ("name", "version", "package_definition", "agent_classes", "metadata")
    class JavaPackages(_message.Message):
        __slots__ = ("agents", "data_items", "portables")
        AGENTS_FIELD_NUMBER: _ClassVar[int]
        DATA_ITEMS_FIELD_NUMBER: _ClassVar[int]
        PORTABLES_FIELD_NUMBER: _ClassVar[int]
        agents: _containers.RepeatedScalarFieldContainer[str]
        data_items: _containers.RepeatedScalarFieldContainer[str]
        portables: _containers.RepeatedScalarFieldContainer[str]
        def __init__(self, agents: _Optional[_Iterable[str]] = ..., data_items: _Optional[_Iterable[str]] = ..., portables: _Optional[_Iterable[str]] = ...) -> None: ...
    class AgentClass(_message.Message):
        __slots__ = ("name_alias", "import_identifier", "language", "metadata", "attributes", "products", "outputs")
        class ImplementationLanguage(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
            __slots__ = ()
            LANGUAGE_UNSPECIFIED: _ClassVar[ModelData.AgentClass.ImplementationLanguage]
            JAVA: _ClassVar[ModelData.AgentClass.ImplementationLanguage]
            PYTHON: _ClassVar[ModelData.AgentClass.ImplementationLanguage]
        LANGUAGE_UNSPECIFIED: ModelData.AgentClass.ImplementationLanguage
        JAVA: ModelData.AgentClass.ImplementationLanguage
        PYTHON: ModelData.AgentClass.ImplementationLanguage
        class Attribute(_message.Message):
            __slots__ = ("name", "type", "is_mandatory", "is_list", "metadata", "values", "default", "nested_attributes")
            class AttributeType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
                __slots__ = ()
                ATTRIBUTE_TYPE_UNSPECIFIED: _ClassVar[ModelData.AgentClass.Attribute.AttributeType]
                BOOLEAN: _ClassVar[ModelData.AgentClass.Attribute.AttributeType]
                INTEGER: _ClassVar[ModelData.AgentClass.Attribute.AttributeType]
                LONG: _ClassVar[ModelData.AgentClass.Attribute.AttributeType]
                TIME_STAMP: _ClassVar[ModelData.AgentClass.Attribute.AttributeType]
                DOUBLE: _ClassVar[ModelData.AgentClass.Attribute.AttributeType]
                STRING: _ClassVar[ModelData.AgentClass.Attribute.AttributeType]
                STRING_SET: _ClassVar[ModelData.AgentClass.Attribute.AttributeType]
                ENUM: _ClassVar[ModelData.AgentClass.Attribute.AttributeType]
                TIME_SERIES: _ClassVar[ModelData.AgentClass.Attribute.AttributeType]
                BLOCK: _ClassVar[ModelData.AgentClass.Attribute.AttributeType]
            ATTRIBUTE_TYPE_UNSPECIFIED: ModelData.AgentClass.Attribute.AttributeType
            BOOLEAN: ModelData.AgentClass.Attribute.AttributeType
            INTEGER: ModelData.AgentClass.Attribute.AttributeType
            LONG: ModelData.AgentClass.Attribute.AttributeType
            TIME_STAMP: ModelData.AgentClass.Attribute.AttributeType
            DOUBLE: ModelData.AgentClass.Attribute.AttributeType
            STRING: ModelData.AgentClass.Attribute.AttributeType
            STRING_SET: ModelData.AgentClass.Attribute.AttributeType
            ENUM: ModelData.AgentClass.Attribute.AttributeType
            TIME_SERIES: ModelData.AgentClass.Attribute.AttributeType
            BLOCK: ModelData.AgentClass.Attribute.AttributeType
            class ValueSet(_message.Message):
                __slots__ = ("metadata", "bool_values", "int_values", "long_values", "float_values", "double_values", "string_values", "byte_values")
                METADATA_FIELD_NUMBER: _ClassVar[int]
                BOOL_VALUES_FIELD_NUMBER: _ClassVar[int]
                INT_VALUES_FIELD_NUMBER: _ClassVar[int]
                LONG_VALUES_FIELD_NUMBER: _ClassVar[int]
                FLOAT_VALUES_FIELD_NUMBER: _ClassVar[int]
                DOUBLE_VALUES_FIELD_NUMBER: _ClassVar[int]
                STRING_VALUES_FIELD_NUMBER: _ClassVar[int]
                BYTE_VALUES_FIELD_NUMBER: _ClassVar[int]
                metadata: str
                bool_values: _containers.RepeatedScalarFieldContainer[bool]
                int_values: _containers.RepeatedScalarFieldContainer[int]
                long_values: _containers.RepeatedScalarFieldContainer[int]
                float_values: _containers.RepeatedScalarFieldContainer[float]
                double_values: _containers.RepeatedScalarFieldContainer[float]
                string_values: _containers.RepeatedScalarFieldContainer[str]
                byte_values: _containers.RepeatedScalarFieldContainer[bytes]
                def __init__(self, metadata: _Optional[str] = ..., bool_values: _Optional[_Iterable[bool]] = ..., int_values: _Optional[_Iterable[int]] = ..., long_values: _Optional[_Iterable[int]] = ..., float_values: _Optional[_Iterable[float]] = ..., double_values: _Optional[_Iterable[float]] = ..., string_values: _Optional[_Iterable[str]] = ..., byte_values: _Optional[_Iterable[bytes]] = ...) -> None: ...
            NAME_FIELD_NUMBER: _ClassVar[int]
            TYPE_FIELD_NUMBER: _ClassVar[int]
            IS_MANDATORY_FIELD_NUMBER: _ClassVar[int]
            IS_LIST_FIELD_NUMBER: _ClassVar[int]
            METADATA_FIELD_NUMBER: _ClassVar[int]
            VALUES_FIELD_NUMBER: _ClassVar[int]
            DEFAULT_FIELD_NUMBER: _ClassVar[int]
            NESTED_ATTRIBUTES_FIELD_NUMBER: _ClassVar[int]
            name: str
            type: ModelData.AgentClass.Attribute.AttributeType
            is_mandatory: bool
            is_list: bool
            metadata: str
            values: _containers.RepeatedCompositeFieldContainer[ModelData.AgentClass.Attribute.ValueSet]
            default: ModelData.AgentClass.Attribute.ValueSet
            nested_attributes: _containers.RepeatedCompositeFieldContainer[ModelData.AgentClass.Attribute]
            def __init__(self, name: _Optional[str] = ..., type: _Optional[_Union[ModelData.AgentClass.Attribute.AttributeType, str]] = ..., is_mandatory: bool = ..., is_list: bool = ..., metadata: _Optional[str] = ..., values: _Optional[_Iterable[_Union[ModelData.AgentClass.Attribute.ValueSet, _Mapping]]] = ..., default: _Optional[_Union[ModelData.AgentClass.Attribute.ValueSet, _Mapping]] = ..., nested_attributes: _Optional[_Iterable[_Union[ModelData.AgentClass.Attribute, _Mapping]]] = ...) -> None: ...
        class Product(_message.Message):
            __slots__ = ("name", "metadata")
            NAME_FIELD_NUMBER: _ClassVar[int]
            METADATA_FIELD_NUMBER: _ClassVar[int]
            name: str
            metadata: str
            def __init__(self, name: _Optional[str] = ..., metadata: _Optional[str] = ...) -> None: ...
        class Output(_message.Message):
            __slots__ = ("name", "metadata")
            NAME_FIELD_NUMBER: _ClassVar[int]
            METADATA_FIELD_NUMBER: _ClassVar[int]
            name: str
            metadata: str
            def __init__(self, name: _Optional[str] = ..., metadata: _Optional[str] = ...) -> None: ...
        NAME_ALIAS_FIELD_NUMBER: _ClassVar[int]
        IMPORT_IDENTIFIER_FIELD_NUMBER: _ClassVar[int]
        LANGUAGE_FIELD_NUMBER: _ClassVar[int]
        METADATA_FIELD_NUMBER: _ClassVar[int]
        ATTRIBUTES_FIELD_NUMBER: _ClassVar[int]
        PRODUCTS_FIELD_NUMBER: _ClassVar[int]
        OUTPUTS_FIELD_NUMBER: _ClassVar[int]
        name_alias: str
        import_identifier: str
        language: ModelData.AgentClass.ImplementationLanguage
        metadata: str
        attributes: _containers.RepeatedCompositeFieldContainer[ModelData.AgentClass.Attribute]
        products: _containers.RepeatedCompositeFieldContainer[ModelData.AgentClass.Product]
        outputs: _containers.RepeatedCompositeFieldContainer[ModelData.AgentClass.Output]
        def __init__(self, name_alias: _Optional[str] = ..., import_identifier: _Optional[str] = ..., language: _Optional[_Union[ModelData.AgentClass.ImplementationLanguage, str]] = ..., metadata: _Optional[str] = ..., attributes: _Optional[_Iterable[_Union[ModelData.AgentClass.Attribute, _Mapping]]] = ..., products: _Optional[_Iterable[_Union[ModelData.AgentClass.Product, _Mapping]]] = ..., outputs: _Optional[_Iterable[_Union[ModelData.AgentClass.Output, _Mapping]]] = ...) -> None: ...
    NAME_FIELD_NUMBER: _ClassVar[int]
    VERSION_FIELD_NUMBER: _ClassVar[int]
    PACKAGE_DEFINITION_FIELD_NUMBER: _ClassVar[int]
    AGENT_CLASSES_FIELD_NUMBER: _ClassVar[int]
    METADATA_FIELD_NUMBER: _ClassVar[int]
    name: str
    version: str
    package_definition: ModelData.JavaPackages
    agent_classes: _containers.RepeatedCompositeFieldContainer[ModelData.AgentClass]
    metadata: str
    def __init__(self, name: _Optional[str] = ..., version: _Optional[str] = ..., package_definition: _Optional[_Union[ModelData.JavaPackages, _Mapping]] = ..., agent_classes: _Optional[_Iterable[_Union[ModelData.AgentClass, _Mapping]]] = ..., metadata: _Optional[str] = ...) -> None: ...
