"""
    SORACOM API

    SORACOM API v1  # noqa: E501

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


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

from soracom_api.api_client import ApiClient, Endpoint as _Endpoint
from soracom_api.model_utils import (  # noqa: F401
    check_allowed_values,
    check_validations,
    date,
    datetime,
    file_type,
    none_type,
    validate_and_convert_types
)
from soracom_api.model.air_stats_response import AirStatsResponse
from soracom_api.model.beam_stats_response import BeamStatsResponse
from soracom_api.model.export_request import ExportRequest
from soracom_api.model.file_export_response import FileExportResponse
from soracom_api.model.harvest_exported_data_stats_response import HarvestExportedDataStatsResponse
from soracom_api.model.napter_audit_logs_exported_data_stats_response import NapterAuditLogsExportedDataStatsResponse


class StatsApi(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.export_air_stats_endpoint = _Endpoint(
            settings={
                'response_type': (FileExportResponse,),
                'auth': [
                    'api_key',
                    'api_token'
                ],
                'endpoint_path': '/stats/air/operators/{operator_id}/export',
                'operation_id': 'export_air_stats',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'operator_id',
                    'export_request',
                    'export_mode',
                ],
                'required': [
                    'operator_id',
                    'export_request',
                ],
                'nullable': [
                ],
                'enum': [
                    'export_mode',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('export_mode',): {

                        "ASYNC": "async",
                        "SYNC": "sync"
                    },
                },
                'openapi_types': {
                    'operator_id':
                        (str,),
                    'export_request':
                        (ExportRequest,),
                    'export_mode':
                        (str,),
                },
                'attribute_map': {
                    'operator_id': 'operator_id',
                    'export_mode': 'export_mode',
                },
                'location_map': {
                    'operator_id': 'path',
                    'export_request': 'body',
                    'export_mode': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json'
                ]
            },
            api_client=api_client
        )
        self.export_beam_stats_endpoint = _Endpoint(
            settings={
                'response_type': (FileExportResponse,),
                'auth': [
                    'api_key',
                    'api_token'
                ],
                'endpoint_path': '/stats/beam/operators/{operator_id}/export',
                'operation_id': 'export_beam_stats',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'operator_id',
                    'export_request',
                    'export_mode',
                ],
                'required': [
                    'operator_id',
                    'export_request',
                ],
                'nullable': [
                ],
                'enum': [
                    'export_mode',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('export_mode',): {

                        "ASYNC": "async",
                        "SYNC": "sync"
                    },
                },
                'openapi_types': {
                    'operator_id':
                        (str,),
                    'export_request':
                        (ExportRequest,),
                    'export_mode':
                        (str,),
                },
                'attribute_map': {
                    'operator_id': 'operator_id',
                    'export_mode': 'export_mode',
                },
                'location_map': {
                    'operator_id': 'path',
                    'export_request': 'body',
                    'export_mode': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json'
                ]
            },
            api_client=api_client
        )
        self.get_air_stats_endpoint = _Endpoint(
            settings={
                'response_type': ([AirStatsResponse],),
                'auth': [
                    'api_key',
                    'api_token'
                ],
                'endpoint_path': '/stats/air/subscribers/{imsi}',
                'operation_id': 'get_air_stats',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'imsi',
                    '_from',
                    'to',
                    'period',
                ],
                'required': [
                    'imsi',
                    '_from',
                    'to',
                    'period',
                ],
                'nullable': [
                ],
                'enum': [
                    'period',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('period',): {

                        "MONTH": "month",
                        "DAY": "day",
                        "MINUTES": "minutes"
                    },
                },
                'openapi_types': {
                    'imsi':
                        (str,),
                    '_from':
                        (int,),
                    'to':
                        (int,),
                    'period':
                        (str,),
                },
                'attribute_map': {
                    'imsi': 'imsi',
                    '_from': 'from',
                    'to': 'to',
                    'period': 'period',
                },
                'location_map': {
                    'imsi': 'path',
                    '_from': 'query',
                    'to': 'query',
                    'period': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_air_stats_of_sim_endpoint = _Endpoint(
            settings={
                'response_type': ([AirStatsResponse],),
                'auth': [
                    'api_key',
                    'api_token'
                ],
                'endpoint_path': '/stats/air/sims/{simId}',
                'operation_id': 'get_air_stats_of_sim',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'sim_id',
                    '_from',
                    'to',
                    'period',
                ],
                'required': [
                    'sim_id',
                    '_from',
                    'to',
                    'period',
                ],
                'nullable': [
                ],
                'enum': [
                    'period',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('period',): {

                        "MONTH": "month",
                        "DAY": "day",
                        "MINUTES": "minutes"
                    },
                },
                'openapi_types': {
                    'sim_id':
                        (str,),
                    '_from':
                        (int,),
                    'to':
                        (int,),
                    'period':
                        (str,),
                },
                'attribute_map': {
                    'sim_id': 'simId',
                    '_from': 'from',
                    'to': 'to',
                    'period': 'period',
                },
                'location_map': {
                    'sim_id': 'path',
                    '_from': 'query',
                    'to': 'query',
                    'period': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_beam_stats_endpoint = _Endpoint(
            settings={
                'response_type': ([BeamStatsResponse],),
                'auth': [
                    'api_key',
                    'api_token'
                ],
                'endpoint_path': '/stats/beam/subscribers/{imsi}',
                'operation_id': 'get_beam_stats',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'imsi',
                    '_from',
                    'to',
                    'period',
                ],
                'required': [
                    'imsi',
                    '_from',
                    'to',
                    'period',
                ],
                'nullable': [
                ],
                'enum': [
                    'period',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('period',): {

                        "MONTH": "month",
                        "DAY": "day",
                        "MINUTES": "minutes"
                    },
                },
                'openapi_types': {
                    'imsi':
                        (str,),
                    '_from':
                        (int,),
                    'to':
                        (int,),
                    'period':
                        (str,),
                },
                'attribute_map': {
                    'imsi': 'imsi',
                    '_from': 'from',
                    'to': 'to',
                    'period': 'period',
                },
                'location_map': {
                    'imsi': 'path',
                    '_from': 'query',
                    'to': 'query',
                    'period': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_harvest_exported_data_stats_endpoint = _Endpoint(
            settings={
                'response_type': (HarvestExportedDataStatsResponse,),
                'auth': [
                    'api_key',
                    'api_token'
                ],
                'endpoint_path': '/stats/harvest/operators/{operator_id}',
                'operation_id': 'get_harvest_exported_data_stats',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'operator_id',
                    'year_month',
                ],
                'required': [
                    'operator_id',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'operator_id':
                        (str,),
                    'year_month':
                        (str,),
                },
                'attribute_map': {
                    'operator_id': 'operator_id',
                    'year_month': 'year_month',
                },
                'location_map': {
                    'operator_id': 'path',
                    'year_month': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_napter_audit_logs_exported_data_stats_endpoint = _Endpoint(
            settings={
                'response_type': (NapterAuditLogsExportedDataStatsResponse,),
                'auth': [
                    'api_key',
                    'api_token'
                ],
                'endpoint_path': '/stats/napter/audit_logs',
                'operation_id': 'get_napter_audit_logs_exported_data_stats',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'year_month',
                ],
                'required': [],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'year_month':
                        (str,),
                },
                'attribute_map': {
                    'year_month': 'year_month',
                },
                'location_map': {
                    'year_month': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )

    def export_air_stats(
        self,
        operator_id,
        export_request,
        **kwargs
    ):
        """Export Air Usage Report of All Subscribers.  # noqa: E501

        Retrieves a file containing the usage report of all subscribers for the specified operator. The report data range is specified with from, to in unixtime. The report contains monthly data. The file output destination is AWS S3. The file output format is CSV.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.export_air_stats(operator_id, export_request, async_req=True)
        >>> result = thread.get()

        Args:
            operator_id (str): operator_id
            export_request (ExportRequest): export time period

        Keyword Args:
            export_mode (str): export_mode (async, sync). [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.
            async_req (bool): execute request asynchronously

        Returns:
            FileExportResponse
                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['operator_id'] = \
            operator_id
        kwargs['export_request'] = \
            export_request
        return self.export_air_stats_endpoint.call_with_http_info(**kwargs)

    def export_beam_stats(
        self,
        operator_id,
        export_request,
        **kwargs
    ):
        """Export Beam Usage Report of All Subscribers.  # noqa: E501

        Retrieves a file containing the usage report of all subscribers for the specified operator. The report data range is specified with from, to in unixtime. The report contains monthly data. The file output destination is AWS S3. The file output format is CSV.  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.export_beam_stats(operator_id, export_request, async_req=True)
        >>> result = thread.get()

        Args:
            operator_id (str): operator ID
            export_request (ExportRequest): export time period

        Keyword Args:
            export_mode (str): export_mode (async, sync). [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.
            async_req (bool): execute request asynchronously

        Returns:
            FileExportResponse
                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['operator_id'] = \
            operator_id
        kwargs['export_request'] = \
            export_request
        return self.export_beam_stats_endpoint.call_with_http_info(**kwargs)

    def get_air_stats(
        self,
        imsi,
        _from,
        to,
        period,
        **kwargs
    ):
        """Get Air Usage Report of Subscriber.  # noqa: E501

        Retrieves the usage report for the subscriber specified by the IMSI.  # 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_air_stats(imsi, _from, to, period, async_req=True)
        >>> result = thread.get()

        Args:
            imsi (str): imsi
            _from (int): Start time in unixtime for the aggregate data.
            to (int): End time in unixtime for the aggregate data.
            period (str): Units of aggregate data. For minutes, the interval is around 5 minutes.

        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.
            async_req (bool): execute request asynchronously

        Returns:
            [AirStatsResponse]
                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['imsi'] = \
            imsi
        kwargs['_from'] = \
            _from
        kwargs['to'] = \
            to
        kwargs['period'] = \
            period
        return self.get_air_stats_endpoint.call_with_http_info(**kwargs)

    def get_air_stats_of_sim(
        self,
        sim_id,
        _from,
        to,
        period,
        **kwargs
    ):
        """Get Air Usage Report of SIM.  # noqa: E501

        Retrieves the usage report for the SIM specified by the simId.  # 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_air_stats_of_sim(sim_id, _from, to, period, async_req=True)
        >>> result = thread.get()

        Args:
            sim_id (str): SIM ID
            _from (int): Start time in unixtime for the aggregate data.
            to (int): End time in unixtime for the aggregate data.
            period (str): Units of aggregate data. For minutes, the interval is around 5 minutes.

        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.
            async_req (bool): execute request asynchronously

        Returns:
            [AirStatsResponse]
                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['sim_id'] = \
            sim_id
        kwargs['_from'] = \
            _from
        kwargs['to'] = \
            to
        kwargs['period'] = \
            period
        return self.get_air_stats_of_sim_endpoint.call_with_http_info(**kwargs)

    def get_beam_stats(
        self,
        imsi,
        _from,
        to,
        period,
        **kwargs
    ):
        """Get Beam Usage Report of Subscriber.  # noqa: E501

        Retrieves the Soracom Beam usage report for the subscriber specified by the IMSI.  # 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_beam_stats(imsi, _from, to, period, async_req=True)
        >>> result = thread.get()

        Args:
            imsi (str): imsi
            _from (int): Start time in unixtime for the aggregate data.
            to (int): End time in unixtime for the aggregate data.
            period (str): Units of aggregate data. For minutes, the interval is around 5 minutes.

        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.
            async_req (bool): execute request asynchronously

        Returns:
            [BeamStatsResponse]
                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['imsi'] = \
            imsi
        kwargs['_from'] = \
            _from
        kwargs['to'] = \
            to
        kwargs['period'] = \
            period
        return self.get_beam_stats_endpoint.call_with_http_info(**kwargs)

    def get_harvest_exported_data_stats(
        self,
        operator_id,
        **kwargs
    ):
        """Get 'Harvest usage report' for the specified operator.  # noqa: E501

        Retrieves the SORACOM Harvest usage report for the operator.  # 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_harvest_exported_data_stats(operator_id, async_req=True)
        >>> result = thread.get()

        Args:
            operator_id (str): operator_id

        Keyword Args:
            year_month (str): Year/Month in 'YYYYMM' format.. [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.
            async_req (bool): execute request asynchronously

        Returns:
            HarvestExportedDataStatsResponse
                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['operator_id'] = \
            operator_id
        return self.get_harvest_exported_data_stats_endpoint.call_with_http_info(**kwargs)

    def get_napter_audit_logs_exported_data_stats(
        self,
        **kwargs
    ):
        """Get Napter audit logs' monthly exported data stats  # noqa: E501

        Get Napter audit logs' monthly exported data stats  # 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_napter_audit_logs_exported_data_stats(async_req=True)
        >>> result = thread.get()


        Keyword Args:
            year_month (str): Year/Month in 'YYYYMM' format.. [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.
            async_req (bool): execute request asynchronously

        Returns:
            NapterAuditLogsExportedDataStatsResponse
                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')
        return self.get_napter_audit_logs_exported_data_stats_endpoint.call_with_http_info(**kwargs)

