"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.message
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class DcrComputeContext(google.protobuf.message.Message):
    """message MediaComputeContext {
        repeated Identity advertiser;
        repeated Identity publisher;
    }

    / Identifies a particular DCR
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DATAROOMID_FIELD_NUMBER: builtins.int
    dataRoomId: builtins.str
    def __init__(
        self,
        *,
        dataRoomId: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["dataRoomId", b"dataRoomId"]) -> None: ...

global___DcrComputeContext = DcrComputeContext

@typing_extensions.final
class AllowedComputeContext(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DCR_FIELD_NUMBER: builtins.int
    @property
    def dcr(self) -> global___DcrComputeContext:
        """MediaComputeContext media = 2;"""
    def __init__(
        self,
        *,
        dcr: global___DcrComputeContext | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["dcr", b"dcr", "kind", b"kind"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["dcr", b"dcr", "kind", b"kind"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["kind", b"kind"]) -> typing_extensions.Literal["dcr"] | None: ...

global___AllowedComputeContext = AllowedComputeContext

@typing_extensions.final
class ReleasePolicyV0(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SECRETSOURCE_FIELD_NUMBER: builtins.int
    ALLOWEDCOMPUTECONTEXT_FIELD_NUMBER: builtins.int
    DATASOURCE_FIELD_NUMBER: builtins.int
    @property
    def secretSource(self) -> global___SecretSource:
        """Identifies the source of a secret.
        The policy creator must own this secret.
        """
    @property
    def allowedComputeContext(self) -> global___AllowedComputeContext:
        """/ Determines in which computation context a secret can be released."""
    @property
    def dataSource(self) -> global___DataSource:
        """/ Identifies to which data this policy applies"""
    def __init__(
        self,
        *,
        secretSource: global___SecretSource | None = ...,
        allowedComputeContext: global___AllowedComputeContext | None = ...,
        dataSource: global___DataSource | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["allowedComputeContext", b"allowedComputeContext", "dataSource", b"dataSource", "secretSource", b"secretSource"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["allowedComputeContext", b"allowedComputeContext", "dataSource", b"dataSource", "secretSource", b"secretSource"]) -> None: ...

global___ReleasePolicyV0 = ReleasePolicyV0

@typing_extensions.final
class ReleasePolicy(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    V0_FIELD_NUMBER: builtins.int
    @property
    def v0(self) -> global___ReleasePolicyV0: ...
    def __init__(
        self,
        *,
        v0: global___ReleasePolicyV0 | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["v0", b"v0", "version", b"version"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["v0", b"v0", "version", b"version"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["version", b"version"]) -> typing_extensions.Literal["v0"] | None: ...

global___ReleasePolicy = ReleasePolicy

@typing_extensions.final
class ComputationResultReference(google.protobuf.message.Message):
    """/ Contains information for a driver enclave to identify a particular result
    / of a (potentially multi-result) task, for which the result key can be derived.
    / The driver will be able to lookup the job, regenerate the plan, and find
    / the task result with the given hash.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    JOBID_FIELD_NUMBER: builtins.int
    RESULTHASH_FIELD_NUMBER: builtins.int
    jobId: builtins.str
    resultHash: builtins.str
    def __init__(
        self,
        *,
        jobId: builtins.str = ...,
        resultHash: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["jobId", b"jobId", "resultHash", b"resultHash"]) -> None: ...

global___ComputationResultReference = ComputationResultReference

@typing_extensions.final
class SecretSource(google.protobuf.message.Message):
    """/ Informs the enclave on how and where to get a particular secret
    / (such as an encryption key) from.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SECRETSTOREID_FIELD_NUMBER: builtins.int
    secretStoreId: builtins.str
    """/ Refers to an encryption key in a user's own key store
    / Refers to a computation result of some node in another DCR
    ComputationResultReference computationResult = 2;
    / Indirectly refers to a secret source definition stored in the integrity store
    string integrityStoreId = 3;
    """
    def __init__(
        self,
        *,
        secretStoreId: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["kind", b"kind", "secretStoreId", b"secretStoreId"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["kind", b"kind", "secretStoreId", b"secretStoreId"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["kind", b"kind"]) -> typing_extensions.Literal["secretStoreId"] | None: ...

global___SecretSource = SecretSource

@typing_extensions.final
class DataSource(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DATASET_FIELD_NUMBER: builtins.int
    COMPUTERESULT_FIELD_NUMBER: builtins.int
    @property
    def dataset(self) -> global___DatasetDataSource: ...
    @property
    def computeResult(self) -> global___ComputeResultDataSource: ...
    def __init__(
        self,
        *,
        dataset: global___DatasetDataSource | None = ...,
        computeResult: global___ComputeResultDataSource | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["computeResult", b"computeResult", "dataset", b"dataset", "kind", b"kind"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["computeResult", b"computeResult", "dataset", b"dataset", "kind", b"kind"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["kind", b"kind"]) -> typing_extensions.Literal["dataset", "computeResult"] | None: ...

global___DataSource = DataSource

@typing_extensions.final
class DatasetDataSource(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MANIFESTHASH_FIELD_NUMBER: builtins.int
    manifestHash: builtins.str
    def __init__(
        self,
        *,
        manifestHash: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["manifestHash", b"manifestHash"]) -> None: ...

global___DatasetDataSource = DatasetDataSource

@typing_extensions.final
class ComputeResultDataSource(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESULTHASH_FIELD_NUMBER: builtins.int
    resultHash: builtins.str
    def __init__(
        self,
        *,
        resultHash: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["resultHash", b"resultHash"]) -> None: ...

global___ComputeResultDataSource = ComputeResultDataSource
