def METHOD_NAME():
    """
    Return a parser object useable for interacting with OSG topology services.
    """
    oparser = argparse.ArgumentParser(prog=os.path.basename(sys.argv[0]),
                                      add_help=True)
    oparser.add_argument("--host", dest="host", default="topology.opensciencegrid.org",
                         help="Remote topology host (default topology.opensciencegrid.org)")
    oparser.add_argument("--cert", dest="cert", help="Client certificate")
    oparser.add_argument("--key", dest="key", help="Client certificate private key")
    subparsers = oparser.add_subparsers(dest="which")
    contactparsers = []
    list_resource_contacts_parser = \
        subparsers.add_parser('list-resource-contacts',
                              help='List OSG contacts by resource name.')
    contactparsers.append(list_resource_contacts_parser)
    list_resource_contacts_parser.add_argument( \
        "--service",
             dest="provides_service", help="Filter on resources that provide given "
            "service(s)")
    list_resource_contacts_parser.add_argument("--vo",
        dest="owner_vo", help="Filter on resources that list VO(s) as a "
        "partial owner")
    list_resource_contacts_parser.add_argument(dest="filter", action="store",
        nargs="?", help="Shell expression filter on the resource name or FQDN")
    list_resource_contacts_parser.add_argument("--fqdn", dest="fqdn", default=False, action="store_true",
        help="Treat the filter as an FQDN instead of a resource name")
    list_vo_contacts_parser = subparsers.add_parser('list-vo-contacts',
        help='List OSG contacts by VO name.')
    contactparsers.append(list_vo_contacts_parser)
    list_vo_contacts_parser.set_defaults(fqdn=False)
    list_vo_contacts_parser.add_argument(dest="filter", action="store",
        nargs="?", help="Shell expression filter on the VO name")
    list_contacts_parser = subparsers.add_parser('list-contacts',
        help='List OSG resource and VO contacts.')
    contactparsers.append(list_contacts_parser)
    list_contacts_parser.add_argument(dest="filter", action="store",
        nargs="?", help="Shell expression filter on the VO name, resource name or FQDN")
    list_contacts_parser.add_argument("--fqdn", dest="fqdn", default=False, action="store_true",
        help="Treat the filter as an FQDN instead of a resource name")
    for parser in contactparsers:
        parser.add_argument("--type", default="all",
            dest="contact_type", help="Filter on contact type "
            "(e.g. administrative, miscellaneous, security, or submitter; "
            "default all)")
        parser.add_argument("--output", default="full",
                            dest="output_mode", help="Select the output mode "
                            "(email or full; default full)")
        parser.add_argument("--email-from-file",
                            default=None,
                            dest="email_file",
                            help="Path to file containing list of emails for contact filtering")
    return oparser