# coding: utf-8

"""
    Mixpeek API

    This is the Mixpeek API, providing access to various endpoints for data processing and retrieval.

    The version of the OpenAPI document: 1.3.0
    Contact: info@mixpeek.com
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


import unittest

from mixpeek.models.retriever_model_input import RetrieverModelInput

class TestRetrieverModelInput(unittest.TestCase):
    """RetrieverModelInput unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> RetrieverModelInput:
        """Test RetrieverModelInput
            include_optional is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # uncomment below to create an instance of `RetrieverModelInput`
        """
        model = RetrieverModelInput()
        if include_optional:
            return RetrieverModelInput(
                retriever_id = '',
                retriever_name = '',
                description = '',
                input_schema = {
                    'key' : null
                    },
                collection_ids = [
                    ''
                    ],
                stages = [
                    mixpeek.models.stage_instance_config.StageInstanceConfig(
                        stage_name = '', 
                        stage_id = '', 
                        parameters = mixpeek.models.parameters.Parameters(), 
                        pre_filters = {
                            'key' : null
                            }, 
                        post_filters = {
                            'key' : null
                            }, 
                        stats = mixpeek.models.stage_performance.StagePerformance(
                            avg_execution_ms = 1.337, 
                            execution_count = 56, 
                            error_count = 56, 
                            last_executed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
                    ],
                cache_config = mixpeek.models.cache_config.CacheConfig(
                    enabled = True, 
                    ttl_seconds = 0.0, 
                    cache_stage_names = [
                        ''
                        ], 
                    exclude_fields = [
                        ''
                        ], 
                    stats = mixpeek.models.cache_statistics.CacheStatistics(
                        hit_count = 56, 
                        miss_count = 56, 
                        hit_rate = 0.0, 
                        size_bytes = 56, 
                        entry_count = 56, 
                        last_invalidated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), ),
                created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                last_executed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                enabled = True,
                status = 'active',
                usage_stats = mixpeek.models.usage_statistics.UsageStatistics(
                    total_queries = 56, 
                    queries_last_24h = 56, 
                    avg_latency_ms = 1.337, 
                    error_rate = 0.0, 
                    last_error = '', 
                    cache_hit_rate = 0.0, ),
                collections = [
                    mixpeek.models.collection_detail.CollectionDetail(
                        collection_id = '', 
                        collection_name = '', 
                        document_count = 56, 
                        enabled = True, 
                        last_indexed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), )
                    ],
                metadata = mixpeek.models.metadata.Metadata(),
                tags = [
                    ''
                    ],
                created_by = mixpeek.models.creator_info.CreatorInfo(
                    user_id = '', 
                    email = '', 
                    name = '', ),
                updated_by = mixpeek.models.creator_info.CreatorInfo(
                    user_id = '', 
                    email = '', 
                    name = '', ),
                version = 56,
                revision_history = [
                    mixpeek.models.revision_history_entry.RevisionHistoryEntry(
                        version = 56, 
                        updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                        updated_by = '', 
                        changes = '', )
                    ],
                health = mixpeek.models.health_check.HealthCheck(
                    status = null, 
                    last_check = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                    issues = [
                        ''
                        ], )
            )
        else:
            return RetrieverModelInput(
                retriever_name = '',
                input_schema = {
                    'key' : null
                    },
                collection_ids = [
                    ''
                    ],
                stages = [
                    mixpeek.models.stage_instance_config.StageInstanceConfig(
                        stage_name = '', 
                        stage_id = '', 
                        parameters = mixpeek.models.parameters.Parameters(), 
                        pre_filters = {
                            'key' : null
                            }, 
                        post_filters = {
                            'key' : null
                            }, 
                        stats = mixpeek.models.stage_performance.StagePerformance(
                            avg_execution_ms = 1.337, 
                            execution_count = 56, 
                            error_count = 56, 
                            last_executed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), )
                    ],
        )
        """

    def testRetrieverModelInput(self):
        """Test RetrieverModelInput"""
        # inst_req_only = self.make_instance(include_optional=False)
        # inst_req_and_optional = self.make_instance(include_optional=True)

if __name__ == '__main__':
    unittest.main()
