"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _BuildVersioningTagsType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _BuildVersioningTagsTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_BuildVersioningTagsType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    INVALID_TAG_TYPE: _BuildVersioningTagsType.ValueType  # 0
    DATA_TAG_TYPE: _BuildVersioningTagsType.ValueType  # 1
    FILE_TAG_TYPE: _BuildVersioningTagsType.ValueType  # 2
    CODE_TAG_TYPE: _BuildVersioningTagsType.ValueType  # 3

class BuildVersioningTagsType(_BuildVersioningTagsType, metaclass=_BuildVersioningTagsTypeEnumTypeWrapper):
    """Tags Types"""

INVALID_TAG_TYPE: BuildVersioningTagsType.ValueType  # 0
DATA_TAG_TYPE: BuildVersioningTagsType.ValueType  # 1
FILE_TAG_TYPE: BuildVersioningTagsType.ValueType  # 2
CODE_TAG_TYPE: BuildVersioningTagsType.ValueType  # 3
global___BuildVersioningTagsType = BuildVersioningTagsType

class BuildVersioningUrlParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    BUILD_ID_FIELD_NUMBER: builtins.int
    TAG_FIELD_NUMBER: builtins.int
    ENVIRONMENT_ID_FIELD_NUMBER: builtins.int
    TAG_TYPE_FIELD_NUMBER: builtins.int
    USE_CLOUD_PROVIDER_STORAGE_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    """Model ID"""
    build_id: builtins.str
    """Build Id"""
    tag: builtins.str
    """Tag to save under"""
    environment_id: builtins.str
    """Environment to save the artifact under"""
    tag_type: global___BuildVersioningTagsType.ValueType
    """The type of the tags"""
    use_cloud_provider_storage: builtins.bool
    """When true, will use the cloud provider URL"""
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
        build_id: builtins.str = ...,
        tag: builtins.str = ...,
        environment_id: builtins.str = ...,
        tag_type: global___BuildVersioningTagsType.ValueType = ...,
        use_cloud_provider_storage: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["cloud_provider_option", b"cloud_provider_option", "use_cloud_provider_storage", b"use_cloud_provider_storage"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["build_id", b"build_id", "cloud_provider_option", b"cloud_provider_option", "environment_id", b"environment_id", "model_id", b"model_id", "tag", b"tag", "tag_type", b"tag_type", "use_cloud_provider_storage", b"use_cloud_provider_storage"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["cloud_provider_option", b"cloud_provider_option"]) -> typing_extensions.Literal["use_cloud_provider_storage"] | None: ...

global___BuildVersioningUrlParams = BuildVersioningUrlParams

class BuildVersioningTags(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    BUILD_ID_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    TAGS_DEFINITION_FIELD_NUMBER: builtins.int
    ENVIRONMENT_ID_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    """Model ID"""
    build_id: builtins.str
    """Build Id"""
    @property
    def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Tags to save under"""
    @property
    def tags_definition(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BuildVersioningTagsDefinition]:
        """The tags definition"""
    environment_id: builtins.str
    """Environment to save the artifact under"""
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
        build_id: builtins.str = ...,
        tags: collections.abc.Iterable[builtins.str] | None = ...,
        tags_definition: collections.abc.Iterable[global___BuildVersioningTagsDefinition] | None = ...,
        environment_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["build_id", b"build_id", "environment_id", b"environment_id", "model_id", b"model_id", "tags", b"tags", "tags_definition", b"tags_definition"]) -> None: ...

global___BuildVersioningTags = BuildVersioningTags

class BuildVersioningTagsDefinition(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TAGS_FIELD_NUMBER: builtins.int
    TYPE_FIELD_NUMBER: builtins.int
    @property
    def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Tags to save under"""
    type: global___BuildVersioningTagsType.ValueType
    """The type of the tags"""
    def __init__(
        self,
        *,
        tags: collections.abc.Iterable[builtins.str] | None = ...,
        type: global___BuildVersioningTagsType.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["tags", b"tags", "type", b"type"]) -> None: ...

global___BuildVersioningTagsDefinition = BuildVersioningTagsDefinition

class BuildVersioningTagsProperties(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TAG_FIELD_NUMBER: builtins.int
    DOWNLOAD_URL_FIELD_NUMBER: builtins.int
    FILE_SIZE_FIELD_NUMBER: builtins.int
    TAG_TYPE_FIELD_NUMBER: builtins.int
    EXTERNAL_DOWNLOAD_URL_FIELD_NUMBER: builtins.int
    UI_DIRECT_LINK_FIELD_NUMBER: builtins.int
    tag: builtins.str
    """Tag to save under"""
    download_url: builtins.str
    """Download url - to download the wanted artifact"""
    file_size: builtins.int
    """The size of the file"""
    tag_type: global___BuildVersioningTagsType.ValueType
    """The type of the tag"""
    @property
    def external_download_url(self) -> global___ExternalUrl:
        """Download url - to download the wanted artifact - contains also the original host name if needed."""
    ui_direct_link: builtins.str
    """The url to the file"""
    def __init__(
        self,
        *,
        tag: builtins.str = ...,
        download_url: builtins.str = ...,
        file_size: builtins.int = ...,
        tag_type: global___BuildVersioningTagsType.ValueType = ...,
        external_download_url: global___ExternalUrl | None = ...,
        ui_direct_link: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["external_download_url", b"external_download_url"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["download_url", b"download_url", "external_download_url", b"external_download_url", "file_size", b"file_size", "tag", b"tag", "tag_type", b"tag_type", "ui_direct_link", b"ui_direct_link"]) -> None: ...

global___BuildVersioningTagsProperties = BuildVersioningTagsProperties

class ExternalUrl(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    URL_FIELD_NUMBER: builtins.int
    ORIGINAL_HOSTNAME_FIELD_NUMBER: builtins.int
    url: builtins.str
    """The url"""
    original_hostname: builtins.str
    """If exists the original_host_name"""
    def __init__(
        self,
        *,
        url: builtins.str = ...,
        original_hostname: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["original_hostname", b"original_hostname", "url", b"url"]) -> None: ...

global___ExternalUrl = ExternalUrl

class BuildArtifactPathSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BUILD_ID_FIELD_NUMBER: builtins.int
    MODEL_ID_FIELD_NUMBER: builtins.int
    TAG_FIELD_NUMBER: builtins.int
    KEY_PATH_FIELD_NUMBER: builtins.int
    build_id: builtins.str
    """The build ID associated with the artifact"""
    model_id: builtins.str
    """The model ID associated with the artifact"""
    tag: builtins.str
    """The tag used to identify the artifact"""
    key_path: builtins.str
    """The path where the artifact is stored"""
    def __init__(
        self,
        *,
        build_id: builtins.str = ...,
        model_id: builtins.str = ...,
        tag: builtins.str = ...,
        key_path: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["build_id", b"build_id", "key_path", b"key_path", "model_id", b"model_id", "tag", b"tag"]) -> None: ...

global___BuildArtifactPathSpec = BuildArtifactPathSpec

class DataArtifact(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___DataArtifact = DataArtifact

class CodeArtifact(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___CodeArtifact = CodeArtifact

class FileArtifact(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___FileArtifact = FileArtifact

class BuildArtifact(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    DATA_ARTIFACT_FIELD_NUMBER: builtins.int
    CODE_ARTIFACT_FIELD_NUMBER: builtins.int
    FILE_ARTIFACT_FIELD_NUMBER: builtins.int
    PATH_FIELD_NUMBER: builtins.int
    name: builtins.str
    """The name used to identify the artifact"""
    @property
    def data_artifact(self) -> global___DataArtifact:
        """The artifact is a data artifact"""
    @property
    def code_artifact(self) -> global___CodeArtifact:
        """The artifact is a code artifact"""
    @property
    def file_artifact(self) -> global___FileArtifact:
        """The artifact is a file artifact"""
    path: builtins.str
    """The path where the artifact is stored"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        data_artifact: global___DataArtifact | None = ...,
        code_artifact: global___CodeArtifact | None = ...,
        file_artifact: global___FileArtifact | None = ...,
        path: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["code_artifact", b"code_artifact", "data_artifact", b"data_artifact", "file_artifact", b"file_artifact", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["code_artifact", b"code_artifact", "data_artifact", b"data_artifact", "file_artifact", b"file_artifact", "name", b"name", "path", b"path", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["data_artifact", "code_artifact", "file_artifact"] | None: ...

global___BuildArtifact = BuildArtifact
