{
    "content": [
        {
            "type": "text",
            "text": "# Net::OpenID::IndirectMessage (perldoc)\n\n## NAME\n\nNet::OpenID::IndirectMessage - Class representing a collection of namespaced arguments\n\n## SYNOPSIS\n\nuse Net::OpenID::IndirectMessage;\n# Pass in something suitable for the underlying flat dictionary.\n# Will return an instance if the request arguments can be understood\n# as a supported OpenID Message format.\n# Will return undef if this doesn't seem to be an OpenID Auth message.\n# Will croak if the $argumentything is not of a suitable type.\nmy $args = Net::OpenID::IndirectMessage->new($argumentything);\n# Determine which protocol version the message is using.\n# Currently this can be either 1 for 1.1 or 2 for 2.0.\n# Expect larger numbers for other versions in future.\n# Most callers don't really need to care about this.\nmy $version = $args->protocolversion();\n# Get a core argument value (\"openid.mode\")\nmy $mode = $args->get(\"mode\");\n# Get an extension argument value\nmy $nickname = $args->getext(\"http://openid.net/extensions/sreg/1.1\", \"nickname\");\n# Get hashref of all arguments in a given namespace\nmy $sreg = $args->getext(\"http://openid.net/extensions/sreg/1.1\");\nMost of the time callers won't need to use this class directly, but will instead access it\nthrough a Net::OpenID::Consumer instance.\n\n## DESCRIPTION\n\nThis class acts as an abstraction layer over a collection of flat URL arguments which supports\nnamespaces as defined by the OpenID Auth 2.0 specification.\n\n## Sections\n\n- **NAME**\n- **VERSION**\n- **DESCRIPTION**\n- **SYNOPSIS**\n- **METHODS**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "Net::OpenID::IndirectMessage",
        "section": "",
        "mode": "perldoc",
        "summary": "Net::OpenID::IndirectMessage - Class representing a collection of namespaced arguments",
        "synopsis": "use Net::OpenID::IndirectMessage;\n# Pass in something suitable for the underlying flat dictionary.\n# Will return an instance if the request arguments can be understood\n# as a supported OpenID Message format.\n# Will return undef if this doesn't seem to be an OpenID Auth message.\n# Will croak if the $argumentything is not of a suitable type.\nmy $args = Net::OpenID::IndirectMessage->new($argumentything);\n# Determine which protocol version the message is using.\n# Currently this can be either 1 for 1.1 or 2 for 2.0.\n# Expect larger numbers for other versions in future.\n# Most callers don't really need to care about this.\nmy $version = $args->protocolversion();\n# Get a core argument value (\"openid.mode\")\nmy $mode = $args->get(\"mode\");\n# Get an extension argument value\nmy $nickname = $args->getext(\"http://openid.net/extensions/sreg/1.1\", \"nickname\");\n# Get hashref of all arguments in a given namespace\nmy $sreg = $args->getext(\"http://openid.net/extensions/sreg/1.1\");\nMost of the time callers won't need to use this class directly, but will instead access it\nthrough a Net::OpenID::Consumer instance.",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "VERSION",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 17,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 27,
                "subsections": []
            },
            {
                "name": "METHODS",
                "lines": 11,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "Net::OpenID::IndirectMessage - Class representing a collection of namespaced arguments\n",
                "subsections": []
            },
            "VERSION": {
                "content": "version 1.20\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "This class acts as an abstraction layer over a collection of flat URL arguments which supports\nnamespaces as defined by the OpenID Auth 2.0 specification.\n\nIt also recognises when it is given OpenID 1.1 non-namespaced arguments and acts as if the\nrelevant namespaces were present. In this case, it only supports the basic OpenID 1.1 arguments\nand the extension arguments for Simple Registration.\n\nThis class can operate on a normal hashref, a CGI object or any object with a \"param\" method\nthat behaves similarly (Apache::Request, Apache2::Request, Mojo::Parameters,...), an Apache\nobject, a Plack::Request object, or an arbitrary \"CODE\" ref that when given a key name as its\nfirst parameter and returns a value and if given no arguments returns a list of all keys\npresent.\n\nIf you pass in a hashref or a coderef it is your responsibility as the caller to check the HTTP\nrequest method and pass in the correct set of arguments. For the other kinds of objects, this\nmodule will do the right thing automatically.\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "use Net::OpenID::IndirectMessage;\n\n# Pass in something suitable for the underlying flat dictionary.\n# Will return an instance if the request arguments can be understood\n# as a supported OpenID Message format.\n# Will return undef if this doesn't seem to be an OpenID Auth message.\n# Will croak if the $argumentything is not of a suitable type.\nmy $args = Net::OpenID::IndirectMessage->new($argumentything);\n\n# Determine which protocol version the message is using.\n# Currently this can be either 1 for 1.1 or 2 for 2.0.\n# Expect larger numbers for other versions in future.\n# Most callers don't really need to care about this.\nmy $version = $args->protocolversion();\n\n# Get a core argument value (\"openid.mode\")\nmy $mode = $args->get(\"mode\");\n\n# Get an extension argument value\nmy $nickname = $args->getext(\"http://openid.net/extensions/sreg/1.1\", \"nickname\");\n\n# Get hashref of all arguments in a given namespace\nmy $sreg = $args->getext(\"http://openid.net/extensions/sreg/1.1\");\n\nMost of the time callers won't need to use this class directly, but will instead access it\nthrough a Net::OpenID::Consumer instance.\n",
                "subsections": []
            },
            "METHODS": {
                "content": "protocolversion\nCurrently returns 1 or 2, according as this is an OpenID 1.0/1.1 or an OpenID 2.0 message.\n\nhasext\nTakes an extension namespace and returns true if the named extension is used in this\nmessage.\n\ngetext\nTakes an extension namespace and an optional parameter name, returns the parameter value, or\nif no parameter given, the parameter value.\n",
                "subsections": []
            }
        }
    }
}