# Source code for api.reputation.v1.override.override_domain

    """Autogenerated API"""
    import requests
    from argus_cli.plugin import register_command

    @register_command(extending=('reputation','v1','override','domain'))
    def list_domain_overrides(list: str = None, limit: int = 25, offset: int = 0,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """List domain overrides (INTERNAL)

        :param str list: Limit results to overrides from this list
        :param int limit: Limit results
        :param int offset: Offset results
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 626, "limit": 51, "responseCode": 200, "count": 136, "data": [{"id": 825, "flags": 194, "listName": "Them modern eight strong purpose wall.", "defaultValue": false, "domainPatternBase": "Fine occur color.", "domainPattern": "Begin color language design run court.", "publicPrefixMatch": false, "wildcardMatch": false, "deleted": true, "expired": true, "lastUpdatedTimestamp": 219796236}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "Build finally treat standard beyond participant high.", "messageTemplate": "Bed mean need future doctor country.", "field": "Course leader guess discuss system.", "parameter": {}, "timestamp": 300196630}], "currentPage": 735, "size": 770}
        """
        from requests import get
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/domain".format()
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        if limit:
            body.update({"limit": limit})

        if offset:
            body.update({"offset": offset})

        if list:
            body.update({"list": list})

        response = get(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def add_domain_override(listID: int = None, listName: str = None, overrides: list = None, clear: bool = 'False',json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Add reputation domain override (INTERNAL)

        :param int listID:
        :param str listName:
        :param list overrides:
        :param bool clear:
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 322, "limit": 374, "responseCode": 200, "count": 914, "data": [{"id": 671, "flags": 304, "listName": "When station take six us hot.", "defaultValue": true, "domainPatternBase": "Drop amount value laugh get important require.", "domainPattern": "Usually party production consider improve sea responsibility.", "publicPrefixMatch": true, "wildcardMatch": false, "deleted": false, "expired": true, "lastUpdatedTimestamp": 1019857552}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "Response decide along difference care.", "messageTemplate": "Also window question bank most senior.", "field": "Whom skill blue stock give have but.", "parameter": {}, "timestamp": 937677805}], "currentPage": 99, "size": 694}
        """
        from requests import post
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/domain".format()
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        if listID:
            body.update({"listID": listID})

        if listName:
            body.update({"listName": listName})

        if clear:
            body.update({"clear": clear})

        if overrides:
            body.update({"overrides": overrides})

        response = post(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def delete_domain_overrides(id: list = None,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Bulk delete reputation domain overrides (INTERNAL)

        :param list id: IDs of reputation overrides
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 320, "limit": 574, "responseCode": 200, "count": 67, "data": [{"id": 298, "flags": 255, "listName": "Case success involve speech push compare act.", "defaultValue": true, "domainPatternBase": "Happy personal newspaper.", "domainPattern": "Certainly interview young owner program force maintain.", "publicPrefixMatch": true, "wildcardMatch": false, "deleted": false, "expired": false, "lastUpdatedTimestamp": 1431814766}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "Matter bill language court thought response.", "messageTemplate": "Foreign other church argue.", "field": "Range way serious fund drop happy final.", "parameter": {}, "timestamp": 312867132}], "currentPage": 482, "size": 327}
        """
        from requests import delete
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/domain".format()
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        if id:
            body.update({"id": id})

        response = delete(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def find_domain_overrides(limit: int = None, offset: int = None, includeFlags: int = None, excludeFlags: int = None, subCriteria: list = None, listID: list = None, listName: list = None, includedListFlags: int = None, excludedListFlags: int = None, startTimestamp: int = None, endTimestamp: int = None, timeFieldStrategy: list = None, minValue: int = None, maxValue: int = None, keywords: list = None, keywordMatchStrategy: str = None, timeMatchStrategy: str = None, domainPatternBases: list = None, keywordFieldStrategy: list = None, sortBy: list = None, includeDeleted: bool = 'False', exclude: bool = 'False', required: bool = 'False', includeExpired: bool = 'False',json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Search domain overrides (INTERNAL)

        :param int limit: Set this value to set max number of results. By default, no restriction on result set size.
        :param int offset: Set this value to skip the first (offset) objects. By default, return result from first object.
        :param int includeFlags: Only include objects which have includeFlags set.
        :param int excludeFlags: Exclude objects which have excludeFlags set.
        :param list subCriteria:
        :param list listID: Collection of override lists' IDs
        :param list listName: Collection of override lists' names
        :param int includedListFlags: Include records with flags in override list
        :param int excludedListFlags: Exclude records with flags in override list
        :param int startTimestamp: Records after this timestamp against fields defined by timeFieldStrategy
        :param int endTimestamp: Records before this timestamp against fields defined by timeFieldStrategy
        :param list timeFieldStrategy: TimeFieldStrategy to define which timestamp field(s) to match, default lastUpdatedTimestamp
        :param int minValue: Lower bound for override value range [0,1]
        :param int maxValue: Upper bound for override data value range [0,1]
        :param list keywords: Set of keywords to match selected fields, depends on KeywordMatchStrategy
        :param str keywordMatchStrategy: Define whether all/any keywords have to be matched with selected fields
        :param str timeMatchStrategy: Defines how strict to match against different timestamps (all/any) using start and end timestamp (default any)
        :param list domainPatternBases: Collection of domain pattern bases
        :param list keywordFieldStrategy: Define which field(s) to be matched against keywords
        :param list sortBy: List of properties to sort by (prefix with "-" to sort descending).
        :param bool includeDeleted: Set to true to include deleted objects. By default, exclude deleted objects.
        :param bool exclude: Only relevant for subcriteria. If set to true, objects matching this subcriteria object will be excluded.
        :param bool required: Only relevant for subcriteria. If set to true, objects matching this subcriteria are required (AND-ed together with parent criteria).
        :param bool includeExpired: Whether include expired overrides, default not include expired overrides
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 560, "limit": 728, "responseCode": 200, "count": 965, "data": [{"id": 741, "flags": 978, "listName": "Well ten girl increase section recognize nearly current.", "defaultValue": false, "domainPatternBase": "Able so peace research expect fight think site.", "domainPattern": "Fear hundred price environment side player.", "publicPrefixMatch": true, "wildcardMatch": false, "deleted": true, "expired": false, "lastUpdatedTimestamp": 219319579}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "Few serious herself stay project.", "messageTemplate": "Product help financial ability around contain human leg.", "field": "Place ready here government.", "parameter": {}, "timestamp": 708290208}], "currentPage": 549, "size": 462}
        """
        from requests import post
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/domain/search".format()
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        if limit:
            body.update({"limit": limit})

        if offset:
            body.update({"offset": offset})

        if includeDeleted:
            body.update({"includeDeleted": includeDeleted})

        if includeFlags:
            body.update({"includeFlags": includeFlags})

        if excludeFlags:
            body.update({"excludeFlags": excludeFlags})

        if subCriteria:
            body.update({"subCriteria": subCriteria})

        if exclude:
            body.update({"exclude": exclude})

        if required:
            body.update({"required": required})

        if listID:
            body.update({"listID": listID})

        if listName:
            body.update({"listName": listName})

        if includedListFlags:
            body.update({"includedListFlags": includedListFlags})

        if excludedListFlags:
            body.update({"excludedListFlags": excludedListFlags})

        if includeExpired:
            body.update({"includeExpired": includeExpired})

        if startTimestamp:
            body.update({"startTimestamp": startTimestamp})

        if endTimestamp:
            body.update({"endTimestamp": endTimestamp})

        if timeFieldStrategy:
            body.update({"timeFieldStrategy": timeFieldStrategy})

        if minValue:
            body.update({"minValue": minValue})

        if maxValue:
            body.update({"maxValue": maxValue})

        if keywords:
            body.update({"keywords": keywords})

        if keywordMatchStrategy:
            body.update({"keywordMatchStrategy": keywordMatchStrategy})

        if timeMatchStrategy:
            body.update({"timeMatchStrategy": timeMatchStrategy})

        if domainPatternBases:
            body.update({"domainPatternBases": domainPatternBases})

        if keywordFieldStrategy:
            body.update({"keywordFieldStrategy": keywordFieldStrategy})

        if sortBy:
            body.update({"sortBy": sortBy})

        response = post(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def get_overrides_for_domain(fqdn: str,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Look up domain override value by IP address (INTERNAL)

        :param str fqdn: Domain/domain pattern to fetch overrides for
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 383, "limit": 566, "responseCode": 200, "count": 817, "data": [{"id": 247, "flags": 135, "listName": "Their somebody law realize cause trip.", "defaultValue": false, "domainPatternBase": "When town agency similar truth information break explain.", "domainPattern": "Ready treat provide direction go keep manager.", "publicPrefixMatch": false, "wildcardMatch": true, "deleted": false, "expired": false, "lastUpdatedTimestamp": 481959664}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "Give mission however.", "messageTemplate": "Subject rate take break animal through manage.", "field": "Music play crime team pressure.", "parameter": {}, "timestamp": 1334143788}], "currentPage": 872, "size": 574}
        """
        from requests import get
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/domain/{fqdn}".format(fqdn=fqdn)
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        response = get(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def get_override_for_domain(id: int,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Look up domain override value by ID (INTERNAL)

        :param int id: ID of override object
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :raises ObjectNotFoundException: on 404
        :returns: {"offset": 37, "limit": 768, "responseCode": 200, "count": 467, "metaData": {"additionalProperties": {}}, "messages": [{"message": "Peace well suddenly trouble.", "messageTemplate": "Hundred add central arm article.", "field": "Keep stop politics stock break store receive.", "parameter": {}, "timestamp": 924372700}], "currentPage": 882, "size": 522}
        """
        from requests import get
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/domain/{id}".format(id=id)
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        response = get(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def delete_domain_override(id: int,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Delete reputation domain override (INTERNAL)

        :param int id: ID of override entry to remove
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 975, "limit": 190, "responseCode": 200, "count": 181, "data": [{"id": 96, "flags": 886, "listName": "Middle soldier month half group process figure reality.", "defaultValue": false, "domainPatternBase": "Message debate her guy know long drive.", "domainPattern": "Red might deal can.", "publicPrefixMatch": true, "wildcardMatch": false, "deleted": false, "expired": true, "lastUpdatedTimestamp": 611692120}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "Professional option why lay finish including bar.", "messageTemplate": "See hard become region evidence science center include.", "field": "Board some improve car say fight recognize bank.", "parameter": {}, "timestamp": 1285825335}], "currentPage": 275, "size": 63}
        """
        from requests import delete
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/domain/{id}".format(id=id)
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        response = delete(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def list_address_overrides(list: str = None, limit: int = 25, offset: int = 0,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """List address overrides (INTERNAL)

        :param str list: Limit results to overrides from this list
        :param int limit: Limit results
        :param int offset: Offset results
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 733, "limit": 951, "responseCode": 200, "count": 853, "data": [{"id": 831, "flags": 693, "listName": "To our teach because month huge.", "defaultValue": false, "deleted": false, "expired": true, "lastUpdatedTimestamp": 539145432}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "Nature easy dinner pull fight.", "messageTemplate": "Factor every activity plant choice ahead answer wonder.", "field": "Each amount fire base firm financial.", "parameter": {}, "timestamp": 1237763656}], "currentPage": 889, "size": 247}
        """
        from requests import get
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/ip".format()
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        if limit:
            body.update({"limit": limit})

        if offset:
            body.update({"offset": offset})

        if list:
            body.update({"list": list})

        response = get(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def add_address_overrides(listName: str = None, listID: int = None, overrides: list = None, clear: bool = 'False',json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Add reputation IP override (INTERNAL)

        :param str listName:
        :param int listID:
        :param list overrides:
        :param bool clear:
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 679, "limit": 661, "responseCode": 200, "count": 857, "data": [{"id": 230, "flags": 959, "listName": "Role star concern two three.", "defaultValue": false, "deleted": false, "expired": true, "lastUpdatedTimestamp": 777216640}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "Full police region a decision alone question.", "messageTemplate": "Month agreement medical player.", "field": "Also perform dark enough customer establish everything.", "parameter": {}, "timestamp": 1142051738}], "currentPage": 775, "size": 464}
        """
        from requests import post
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/ip".format()
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        if listName:
            body.update({"listName": listName})

        if listID:
            body.update({"listID": listID})

        if clear:
            body.update({"clear": clear})

        if overrides:
            body.update({"overrides": overrides})

        response = post(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def delete_address_overrides(id: list = None,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Bulk delete reputation IP overrides (INTERNAL)

        :param list id: IDs of IP overrides
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 202, "limit": 719, "responseCode": 200, "count": 907, "data": [{"id": 92, "flags": 801, "listName": "Wall seem approach for.", "defaultValue": true, "deleted": true, "expired": true, "lastUpdatedTimestamp": 823535973}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "Politics agreement both feel event room.", "messageTemplate": "Hair show either politics.", "field": "Present degree training size crime prevent painting.", "parameter": {}, "timestamp": 641151776}], "currentPage": 798, "size": 128}
        """
        from requests import delete
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/ip".format()
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        if id:
            body.update({"id": id})

        response = delete(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def find_address_overrides(limit: int = None, offset: int = None, includeFlags: int = None, excludeFlags: int = None, subCriteria: list = None, listID: list = None, listName: list = None, includedListFlags: int = None, excludedListFlags: int = None, startTimestamp: int = None, endTimestamp: int = None, timeFieldStrategy: list = None, minValue: int = None, maxValue: int = None, keywords: list = None, keywordMatchStrategy: str = None, timeMatchStrategy: str = None, ranges: list = None, keywordFieldStrategy: list = None, sortBy: list = None, includeDeleted: bool = 'False', exclude: bool = 'False', required: bool = 'False', includeExpired: bool = 'False',json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Search IP overrides (INTERNAL)

        :param int limit: Set this value to set max number of results. By default, no restriction on result set size.
        :param int offset: Set this value to skip the first (offset) objects. By default, return result from first object.
        :param int includeFlags: Only include objects which have includeFlags set.
        :param int excludeFlags: Exclude objects which have excludeFlags set.
        :param list subCriteria:
        :param list listID: Collection of override lists' IDs
        :param list listName: Collection of override lists' names
        :param int includedListFlags: Include records with flags in override list
        :param int excludedListFlags: Exclude records with flags in override list
        :param int startTimestamp: Records after this timestamp against fields defined by timeFieldStrategy
        :param int endTimestamp: Records before this timestamp against fields defined by timeFieldStrategy
        :param list timeFieldStrategy: TimeFieldStrategy to define which timestamp field(s) to match, default lastUpdatedTimestamp
        :param int minValue: Lower bound for override value range [0,1]
        :param int maxValue: Upper bound for override data value range [0,1]
        :param list keywords: Set of keywords to match selected fields, depends on KeywordMatchStrategy
        :param str keywordMatchStrategy: Define whether all/any keywords have to be matched with selected fields
        :param str timeMatchStrategy: Defines how strict to match against different timestamps (all/any) using start and end timestamp (default any)
        :param list ranges: Collection of IPRanges
        :param list keywordFieldStrategy: Define which field(s) to be matched against keywords
        :param list sortBy: List of properties to sort by (prefix with "-" to sort descending).
        :param bool includeDeleted: Set to true to include deleted objects. By default, exclude deleted objects.
        :param bool exclude: Only relevant for subcriteria. If set to true, objects matching this subcriteria object will be excluded.
        :param bool required: Only relevant for subcriteria. If set to true, objects matching this subcriteria are required (AND-ed together with parent criteria).
        :param bool includeExpired: Whether include expired overrides, default not include expired overrides
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 2, "limit": 391, "responseCode": 200, "count": 582, "data": [{"id": 807, "flags": 486, "listName": "Side less situation piece.", "defaultValue": false, "deleted": true, "expired": false, "lastUpdatedTimestamp": 1016746261}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "Leader every picture decide someone important final.", "messageTemplate": "Central go help star.", "field": "Region well increase.", "parameter": {}, "timestamp": 824174210}], "currentPage": 524, "size": 445}
        """
        from requests import post
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/ip/search".format()
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        if limit:
            body.update({"limit": limit})

        if offset:
            body.update({"offset": offset})

        if includeDeleted:
            body.update({"includeDeleted": includeDeleted})

        if includeFlags:
            body.update({"includeFlags": includeFlags})

        if excludeFlags:
            body.update({"excludeFlags": excludeFlags})

        if subCriteria:
            body.update({"subCriteria": subCriteria})

        if exclude:
            body.update({"exclude": exclude})

        if required:
            body.update({"required": required})

        if listID:
            body.update({"listID": listID})

        if listName:
            body.update({"listName": listName})

        if includedListFlags:
            body.update({"includedListFlags": includedListFlags})

        if excludedListFlags:
            body.update({"excludedListFlags": excludedListFlags})

        if includeExpired:
            body.update({"includeExpired": includeExpired})

        if startTimestamp:
            body.update({"startTimestamp": startTimestamp})

        if endTimestamp:
            body.update({"endTimestamp": endTimestamp})

        if timeFieldStrategy:
            body.update({"timeFieldStrategy": timeFieldStrategy})

        if minValue:
            body.update({"minValue": minValue})

        if maxValue:
            body.update({"maxValue": maxValue})

        if keywords:
            body.update({"keywords": keywords})

        if keywordMatchStrategy:
            body.update({"keywordMatchStrategy": keywordMatchStrategy})

        if timeMatchStrategy:
            body.update({"timeMatchStrategy": timeMatchStrategy})

        if ranges:
            body.update({"ranges": ranges})

        if keywordFieldStrategy:
            body.update({"keywordFieldStrategy": keywordFieldStrategy})

        if sortBy:
            body.update({"sortBy": sortBy})

        response = post(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def get_override_for_i_p(id: int,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Look up IP override value by ID (INTERNAL)

        :param int id: ID of override object
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :raises ObjectNotFoundException: on 404
        :returns: {"offset": 837, "limit": 301, "responseCode": 200, "count": 446, "metaData": {"additionalProperties": {}}, "messages": [{"message": "That begin wonder.", "messageTemplate": "Yard prepare large.", "field": "Discussion three large right organization.", "parameter": {}, "timestamp": 781663604}], "currentPage": 837, "size": 113}
        """
        from requests import get
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/ip/{id}".format(id=id)
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        response = get(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def delete_address_override(id: int,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Delete reputation IP override (INTERNAL)

        :param int id: ID of override entry to remove
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 897, "limit": 569, "responseCode": 200, "count": 248, "data": [{"id": 532, "flags": 788, "listName": "Experience enough better market agreement.", "defaultValue": true, "deleted": false, "expired": false, "lastUpdatedTimestamp": 605837813}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "Trouble friend expert.", "messageTemplate": "Create mouth than describe.", "field": "Market admit begin crime nature.", "parameter": {}, "timestamp": 661752037}], "currentPage": 236, "size": 909}
        """
        from requests import delete
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/ip/{id}".format(id=id)
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        response = delete(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def get_overrides_for_i_p(ip: str,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Look up domain override value by IP address (INTERNAL)

        :param str ip: IP to search overrides for
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 463, "limit": 615, "responseCode": 200, "count": 542, "data": [{"id": 477, "flags": 283, "listName": "Himself send culture company.", "defaultValue": true, "deleted": true, "expired": true, "lastUpdatedTimestamp": 868698948}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "People exactly become fear him character.", "messageTemplate": "Line purpose able whole.", "field": "Career her could else a late.", "parameter": {}, "timestamp": 1348642079}], "currentPage": 275, "size": 335}
        """
        from requests import get
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/ip/{ip}".format(ip=ip)
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        response = get(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def get_override_lists(keywords: list = None, offset: int = 0, limit: int = 25,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """List all overrides (INTERNAL)

        :param list keywords: Filter override lists by keywords
        :param int offset: Skip a number of results
        :param int limit: Maximum number of returned results
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 885, "limit": 859, "responseCode": 200, "count": 239, "data": [{"id": 810, "lastModified": 261, "name": "Jason Turner", "description": "Imagine question condition.", "defaultValues": true}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "Offer among Congress involve mother trip.", "messageTemplate": "Increase material nature building play government firm.", "field": "Continue success father front.", "parameter": {}, "timestamp": 1205810339}], "currentPage": 654, "size": 668}
        """
        from requests import get
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/list".format()
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        if offset:
            body.update({"offset": offset})

        if limit:
            body.update({"limit": limit})

        if keywords:
            body.update({"keywords": keywords})

        response = get(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def add_override_list(name: str = None, description: str = None, useForReputationCalc: bool = 'False', useForInputFiltering: bool = 'False', useForDefaultValues: bool = 'False',json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Add reputation override list (INTERNAL)

        :param str name: Override list name  => [a-zA-Z0-9_\-\.]*
        :param str description: Override list description  => [\s\w\{\}\$\-\(\)\.\[\]"\'_/\\,\*\+\#:@!?;]*
        :param bool useForReputationCalc: If true, enable use of the overrides in this list when calculating reputation values. (default false)
        :param bool useForInputFiltering: If true, enable use of the overrides in this list for observation input filtering. (default false)
        :param bool useForDefaultValues: If true, enable use of the overrides in this list as default values. (default false)
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 122, "limit": 684, "responseCode": 200, "count": 20, "data": [{"id": 787, "lastModified": 363, "name": "Theresa Combs", "description": "Go structure conference style ever.", "defaultValues": true}], "metaData": {"additionalProperties": {}}, "messages": [{"message": "On measure instead hard stay worry forget.", "messageTemplate": "One before easy.", "field": "Lay effort teacher charge identify human spend.", "parameter": {}, "timestamp": 119086422}], "currentPage": 964, "size": 999}
        """
        from requests import post
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/list".format()
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        if name:
            body.update({"name": name})

        if description:
            body.update({"description": description})

        if useForReputationCalc:
            body.update({"useForReputationCalc": useForReputationCalc})

        if useForInputFiltering:
            body.update({"useForInputFiltering": useForInputFiltering})

        if useForDefaultValues:
            body.update({"useForDefaultValues": useForDefaultValues})

        response = post(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def get_override_list_by_id(id: int,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Get override list by ID (INTERNAL)

        :param int id: ID of OverrideList
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :raises ObjectNotFoundException: on 404
        :returns: {"offset": 544, "limit": 373, "responseCode": 200, "count": 287, "metaData": {"additionalProperties": {}}, "messages": [{"message": "Deep parent operation.", "messageTemplate": "Physical increase right world poor behind finally.", "field": "His about movie morning about often building.", "parameter": {}, "timestamp": 1017368563}], "currentPage": 993, "size": 108}
        """
        from requests import get
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/list/{id}".format(id=id)
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        response = get(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def update_override_list(id: int, name: str = None, description: str = None, useForReputationCalc: bool = 'False', useForInputFiltering: bool = 'False', useForDefaultValues: bool = 'False',json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Update reputation override list (INTERNAL)

        :param int id: ID of reputation override list
        :param str name: If set, update the name of this list  => [a-zA-Z0-9_\-\.]*
        :param str description: If set, update the description of this list  => [\s\w\{\}\$\-\(\)\.\[\]"\'_/\\,\*\+\#:@!?;]*
        :param bool useForReputationCalc: If set, enable/disable use of the overrides in this list when calculating reputation values
        :param bool useForInputFiltering: If set, enable/disable use of the overrides in this list for observation input filtering
        :param bool useForDefaultValues: If set, enable/disable use of the overrides in this list as default values
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :raises ObjectNotFoundException: on 404
        :returns: {"offset": 3, "limit": 901, "responseCode": 200, "count": 503, "metaData": {"additionalProperties": {}}, "messages": [{"message": "Approach partner environmental improve.", "messageTemplate": "Natural black customer tonight expect.", "field": "Take your most ahead practice American.", "parameter": {}, "timestamp": 382286229}], "currentPage": 360, "size": 898}
        """
        from requests import put
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/list/{id}".format(id=id)
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        if name:
            body.update({"name": name})

        if description:
            body.update({"description": description})

        if useForReputationCalc:
            body.update({"useForReputationCalc": useForReputationCalc})

        if useForInputFiltering:
            body.update({"useForInputFiltering": useForInputFiltering})

        if useForDefaultValues:
            body.update({"useForDefaultValues": useForDefaultValues})

        response = put(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response

    @register_command(extending=('reputation','v1','override','domain'))
    def delete_override_list(id: int,json: bool = True, verify: bool = True, apiKey: str = "", authentication: dict = {}) -> dict:
        """Delete reputation override list (INTERNAL)

        :param int id: ID of override list to remove
        :raises AuthenticationFailedException: on 401
        :raises ValidationErrorException: on 412
        :raises AccessDeniedException: on 403
        :returns: {"offset": 237, "limit": 475, "responseCode": 200, "count": 648, "metaData": {"additionalProperties": {}}, "messages": [{"message": "Wish TV him near in.", "messageTemplate": "Citizen firm report idea.", "field": "Recently measure real accept way.", "parameter": {}, "timestamp": 810702741}], "currentPage": 296, "size": 776}
        """
        from requests import delete
        from argus_api.exceptions import http

        url = "https://osl-argus-trunk-web1.mnemonic.no/web/api/reputation/v1/override/list/{id}".format(id=id)
        headers = {
            'Content-Type': 'application/json',
            'User-Agent': 'ArgusToolbelt/1.0'
        }

        if apiKey:
            headers["Argus-API-Key"] = apiKey
        elif authentication and isinstance(authentication, dict):
            headers.update(authentication)
        elif callable(authentication):
            headers.update(authentication(url))

        body = {}

        response = delete(url, json=body if body else None, verify=verify, headers=headers)

        errors = []
        if response.status_code == 401:
            raise http.AuthenticationFailedException(response)
        elif response.status_code == 403:
            raise http.AccessDeniedException(response)
        elif response.status_code == 412:
            raise http.ValidationErrorException(response)
        elif response.status_code == 404:
            raise http.ObjectNotFoundException(response)

        return response.json() if json else response