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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class DataRoom(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ID_FIELD_NUMBER: builtins.int
    TABLES_FIELD_NUMBER: builtins.int
    QUERIES_FIELD_NUMBER: builtins.int
    ROLES_FIELD_NUMBER: builtins.int
    MRENCLAVE_FIELD_NUMBER: builtins.int
    SINGLEEXECUTIONMODE_FIELD_NUMBER: builtins.int
    id: typing.Text = ...
    mrenclave: typing.Text = ...
    singleExecutionMode: builtins.bool = ...

    @property
    def tables(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Table]: ...

    @property
    def queries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Query]: ...

    @property
    def roles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Role]: ...

    def __init__(self,
        *,
        id : typing.Optional[typing.Text] = ...,
        tables : typing.Optional[typing.Iterable[global___Table]] = ...,
        queries : typing.Optional[typing.Iterable[global___Query]] = ...,
        roles : typing.Optional[typing.Iterable[global___Role]] = ...,
        mrenclave : typing.Optional[typing.Text] = ...,
        singleExecutionMode : typing.Optional[builtins.bool] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"id",b"id",u"mrenclave",b"mrenclave",u"singleExecutionMode",b"singleExecutionMode"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"id",b"id",u"mrenclave",b"mrenclave",u"queries",b"queries",u"roles",b"roles",u"singleExecutionMode",b"singleExecutionMode",u"tables",b"tables"]) -> None: ...
global___DataRoom = DataRoom

class Table(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SQLCREATETABLESTATEMENT_FIELD_NUMBER: builtins.int
    SUBMISSIONCONSTRAINTS_FIELD_NUMBER: builtins.int
    sqlCreateTableStatement: typing.Text = ...

    @property
    def submissionConstraints(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TimeConstraint]: ...

    def __init__(self,
        *,
        sqlCreateTableStatement : typing.Optional[typing.Text] = ...,
        submissionConstraints : typing.Optional[typing.Iterable[global___TimeConstraint]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"sqlCreateTableStatement",b"sqlCreateTableStatement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"sqlCreateTableStatement",b"sqlCreateTableStatement",u"submissionConstraints",b"submissionConstraints"]) -> None: ...
global___Table = Table

class Query(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    QUERYNAME_FIELD_NUMBER: builtins.int
    SQLSELECTSTATEMENT_FIELD_NUMBER: builtins.int
    CONSTRAINTS_FIELD_NUMBER: builtins.int
    PRIVACYSETTINGS_FIELD_NUMBER: builtins.int
    queryName: typing.Text = ...
    sqlSelectStatement: typing.Text = ...

    @property
    def constraints(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Constraint]: ...

    @property
    def privacySettings(self) -> global___PrivacySettings: ...

    def __init__(self,
        *,
        queryName : typing.Optional[typing.Text] = ...,
        sqlSelectStatement : typing.Optional[typing.Text] = ...,
        constraints : typing.Optional[typing.Iterable[global___Constraint]] = ...,
        privacySettings : typing.Optional[global___PrivacySettings] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"privacySettings",b"privacySettings",u"queryName",b"queryName",u"sqlSelectStatement",b"sqlSelectStatement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"constraints",b"constraints",u"privacySettings",b"privacySettings",u"queryName",b"queryName",u"sqlSelectStatement",b"sqlSelectStatement"]) -> None: ...
global___Query = Query

class Role(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ROLENAME_FIELD_NUMBER: builtins.int
    EMAILREGEX_FIELD_NUMBER: builtins.int
    AUTHENTICATIONMETHOD_FIELD_NUMBER: builtins.int
    PERMISSIONS_FIELD_NUMBER: builtins.int
    roleName: typing.Text = ...
    emailRegex: typing.Text = ...

    @property
    def authenticationMethod(self) -> global___AuthenticationMethod: ...

    @property
    def permissions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Permission]: ...

    def __init__(self,
        *,
        roleName : typing.Optional[typing.Text] = ...,
        emailRegex : typing.Optional[typing.Text] = ...,
        authenticationMethod : typing.Optional[global___AuthenticationMethod] = ...,
        permissions : typing.Optional[typing.Iterable[global___Permission]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"authenticationMethod",b"authenticationMethod",u"emailRegex",b"emailRegex",u"roleName",b"roleName"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"authenticationMethod",b"authenticationMethod",u"emailRegex",b"emailRegex",u"permissions",b"permissions",u"roleName",b"roleName"]) -> None: ...
global___Role = Role

class PrivacySettings(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    MINAGGREGATIONGROUPSIZE_FIELD_NUMBER: builtins.int
    minAggregationGroupSize: builtins.int = ...

    def __init__(self,
        *,
        minAggregationGroupSize : typing.Optional[builtins.int] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"minAggregationGroupSize",b"minAggregationGroupSize"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"minAggregationGroupSize",b"minAggregationGroupSize"]) -> None: ...
global___PrivacySettings = PrivacySettings

class AuthenticationMethod(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TRUSTEDPKI_FIELD_NUMBER: builtins.int
    MAILPKI_FIELD_NUMBER: builtins.int
    PASSWORDSHA256_FIELD_NUMBER: builtins.int
    passwordSha256: typing.Text = ...

    @property
    def trustedPki(self) -> global___TrustedPki: ...

    @property
    def mailPki(self) -> global___MailPki: ...

    def __init__(self,
        *,
        trustedPki : typing.Optional[global___TrustedPki] = ...,
        mailPki : typing.Optional[global___MailPki] = ...,
        passwordSha256 : typing.Optional[typing.Text] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"mailPki",b"mailPki",u"passwordSha256",b"passwordSha256",u"trustedPki",b"trustedPki"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"mailPki",b"mailPki",u"passwordSha256",b"passwordSha256",u"trustedPki",b"trustedPki"]) -> None: ...
global___AuthenticationMethod = AuthenticationMethod

class TrustedPki(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ROOTCERTIFICATE_FIELD_NUMBER: builtins.int
    rootCertificate: builtins.bytes = ...

    def __init__(self,
        *,
        rootCertificate : typing.Optional[builtins.bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"rootCertificate",b"rootCertificate"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"rootCertificate",b"rootCertificate"]) -> None: ...
global___TrustedPki = TrustedPki

class MailPki(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ROOTCASTORE_FIELD_NUMBER: builtins.int
    rootCaStore: builtins.bytes = ...

    def __init__(self,
        *,
        rootCaStore : typing.Optional[builtins.bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"rootCaStore",b"rootCaStore"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"rootCaStore",b"rootCaStore"]) -> None: ...
global___MailPki = MailPki

class Permission(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SUBMITQUERYPERMISSION_FIELD_NUMBER: builtins.int
    TABLECRUDPERMISSION_FIELD_NUMBER: builtins.int
    DATAROOMRETRIEVALPERMISSION_FIELD_NUMBER: builtins.int
    AUDITLOGRETRIEVALPERMISSION_FIELD_NUMBER: builtins.int
    RETRIEVEDATAROOMSTATUSPERMISSION_FIELD_NUMBER: builtins.int
    UPDATEDATAROOMSTATUSPERMISSION_FIELD_NUMBER: builtins.int
    RETRIEVEPUBLISHEDDATASETSPERMISSION_FIELD_NUMBER: builtins.int

    @property
    def submitQueryPermission(self) -> global___SubmitQueryPermission: ...

    @property
    def tableCrudPermission(self) -> global___TableCrudPermission: ...

    @property
    def dataRoomRetrievalPermission(self) -> global___DataroomRetrievalPermission: ...

    @property
    def auditLogRetrievalPermission(self) -> global___AuditLogRetrievalPermission: ...

    @property
    def retrieveDataRoomStatusPermission(self) -> global___RetrieveDataRoomStatusPermission: ...

    @property
    def updateDataRoomStatusPermission(self) -> global___UpdateDataRoomStatusPermission: ...

    @property
    def retrievePublishedDatasetsPermission(self) -> global___RetrievePublishedDatasetsPermission: ...

    def __init__(self,
        *,
        submitQueryPermission : typing.Optional[global___SubmitQueryPermission] = ...,
        tableCrudPermission : typing.Optional[global___TableCrudPermission] = ...,
        dataRoomRetrievalPermission : typing.Optional[global___DataroomRetrievalPermission] = ...,
        auditLogRetrievalPermission : typing.Optional[global___AuditLogRetrievalPermission] = ...,
        retrieveDataRoomStatusPermission : typing.Optional[global___RetrieveDataRoomStatusPermission] = ...,
        updateDataRoomStatusPermission : typing.Optional[global___UpdateDataRoomStatusPermission] = ...,
        retrievePublishedDatasetsPermission : typing.Optional[global___RetrievePublishedDatasetsPermission] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"auditLogRetrievalPermission",b"auditLogRetrievalPermission",u"dataRoomRetrievalPermission",b"dataRoomRetrievalPermission",u"permission",b"permission",u"retrieveDataRoomStatusPermission",b"retrieveDataRoomStatusPermission",u"retrievePublishedDatasetsPermission",b"retrievePublishedDatasetsPermission",u"submitQueryPermission",b"submitQueryPermission",u"tableCrudPermission",b"tableCrudPermission",u"updateDataRoomStatusPermission",b"updateDataRoomStatusPermission"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"auditLogRetrievalPermission",b"auditLogRetrievalPermission",u"dataRoomRetrievalPermission",b"dataRoomRetrievalPermission",u"permission",b"permission",u"retrieveDataRoomStatusPermission",b"retrieveDataRoomStatusPermission",u"retrievePublishedDatasetsPermission",b"retrievePublishedDatasetsPermission",u"submitQueryPermission",b"submitQueryPermission",u"tableCrudPermission",b"tableCrudPermission",u"updateDataRoomStatusPermission",b"updateDataRoomStatusPermission"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"permission",b"permission"]) -> typing_extensions.Literal["submitQueryPermission","tableCrudPermission","dataRoomRetrievalPermission","auditLogRetrievalPermission","retrieveDataRoomStatusPermission","updateDataRoomStatusPermission","retrievePublishedDatasetsPermission"]: ...
global___Permission = Permission

class SubmitQueryPermission(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    QUERYNAME_FIELD_NUMBER: builtins.int
    queryName: typing.Text = ...

    def __init__(self,
        *,
        queryName : typing.Optional[typing.Text] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"queryName",b"queryName"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"queryName",b"queryName"]) -> None: ...
global___SubmitQueryPermission = SubmitQueryPermission

class TableCrudPermission(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TABLENAME_FIELD_NUMBER: builtins.int
    tableName: typing.Text = ...

    def __init__(self,
        *,
        tableName : typing.Optional[typing.Text] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"tableName",b"tableName"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"tableName",b"tableName"]) -> None: ...
global___TableCrudPermission = TableCrudPermission

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

    def __init__(self,
        ) -> None: ...
global___DataroomRetrievalPermission = DataroomRetrievalPermission

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

    def __init__(self,
        ) -> None: ...
global___AuditLogRetrievalPermission = AuditLogRetrievalPermission

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

    def __init__(self,
        ) -> None: ...
global___RetrieveDataRoomStatusPermission = RetrieveDataRoomStatusPermission

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

    def __init__(self,
        ) -> None: ...
global___UpdateDataRoomStatusPermission = UpdateDataRoomStatusPermission

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

    def __init__(self,
        ) -> None: ...
global___RetrievePublishedDatasetsPermission = RetrievePublishedDatasetsPermission

class Constraint(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    DESCRIPTION_FIELD_NUMBER: builtins.int
    SQLCONSTRAINT_FIELD_NUMBER: builtins.int
    TIMECONSTRAINT_FIELD_NUMBER: builtins.int
    DATASETCONSTRAINT_FIELD_NUMBER: builtins.int
    description: typing.Text = ...

    @property
    def sqlConstraint(self) -> global___SqlConstraint: ...

    @property
    def timeConstraint(self) -> global___TimeConstraint: ...

    @property
    def datasetConstraint(self) -> global___DatasetConstraint: ...

    def __init__(self,
        *,
        description : typing.Optional[typing.Text] = ...,
        sqlConstraint : typing.Optional[global___SqlConstraint] = ...,
        timeConstraint : typing.Optional[global___TimeConstraint] = ...,
        datasetConstraint : typing.Optional[global___DatasetConstraint] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"constraint",b"constraint",u"datasetConstraint",b"datasetConstraint",u"description",b"description",u"sqlConstraint",b"sqlConstraint",u"timeConstraint",b"timeConstraint"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"constraint",b"constraint",u"datasetConstraint",b"datasetConstraint",u"description",b"description",u"sqlConstraint",b"sqlConstraint",u"timeConstraint",b"timeConstraint"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"constraint",b"constraint"]) -> typing_extensions.Literal["sqlConstraint","timeConstraint","datasetConstraint"]: ...
global___Constraint = Constraint

class SqlConstraint(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    STATEMENT_FIELD_NUMBER: builtins.int
    statement: typing.Text = ...

    def __init__(self,
        *,
        statement : typing.Optional[typing.Text] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"statement",b"statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"statement",b"statement"]) -> None: ...
global___SqlConstraint = SqlConstraint

class TimeConstraint(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TIMESTAMP_FIELD_NUMBER: builtins.int
    BEFORE_FIELD_NUMBER: builtins.int
    timestamp: builtins.int = ...
    before: builtins.bool = ...

    def __init__(self,
        *,
        timestamp : typing.Optional[builtins.int] = ...,
        before : typing.Optional[builtins.bool] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"before",b"before",u"timestamp",b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"before",b"before",u"timestamp",b"timestamp"]) -> None: ...
global___TimeConstraint = TimeConstraint

class DatasetConstraint(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    TABLE_FIELD_NUMBER: builtins.int
    SUBMISSIONS_FIELD_NUMBER: builtins.int
    table: typing.Text = ...
    submissions: builtins.int = ...

    def __init__(self,
        *,
        table : typing.Optional[typing.Text] = ...,
        submissions : typing.Optional[builtins.int] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"submissions",b"submissions",u"table",b"table"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"submissions",b"submissions",u"table",b"table"]) -> None: ...
global___DatasetConstraint = DatasetConstraint
