// *** WARNING: this file was generated by test. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

import * as pulumi from "@pulumi/pulumi";
import * as utilities from "./utilities";

/**
 * Check codegen of functions with a Dict<str,str> parameter.
 */
export function funcWithDictParam(args?: FuncWithDictParamArgs, opts?: pulumi.InvokeOptions): Promise<FuncWithDictParamResult> {
    args = args || {};

    opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
    return pulumi.runtime.invoke("mypkg::funcWithDictParam", {
        "a": args.a,
        "b": args.b,
    }, opts);
}

export interface FuncWithDictParamArgs {
    a?: {[key: string]: string};
    b?: string;
}

export interface FuncWithDictParamResult {
    readonly r: string;
}
/**
 * Check codegen of functions with a Dict<str,str> parameter.
 */
export function funcWithDictParamOutput(args?: FuncWithDictParamOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<FuncWithDictParamResult> {
    return pulumi.output(args).apply((a: any) => funcWithDictParam(a, opts))
}

export interface FuncWithDictParamOutputArgs {
    a?: pulumi.Input<{[key: string]: pulumi.Input<string>}>;
    b?: pulumi.Input<string>;
}