"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import common.healthcheck.v1beta.healthcheck_pb2
import common.task.v1alpha.task_pb2
import core.mgmt.v1beta.metric_pb2
import core.mgmt.v1beta.mgmt_pb2
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.timestamp_pb2
import sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class LivenessRequest(google.protobuf.message.Message):
    """LivenessRequest represents a request to check a service liveness status"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HEALTH_CHECK_REQUEST_FIELD_NUMBER: builtins.int
    @property
    def health_check_request(self) -> common.healthcheck.v1beta.healthcheck_pb2.HealthCheckRequest:
        """HealthCheckRequest message"""
    def __init__(
        self,
        *,
        health_check_request: common.healthcheck.v1beta.healthcheck_pb2.HealthCheckRequest | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_health_check_request", b"_health_check_request", "health_check_request", b"health_check_request"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_health_check_request", b"_health_check_request", "health_check_request", b"health_check_request"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_health_check_request", b"_health_check_request"]) -> typing_extensions.Literal["health_check_request"] | None: ...

global___LivenessRequest = LivenessRequest

@typing_extensions.final
class LivenessResponse(google.protobuf.message.Message):
    """LivenessResponse represents a response for a service liveness status"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HEALTH_CHECK_RESPONSE_FIELD_NUMBER: builtins.int
    @property
    def health_check_response(self) -> common.healthcheck.v1beta.healthcheck_pb2.HealthCheckResponse:
        """HealthCheckResponse message"""
    def __init__(
        self,
        *,
        health_check_response: common.healthcheck.v1beta.healthcheck_pb2.HealthCheckResponse | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["health_check_response", b"health_check_response"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["health_check_response", b"health_check_response"]) -> None: ...

global___LivenessResponse = LivenessResponse

@typing_extensions.final
class ReadinessRequest(google.protobuf.message.Message):
    """ReadinessRequest represents a request to check a service readiness status"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HEALTH_CHECK_REQUEST_FIELD_NUMBER: builtins.int
    @property
    def health_check_request(self) -> common.healthcheck.v1beta.healthcheck_pb2.HealthCheckRequest:
        """HealthCheckRequest message"""
    def __init__(
        self,
        *,
        health_check_request: common.healthcheck.v1beta.healthcheck_pb2.HealthCheckRequest | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_health_check_request", b"_health_check_request", "health_check_request", b"health_check_request"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_health_check_request", b"_health_check_request", "health_check_request", b"health_check_request"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_health_check_request", b"_health_check_request"]) -> typing_extensions.Literal["health_check_request"] | None: ...

global___ReadinessRequest = ReadinessRequest

@typing_extensions.final
class ReadinessResponse(google.protobuf.message.Message):
    """ReadinessResponse represents a response for a service readiness status"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HEALTH_CHECK_RESPONSE_FIELD_NUMBER: builtins.int
    @property
    def health_check_response(self) -> common.healthcheck.v1beta.healthcheck_pb2.HealthCheckResponse:
        """HealthCheckResponse message"""
    def __init__(
        self,
        *,
        health_check_response: common.healthcheck.v1beta.healthcheck_pb2.HealthCheckResponse | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["health_check_response", b"health_check_response"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["health_check_response", b"health_check_response"]) -> None: ...

global___ReadinessResponse = ReadinessResponse

@typing_extensions.final
class Session(google.protobuf.message.Message):
    """Session represents a unique session whenever a new instance of VDP service
    gets started. The usage server returns a token that should be used as part of
    the challenge when sending a report with data collected from this session
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    class _ServiceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Session._Service.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        SERVICE_UNSPECIFIED: Session._Service.ValueType  # 0
        """Service: UNSPECIFIED"""
        SERVICE_MGMT: Session._Service.ValueType  # 1
        """Service: MGMT"""
        SERVICE_CONNECTOR: Session._Service.ValueType  # 2
        """Service: CONNECTOR"""
        SERVICE_MODEL: Session._Service.ValueType  # 3
        """Service: MODEL"""
        SERVICE_PIPELINE: Session._Service.ValueType  # 4
        """Service: PIPELINE"""
        SERVICE_ARTIFACT: Session._Service.ValueType  # 5
        """Service: ARTIFACT"""

    class Service(_Service, metaclass=_ServiceEnumTypeWrapper):
        """Service enumerates the services to collect data from"""

    SERVICE_UNSPECIFIED: Session.Service.ValueType  # 0
    """Service: UNSPECIFIED"""
    SERVICE_MGMT: Session.Service.ValueType  # 1
    """Service: MGMT"""
    SERVICE_CONNECTOR: Session.Service.ValueType  # 2
    """Service: CONNECTOR"""
    SERVICE_MODEL: Session.Service.ValueType  # 3
    """Service: MODEL"""
    SERVICE_PIPELINE: Session.Service.ValueType  # 4
    """Service: PIPELINE"""
    SERVICE_ARTIFACT: Session.Service.ValueType  # 5
    """Service: ARTIFACT"""

    NAME_FIELD_NUMBER: builtins.int
    UID_FIELD_NUMBER: builtins.int
    SERVICE_FIELD_NUMBER: builtins.int
    EDITION_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    ARCH_FIELD_NUMBER: builtins.int
    OS_FIELD_NUMBER: builtins.int
    UPTIME_FIELD_NUMBER: builtins.int
    REPORT_TIME_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    CREATE_TIME_FIELD_NUMBER: builtins.int
    UPDATE_TIME_FIELD_NUMBER: builtins.int
    OWNER_UID_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Resource name in the format of 'sessions/uid'"""
    uid: builtins.str
    """Resource UUID"""
    service: global___Session.Service.ValueType
    """name of the service to collect data from"""
    edition: builtins.str
    """Session edition, allowed values include: 'local-ce' and 'local-ce:dev'"""
    version: builtins.str
    """Version of the service"""
    arch: builtins.str
    """Architecture of the system"""
    os: builtins.str
    """Operating system"""
    uptime: builtins.int
    """Session service uptime"""
    @property
    def report_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Report time"""
    token: builtins.str
    """Token to send report. The token is generated by the server and sent to
    the client. Client needs to use the token to send report to the server.
    """
    @property
    def create_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Session creation time"""
    @property
    def update_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Session update time"""
    owner_uid: builtins.str
    """Owner UUID of the instance, can also be considered as instance UUID"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        uid: builtins.str = ...,
        service: global___Session.Service.ValueType = ...,
        edition: builtins.str = ...,
        version: builtins.str = ...,
        arch: builtins.str = ...,
        os: builtins.str = ...,
        uptime: builtins.int = ...,
        report_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        token: builtins.str = ...,
        create_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        update_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        owner_uid: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["create_time", b"create_time", "report_time", b"report_time", "update_time", b"update_time"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["arch", b"arch", "create_time", b"create_time", "edition", b"edition", "name", b"name", "os", b"os", "owner_uid", b"owner_uid", "report_time", b"report_time", "service", b"service", "token", b"token", "uid", b"uid", "update_time", b"update_time", "uptime", b"uptime", "version", b"version"]) -> None: ...

global___Session = Session

@typing_extensions.final
class MgmtUsageData(google.protobuf.message.Message):
    """Management service usage data"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_USAGES_FIELD_NUMBER: builtins.int
    ORG_USAGES_FIELD_NUMBER: builtins.int
    @property
    def user_usages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[core.mgmt.v1beta.mgmt_pb2.AuthenticatedUser]:
        """Repeated user usage data"""
    @property
    def org_usages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[core.mgmt.v1beta.mgmt_pb2.Organization]:
        """Repeated org usage data"""
    def __init__(
        self,
        *,
        user_usages: collections.abc.Iterable[core.mgmt.v1beta.mgmt_pb2.AuthenticatedUser] | None = ...,
        org_usages: collections.abc.Iterable[core.mgmt.v1beta.mgmt_pb2.Organization] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["org_usages", b"org_usages", "user_usages", b"user_usages"]) -> None: ...

global___MgmtUsageData = MgmtUsageData

@typing_extensions.final
class ConnectorUsageData(google.protobuf.message.Message):
    """Connector service usage data"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class UserUsageData(google.protobuf.message.Message):
        """Per user usage data in the connector service"""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        @typing_extensions.final
        class ConnectorExecuteData(google.protobuf.message.Message):
            """Per execute usage metadata"""

            DESCRIPTOR: google.protobuf.descriptor.Descriptor

            CONNECTOR_UID_FIELD_NUMBER: builtins.int
            EXECUTE_UID_FIELD_NUMBER: builtins.int
            EXECUTE_TIME_FIELD_NUMBER: builtins.int
            CONNECTOR_DEFINITION_UID_FIELD_NUMBER: builtins.int
            STATUS_FIELD_NUMBER: builtins.int
            USER_UID_FIELD_NUMBER: builtins.int
            USER_TYPE_FIELD_NUMBER: builtins.int
            connector_uid: builtins.str
            """UID for the executed connector"""
            execute_uid: builtins.str
            """UID for the execute log"""
            @property
            def execute_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
                """Timestamp for the execution"""
            connector_definition_uid: builtins.str
            """Definition UID of the connector"""
            status: core.mgmt.v1beta.metric_pb2.Status.ValueType
            """Final status of the execution"""
            user_uid: builtins.str
            """UUID of the user who execute the connector"""
            user_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType
            """Type of the user who execute the connector"""
            def __init__(
                self,
                *,
                connector_uid: builtins.str = ...,
                execute_uid: builtins.str = ...,
                execute_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
                connector_definition_uid: builtins.str = ...,
                status: core.mgmt.v1beta.metric_pb2.Status.ValueType = ...,
                user_uid: builtins.str = ...,
                user_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType = ...,
            ) -> None: ...
            def HasField(self, field_name: typing_extensions.Literal["execute_time", b"execute_time"]) -> builtins.bool: ...
            def ClearField(self, field_name: typing_extensions.Literal["connector_definition_uid", b"connector_definition_uid", "connector_uid", b"connector_uid", "execute_time", b"execute_time", "execute_uid", b"execute_uid", "status", b"status", "user_type", b"user_type", "user_uid", b"user_uid"]) -> None: ...

        OWNER_UID_FIELD_NUMBER: builtins.int
        CONNECTOR_EXECUTE_DATA_FIELD_NUMBER: builtins.int
        OWNER_TYPE_FIELD_NUMBER: builtins.int
        owner_uid: builtins.str
        """Owner UUID"""
        @property
        def connector_execute_data(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConnectorUsageData.UserUsageData.ConnectorExecuteData]:
            """Execution data for each user"""
        owner_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType
        """Owner type"""
        def __init__(
            self,
            *,
            owner_uid: builtins.str = ...,
            connector_execute_data: collections.abc.Iterable[global___ConnectorUsageData.UserUsageData.ConnectorExecuteData] | None = ...,
            owner_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["connector_execute_data", b"connector_execute_data", "owner_type", b"owner_type", "owner_uid", b"owner_uid"]) -> None: ...

    USAGES_FIELD_NUMBER: builtins.int
    @property
    def usages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConnectorUsageData.UserUsageData]:
        """Usage data of all users in the connector service"""
    def __init__(
        self,
        *,
        usages: collections.abc.Iterable[global___ConnectorUsageData.UserUsageData] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["usages", b"usages"]) -> None: ...

global___ConnectorUsageData = ConnectorUsageData

@typing_extensions.final
class ModelUsageData(google.protobuf.message.Message):
    """Model service usage data"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class UserUsageData(google.protobuf.message.Message):
        """Per user usage data in the model service"""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        @typing_extensions.final
        class ModelTriggerData(google.protobuf.message.Message):
            """Per trigger usage metadata"""

            DESCRIPTOR: google.protobuf.descriptor.Descriptor

            MODEL_UID_FIELD_NUMBER: builtins.int
            TRIGGER_UID_FIELD_NUMBER: builtins.int
            TRIGGER_TIME_FIELD_NUMBER: builtins.int
            MODEL_DEFINITION_UID_FIELD_NUMBER: builtins.int
            MODEL_TASK_FIELD_NUMBER: builtins.int
            STATUS_FIELD_NUMBER: builtins.int
            USER_UID_FIELD_NUMBER: builtins.int
            USER_TYPE_FIELD_NUMBER: builtins.int
            model_uid: builtins.str
            """UID for the trigged model"""
            trigger_uid: builtins.str
            """UID for the trigger log"""
            @property
            def trigger_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
                """Timestamp for the trigger"""
            model_definition_uid: builtins.str
            """Definition UID of the model"""
            model_task: common.task.v1alpha.task_pb2.Task.ValueType
            """Task of the model"""
            status: core.mgmt.v1beta.metric_pb2.Status.ValueType
            """Final status of the execution"""
            user_uid: builtins.str
            """UUID of the user who trigger the model"""
            user_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType
            """Type of the user who trigger the model"""
            def __init__(
                self,
                *,
                model_uid: builtins.str = ...,
                trigger_uid: builtins.str = ...,
                trigger_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
                model_definition_uid: builtins.str = ...,
                model_task: common.task.v1alpha.task_pb2.Task.ValueType = ...,
                status: core.mgmt.v1beta.metric_pb2.Status.ValueType = ...,
                user_uid: builtins.str = ...,
                user_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType = ...,
            ) -> None: ...
            def HasField(self, field_name: typing_extensions.Literal["trigger_time", b"trigger_time"]) -> builtins.bool: ...
            def ClearField(self, field_name: typing_extensions.Literal["model_definition_uid", b"model_definition_uid", "model_task", b"model_task", "model_uid", b"model_uid", "status", b"status", "trigger_time", b"trigger_time", "trigger_uid", b"trigger_uid", "user_type", b"user_type", "user_uid", b"user_uid"]) -> None: ...

        OWNER_UID_FIELD_NUMBER: builtins.int
        MODEL_TRIGGER_DATA_FIELD_NUMBER: builtins.int
        OWNER_TYPE_FIELD_NUMBER: builtins.int
        owner_uid: builtins.str
        """Owner UUID"""
        @property
        def model_trigger_data(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ModelUsageData.UserUsageData.ModelTriggerData]:
            """Trigger data for each user"""
        owner_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType
        """Owner type"""
        def __init__(
            self,
            *,
            owner_uid: builtins.str = ...,
            model_trigger_data: collections.abc.Iterable[global___ModelUsageData.UserUsageData.ModelTriggerData] | None = ...,
            owner_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["model_trigger_data", b"model_trigger_data", "owner_type", b"owner_type", "owner_uid", b"owner_uid"]) -> None: ...

    USAGES_FIELD_NUMBER: builtins.int
    @property
    def usages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ModelUsageData.UserUsageData]:
        """Usage data of all users in the model service"""
    def __init__(
        self,
        *,
        usages: collections.abc.Iterable[global___ModelUsageData.UserUsageData] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["usages", b"usages"]) -> None: ...

global___ModelUsageData = ModelUsageData

@typing_extensions.final
class PipelineUsageData(google.protobuf.message.Message):
    """Pipeline service usage data"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class UserUsageData(google.protobuf.message.Message):
        """Per user usage data in the pipeline service"""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        @typing_extensions.final
        class PipelineTriggerData(google.protobuf.message.Message):
            """Per trigger usage metadata"""

            DESCRIPTOR: google.protobuf.descriptor.Descriptor

            PIPELINE_UID_FIELD_NUMBER: builtins.int
            TRIGGER_UID_FIELD_NUMBER: builtins.int
            TRIGGER_TIME_FIELD_NUMBER: builtins.int
            TRIGGER_MODE_FIELD_NUMBER: builtins.int
            STATUS_FIELD_NUMBER: builtins.int
            PIPELINE_RELEASE_ID_FIELD_NUMBER: builtins.int
            PIPELINE_RELEASE_UID_FIELD_NUMBER: builtins.int
            USER_UID_FIELD_NUMBER: builtins.int
            USER_TYPE_FIELD_NUMBER: builtins.int
            PIPELINE_ID_FIELD_NUMBER: builtins.int
            pipeline_uid: builtins.str
            """UID for the triggered pipeline"""
            trigger_uid: builtins.str
            """UID for the trigger log"""
            @property
            def trigger_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
                """Timestamp for the trigger"""
            trigger_mode: core.mgmt.v1beta.metric_pb2.Mode.ValueType
            """Trigger mode"""
            status: core.mgmt.v1beta.metric_pb2.Status.ValueType
            """Final status of the execution"""
            pipeline_release_id: builtins.str
            """Version for the triggered release pipeline, empty string if not release"""
            pipeline_release_uid: builtins.str
            """UID for the triggered release pipeline, empty string if not release"""
            user_uid: builtins.str
            """UUID of the user who trigger the pipeline"""
            user_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType
            """Type of the user who trigger the pipeline"""
            pipeline_id: builtins.str
            """ID for the triggered pipeline"""
            def __init__(
                self,
                *,
                pipeline_uid: builtins.str = ...,
                trigger_uid: builtins.str = ...,
                trigger_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
                trigger_mode: core.mgmt.v1beta.metric_pb2.Mode.ValueType = ...,
                status: core.mgmt.v1beta.metric_pb2.Status.ValueType = ...,
                pipeline_release_id: builtins.str = ...,
                pipeline_release_uid: builtins.str = ...,
                user_uid: builtins.str = ...,
                user_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType = ...,
                pipeline_id: builtins.str = ...,
            ) -> None: ...
            def HasField(self, field_name: typing_extensions.Literal["trigger_time", b"trigger_time"]) -> builtins.bool: ...
            def ClearField(self, field_name: typing_extensions.Literal["pipeline_id", b"pipeline_id", "pipeline_release_id", b"pipeline_release_id", "pipeline_release_uid", b"pipeline_release_uid", "pipeline_uid", b"pipeline_uid", "status", b"status", "trigger_mode", b"trigger_mode", "trigger_time", b"trigger_time", "trigger_uid", b"trigger_uid", "user_type", b"user_type", "user_uid", b"user_uid"]) -> None: ...

        OWNER_UID_FIELD_NUMBER: builtins.int
        PIPELINE_TRIGGER_DATA_FIELD_NUMBER: builtins.int
        OWNER_TYPE_FIELD_NUMBER: builtins.int
        owner_uid: builtins.str
        """Owner UUID"""
        @property
        def pipeline_trigger_data(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PipelineUsageData.UserUsageData.PipelineTriggerData]:
            """Trigger data for each user"""
        owner_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType
        """Owner type"""
        def __init__(
            self,
            *,
            owner_uid: builtins.str = ...,
            pipeline_trigger_data: collections.abc.Iterable[global___PipelineUsageData.UserUsageData.PipelineTriggerData] | None = ...,
            owner_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["owner_type", b"owner_type", "owner_uid", b"owner_uid", "pipeline_trigger_data", b"pipeline_trigger_data"]) -> None: ...

    USAGES_FIELD_NUMBER: builtins.int
    @property
    def usages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PipelineUsageData.UserUsageData]:
        """Usage data of all users in the pipeline service"""
    def __init__(
        self,
        *,
        usages: collections.abc.Iterable[global___PipelineUsageData.UserUsageData] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["usages", b"usages"]) -> None: ...

global___PipelineUsageData = PipelineUsageData

@typing_extensions.final
class ArtifactUsageData(google.protobuf.message.Message):
    """Artifact service usage data"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class UserUsageData(google.protobuf.message.Message):
        """Per user usage data in the artifact service"""

        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        OWNER_UID_FIELD_NUMBER: builtins.int
        OWNER_TYPE_FIELD_NUMBER: builtins.int
        owner_uid: builtins.str
        """Owner UUID"""
        owner_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType
        """Owner type"""
        def __init__(
            self,
            *,
            owner_uid: builtins.str = ...,
            owner_type: core.mgmt.v1beta.mgmt_pb2.OwnerType.ValueType = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["owner_type", b"owner_type", "owner_uid", b"owner_uid"]) -> None: ...

    USAGES_FIELD_NUMBER: builtins.int
    @property
    def usages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ArtifactUsageData.UserUsageData]:
        """Usage data of all users in the artifact service"""
    def __init__(
        self,
        *,
        usages: collections.abc.Iterable[global___ArtifactUsageData.UserUsageData] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["usages", b"usages"]) -> None: ...

global___ArtifactUsageData = ArtifactUsageData

@typing_extensions.final
class SessionReport(google.protobuf.message.Message):
    """SessionReport represents a report to be sent to the server that includes the
    usage data of a session
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SESSION_UID_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    POW_FIELD_NUMBER: builtins.int
    SESSION_FIELD_NUMBER: builtins.int
    MGMT_USAGE_DATA_FIELD_NUMBER: builtins.int
    CONNECTOR_USAGE_DATA_FIELD_NUMBER: builtins.int
    MODEL_USAGE_DATA_FIELD_NUMBER: builtins.int
    PIPELINE_USAGE_DATA_FIELD_NUMBER: builtins.int
    ARTIFACT_USAGE_DATA_FIELD_NUMBER: builtins.int
    session_uid: builtins.str
    """Session uid"""
    token: builtins.str
    """Session token"""
    pow: builtins.str
    """Proof-of-work See https://en.wikipedia.org/wiki/Proof_of_work"""
    @property
    def session(self) -> global___Session:
        """Session"""
    @property
    def mgmt_usage_data(self) -> global___MgmtUsageData:
        """Management service usage data"""
    @property
    def connector_usage_data(self) -> global___ConnectorUsageData:
        """Connector service usage data"""
    @property
    def model_usage_data(self) -> global___ModelUsageData:
        """Model service usage data"""
    @property
    def pipeline_usage_data(self) -> global___PipelineUsageData:
        """Pipeline service usage data"""
    @property
    def artifact_usage_data(self) -> global___ArtifactUsageData:
        """Artifact service usage data"""
    def __init__(
        self,
        *,
        session_uid: builtins.str = ...,
        token: builtins.str = ...,
        pow: builtins.str = ...,
        session: global___Session | None = ...,
        mgmt_usage_data: global___MgmtUsageData | None = ...,
        connector_usage_data: global___ConnectorUsageData | None = ...,
        model_usage_data: global___ModelUsageData | None = ...,
        pipeline_usage_data: global___PipelineUsageData | None = ...,
        artifact_usage_data: global___ArtifactUsageData | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["artifact_usage_data", b"artifact_usage_data", "connector_usage_data", b"connector_usage_data", "mgmt_usage_data", b"mgmt_usage_data", "model_usage_data", b"model_usage_data", "pipeline_usage_data", b"pipeline_usage_data", "session", b"session", "usage_data", b"usage_data"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["artifact_usage_data", b"artifact_usage_data", "connector_usage_data", b"connector_usage_data", "mgmt_usage_data", b"mgmt_usage_data", "model_usage_data", b"model_usage_data", "pipeline_usage_data", b"pipeline_usage_data", "pow", b"pow", "session", b"session", "session_uid", b"session_uid", "token", b"token", "usage_data", b"usage_data"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["usage_data", b"usage_data"]) -> typing_extensions.Literal["mgmt_usage_data", "connector_usage_data", "model_usage_data", "pipeline_usage_data", "artifact_usage_data"] | None: ...

global___SessionReport = SessionReport

@typing_extensions.final
class CreateSessionRequest(google.protobuf.message.Message):
    """CreateSessionRequest represents a request to create a new session"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SESSION_FIELD_NUMBER: builtins.int
    @property
    def session(self) -> global___Session:
        """A session resource to create"""
    def __init__(
        self,
        *,
        session: global___Session | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["session", b"session"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["session", b"session"]) -> None: ...

global___CreateSessionRequest = CreateSessionRequest

@typing_extensions.final
class CreateSessionResponse(google.protobuf.message.Message):
    """CreateSessionResponse represents a response for a session response"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SESSION_FIELD_NUMBER: builtins.int
    @property
    def session(self) -> global___Session:
        """A session resource"""
    def __init__(
        self,
        *,
        session: global___Session | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["session", b"session"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["session", b"session"]) -> None: ...

global___CreateSessionResponse = CreateSessionResponse

@typing_extensions.final
class SendSessionReportRequest(google.protobuf.message.Message):
    """SendReportRequest represents a request to send a usage report"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REPORT_FIELD_NUMBER: builtins.int
    @property
    def report(self) -> global___SessionReport:
        """A report resource to create"""
    def __init__(
        self,
        *,
        report: global___SessionReport | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["report", b"report"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["report", b"report"]) -> None: ...

global___SendSessionReportRequest = SendSessionReportRequest

@typing_extensions.final
class SendSessionReportResponse(google.protobuf.message.Message):
    """SendReportResponse represents an empty response"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___SendSessionReportResponse = SendSessionReportResponse
