"""
@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.internal.enum_type_wrapper
import google.protobuf.message
import sarus_data_spec.protobuf.path_pb2
import sarus_data_spec.protobuf.statistics_pb2
import sarus_data_spec.protobuf.type_pb2
import typing
import typing_extensions

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

class Transform(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class ExternalOp(_ExternalOp, metaclass=_ExternalOpEnumTypeWrapper):
        pass
    class _ExternalOp:
        V = typing.NewType('V', builtins.int)
    class _ExternalOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ExternalOp.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        PD_MEAN = Transform.ExternalOp.V(0)
        PD_STD = Transform.ExternalOp.V(1)
        PD_LOC = Transform.ExternalOp.V(2)
        PD_EQ = Transform.ExternalOp.V(3)
        NP_MEAN = Transform.ExternalOp.V(4)
        NP_STD = Transform.ExternalOp.V(5)
        NP_ADD = Transform.ExternalOp.V(6)
        NP_SUB = Transform.ExternalOp.V(7)
        TF_BATCH = Transform.ExternalOp.V(8)
        TF_MAP = Transform.ExternalOp.V(9)
        SK_FIT = Transform.ExternalOp.V(10)
        SK_DP_FIT = Transform.ExternalOp.V(11)
        ADD = Transform.ExternalOp.V(12)
        SUB = Transform.ExternalOp.V(13)
        MUL = Transform.ExternalOp.V(14)
        DIV = Transform.ExternalOp.V(15)
        PD_ANY = Transform.ExternalOp.V(16)
        INVERT = Transform.ExternalOp.V(17)
        GETITEM = Transform.ExternalOp.V(18)
        SK_SCALE = Transform.ExternalOp.V(19)
        LEN = Transform.ExternalOp.V(20)
        PD_PROFILE_REPORT = Transform.ExternalOp.V(21)
        PD_DESCRIBE = Transform.ExternalOp.V(22)
        PD_SELECT_DTYPES = Transform.ExternalOp.V(23)
        PD_QUANTILE = Transform.ExternalOp.V(24)
        PD_SUM = Transform.ExternalOp.V(25)
        PD_FILLNA = Transform.ExternalOp.V(26)
        PD_ROUND = Transform.ExternalOp.V(27)
        PD_RENAME = Transform.ExternalOp.V(28)
        PD_COUNT = Transform.ExternalOp.V(29)
        PD_TRANSPOSE = Transform.ExternalOp.V(30)
        PD_UNIQUE = Transform.ExternalOp.V(31)
        """class method"""

        PD_VALUE_COUNTS = Transform.ExternalOp.V(32)
        PD_TO_DICT = Transform.ExternalOp.V(33)
        PD_APPLY = Transform.ExternalOp.V(34)
        PD_SUB = Transform.ExternalOp.V(35)
        PD_MEDIAN = Transform.ExternalOp.V(36)
        PD_ABS = Transform.ExternalOp.V(37)
        PD_MAD = Transform.ExternalOp.V(38)
        PD_SKEW = Transform.ExternalOp.V(39)
        PD_KURTOSIS = Transform.ExternalOp.V(40)
        PD_AGG = Transform.ExternalOp.V(41)
        PD_DROPLEVEL = Transform.ExternalOp.V(42)
        PD_SORT_VALUES = Transform.ExternalOp.V(43)
        PD_DROP = Transform.ExternalOp.V(44)
        PD_CORR = Transform.ExternalOp.V(45)
        GT = Transform.ExternalOp.V(46)
        GE = Transform.ExternalOp.V(47)
        LT = Transform.ExternalOp.V(48)
        LE = Transform.ExternalOp.V(49)
        NE = Transform.ExternalOp.V(50)
        POS = Transform.ExternalOp.V(51)
        NEG = Transform.ExternalOp.V(52)
        ABS = Transform.ExternalOp.V(53)
        ROUND = Transform.ExternalOp.V(54)
        MOD = Transform.ExternalOp.V(55)
        OR = Transform.ExternalOp.V(56)
        AND = Transform.ExternalOp.V(57)
        SK_ONEHOT = Transform.ExternalOp.V(99)
        SK_PCA = Transform.ExternalOp.V(100)
        SK_AFFINITY_PROPAGATION = Transform.ExternalOp.V(101)
        """Cluster"""

        SK_AGGLOMERATIVE_CLUSTERING = Transform.ExternalOp.V(102)
        SK_BIRCH = Transform.ExternalOp.V(103)
        SK_DBSCAN = Transform.ExternalOp.V(104)
        SK_FEATURE_AGGLOMERATION = Transform.ExternalOp.V(105)
        SK_KMEANS = Transform.ExternalOp.V(106)
        SK_MINIBATCH_KMEANS = Transform.ExternalOp.V(107)
        SK_MEAN_SHIFT = Transform.ExternalOp.V(108)
        SK_OPTICS = Transform.ExternalOp.V(109)
        SK_SPECTRAL_CLUSTERING = Transform.ExternalOp.V(110)
        SK_SPECTRAL_BICLUSTERING = Transform.ExternalOp.V(58)
        SK_SPECTRAL_COCLUSTERING = Transform.ExternalOp.V(59)
        SK_ADABOOST_CLASSIFIER = Transform.ExternalOp.V(60)
        """ensemble"""

        SK_ADABOOST_REGRESSOR = Transform.ExternalOp.V(61)
        SK_BAGGING_CLASSIFIER = Transform.ExternalOp.V(62)
        SK_BAGGING_REGRESSOR = Transform.ExternalOp.V(63)
        SK_EXTRA_TREES_REGRESSOR = Transform.ExternalOp.V(64)
        SK_EXTRA_TREES_CLASSIFIER = Transform.ExternalOp.V(65)
        SK_GRADIENT_BOOSTING_CLASSIFIER = Transform.ExternalOp.V(66)
        SK_GRADIENT_BOOSTING_REGRESSOR = Transform.ExternalOp.V(67)
        SK_ISOLATION_FOREST = Transform.ExternalOp.V(68)
        SK_RANDOM_FOREST_CLASSIFIER = Transform.ExternalOp.V(69)
        SK_RANDOM_FOREST_REGRESSOR = Transform.ExternalOp.V(70)
        SK_RANDOM_TREES_EMBEDDING = Transform.ExternalOp.V(71)
        SK_STACKING_CLASSIFIER = Transform.ExternalOp.V(72)
        SK_STACKING_REGRESSOR = Transform.ExternalOp.V(73)
        SK_VOTING_CLASSIFIER = Transform.ExternalOp.V(74)
        SK_VOTING_REGRESSOR = Transform.ExternalOp.V(75)
        SK_HIST_GRADIENT_BOOSTING_REGRESSOR = Transform.ExternalOp.V(76)
        SK_HIST_GRADIENT_BOOSTING_CLASSIFIER = Transform.ExternalOp.V(77)
        SK_CROSS_VAL_SCORE = Transform.ExternalOp.V(78)
        """Model selection"""

        SK_TRAIN_TEST_SPLIT = Transform.ExternalOp.V(79)
        SK_REPEATED_STRATIFIED_KFOLD = Transform.ExternalOp.V(80)
        SK_ACCURACY_SCORE = Transform.ExternalOp.V(81)
        """Metrics"""

        SK_AVERAGE_PRECISION_SCORE = Transform.ExternalOp.V(82)
        SK_CLASSIFICATION_REPORT = Transform.ExternalOp.V(83)
        SK_CONFUSION_MATRIX = Transform.ExternalOp.V(84)
        SK_F1_SCORE = Transform.ExternalOp.V(85)
        SK_PLOT_CONFUSION_MATRIX = Transform.ExternalOp.V(86)
        SK_PRECISION_RECALL_CURVE = Transform.ExternalOp.V(87)
        SK_PRECISION_SCORE = Transform.ExternalOp.V(88)
        SK_RECALL_SCORE = Transform.ExternalOp.V(89)
        SK_ROC_AUC_SCORE = Transform.ExternalOp.V(90)
        SK_ROC_CURVE = Transform.ExternalOp.V(91)
        XGB_CLASSIFIER = Transform.ExternalOp.V(92)
        """xgb"""

        XGB_CLASSIFIER_PREDICT = Transform.ExternalOp.V(93)
        PD_GET_DUMMIES = Transform.ExternalOp.V(94)
        """Pandas"""

        PD_JOIN = Transform.ExternalOp.V(95)
        PD_CONCAT = Transform.ExternalOp.V(96)
        SK_RANDOM_FOREST_CLASSIFIER_PREDICT = Transform.ExternalOp.V(97)
        """ensemble predict"""

        SK_LABEL_ENCODER_FIT_TRANSFORM = Transform.ExternalOp.V(98)

    PD_MEAN = Transform.ExternalOp.V(0)
    PD_STD = Transform.ExternalOp.V(1)
    PD_LOC = Transform.ExternalOp.V(2)
    PD_EQ = Transform.ExternalOp.V(3)
    NP_MEAN = Transform.ExternalOp.V(4)
    NP_STD = Transform.ExternalOp.V(5)
    NP_ADD = Transform.ExternalOp.V(6)
    NP_SUB = Transform.ExternalOp.V(7)
    TF_BATCH = Transform.ExternalOp.V(8)
    TF_MAP = Transform.ExternalOp.V(9)
    SK_FIT = Transform.ExternalOp.V(10)
    SK_DP_FIT = Transform.ExternalOp.V(11)
    ADD = Transform.ExternalOp.V(12)
    SUB = Transform.ExternalOp.V(13)
    MUL = Transform.ExternalOp.V(14)
    DIV = Transform.ExternalOp.V(15)
    PD_ANY = Transform.ExternalOp.V(16)
    INVERT = Transform.ExternalOp.V(17)
    GETITEM = Transform.ExternalOp.V(18)
    SK_SCALE = Transform.ExternalOp.V(19)
    LEN = Transform.ExternalOp.V(20)
    PD_PROFILE_REPORT = Transform.ExternalOp.V(21)
    PD_DESCRIBE = Transform.ExternalOp.V(22)
    PD_SELECT_DTYPES = Transform.ExternalOp.V(23)
    PD_QUANTILE = Transform.ExternalOp.V(24)
    PD_SUM = Transform.ExternalOp.V(25)
    PD_FILLNA = Transform.ExternalOp.V(26)
    PD_ROUND = Transform.ExternalOp.V(27)
    PD_RENAME = Transform.ExternalOp.V(28)
    PD_COUNT = Transform.ExternalOp.V(29)
    PD_TRANSPOSE = Transform.ExternalOp.V(30)
    PD_UNIQUE = Transform.ExternalOp.V(31)
    """class method"""

    PD_VALUE_COUNTS = Transform.ExternalOp.V(32)
    PD_TO_DICT = Transform.ExternalOp.V(33)
    PD_APPLY = Transform.ExternalOp.V(34)
    PD_SUB = Transform.ExternalOp.V(35)
    PD_MEDIAN = Transform.ExternalOp.V(36)
    PD_ABS = Transform.ExternalOp.V(37)
    PD_MAD = Transform.ExternalOp.V(38)
    PD_SKEW = Transform.ExternalOp.V(39)
    PD_KURTOSIS = Transform.ExternalOp.V(40)
    PD_AGG = Transform.ExternalOp.V(41)
    PD_DROPLEVEL = Transform.ExternalOp.V(42)
    PD_SORT_VALUES = Transform.ExternalOp.V(43)
    PD_DROP = Transform.ExternalOp.V(44)
    PD_CORR = Transform.ExternalOp.V(45)
    GT = Transform.ExternalOp.V(46)
    GE = Transform.ExternalOp.V(47)
    LT = Transform.ExternalOp.V(48)
    LE = Transform.ExternalOp.V(49)
    NE = Transform.ExternalOp.V(50)
    POS = Transform.ExternalOp.V(51)
    NEG = Transform.ExternalOp.V(52)
    ABS = Transform.ExternalOp.V(53)
    ROUND = Transform.ExternalOp.V(54)
    MOD = Transform.ExternalOp.V(55)
    OR = Transform.ExternalOp.V(56)
    AND = Transform.ExternalOp.V(57)
    SK_ONEHOT = Transform.ExternalOp.V(99)
    SK_PCA = Transform.ExternalOp.V(100)
    SK_AFFINITY_PROPAGATION = Transform.ExternalOp.V(101)
    """Cluster"""

    SK_AGGLOMERATIVE_CLUSTERING = Transform.ExternalOp.V(102)
    SK_BIRCH = Transform.ExternalOp.V(103)
    SK_DBSCAN = Transform.ExternalOp.V(104)
    SK_FEATURE_AGGLOMERATION = Transform.ExternalOp.V(105)
    SK_KMEANS = Transform.ExternalOp.V(106)
    SK_MINIBATCH_KMEANS = Transform.ExternalOp.V(107)
    SK_MEAN_SHIFT = Transform.ExternalOp.V(108)
    SK_OPTICS = Transform.ExternalOp.V(109)
    SK_SPECTRAL_CLUSTERING = Transform.ExternalOp.V(110)
    SK_SPECTRAL_BICLUSTERING = Transform.ExternalOp.V(58)
    SK_SPECTRAL_COCLUSTERING = Transform.ExternalOp.V(59)
    SK_ADABOOST_CLASSIFIER = Transform.ExternalOp.V(60)
    """ensemble"""

    SK_ADABOOST_REGRESSOR = Transform.ExternalOp.V(61)
    SK_BAGGING_CLASSIFIER = Transform.ExternalOp.V(62)
    SK_BAGGING_REGRESSOR = Transform.ExternalOp.V(63)
    SK_EXTRA_TREES_REGRESSOR = Transform.ExternalOp.V(64)
    SK_EXTRA_TREES_CLASSIFIER = Transform.ExternalOp.V(65)
    SK_GRADIENT_BOOSTING_CLASSIFIER = Transform.ExternalOp.V(66)
    SK_GRADIENT_BOOSTING_REGRESSOR = Transform.ExternalOp.V(67)
    SK_ISOLATION_FOREST = Transform.ExternalOp.V(68)
    SK_RANDOM_FOREST_CLASSIFIER = Transform.ExternalOp.V(69)
    SK_RANDOM_FOREST_REGRESSOR = Transform.ExternalOp.V(70)
    SK_RANDOM_TREES_EMBEDDING = Transform.ExternalOp.V(71)
    SK_STACKING_CLASSIFIER = Transform.ExternalOp.V(72)
    SK_STACKING_REGRESSOR = Transform.ExternalOp.V(73)
    SK_VOTING_CLASSIFIER = Transform.ExternalOp.V(74)
    SK_VOTING_REGRESSOR = Transform.ExternalOp.V(75)
    SK_HIST_GRADIENT_BOOSTING_REGRESSOR = Transform.ExternalOp.V(76)
    SK_HIST_GRADIENT_BOOSTING_CLASSIFIER = Transform.ExternalOp.V(77)
    SK_CROSS_VAL_SCORE = Transform.ExternalOp.V(78)
    """Model selection"""

    SK_TRAIN_TEST_SPLIT = Transform.ExternalOp.V(79)
    SK_REPEATED_STRATIFIED_KFOLD = Transform.ExternalOp.V(80)
    SK_ACCURACY_SCORE = Transform.ExternalOp.V(81)
    """Metrics"""

    SK_AVERAGE_PRECISION_SCORE = Transform.ExternalOp.V(82)
    SK_CLASSIFICATION_REPORT = Transform.ExternalOp.V(83)
    SK_CONFUSION_MATRIX = Transform.ExternalOp.V(84)
    SK_F1_SCORE = Transform.ExternalOp.V(85)
    SK_PLOT_CONFUSION_MATRIX = Transform.ExternalOp.V(86)
    SK_PRECISION_RECALL_CURVE = Transform.ExternalOp.V(87)
    SK_PRECISION_SCORE = Transform.ExternalOp.V(88)
    SK_RECALL_SCORE = Transform.ExternalOp.V(89)
    SK_ROC_AUC_SCORE = Transform.ExternalOp.V(90)
    SK_ROC_CURVE = Transform.ExternalOp.V(91)
    XGB_CLASSIFIER = Transform.ExternalOp.V(92)
    """xgb"""

    XGB_CLASSIFIER_PREDICT = Transform.ExternalOp.V(93)
    PD_GET_DUMMIES = Transform.ExternalOp.V(94)
    """Pandas"""

    PD_JOIN = Transform.ExternalOp.V(95)
    PD_CONCAT = Transform.ExternalOp.V(96)
    SK_RANDOM_FOREST_CLASSIFIER_PREDICT = Transform.ExternalOp.V(97)
    """ensemble predict"""

    SK_LABEL_ENCODER_FIT_TRANSFORM = Transform.ExternalOp.V(98)

    class PropertiesEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        value: typing.Text = ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            value : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

    class Spec(google.protobuf.message.Message):
        """Definitions"""
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        IDENTITY_FIELD_NUMBER: builtins.int
        VARIABLE_FIELD_NUMBER: builtins.int
        COMPOSED_FIELD_NUMBER: builtins.int
        PROJECT_FIELD_NUMBER: builtins.int
        FILTER_FIELD_NUMBER: builtins.int
        SHUFFLE_FIELD_NUMBER: builtins.int
        JOIN_FIELD_NUMBER: builtins.int
        CAST_FIELD_NUMBER: builtins.int
        SAMPLE_FIELD_NUMBER: builtins.int
        USER_SETTINGS_FIELD_NUMBER: builtins.int
        PROTECT_DATASET_FIELD_NUMBER: builtins.int
        EXTERNAL_FIELD_NUMBER: builtins.int
        SYNTHETIC_FIELD_NUMBER: builtins.int
        TRANSCODE_FIELD_NUMBER: builtins.int
        INVERSE_TRANSCODE_FIELD_NUMBER: builtins.int
        @property
        def identity(self) -> global___Transform.Identity: ...
        @property
        def variable(self) -> global___Transform.Variable: ...
        @property
        def composed(self) -> global___Transform.Composed: ...
        @property
        def project(self) -> global___Transform.Project: ...
        @property
        def filter(self) -> global___Transform.Filter: ...
        @property
        def shuffle(self) -> global___Transform.Shuffle: ...
        @property
        def join(self) -> global___Transform.Join: ...
        @property
        def cast(self) -> global___Transform.Cast: ...
        @property
        def sample(self) -> global___Transform.Sample: ...
        @property
        def user_settings(self) -> global___Transform.UserSettings: ...
        @property
        def protect_dataset(self) -> global___Transform.Protect: ...
        @property
        def external(self) -> global___Transform.External:
            """np transforms, pd transforms,..."""
            pass
        @property
        def synthetic(self) -> global___Transform.Synthetic: ...
        @property
        def transcode(self) -> global___Transform.Transcode: ...
        @property
        def inverse_transcode(self) -> global___Transform.InverseTranscode: ...
        def __init__(self,
            *,
            identity : typing.Optional[global___Transform.Identity] = ...,
            variable : typing.Optional[global___Transform.Variable] = ...,
            composed : typing.Optional[global___Transform.Composed] = ...,
            project : typing.Optional[global___Transform.Project] = ...,
            filter : typing.Optional[global___Transform.Filter] = ...,
            shuffle : typing.Optional[global___Transform.Shuffle] = ...,
            join : typing.Optional[global___Transform.Join] = ...,
            cast : typing.Optional[global___Transform.Cast] = ...,
            sample : typing.Optional[global___Transform.Sample] = ...,
            user_settings : typing.Optional[global___Transform.UserSettings] = ...,
            protect_dataset : typing.Optional[global___Transform.Protect] = ...,
            external : typing.Optional[global___Transform.External] = ...,
            synthetic : typing.Optional[global___Transform.Synthetic] = ...,
            transcode : typing.Optional[global___Transform.Transcode] = ...,
            inverse_transcode : typing.Optional[global___Transform.InverseTranscode] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"cast",b"cast",u"composed",b"composed",u"external",b"external",u"filter",b"filter",u"identity",b"identity",u"inverse_transcode",b"inverse_transcode",u"join",b"join",u"project",b"project",u"protect_dataset",b"protect_dataset",u"sample",b"sample",u"shuffle",b"shuffle",u"spec",b"spec",u"synthetic",b"synthetic",u"transcode",b"transcode",u"user_settings",b"user_settings",u"variable",b"variable"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"cast",b"cast",u"composed",b"composed",u"external",b"external",u"filter",b"filter",u"identity",b"identity",u"inverse_transcode",b"inverse_transcode",u"join",b"join",u"project",b"project",u"protect_dataset",b"protect_dataset",u"sample",b"sample",u"shuffle",b"shuffle",u"spec",b"spec",u"synthetic",b"synthetic",u"transcode",b"transcode",u"user_settings",b"user_settings",u"variable",b"variable"]) -> None: ...
        def WhichOneof(self, oneof_group: typing_extensions.Literal[u"spec",b"spec"]) -> typing.Optional[typing_extensions.Literal["identity","variable","composed","project","filter","shuffle","join","cast","sample","user_settings","protect_dataset","external","synthetic","transcode","inverse_transcode"]]: ...

    class External(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        ARGUMENTS_FIELD_NUMBER: builtins.int
        NAMED_ARGUMENTS_FIELD_NUMBER: builtins.int
        OP_FIELD_NUMBER: builtins.int
        arguments: builtins.bytes = ...
        named_arguments: builtins.bytes = ...
        op: global___Transform.ExternalOp.V = ...
        def __init__(self,
            *,
            arguments : builtins.bytes = ...,
            named_arguments : builtins.bytes = ...,
            op : global___Transform.ExternalOp.V = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"arguments",b"arguments",u"named_arguments",b"named_arguments",u"op",b"op"]) -> None: ...

    class Identity(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class Variable(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        POSITION_FIELD_NUMBER: builtins.int
        NAME_FIELD_NUMBER: builtins.int
        position: builtins.int = ...
        name: typing.Text = ...
        def __init__(self,
            *,
            position : builtins.int = ...,
            name : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"name",b"name",u"position",b"position"]) -> None: ...

    class Composed(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class NamedArgumentsEntry(google.protobuf.message.Message):
            DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
            KEY_FIELD_NUMBER: builtins.int
            VALUE_FIELD_NUMBER: builtins.int
            key: typing.Text = ...
            value: typing.Text = ...
            def __init__(self,
                *,
                key : typing.Text = ...,
                value : typing.Text = ...,
                ) -> None: ...
            def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key",u"value",b"value"]) -> None: ...

        TRANSFORM_FIELD_NUMBER: builtins.int
        ARGUMENTS_FIELD_NUMBER: builtins.int
        NAMED_ARGUMENTS_FIELD_NUMBER: builtins.int
        transform: typing.Text = ...
        """Transform"""

        @property
        def arguments(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text]:
            """Arguments of the current transform are transforms"""
            pass
        @property
        def named_arguments(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]: ...
        def __init__(self,
            *,
            transform : typing.Text = ...,
            arguments : typing.Optional[typing.Iterable[typing.Text]] = ...,
            named_arguments : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"arguments",b"arguments",u"named_arguments",b"named_arguments",u"transform",b"transform"]) -> None: ...

    class Project(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        PROJECTION_FIELD_NUMBER: builtins.int
        @property
        def projection(self) -> sarus_data_spec.protobuf.type_pb2.Type:
            """This should be a 'supertype' the type the data can project into."""
            pass
        def __init__(self,
            *,
            projection : typing.Optional[sarus_data_spec.protobuf.type_pb2.Type] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"projection",b"projection"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"projection",b"projection"]) -> None: ...

    class Filter(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        FILTER_FIELD_NUMBER: builtins.int
        @property
        def filter(self) -> sarus_data_spec.protobuf.type_pb2.Type:
            """This should be a 'subtype' the type the data can be retricted to."""
            pass
        def __init__(self,
            *,
            filter : typing.Optional[sarus_data_spec.protobuf.type_pb2.Type] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"filter",b"filter"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"filter",b"filter"]) -> None: ...

    class Shuffle(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class Join(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        ON_FIELD_NUMBER: builtins.int
        @property
        def on(self) -> sarus_data_spec.protobuf.type_pb2.Type:
            """This should be a common 'supertype' between tables."""
            pass
        def __init__(self,
            *,
            on : typing.Optional[sarus_data_spec.protobuf.type_pb2.Type] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"on",b"on"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"on",b"on"]) -> None: ...

    class Cast(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        TYPE_FIELD_NUMBER: builtins.int
        @property
        def type(self) -> sarus_data_spec.protobuf.type_pb2.Type:
            """Type to cast into."""
            pass
        def __init__(self,
            *,
            type : typing.Optional[sarus_data_spec.protobuf.type_pb2.Type] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"type",b"type"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"type",b"type"]) -> None: ...

    class Sample(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        FRACTION_FIELD_NUMBER: builtins.int
        SIZE_FIELD_NUMBER: builtins.int
        fraction: builtins.float = ...
        size: builtins.int = ...
        def __init__(self,
            *,
            fraction : builtins.float = ...,
            size : builtins.int = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"fraction",b"fraction",u"proportion",b"proportion",u"size",b"size"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"fraction",b"fraction",u"proportion",b"proportion",u"size",b"size"]) -> None: ...
        def WhichOneof(self, oneof_group: typing_extensions.Literal[u"proportion",b"proportion"]) -> typing.Optional[typing_extensions.Literal["fraction","size"]]: ...

    class SchemaInference(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        class CastPolicy(_CastPolicy, metaclass=_CastPolicyEnumTypeWrapper):
            pass
        class _CastPolicy:
            V = typing.NewType('V', builtins.int)
        class _CastPolicyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CastPolicy.V], builtins.type):
            DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
            NONE = Transform.SchemaInference.CastPolicy.V(0)
            MOST_LIKELY = Transform.SchemaInference.CastPolicy.V(1)

        NONE = Transform.SchemaInference.CastPolicy.V(0)
        MOST_LIKELY = Transform.SchemaInference.CastPolicy.V(1)

        CAST_POLICY_FIELD_NUMBER: builtins.int
        cast_policy: global___Transform.SchemaInference.CastPolicy.V = ...
        def __init__(self,
            *,
            cast_policy : global___Transform.SchemaInference.CastPolicy.V = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"cast_policy",b"cast_policy"]) -> None: ...

    class GroupBy(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        KEY_FIELD_NUMBER: builtins.int
        key: typing.Text = ...
        def __init__(self,
            *,
            key : typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"key",b"key"]) -> None: ...

    class Synthetic(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class UserSettings(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        TYPE_FIELD_NUMBER: builtins.int
        @property
        def type(self) -> sarus_data_spec.protobuf.type_pb2.Type: ...
        def __init__(self,
            *,
            type : typing.Optional[sarus_data_spec.protobuf.type_pb2.Type] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"type",b"type"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"type",b"type"]) -> None: ...

    class Protect(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        PROTECTED_ENTITIES_FIELD_NUMBER: builtins.int
        PUBLIC_ENTITIES_FIELD_NUMBER: builtins.int
        @property
        def protected_entities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sarus_data_spec.protobuf.path_pb2.Path]: ...
        @property
        def public_entities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sarus_data_spec.protobuf.path_pb2.Path]: ...
        def __init__(self,
            *,
            protected_entities : typing.Optional[typing.Iterable[sarus_data_spec.protobuf.path_pb2.Path]] = ...,
            public_entities : typing.Optional[typing.Iterable[sarus_data_spec.protobuf.path_pb2.Path]] = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"protected_entities",b"protected_entities",u"public_entities",b"public_entities"]) -> None: ...

    class Transcode(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        STATISTICS_FIELD_NUMBER: builtins.int
        DATA_TYPE_FIELD_NUMBER: builtins.int
        PROTECTED_PATH_FIELD_NUMBER: builtins.int
        @property
        def statistics(self) -> sarus_data_spec.protobuf.statistics_pb2.Statistics: ...
        @property
        def data_type(self) -> sarus_data_spec.protobuf.type_pb2.Type: ...
        @property
        def protected_path(self) -> sarus_data_spec.protobuf.path_pb2.Path: ...
        def __init__(self,
            *,
            statistics : typing.Optional[sarus_data_spec.protobuf.statistics_pb2.Statistics] = ...,
            data_type : typing.Optional[sarus_data_spec.protobuf.type_pb2.Type] = ...,
            protected_path : typing.Optional[sarus_data_spec.protobuf.path_pb2.Path] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"data_type",b"data_type",u"protected_path",b"protected_path",u"statistics",b"statistics"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"data_type",b"data_type",u"protected_path",b"protected_path",u"statistics",b"statistics"]) -> None: ...

    class InverseTranscode(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        TRANSCODE_FIELD_NUMBER: builtins.int
        @property
        def transcode(self) -> global___Transform.Transcode: ...
        def __init__(self,
            *,
            transcode : typing.Optional[global___Transform.Transcode] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"transcode",b"transcode"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"transcode",b"transcode"]) -> None: ...

    UUID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DOC_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    PROPERTIES_FIELD_NUMBER: builtins.int
    INVERSIBLE_FIELD_NUMBER: builtins.int
    SCHEMA_PRESERVING_FIELD_NUMBER: builtins.int
    uuid: typing.Text = ...
    """A dataset transform
    e.g. RFC 4122 id used to refer to the transform
    """

    name: typing.Text = ...
    doc: typing.Text = ...
    @property
    def spec(self) -> global___Transform.Spec: ...
    @property
    def properties(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]:
        """Other properties"""
        pass
    inversible: builtins.bool = ...
    schema_preserving: builtins.bool = ...
    def __init__(self,
        *,
        uuid : typing.Text = ...,
        name : typing.Text = ...,
        doc : typing.Text = ...,
        spec : typing.Optional[global___Transform.Spec] = ...,
        properties : typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        inversible : builtins.bool = ...,
        schema_preserving : builtins.bool = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"spec",b"spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"doc",b"doc",u"inversible",b"inversible",u"name",b"name",u"properties",b"properties",u"schema_preserving",b"schema_preserving",u"spec",b"spec",u"uuid",b"uuid"]) -> None: ...
global___Transform = Transform
