#
# Copyright 2021 DataRobot, Inc. and its affiliates.
#
# All rights reserved.
#
# DataRobot, Inc.
#
# This is proprietary source code of DataRobot, Inc. and its
# affiliates.
#
# Released under the terms of DataRobot Tool and Utility Agreement.
"""
Autogenerated DataRobot python client file.  Please don't modify.
"""

import trafaret as t
from datarobot.models.api_object import APIObject
from datarobot.models.full_api.generated.model.validation_check import ValidationCheck

class ValidationChecks(APIObject):
    """
    Attributes
    ----------
    combined_model_segments:ValidationCheck [optional]
         
    contains_tracked_segment_attributes:ValidationCheck [optional]
         
    feature_data_types:ValidationCheck [optional]
         
    features:ValidationCheck [optional]
         
    humility_rules:ValidationCheck [optional]
         
    model_can_be_deployed:ValidationCheck [optional]
         
    model_status:ValidationCheck [optional]
         
    not_current_model:ValidationCheck [optional]
         
    permission:ValidationCheck [optional]
         
    prediction_ready:ValidationCheck [optional]
         
    series_type:ValidationCheck [optional]
         
    supported:ValidationCheck [optional]
         
    target:ValidationCheck [optional]
         
    target_classes:ValidationCheck [optional]
         
    target_type:ValidationCheck [optional]
         
    time_series_compatibility:ValidationCheck [optional]
         
    valid_challenger:ValidationCheck [optional]
         
    """
    _converter = t.Dict(
        {
            t.Key("combined_model_segments", optional=True):  t.Any(),
            t.Key("contains_tracked_segment_attributes", optional=True):  t.Any(),
            t.Key("feature_data_types", optional=True):  t.Any(),
            t.Key("features", optional=True):  t.Any(),
            t.Key("humility_rules", optional=True):  t.Any(),
            t.Key("model_can_be_deployed", optional=True):  t.Any(),
            t.Key("model_status", optional=True):  t.Any(),
            t.Key("not_current_model", optional=True):  t.Any(),
            t.Key("permission", optional=True):  t.Any(),
            t.Key("prediction_ready", optional=True):  t.Any(),
            t.Key("series_type", optional=True):  t.Any(),
            t.Key("supported", optional=True):  t.Any(),
            t.Key("target", optional=True):  t.Any(),
            t.Key("target_classes", optional=True):  t.Any(),
            t.Key("target_type", optional=True):  t.Any(),
            t.Key("time_series_compatibility", optional=True):  t.Any(),
            t.Key("valid_challenger", optional=True):  t.Any(),
        }
    ).ignore_extra("*")

    def __init__(
        self,
        combined_model_segments=None,
        contains_tracked_segment_attributes=None,
        feature_data_types=None,
        features=None,
        humility_rules=None,
        model_can_be_deployed=None,
        model_status=None,
        not_current_model=None,
        permission=None,
        prediction_ready=None,
        series_type=None,
        supported=None,
        target=None,
        target_classes=None,
        target_type=None,
        time_series_compatibility=None,
        valid_challenger=None,
    ):
        self.combined_model_segments = combined_model_segments
        self.contains_tracked_segment_attributes = contains_tracked_segment_attributes
        self.feature_data_types = feature_data_types
        self.features = features
        self.humility_rules = humility_rules
        self.model_can_be_deployed = model_can_be_deployed
        self.model_status = model_status
        self.not_current_model = not_current_model
        self.permission = permission
        self.prediction_ready = prediction_ready
        self.series_type = series_type
        self.supported = supported
        self.target = target
        self.target_classes = target_classes
        self.target_type = target_type
        self.time_series_compatibility = time_series_compatibility
        self.valid_challenger = valid_challenger

    def __repr__(self):
        return (
            "ValidationChecks("
            "combined_model_segments={0.combined_model_segments}, "
            "contains_tracked_segment_attributes={0.contains_tracked_segment_attributes}, "
            "feature_data_types={0.feature_data_types}, "
            "features={0.features}, "
            "humility_rules={0.humility_rules}, "
            "model_can_be_deployed={0.model_can_be_deployed}, "
            "model_status={0.model_status}, "
            "not_current_model={0.not_current_model}, "
            "permission={0.permission}, "
            "prediction_ready={0.prediction_ready}, "
            "series_type={0.series_type}, "
            "supported={0.supported}, "
            "target={0.target}, "
            "target_classes={0.target_classes}, "
            "target_type={0.target_type}, "
            "time_series_compatibility={0.time_series_compatibility}, "
            "valid_challenger={0.valid_challenger}, "
        ).format(self)
