"""
    FastAPI

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

    The version of the OpenAPI document: 0.1.0
    Generated by: https://openapi-generator.tech
"""


import re  # noqa: F401
import sys  # noqa: F401

from openapi_client.api_client import ApiClient, Endpoint as _Endpoint
from openapi_client.model_utils import (  # noqa: F401
    check_allowed_values,
    check_validations,
    date,
    datetime,
    file_type,
    none_type,
    validate_and_convert_types
)
from openapi_client.model.conservation_status import ConservationStatus
from openapi_client.model.defendant import Defendant
from openapi_client.model.defendant_post import DefendantPost
from openapi_client.model.http_validation_error import HTTPValidationError
from openapi_client.model.judgment import Judgment
from openapi_client.model.judgment_post import JudgmentPost
from openapi_client.model.protection_class import ProtectionClass
from openapi_client.model.source import Source
from openapi_client.model.source_category import SourceCategory
from openapi_client.model.source_post import SourcePost
from openapi_client.model.species import Species
from openapi_client.model.species_bulk_patch_result import SpeciesBulkPatchResult


class DefaultApi(object):
    """NOTE: This class is auto generated by OpenAPI Generator
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    def __init__(self, api_client=None):
        if api_client is None:
            api_client = ApiClient()
        self.api_client = api_client
        self.bulk_patch_species_analytics_species_patch_endpoint = _Endpoint(
            settings={
                'response_type': (SpeciesBulkPatchResult,),
                'auth': [],
                'endpoint_path': '/analytics/species',
                'operation_id': 'bulk_patch_species_analytics_species_patch',
                'http_method': 'PATCH',
                'servers': None,
            },
            params_map={
                'all': [
                    'species',
                ],
                'required': [
                    'species',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'species':
                        ([Species],),
                },
                'attribute_map': {
                },
                'location_map': {
                    'species': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json'
                ]
            },
            api_client=api_client
        )
        self.get_defendant_analytics_judgment_defendant_get_endpoint = _Endpoint(
            settings={
                'response_type': ([Defendant],),
                'auth': [],
                'endpoint_path': '/analytics/judgment/defendant',
                'operation_id': 'get_defendant_analytics_judgment_defendant_get',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'judgment_id',
                    'name',
                    'gender',
                    'birth_before',
                    'birth_after',
                    'education_level',
                ],
                'required': [],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'judgment_id':
                        (int,),
                    'name':
                        ([str],),
                    'gender':
                        ([str],),
                    'birth_before':
                        (date,),
                    'birth_after':
                        (date,),
                    'education_level':
                        ([str],),
                },
                'attribute_map': {
                    'judgment_id': 'judgment_id',
                    'name': 'name',
                    'gender': 'gender',
                    'birth_before': 'birthBefore',
                    'birth_after': 'birthAfter',
                    'education_level': 'educationLevel',
                },
                'location_map': {
                    'judgment_id': 'query',
                    'name': 'query',
                    'gender': 'query',
                    'birth_before': 'query',
                    'birth_after': 'query',
                    'education_level': 'query',
                },
                'collection_format_map': {
                    'name': 'multi',
                    'gender': 'multi',
                    'education_level': 'multi',
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_judgment_analytics_judgment_judgment_id_get_endpoint = _Endpoint(
            settings={
                'response_type': (Judgment,),
                'auth': [],
                'endpoint_path': '/analytics/judgment/{judgment_id}',
                'operation_id': 'get_judgment_analytics_judgment_judgment_id_get',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'judgment_id',
                ],
                'required': [
                    'judgment_id',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'judgment_id':
                        (int,),
                },
                'attribute_map': {
                    'judgment_id': 'judgment_id',
                },
                'location_map': {
                    'judgment_id': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_sources_analytics_judgment_source_get_endpoint = _Endpoint(
            settings={
                'response_type': ([Source],),
                'auth': [],
                'endpoint_path': '/analytics/judgment/source',
                'operation_id': 'get_sources_analytics_judgment_source_get',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'judgment_id',
                    'category',
                    'occasion',
                    'seller',
                    'buyer',
                    'method',
                    'destination',
                    'usage',
                ],
                'required': [],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'judgment_id':
                        (int,),
                    'category':
                        ([SourceCategory],),
                    'occasion':
                        ([str],),
                    'seller':
                        ([str],),
                    'buyer':
                        ([str],),
                    'method':
                        ([str],),
                    'destination':
                        ([str],),
                    'usage':
                        ([str],),
                },
                'attribute_map': {
                    'judgment_id': 'judgmentId',
                    'category': 'category',
                    'occasion': 'occasion',
                    'seller': 'seller',
                    'buyer': 'buyer',
                    'method': 'method',
                    'destination': 'destination',
                    'usage': 'usage',
                },
                'location_map': {
                    'judgment_id': 'query',
                    'category': 'query',
                    'occasion': 'query',
                    'seller': 'query',
                    'buyer': 'query',
                    'method': 'query',
                    'destination': 'query',
                    'usage': 'query',
                },
                'collection_format_map': {
                    'category': 'multi',
                    'occasion': 'multi',
                    'seller': 'multi',
                    'buyer': 'multi',
                    'method': 'multi',
                    'destination': 'multi',
                    'usage': 'multi',
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_species_analytics_species_get_endpoint = _Endpoint(
            settings={
                'response_type': ([Species],),
                'auth': [],
                'endpoint_path': '/analytics/species',
                'operation_id': 'get_species_analytics_species_get',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'species',
                    'genus',
                    'family',
                    'order',
                    '_class',
                    'protection_class',
                    'conservation_status',
                ],
                'required': [],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'species':
                        ([str],),
                    'genus':
                        ([str],),
                    'family':
                        ([str],),
                    'order':
                        ([str],),
                    '_class':
                        ([str],),
                    'protection_class':
                        ([ProtectionClass],),
                    'conservation_status':
                        ([ConservationStatus],),
                },
                'attribute_map': {
                    'species': 'species',
                    'genus': 'genus',
                    'family': 'family',
                    'order': 'order',
                    '_class': 'class',
                    'protection_class': 'protectionClass',
                    'conservation_status': 'conservationStatus',
                },
                'location_map': {
                    'species': 'query',
                    'genus': 'query',
                    'family': 'query',
                    'order': 'query',
                    '_class': 'query',
                    'protection_class': 'query',
                    'conservation_status': 'query',
                },
                'collection_format_map': {
                    'species': 'multi',
                    'genus': 'multi',
                    'family': 'multi',
                    'order': 'multi',
                    '_class': 'multi',
                    'protection_class': 'multi',
                    'conservation_status': 'multi',
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.post_defendant_analytics_judgment_defendant_judgment_id_post_endpoint = _Endpoint(
            settings={
                'response_type': (Defendant,),
                'auth': [],
                'endpoint_path': '/analytics/judgment/defendant/{judgment_id}',
                'operation_id': 'post_defendant_analytics_judgment_defendant_judgment_id_post',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'judgment_id',
                    'defendant_post',
                ],
                'required': [
                    'judgment_id',
                    'defendant_post',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'judgment_id':
                        (int,),
                    'defendant_post':
                        (DefendantPost,),
                },
                'attribute_map': {
                    'judgment_id': 'judgment_id',
                },
                'location_map': {
                    'judgment_id': 'path',
                    'defendant_post': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json'
                ]
            },
            api_client=api_client
        )
        self.post_judgment_analytics_judgment_post_endpoint = _Endpoint(
            settings={
                'response_type': (Judgment,),
                'auth': [],
                'endpoint_path': '/analytics/judgment',
                'operation_id': 'post_judgment_analytics_judgment_post',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'judgment_post',
                ],
                'required': [
                    'judgment_post',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'judgment_post':
                        (JudgmentPost,),
                },
                'attribute_map': {
                },
                'location_map': {
                    'judgment_post': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json'
                ]
            },
            api_client=api_client
        )
        self.post_source_analytics_judgment_source_judgment_id_post_endpoint = _Endpoint(
            settings={
                'response_type': (Source,),
                'auth': [],
                'endpoint_path': '/analytics/judgment/source/{judgment_id}',
                'operation_id': 'post_source_analytics_judgment_source_judgment_id_post',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'judgment_id',
                    'source_post',
                ],
                'required': [
                    'judgment_id',
                    'source_post',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'judgment_id':
                        (int,),
                    'source_post':
                        (SourcePost,),
                },
                'attribute_map': {
                    'judgment_id': 'judgment_id',
                },
                'location_map': {
                    'judgment_id': 'path',
                    'source_post': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json'
                ]
            },
            api_client=api_client
        )
        self.read_root_get_endpoint = _Endpoint(
            settings={
                'response_type': (bool, date, datetime, dict, float, int, list, str, none_type,),
                'auth': [],
                'endpoint_path': '/',
                'operation_id': 'read_root_get',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                ],
                'required': [],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                },
                'attribute_map': {
                },
                'location_map': {
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.search_judgments_analytics_judgment_get_endpoint = _Endpoint(
            settings={
                'response_type': ([Judgment],),
                'auth': [],
                'endpoint_path': '/analytics/judgment',
                'operation_id': 'search_judgments_analytics_judgment_get',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'judgment_id',
                    'title',
                    'location',
                    'date_before',
                    'date_after',
                    'name',
                    'gender',
                    'birth_before',
                    'birth_after',
                    'education_level',
                    'species',
                    'genus',
                    'family',
                    'order',
                    '_class',
                    'protection_class',
                    'conservation_status',
                    'category',
                    'occasion',
                    'seller',
                    'buyer',
                    'method',
                    'destination',
                    'usage',
                ],
                'required': [],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'judgment_id':
                        (int,),
                    'title':
                        (str,),
                    'location':
                        (str,),
                    'date_before':
                        (datetime,),
                    'date_after':
                        (datetime,),
                    'name':
                        ([str],),
                    'gender':
                        ([str],),
                    'birth_before':
                        (date,),
                    'birth_after':
                        (date,),
                    'education_level':
                        ([str],),
                    'species':
                        ([str],),
                    'genus':
                        ([str],),
                    'family':
                        ([str],),
                    'order':
                        ([str],),
                    '_class':
                        ([str],),
                    'protection_class':
                        ([ProtectionClass],),
                    'conservation_status':
                        ([ConservationStatus],),
                    'category':
                        ([SourceCategory],),
                    'occasion':
                        ([str],),
                    'seller':
                        ([str],),
                    'buyer':
                        ([str],),
                    'method':
                        ([str],),
                    'destination':
                        ([str],),
                    'usage':
                        ([str],),
                },
                'attribute_map': {
                    'judgment_id': 'judgmentId',
                    'title': 'title',
                    'location': 'location',
                    'date_before': 'dateBefore',
                    'date_after': 'dateAfter',
                    'name': 'name',
                    'gender': 'gender',
                    'birth_before': 'birthBefore',
                    'birth_after': 'birthAfter',
                    'education_level': 'educationLevel',
                    'species': 'species',
                    'genus': 'genus',
                    'family': 'family',
                    'order': 'order',
                    '_class': 'class',
                    'protection_class': 'protectionClass',
                    'conservation_status': 'conservationStatus',
                    'category': 'category',
                    'occasion': 'occasion',
                    'seller': 'seller',
                    'buyer': 'buyer',
                    'method': 'method',
                    'destination': 'destination',
                    'usage': 'usage',
                },
                'location_map': {
                    'judgment_id': 'query',
                    'title': 'query',
                    'location': 'query',
                    'date_before': 'query',
                    'date_after': 'query',
                    'name': 'query',
                    'gender': 'query',
                    'birth_before': 'query',
                    'birth_after': 'query',
                    'education_level': 'query',
                    'species': 'query',
                    'genus': 'query',
                    'family': 'query',
                    'order': 'query',
                    '_class': 'query',
                    'protection_class': 'query',
                    'conservation_status': 'query',
                    'category': 'query',
                    'occasion': 'query',
                    'seller': 'query',
                    'buyer': 'query',
                    'method': 'query',
                    'destination': 'query',
                    'usage': 'query',
                },
                'collection_format_map': {
                    'name': 'multi',
                    'gender': 'multi',
                    'education_level': 'multi',
                    'species': 'multi',
                    'genus': 'multi',
                    'family': 'multi',
                    'order': 'multi',
                    '_class': 'multi',
                    'protection_class': 'multi',
                    'conservation_status': 'multi',
                    'category': 'multi',
                    'occasion': 'multi',
                    'seller': 'multi',
                    'buyer': 'multi',
                    'method': 'multi',
                    'destination': 'multi',
                    'usage': 'multi',
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )

    def bulk_patch_species_analytics_species_patch(
        self,
        species,
        **kwargs
    ):
        """Bulk Patch Species  # noqa: E501

        Insert or update species in bulk, creating missing taxons for each rank during operation  Args:     species (List[Species]): The species to be added/updated  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.bulk_patch_species_analytics_species_patch(species, async_req=True)
        >>> result = thread.get()

        Args:
            species ([Species]):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): timeout setting for this request. If
                one number provided, it will be total request timeout. It can also
                be a pair (tuple) of (connection, read) timeouts.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            _request_auths (list): set to override the auth_settings for an a single
                request; this effectively ignores the authentication
                in the spec for a single request.
                Default is None
            async_req (bool): execute request asynchronously

        Returns:
            SpeciesBulkPatchResult
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['_request_auths'] = kwargs.get('_request_auths', None)
        kwargs['species'] = \
            species
        return self.bulk_patch_species_analytics_species_patch_endpoint.call_with_http_info(**kwargs)

    def get_defendant_analytics_judgment_defendant_get(
        self,
        **kwargs
    ):
        """Get Defendant  # noqa: E501

        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_defendant_analytics_judgment_defendant_get(async_req=True)
        >>> result = thread.get()


        Keyword Args:
            judgment_id (int): [optional]
            name ([str]): [optional]
            gender ([str]): [optional]
            birth_before (date): [optional]
            birth_after (date): [optional]
            education_level ([str]): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): timeout setting for this request. If
                one number provided, it will be total request timeout. It can also
                be a pair (tuple) of (connection, read) timeouts.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            _request_auths (list): set to override the auth_settings for an a single
                request; this effectively ignores the authentication
                in the spec for a single request.
                Default is None
            async_req (bool): execute request asynchronously

        Returns:
            [Defendant]
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['_request_auths'] = kwargs.get('_request_auths', None)
        return self.get_defendant_analytics_judgment_defendant_get_endpoint.call_with_http_info(**kwargs)

    def get_judgment_analytics_judgment_judgment_id_get(
        self,
        judgment_id,
        **kwargs
    ):
        """Get Judgment  # noqa: E501

        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_judgment_analytics_judgment_judgment_id_get(judgment_id, async_req=True)
        >>> result = thread.get()

        Args:
            judgment_id (int):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): timeout setting for this request. If
                one number provided, it will be total request timeout. It can also
                be a pair (tuple) of (connection, read) timeouts.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            _request_auths (list): set to override the auth_settings for an a single
                request; this effectively ignores the authentication
                in the spec for a single request.
                Default is None
            async_req (bool): execute request asynchronously

        Returns:
            Judgment
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['_request_auths'] = kwargs.get('_request_auths', None)
        kwargs['judgment_id'] = \
            judgment_id
        return self.get_judgment_analytics_judgment_judgment_id_get_endpoint.call_with_http_info(**kwargs)

    def get_sources_analytics_judgment_source_get(
        self,
        **kwargs
    ):
        """Get Sources  # noqa: E501

        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_sources_analytics_judgment_source_get(async_req=True)
        >>> result = thread.get()


        Keyword Args:
            judgment_id (int): [optional]
            category ([SourceCategory]): [optional]
            occasion ([str]): [optional]
            seller ([str]): [optional]
            buyer ([str]): [optional]
            method ([str]): [optional]
            destination ([str]): [optional]
            usage ([str]): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): timeout setting for this request. If
                one number provided, it will be total request timeout. It can also
                be a pair (tuple) of (connection, read) timeouts.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            _request_auths (list): set to override the auth_settings for an a single
                request; this effectively ignores the authentication
                in the spec for a single request.
                Default is None
            async_req (bool): execute request asynchronously

        Returns:
            [Source]
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['_request_auths'] = kwargs.get('_request_auths', None)
        return self.get_sources_analytics_judgment_source_get_endpoint.call_with_http_info(**kwargs)

    def get_species_analytics_species_get(
        self,
        **kwargs
    ):
        """Get Species  # noqa: E501

        Get a list of species with the given filters  Args:     species_filter (SpeciesFilter, optional): [description]. Defaults to Depends(SpeciesFilter).     db (Session, optional): [description]. Defaults to Depends(get_db).  Returns:     list[Species]: [description]  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_species_analytics_species_get(async_req=True)
        >>> result = thread.get()


        Keyword Args:
            species ([str]): [optional]
            genus ([str]): [optional]
            family ([str]): [optional]
            order ([str]): [optional]
            _class ([str]): [optional]
            protection_class ([ProtectionClass]): [optional]
            conservation_status ([ConservationStatus]): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): timeout setting for this request. If
                one number provided, it will be total request timeout. It can also
                be a pair (tuple) of (connection, read) timeouts.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            _request_auths (list): set to override the auth_settings for an a single
                request; this effectively ignores the authentication
                in the spec for a single request.
                Default is None
            async_req (bool): execute request asynchronously

        Returns:
            [Species]
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['_request_auths'] = kwargs.get('_request_auths', None)
        return self.get_species_analytics_species_get_endpoint.call_with_http_info(**kwargs)

    def post_defendant_analytics_judgment_defendant_judgment_id_post(
        self,
        judgment_id,
        defendant_post,
        **kwargs
    ):
        """Post Defendant  # noqa: E501

        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.post_defendant_analytics_judgment_defendant_judgment_id_post(judgment_id, defendant_post, async_req=True)
        >>> result = thread.get()

        Args:
            judgment_id (int):
            defendant_post (DefendantPost):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): timeout setting for this request. If
                one number provided, it will be total request timeout. It can also
                be a pair (tuple) of (connection, read) timeouts.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            _request_auths (list): set to override the auth_settings for an a single
                request; this effectively ignores the authentication
                in the spec for a single request.
                Default is None
            async_req (bool): execute request asynchronously

        Returns:
            Defendant
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['_request_auths'] = kwargs.get('_request_auths', None)
        kwargs['judgment_id'] = \
            judgment_id
        kwargs['defendant_post'] = \
            defendant_post
        return self.post_defendant_analytics_judgment_defendant_judgment_id_post_endpoint.call_with_http_info(**kwargs)

    def post_judgment_analytics_judgment_post(
        self,
        judgment_post,
        **kwargs
    ):
        """Post Judgment  # noqa: E501

        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.post_judgment_analytics_judgment_post(judgment_post, async_req=True)
        >>> result = thread.get()

        Args:
            judgment_post (JudgmentPost):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): timeout setting for this request. If
                one number provided, it will be total request timeout. It can also
                be a pair (tuple) of (connection, read) timeouts.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            _request_auths (list): set to override the auth_settings for an a single
                request; this effectively ignores the authentication
                in the spec for a single request.
                Default is None
            async_req (bool): execute request asynchronously

        Returns:
            Judgment
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['_request_auths'] = kwargs.get('_request_auths', None)
        kwargs['judgment_post'] = \
            judgment_post
        return self.post_judgment_analytics_judgment_post_endpoint.call_with_http_info(**kwargs)

    def post_source_analytics_judgment_source_judgment_id_post(
        self,
        judgment_id,
        source_post,
        **kwargs
    ):
        """Post Source  # noqa: E501

        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.post_source_analytics_judgment_source_judgment_id_post(judgment_id, source_post, async_req=True)
        >>> result = thread.get()

        Args:
            judgment_id (int):
            source_post (SourcePost):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): timeout setting for this request. If
                one number provided, it will be total request timeout. It can also
                be a pair (tuple) of (connection, read) timeouts.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            _request_auths (list): set to override the auth_settings for an a single
                request; this effectively ignores the authentication
                in the spec for a single request.
                Default is None
            async_req (bool): execute request asynchronously

        Returns:
            Source
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['_request_auths'] = kwargs.get('_request_auths', None)
        kwargs['judgment_id'] = \
            judgment_id
        kwargs['source_post'] = \
            source_post
        return self.post_source_analytics_judgment_source_judgment_id_post_endpoint.call_with_http_info(**kwargs)

    def read_root_get(
        self,
        **kwargs
    ):
        """Read Root  # noqa: E501

        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.read_root_get(async_req=True)
        >>> result = thread.get()


        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): timeout setting for this request. If
                one number provided, it will be total request timeout. It can also
                be a pair (tuple) of (connection, read) timeouts.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            _request_auths (list): set to override the auth_settings for an a single
                request; this effectively ignores the authentication
                in the spec for a single request.
                Default is None
            async_req (bool): execute request asynchronously

        Returns:
            bool, date, datetime, dict, float, int, list, str, none_type
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['_request_auths'] = kwargs.get('_request_auths', None)
        return self.read_root_get_endpoint.call_with_http_info(**kwargs)

    def search_judgments_analytics_judgment_get(
        self,
        **kwargs
    ):
        """Search Judgments  # noqa: E501

        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.search_judgments_analytics_judgment_get(async_req=True)
        >>> result = thread.get()


        Keyword Args:
            judgment_id (int): [optional]
            title (str): [optional]
            location (str): [optional]
            date_before (datetime): [optional]
            date_after (datetime): [optional]
            name ([str]): [optional]
            gender ([str]): [optional]
            birth_before (date): [optional]
            birth_after (date): [optional]
            education_level ([str]): [optional]
            species ([str]): [optional]
            genus ([str]): [optional]
            family ([str]): [optional]
            order ([str]): [optional]
            _class ([str]): [optional]
            protection_class ([ProtectionClass]): [optional]
            conservation_status ([ConservationStatus]): [optional]
            category ([SourceCategory]): [optional]
            occasion ([str]): [optional]
            seller ([str]): [optional]
            buyer ([str]): [optional]
            method ([str]): [optional]
            destination ([str]): [optional]
            usage ([str]): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): timeout setting for this request. If
                one number provided, it will be total request timeout. It can also
                be a pair (tuple) of (connection, read) timeouts.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            _request_auths (list): set to override the auth_settings for an a single
                request; this effectively ignores the authentication
                in the spec for a single request.
                Default is None
            async_req (bool): execute request asynchronously

        Returns:
            [Judgment]
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['_request_auths'] = kwargs.get('_request_auths', None)
        return self.search_judgments_analytics_judgment_get_endpoint.call_with_http_info(**kwargs)

