---
Function {
    argument: None,
    arguments: FunctionArguments {
        arguments: [
            FunctionArgument {
                identifier: "wgetExtraOptions",
                default: None,
            },
            FunctionArgument {
                identifier: "targetRoot",
                default: None,
            },
        ],
        ellipsis: false,
    },
    definition: String {
        parts: [
            Raw {
                content: "metaDir=",
                position: (7, 1),
            },
            Expression {
                expression: Variable {
                    identifier: "targetRoot",
                    position: (7, 13),
                },
            },
            Raw {
                content: "etc/ec2-metadata\nmkdir -m 0755 -p \"$metaDir\"\nrm -f \"$metaDir/*\"\n\necho \"getting instance metadata...\"\n\nwget_imds() {\n  wget ",
                position: (7, 24),
            },
            Expression {
                expression: Variable {
                    identifier: "wgetExtraOptions",
                    position: (14, 12),
                },
            },
            Raw {
                content: " \"$@\"\n}\n\nwget_imds -O \"$metaDir/ami-manifest-path\" http://169.254.169.254/1.0/meta-data/ami-manifest-path\n# When no user-data is provided, the OpenStack metadata server doesn't expose the user-data route.\n(umask 077 && wget_imds -O \"$metaDir/user-data\" http://169.254.169.254/1.0/user-data || rm -f \"$metaDir/user-data\")\nwget_imds -O \"$metaDir/hostname\" http://169.254.169.254/1.0/meta-data/hostname\nwget_imds -O \"$metaDir/public-keys-0-openssh-key\" http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key\n",
                position: (14, 29),
            },
        ],
    },
}