Returns list of HGNC entries by query paramaters
    ---

    tags:

      - Query functions

    parameters:

      - name: name
        in: query
        type: string
        required: false
        description: 'HGNC approved name for the gene'
        default: 'lysine demethylase 1A'

      - name: symbol
        in: query
        type: string
        required: false
        description: 'HGNC symbol'
        default: KDM1A

      - name: identifier
        in: query
        type: integer
        required: false
        description: 'HGNC ID. A unique ID created by the HGNC for every approved symbol'
        default: 29079

      - name: status
        in: query
        type: string
        required: false
        description: 'Status of the symbol report, which can be either "Approved" or "Entry Withdrawn"'
        default: Approved

      - name: uuid
        in: query
        type: string
        required: false
        description: 'universally unique identifier'
        default: '032998f3-5339-4c36-a521-1960c2f86cee'

      - name: orphanet
        in: query
        type: integer
        required: false
        description: 'Orphanet database identifier'
        default: 478263

      - name: locus_group
        in: query
        type: string
        required: false
        description: 'group name for a set of related locus types as defined by the HGNC'
        default: 'protein-coding gene'

      - name: locus_type
        in: query
        type: string
        required: false
        description: 'locus type as defined by the HGNC'
        default: 'gene with protein product'

      - name: date_name_changed
        in: query
        type: string
        required: false
        description: 'date the gene name was last changed'
        default: '2016-02-12'

      - name: date_modified
        in: query
        type: string
        required: false
        description: 'date the entry was last modified'
        default: '2017-07-07'

      - name: date_symbol_changed
        in: query
        type: string
        required: false
        description: 'date the gene symbol was last changed'
        default: '2009-09-29'

      - name: date_approved_reserved
        in: query
        type: string
        required: false
        description: 'date the entry was first approved'
        default: '2004-02-26'

      - name: ensembl_gene
        in: query
        type: string
        required: false
        description: 'Ensembl gene ID. Found within the "GENE RESOURCES" section of the gene symbol report'
        default: 'ENSG00000004487'

      - name: vega
        in: query
        type: string
        required: false
        description: 'Vega gene ID. Found within the "GENE RESOURCES" section of the gene symbol report'
        default: 'OTTHUMG00000003220'

      - name: lncrnadb
        in: query
        type: string
        required: false
        description: 'Noncoding RNA Database identifier'
        default:

      - name: horde
        in: query
        type: string
        required: false
        description: 'symbol used within HORDE for the gene (not available in JSON)'
        default:

      - name: entrez
        in: query
        type: string
        required: false
        description: 'Entrez gene ID. Found within the "GENE RESOURCES" section of the gene symbol report'
        default: 23028

      - name: mirbase
        in: query
        type: string
        required: false
        description: 'miRBase ID'
        default:

      - name: iuphar
        in: query
        type: string
        required: false
        description: 'The objectId used to link to the IUPHAR/BPS Guide to PHARMACOLOGY database'
        default: 'objectId:2669'

      - name: ucsc
        in: query
        type: string
        required: false
        description: 'UCSC gene ID. Found within the "GENE RESOURCES" section of the gene symbol report'
        default: 'uc001bgi.3'

      - name: snornabase
        in: query
        type: string
        required: false
        description: 'snoRNABase ID'
        default:

      - name: pseudogeneorg
        in: query
        type: string
        required: false
        description: 'Pseudogene.org ID'
        default:

      - name: bioparadigmsslc
        in: query
        type: string
        required: false
        description: 'Symbol used to link to the SLC tables database at bioparadigms.org for the gene'
        default:

      - name: locationsortable
        in: query
        type: string
        required: false
        description: 'locations sortable'
        default: 01p36.12

      - name: merops
        in: query
        type: string
        required: false
        description: 'ID used to link to the MEROPS peptidase database'
        default:

      - name: location
        in: query
        type: string
        required: false
        description: 'Cytogenetic location of the gene (e.g. 2q34)'
        default: 1p36.12

      - name: cosmic
        in: query
        type: string
        required: false
        description: 'Symbol used within the Catalogue of somatic mutations in cancer for the gene'
        default: 'KDM1A'

      - name: imgt
        in: query
        type: string
        required: false
        description: 'Symbol used within international ImMunoGeneTics information system'
        default:

      - name: limit
        in: query
        type: integer
        required: false
        default: 1

def query_entry():
    """
    Returns list of HGNC entries by query paramaters
    ---

    tags:

      - Query functions

    parameters:

      - name: name
        in: query
        type: string
        required: false
        description: 'HGNC approved name for the gene'
        default: 'lysine demethylase 1A'

      - name: symbol
        in: query
        type: string
        required: false
        description: 'HGNC symbol'
        default: KDM1A

      - name: identifier
        in: query
        type: integer
        required: false
        description: 'HGNC ID. A unique ID created by the HGNC for every approved symbol'
        default: 29079

      - name: status
        in: query
        type: string
        required: false
        description: 'Status of the symbol report, which can be either "Approved" or "Entry Withdrawn"'
        default: Approved

      - name: uuid
        in: query
        type: string
        required: false
        description: 'universally unique identifier'
        default: '032998f3-5339-4c36-a521-1960c2f86cee'

      - name: orphanet
        in: query
        type: integer
        required: false
        description: 'Orphanet database identifier'
        default: 478263

      - name: locus_group
        in: query
        type: string
        required: false
        description: 'group name for a set of related locus types as defined by the HGNC'
        default: 'protein-coding gene'

      - name: locus_type
        in: query
        type: string
        required: false
        description: 'locus type as defined by the HGNC'
        default: 'gene with protein product'

      - name: date_name_changed
        in: query
        type: string
        required: false
        description: 'date the gene name was last changed'
        default: '2016-02-12'

      - name: date_modified
        in: query
        type: string
        required: false
        description: 'date the entry was last modified'
        default: '2017-07-07'

      - name: date_symbol_changed
        in: query
        type: string
        required: false
        description: 'date the gene symbol was last changed'
        default: '2009-09-29'

      - name: date_approved_reserved
        in: query
        type: string
        required: false
        description: 'date the entry was first approved'
        default: '2004-02-26'

      - name: ensembl_gene
        in: query
        type: string
        required: false
        description: 'Ensembl gene ID. Found within the "GENE RESOURCES" section of the gene symbol report'
        default: 'ENSG00000004487'

      - name: vega
        in: query
        type: string
        required: false
        description: 'Vega gene ID. Found within the "GENE RESOURCES" section of the gene symbol report'
        default: 'OTTHUMG00000003220'

      - name: lncrnadb
        in: query
        type: string
        required: false
        description: 'Noncoding RNA Database identifier'
        default:

      - name: horde
        in: query
        type: string
        required: false
        description: 'symbol used within HORDE for the gene (not available in JSON)'
        default:

      - name: entrez
        in: query
        type: string
        required: false
        description: 'Entrez gene ID. Found within the "GENE RESOURCES" section of the gene symbol report'
        default: 23028

      - name: mirbase
        in: query
        type: string
        required: false
        description: 'miRBase ID'
        default:

      - name: iuphar
        in: query
        type: string
        required: false
        description: 'The objectId used to link to the IUPHAR/BPS Guide to PHARMACOLOGY database'
        default: 'objectId:2669'

      - name: ucsc
        in: query
        type: string
        required: false
        description: 'UCSC gene ID. Found within the "GENE RESOURCES" section of the gene symbol report'
        default: 'uc001bgi.3'

      - name: snornabase
        in: query
        type: string
        required: false
        description: 'snoRNABase ID'
        default:

      - name: pseudogeneorg
        in: query
        type: string
        required: false
        description: 'Pseudogene.org ID'
        default:

      - name: bioparadigmsslc
        in: query
        type: string
        required: false
        description: 'Symbol used to link to the SLC tables database at bioparadigms.org for the gene'
        default:

      - name: locationsortable
        in: query
        type: string
        required: false
        description: 'locations sortable'
        default: 01p36.12

      - name: merops
        in: query
        type: string
        required: false
        description: 'ID used to link to the MEROPS peptidase database'
        default:

      - name: location
        in: query
        type: string
        required: false
        description: 'Cytogenetic location of the gene (e.g. 2q34)'
        default: 1p36.12

      - name: cosmic
        in: query
        type: string
        required: false
        description: 'Symbol used within the Catalogue of somatic mutations in cancer for the gene'
        default: 'KDM1A'

      - name: imgt
        in: query
        type: string
        required: false
        description: 'Symbol used within international ImMunoGeneTics information system'
        default:

      - name: limit
        in: query
        type: integer
        required: false
        default: 1
    """
    allowed_str_args = ['name', 'symbol', 'status', 'uuid', 'locus_group', 'locus_type',
                        'date_name_changed', 'date_modified', 'date_symbol_changed', 'date_approved_reserved',
                        'ensembl_gene', 'vega', 'lncrnadb', 'horde', 'mirbase', 'iuphar', 'ucsc', 'snornabase',
                        'pseudogeneorg', 'bioparadigmsslc', 'locationsortable', 'merops', 'location', 'cosmic', 'imgt'
                        ]

    allowed_int_args = ['limit', 'identifier', 'orphanet', 'entrez', ]

    args = get_args(
        request_args=request.args,
        allowed_int_args=allowed_int_args,
        allowed_str_args=allowed_str_args
    )

    return jsonify(query.hgnc(**args))