Genkit JS API reference
    Preparing search index...

    Type Alias VertexAIPlugin

    type VertexAIPlugin = {
        embedder(
            name: string,
            config?: {
                location?: string;
                outputDimensionality?: number;
                taskType?:
                    | "RETRIEVAL_DOCUMENT"
                    | "RETRIEVAL_QUERY"
                    | "SEMANTIC_SIMILARITY"
                    | "CLASSIFICATION"
                    | "CLUSTERING";
                title?: string;
                version?: string;
            },
        ): EmbedderReference<
            z.ZodObject<
                {
                    location: z.ZodOptional<z.ZodString>;
                    outputDimensionality: z.ZodOptional<z.ZodNumber>;
                    taskType: z.ZodOptional<
                        z.ZodEnum<
                            [
                                "RETRIEVAL_DOCUMENT",
                                "RETRIEVAL_QUERY",
                                "SEMANTIC_SIMILARITY",
                                "CLASSIFICATION",
                                "CLUSTERING",
                            ],
                        >,
                    >;
                    title: z.ZodOptional<z.ZodString>;
                    version: z.ZodOptional<z.ZodString>;
                },
                "strip",
                z.ZodTypeAny,
                {
                    location?: string;
                    outputDimensionality?: number;
                    taskType?: | "RETRIEVAL_DOCUMENT"
                    | "RETRIEVAL_QUERY"
                    | "SEMANTIC_SIMILARITY"
                    | "CLASSIFICATION"
                    | "CLUSTERING";
                    title?: string;
                    version?: string;
                },
                {
                    location?: string;
                    outputDimensionality?: number;
                    taskType?: | "RETRIEVAL_DOCUMENT"
                    | "RETRIEVAL_QUERY"
                    | "SEMANTIC_SIMILARITY"
                    | "CLASSIFICATION"
                    | "CLUSTERING";
                    title?: string;
                    version?: string;
                },
            >,
        >;
        model(
            name:
                | "gemini-1.5-pro"
                | "gemini-1.5-flash"
                | "gemini-2.0-flash"
                | "gemini-2.0-flash-001"
                | "gemini-2.0-flash-lite"
                | "gemini-2.0-flash-lite-preview-02-05"
                | "gemini-2.0-pro-exp-02-05"
                | "gemini-2.5-pro-exp-03-25"
                | "gemini-2.5-pro-preview-03-25"
                | "gemini-2.5-flash-preview-04-17"
                | "gemini-2.5-flash"
                | "gemini-2.5-pro"
                | "gemini-2.5-flash-lite"
                | `gemini-${string}` & {},
            config?: z.objectOutputType<
                {
                    apiKey: z.ZodOptional<z.ZodString>;
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                } & {
                    functionCallingConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                allowedFunctionNames: z.ZodOptional<
                                    z.ZodArray<z.ZodString, "many">,
                                >;
                                mode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                allowedFunctionNames?: string[];
                                mode?: "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "ANY"
                                | "NONE";
                            },
                            {
                                allowedFunctionNames?: string[];
                                mode?: "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "ANY"
                                | "NONE";
                            },
                        >,
                    >;
                    googleSearchRetrieval: z.ZodOptional<
                        z.ZodObject<
                            { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                            "strip",
                            z.ZodTypeAny,
                            { disableAttribution?: boolean },
                            { disableAttribution?: boolean },
                        >,
                    >;
                    location: z.ZodOptional<z.ZodString>;
                    safetySettings: z.ZodOptional<
                        z.ZodArray<
                            z.ZodObject<
                                {
                                    category: z.ZodEnum<[(...), (...), (...), (...), (...)]>;
                                    threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                            >,
                            "many",
                        >,
                    >;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    thinkingConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                includeThoughts: z.ZodOptional<z.ZodBoolean>;
                                thinkingBudget: z.ZodOptional<z.ZodNumber>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            { includeThoughts?: boolean; thinkingBudget?: number },
                            { includeThoughts?: boolean; thinkingBudget?: number },
                        >,
                    >;
                    topP: z.ZodOptional<z.ZodNumber>;
                    vertexRetrieval: z.ZodOptional<
                        z.ZodObject<
                            {
                                datastore: z.ZodObject<
                                    {
                                        dataStoreId: z.ZodString;
                                        location: z.ZodOptional<(...)>;
                                        projectId: z.ZodOptional<(...)>;
                                    },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    },
                                    {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    },
                                >;
                                disableAttribution: z.ZodOptional<z.ZodBoolean>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                datastore: {
                                    dataStoreId: string;
                                    location?: string;
                                    projectId?: string;
                                };
                                disableAttribution?: boolean;
                            },
                            {
                                datastore: {
                                    dataStoreId: string;
                                    location?: string;
                                    projectId?: string;
                                };
                                disableAttribution?: boolean;
                            },
                        >,
                    >;
                },
                z.ZodTypeAny,
                "passthrough",
            >,
        ): ModelReference<
            z.ZodObject<
                {
                    apiKey: z.ZodOptional<z.ZodString>;
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                } & {
                    functionCallingConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                allowedFunctionNames: z.ZodOptional<
                                    z.ZodArray<z.ZodString, "many">,
                                >;
                                mode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                allowedFunctionNames?: string[];
                                mode?: "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "ANY"
                                | "NONE";
                            },
                            {
                                allowedFunctionNames?: string[];
                                mode?: "MODE_UNSPECIFIED"
                                | "AUTO"
                                | "ANY"
                                | "NONE";
                            },
                        >,
                    >;
                    googleSearchRetrieval: z.ZodOptional<
                        z.ZodObject<
                            { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                            "strip",
                            z.ZodTypeAny,
                            { disableAttribution?: boolean },
                            { disableAttribution?: boolean },
                        >,
                    >;
                    location: z.ZodOptional<z.ZodString>;
                    safetySettings: z.ZodOptional<
                        z.ZodArray<
                            z.ZodObject<
                                {
                                    category: z.ZodEnum<[(...), (...), (...), (...), (...)]>;
                                    threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                                {
                                    category: | "HARM_CATEGORY_UNSPECIFIED"
                                    | "HARM_CATEGORY_HATE_SPEECH"
                                    | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                    | "HARM_CATEGORY_HARASSMENT"
                                    | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                    threshold: | "BLOCK_LOW_AND_ABOVE"
                                    | "BLOCK_MEDIUM_AND_ABOVE"
                                    | "BLOCK_ONLY_HIGH"
                                    | "BLOCK_NONE";
                                },
                            >,
                            "many",
                        >,
                    >;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    thinkingConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                includeThoughts: z.ZodOptional<z.ZodBoolean>;
                                thinkingBudget: z.ZodOptional<z.ZodNumber>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            { includeThoughts?: boolean; thinkingBudget?: number },
                            { includeThoughts?: boolean; thinkingBudget?: number },
                        >,
                    >;
                    topP: z.ZodOptional<z.ZodNumber>;
                    vertexRetrieval: z.ZodOptional<
                        z.ZodObject<
                            {
                                datastore: z.ZodObject<
                                    {
                                        dataStoreId: z.ZodString;
                                        location: z.ZodOptional<(...)>;
                                        projectId: z.ZodOptional<(...)>;
                                    },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    },
                                    {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    },
                                >;
                                disableAttribution: z.ZodOptional<z.ZodBoolean>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                datastore: {
                                    dataStoreId: string;
                                    location?: string;
                                    projectId?: string;
                                };
                                disableAttribution?: boolean;
                            },
                            {
                                datastore: {
                                    dataStoreId: string;
                                    location?: string;
                                    projectId?: string;
                                };
                                disableAttribution?: boolean;
                            },
                        >,
                    >;
                },
                "passthrough",
                z.ZodTypeAny,
                z.objectOutputType<
                    {
                        apiKey: z.ZodOptional<z.ZodString>;
                        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                        topK: z.ZodOptional<z.ZodNumber>;
                        version: z.ZodOptional<z.ZodString>;
                    } & {
                        functionCallingConfig: z.ZodOptional<
                            z.ZodObject<
                                {
                                    allowedFunctionNames: z.ZodOptional<z.ZodArray<(...), (...)>>;
                                    mode: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    allowedFunctionNames?: (...)[];
                                    mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                                },
                                {
                                    allowedFunctionNames?: (...)[];
                                    mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                                },
                            >,
                        >;
                        googleSearchRetrieval: z.ZodOptional<
                            z.ZodObject<
                                { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                                "strip",
                                z.ZodTypeAny,
                                { disableAttribution?: boolean },
                                { disableAttribution?: boolean },
                            >,
                        >;
                        location: z.ZodOptional<z.ZodString>;
                        safetySettings: z.ZodOptional<
                            z.ZodArray<
                                z.ZodObject<
                                    { category: z.ZodEnum<(...)>; threshold: z.ZodEnum<(...)> },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                        category: (...) | (...) | (...) | (...) | (...);
                                        threshold: (...) | (...) | (...) | (...);
                                    },
                                    {
                                        category: (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        threshold: (...) | (...) | (...) | (...);
                                    },
                                >,
                                "many",
                            >,
                        >;
                        temperature: z.ZodOptional<z.ZodNumber>;
                        thinkingConfig: z.ZodOptional<
                            z.ZodObject<
                                {
                                    includeThoughts: z.ZodOptional<z.ZodBoolean>;
                                    thinkingBudget: z.ZodOptional<z.ZodNumber>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                { includeThoughts?: boolean; thinkingBudget?: number },
                                { includeThoughts?: boolean; thinkingBudget?: number },
                            >,
                        >;
                        topP: z.ZodOptional<z.ZodNumber>;
                        vertexRetrieval: z.ZodOptional<
                            z.ZodObject<
                                {
                                    datastore: z.ZodObject<
                                        { dataStoreId: ...; location: ...; projectId: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        { dataStoreId: ...; location?: ...; projectId?: ... },
                                        { dataStoreId: ...; location?: ...; projectId?: ... },
                                    >;
                                    disableAttribution: z.ZodOptional<z.ZodBoolean>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    datastore: {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    };
                                    disableAttribution?: boolean;
                                },
                                {
                                    datastore: {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    };
                                    disableAttribution?: boolean;
                                },
                            >,
                        >;
                    },
                    z.ZodTypeAny,
                    "passthrough",
                >,
                z.objectInputType<
                    {
                        apiKey: z.ZodOptional<z.ZodString>;
                        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                        topK: z.ZodOptional<z.ZodNumber>;
                        version: z.ZodOptional<z.ZodString>;
                    } & {
                        functionCallingConfig: z.ZodOptional<
                            z.ZodObject<
                                {
                                    allowedFunctionNames: z.ZodOptional<z.ZodArray<(...), (...)>>;
                                    mode: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    allowedFunctionNames?: (...)[];
                                    mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                                },
                                {
                                    allowedFunctionNames?: (...)[];
                                    mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                                },
                            >,
                        >;
                        googleSearchRetrieval: z.ZodOptional<
                            z.ZodObject<
                                { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                                "strip",
                                z.ZodTypeAny,
                                { disableAttribution?: boolean },
                                { disableAttribution?: boolean },
                            >,
                        >;
                        location: z.ZodOptional<z.ZodString>;
                        safetySettings: z.ZodOptional<
                            z.ZodArray<
                                z.ZodObject<
                                    { category: z.ZodEnum<(...)>; threshold: z.ZodEnum<(...)> },
                                    "strip",
                                    z.ZodTypeAny,
                                    {
                                        category: (...) | (...) | (...) | (...) | (...);
                                        threshold: (...) | (...) | (...) | (...);
                                    },
                                    {
                                        category: (...)
                                        | (...)
                                        | (...)
                                        | (...)
                                        | (...);
                                        threshold: (...) | (...) | (...) | (...);
                                    },
                                >,
                                "many",
                            >,
                        >;
                        temperature: z.ZodOptional<z.ZodNumber>;
                        thinkingConfig: z.ZodOptional<
                            z.ZodObject<
                                {
                                    includeThoughts: z.ZodOptional<z.ZodBoolean>;
                                    thinkingBudget: z.ZodOptional<z.ZodNumber>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                { includeThoughts?: boolean; thinkingBudget?: number },
                                { includeThoughts?: boolean; thinkingBudget?: number },
                            >,
                        >;
                        topP: z.ZodOptional<z.ZodNumber>;
                        vertexRetrieval: z.ZodOptional<
                            z.ZodObject<
                                {
                                    datastore: z.ZodObject<
                                        { dataStoreId: ...; location: ...; projectId: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        { dataStoreId: ...; location?: ...; projectId?: ... },
                                        { dataStoreId: ...; location?: ...; projectId?: ... },
                                    >;
                                    disableAttribution: z.ZodOptional<z.ZodBoolean>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    datastore: {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    };
                                    disableAttribution?: boolean;
                                },
                                {
                                    datastore: {
                                        dataStoreId: string;
                                        location?: (...)
                                        | (...);
                                        projectId?: (...) | (...);
                                    };
                                    disableAttribution?: boolean;
                                },
                            >,
                        >;
                    },
                    z.ZodTypeAny,
                    "passthrough",
                >,
            >,
        >;
        model(
            name:
                | "imagen-3.0-generate-001"
                | "imagen-3.0-fast-generate-001"
                | `imagen${string}` & {},
            config?: z.objectOutputType<
                {
                    apiKey: z.ZodOptional<z.ZodString>;
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                } & {
                    addWatermark: z.ZodOptional<z.ZodBoolean>;
                    aspectRatio: z.ZodOptional<
                        z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                    >;
                    editConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                editMode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                                guidanceScale: z.ZodOptional<z.ZodNumber>;
                                maskDilation: z.ZodOptional<z.ZodNumber>;
                                maskMode: z.ZodOptional<
                                    z.ZodObject<
                                        { classes: ...; maskType: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        { classes?: ...; maskType: ... },
                                        { classes?: ...; maskType: ... },
                                    >,
                                >;
                                productPosition: z.ZodOptional<z.ZodEnum<[(...), (...)]>>;
                            },
                            "passthrough",
                            z.ZodTypeAny,
                            z.objectOutputType<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                z.ZodTypeAny,
                                "passthrough",
                            >,
                            z.objectInputType<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                z.ZodTypeAny,
                                "passthrough",
                            >,
                        >,
                    >;
                    language: z.ZodOptional<
                        z.ZodEnum<
                            [
                                "auto",
                                "en",
                                "es",
                                "hi",
                                "ja",
                                "ko",
                                "pt",
                                "zh-TW",
                                "zh",
                                "zh-CN",
                            ],
                        >,
                    >;
                    location: z.ZodOptional<z.ZodString>;
                    mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                    negativePrompt: z.ZodOptional<z.ZodString>;
                    personGeneration: z.ZodOptional<
                        z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                    >;
                    safetySetting: z.ZodOptional<
                        z.ZodEnum<["block_most", "block_some", "block_few", "block_fewest"]>,
                    >;
                    seed: z.ZodOptional<z.ZodNumber>;
                    storageUri: z.ZodOptional<z.ZodString>;
                    upscaleConfig: z.ZodOptional<
                        z.ZodObject<
                            { upscaleFactor: z.ZodEnum<["x2", "x4"]> },
                            "strip",
                            z.ZodTypeAny,
                            { upscaleFactor: "x2" | "x4" },
                            { upscaleFactor: "x2" | "x4" },
                        >,
                    >;
                },
                z.ZodTypeAny,
                "passthrough",
            >,
        ): ModelReference<
            z.ZodObject<
                {
                    apiKey: z.ZodOptional<z.ZodString>;
                    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                    temperature: z.ZodOptional<z.ZodNumber>;
                    topK: z.ZodOptional<z.ZodNumber>;
                    topP: z.ZodOptional<z.ZodNumber>;
                    version: z.ZodOptional<z.ZodString>;
                } & {
                    addWatermark: z.ZodOptional<z.ZodBoolean>;
                    aspectRatio: z.ZodOptional<
                        z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                    >;
                    editConfig: z.ZodOptional<
                        z.ZodObject<
                            {
                                editMode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                                guidanceScale: z.ZodOptional<z.ZodNumber>;
                                maskDilation: z.ZodOptional<z.ZodNumber>;
                                maskMode: z.ZodOptional<
                                    z.ZodObject<
                                        { classes: ...; maskType: ... },
                                        "strip",
                                        z.ZodTypeAny,
                                        { classes?: ...; maskType: ... },
                                        { classes?: ...; maskType: ... },
                                    >,
                                >;
                                productPosition: z.ZodOptional<z.ZodEnum<[(...), (...)]>>;
                            },
                            "passthrough",
                            z.ZodTypeAny,
                            z.objectOutputType<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                z.ZodTypeAny,
                                "passthrough",
                            >,
                            z.objectInputType<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                z.ZodTypeAny,
                                "passthrough",
                            >,
                        >,
                    >;
                    language: z.ZodOptional<
                        z.ZodEnum<
                            [
                                "auto",
                                "en",
                                "es",
                                "hi",
                                "ja",
                                "ko",
                                "pt",
                                "zh-TW",
                                "zh",
                                "zh-CN",
                            ],
                        >,
                    >;
                    location: z.ZodOptional<z.ZodString>;
                    mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                    negativePrompt: z.ZodOptional<z.ZodString>;
                    personGeneration: z.ZodOptional<
                        z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                    >;
                    safetySetting: z.ZodOptional<
                        z.ZodEnum<["block_most", "block_some", "block_few", "block_fewest"]>,
                    >;
                    seed: z.ZodOptional<z.ZodNumber>;
                    storageUri: z.ZodOptional<z.ZodString>;
                    upscaleConfig: z.ZodOptional<
                        z.ZodObject<
                            { upscaleFactor: z.ZodEnum<["x2", "x4"]> },
                            "strip",
                            z.ZodTypeAny,
                            { upscaleFactor: "x2" | "x4" },
                            { upscaleFactor: "x2" | "x4" },
                        >,
                    >;
                },
                "passthrough",
                z.ZodTypeAny,
                z.objectOutputType<
                    {
                        apiKey: z.ZodOptional<z.ZodString>;
                        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                        temperature: z.ZodOptional<z.ZodNumber>;
                        topK: z.ZodOptional<z.ZodNumber>;
                        topP: z.ZodOptional<z.ZodNumber>;
                        version: z.ZodOptional<z.ZodString>;
                    } & {
                        addWatermark: z.ZodOptional<z.ZodBoolean>;
                        aspectRatio: z.ZodOptional<
                            z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                        >;
                        editConfig: z.ZodOptional<
                            z.ZodObject<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                "passthrough",
                                z.ZodTypeAny,
                                z.objectOutputType<
                                    {
                                        editMode: z.ZodOptional<(...)>;
                                        guidanceScale: z.ZodOptional<(...)>;
                                        maskDilation: z.ZodOptional<(...)>;
                                        maskMode: z.ZodOptional<(...)>;
                                        productPosition: z.ZodOptional<(...)>;
                                    },
                                    z.ZodTypeAny,
                                    "passthrough",
                                >,
                                z.objectInputType<
                                    {
                                        editMode: z.ZodOptional<(...)>;
                                        guidanceScale: z.ZodOptional<(...)>;
                                        maskDilation: z.ZodOptional<(...)>;
                                        maskMode: z.ZodOptional<(...)>;
                                        productPosition: z.ZodOptional<(...)>;
                                    },
                                    z.ZodTypeAny,
                                    "passthrough",
                                >,
                            >,
                        >;
                        language: z.ZodOptional<
                            z.ZodEnum<
                                [
                                    "auto",
                                    "en",
                                    "es",
                                    "hi",
                                    "ja",
                                    "ko",
                                    "pt",
                                    "zh-TW",
                                    "zh",
                                    "zh-CN",
                                ],
                            >,
                        >;
                        location: z.ZodOptional<z.ZodString>;
                        mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                        negativePrompt: z.ZodOptional<z.ZodString>;
                        personGeneration: z.ZodOptional<
                            z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                        >;
                        safetySetting: z.ZodOptional<
                            z.ZodEnum<
                                ["block_most", "block_some", "block_few", "block_fewest"],
                            >,
                        >;
                        seed: z.ZodOptional<z.ZodNumber>;
                        storageUri: z.ZodOptional<z.ZodString>;
                        upscaleConfig: z.ZodOptional<
                            z.ZodObject<
                                { upscaleFactor: z.ZodEnum<[(...), (...)]> },
                                "strip",
                                z.ZodTypeAny,
                                { upscaleFactor: "x2" | "x4" },
                                { upscaleFactor: "x2" | "x4" },
                            >,
                        >;
                    },
                    z.ZodTypeAny,
                    "passthrough",
                >,
                z.objectInputType<
                    {
                        apiKey: z.ZodOptional<z.ZodString>;
                        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                        temperature: z.ZodOptional<z.ZodNumber>;
                        topK: z.ZodOptional<z.ZodNumber>;
                        topP: z.ZodOptional<z.ZodNumber>;
                        version: z.ZodOptional<z.ZodString>;
                    } & {
                        addWatermark: z.ZodOptional<z.ZodBoolean>;
                        aspectRatio: z.ZodOptional<
                            z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                        >;
                        editConfig: z.ZodOptional<
                            z.ZodObject<
                                {
                                    editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                    guidanceScale: z.ZodOptional<z.ZodNumber>;
                                    maskDilation: z.ZodOptional<z.ZodNumber>;
                                    maskMode: z.ZodOptional<
                                        z.ZodObject<(...), (...), (...), (...), (...)>,
                                    >;
                                    productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                                },
                                "passthrough",
                                z.ZodTypeAny,
                                z.objectOutputType<
                                    {
                                        editMode: z.ZodOptional<(...)>;
                                        guidanceScale: z.ZodOptional<(...)>;
                                        maskDilation: z.ZodOptional<(...)>;
                                        maskMode: z.ZodOptional<(...)>;
                                        productPosition: z.ZodOptional<(...)>;
                                    },
                                    z.ZodTypeAny,
                                    "passthrough",
                                >,
                                z.objectInputType<
                                    {
                                        editMode: z.ZodOptional<(...)>;
                                        guidanceScale: z.ZodOptional<(...)>;
                                        maskDilation: z.ZodOptional<(...)>;
                                        maskMode: z.ZodOptional<(...)>;
                                        productPosition: z.ZodOptional<(...)>;
                                    },
                                    z.ZodTypeAny,
                                    "passthrough",
                                >,
                            >,
                        >;
                        language: z.ZodOptional<
                            z.ZodEnum<
                                [
                                    "auto",
                                    "en",
                                    "es",
                                    "hi",
                                    "ja",
                                    "ko",
                                    "pt",
                                    "zh-TW",
                                    "zh",
                                    "zh-CN",
                                ],
                            >,
                        >;
                        location: z.ZodOptional<z.ZodString>;
                        mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                        negativePrompt: z.ZodOptional<z.ZodString>;
                        personGeneration: z.ZodOptional<
                            z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                        >;
                        safetySetting: z.ZodOptional<
                            z.ZodEnum<
                                ["block_most", "block_some", "block_few", "block_fewest"],
                            >,
                        >;
                        seed: z.ZodOptional<z.ZodNumber>;
                        storageUri: z.ZodOptional<z.ZodString>;
                        upscaleConfig: z.ZodOptional<
                            z.ZodObject<
                                { upscaleFactor: z.ZodEnum<[(...), (...)]> },
                                "strip",
                                z.ZodTypeAny,
                                { upscaleFactor: "x2" | "x4" },
                                { upscaleFactor: "x2" | "x4" },
                            >,
                        >;
                    },
                    z.ZodTypeAny,
                    "passthrough",
                >,
            >,
        >;
        model(name: string, config?: any): ModelReference<z.ZodTypeAny>;
        (params?: PluginOptions): GenkitPlugin;
    }
    Index

    Methods

    Methods

    • Parameters

      • name: string
      • Optionalconfig: {
            location?: string;
            outputDimensionality?: number;
            taskType?:
                | "RETRIEVAL_DOCUMENT"
                | "RETRIEVAL_QUERY"
                | "SEMANTIC_SIMILARITY"
                | "CLASSIFICATION"
                | "CLUSTERING";
            title?: string;
            version?: string;
        }
        • Optionallocation?: string
        • OptionaloutputDimensionality?: number

          The outputDimensionality parameter allows you to specify the dimensionality of the embedding output. By default, the model generates embeddings with 768 dimensions. Models such as gemini-embedding-001, text-embedding-005, and text-multilingual-embedding-002 allow the output dimensionality to be adjusted between 1 and 768. By selecting a smaller output dimensionality, users can save memory and storage space, leading to more efficient computations.

        • OptionaltaskType?:
              | "RETRIEVAL_DOCUMENT"
              | "RETRIEVAL_QUERY"
              | "SEMANTIC_SIMILARITY"
              | "CLASSIFICATION"
              | "CLUSTERING"

          The task_type parameter is defined as the intended downstream application to help the model produce better quality embeddings.

        • Optionaltitle?: string
        • Optionalversion?: string

      Returns EmbedderReference<
          z.ZodObject<
              {
                  location: z.ZodOptional<z.ZodString>;
                  outputDimensionality: z.ZodOptional<z.ZodNumber>;
                  taskType: z.ZodOptional<
                      z.ZodEnum<
                          [
                              "RETRIEVAL_DOCUMENT",
                              "RETRIEVAL_QUERY",
                              "SEMANTIC_SIMILARITY",
                              "CLASSIFICATION",
                              "CLUSTERING",
                          ],
                      >,
                  >;
                  title: z.ZodOptional<z.ZodString>;
                  version: z.ZodOptional<z.ZodString>;
              },
              "strip",
              z.ZodTypeAny,
              {
                  location?: string;
                  outputDimensionality?: number;
                  taskType?: | "RETRIEVAL_DOCUMENT"
                  | "RETRIEVAL_QUERY"
                  | "SEMANTIC_SIMILARITY"
                  | "CLASSIFICATION"
                  | "CLUSTERING";
                  title?: string;
                  version?: string;
              },
              {
                  location?: string;
                  outputDimensionality?: number;
                  taskType?: | "RETRIEVAL_DOCUMENT"
                  | "RETRIEVAL_QUERY"
                  | "SEMANTIC_SIMILARITY"
                  | "CLASSIFICATION"
                  | "CLUSTERING";
                  title?: string;
                  version?: string;
              },
          >,
      >

    • Parameters

      • name:
            | "gemini-1.5-pro"
            | "gemini-1.5-flash"
            | "gemini-2.0-flash"
            | "gemini-2.0-flash-001"
            | "gemini-2.0-flash-lite"
            | "gemini-2.0-flash-lite-preview-02-05"
            | "gemini-2.0-pro-exp-02-05"
            | "gemini-2.5-pro-exp-03-25"
            | "gemini-2.5-pro-preview-03-25"
            | "gemini-2.5-flash-preview-04-17"
            | "gemini-2.5-flash"
            | "gemini-2.5-pro"
            | "gemini-2.5-flash-lite"
            | `gemini-${string}` & {}
      • Optionalconfig: z.objectOutputType<
            {
                apiKey: z.ZodOptional<z.ZodString>;
                maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                topK: z.ZodOptional<z.ZodNumber>;
                version: z.ZodOptional<z.ZodString>;
            } & {
                functionCallingConfig: z.ZodOptional<
                    z.ZodObject<
                        {
                            allowedFunctionNames: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                            mode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                            allowedFunctionNames?: string[];
                            mode?: "MODE_UNSPECIFIED"
                            | "AUTO"
                            | "ANY"
                            | "NONE";
                        },
                        {
                            allowedFunctionNames?: string[];
                            mode?: "MODE_UNSPECIFIED"
                            | "AUTO"
                            | "ANY"
                            | "NONE";
                        },
                    >,
                >;
                googleSearchRetrieval: z.ZodOptional<
                    z.ZodObject<
                        { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                        "strip",
                        z.ZodTypeAny,
                        { disableAttribution?: boolean },
                        { disableAttribution?: boolean },
                    >,
                >;
                location: z.ZodOptional<z.ZodString>;
                safetySettings: z.ZodOptional<
                    z.ZodArray<
                        z.ZodObject<
                            {
                                category: z.ZodEnum<[(...), (...), (...), (...), (...)]>;
                                threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                            },
                            "strip",
                            z.ZodTypeAny,
                            {
                                category: | "HARM_CATEGORY_UNSPECIFIED"
                                | "HARM_CATEGORY_HATE_SPEECH"
                                | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                | "HARM_CATEGORY_HARASSMENT"
                                | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                threshold: | "BLOCK_LOW_AND_ABOVE"
                                | "BLOCK_MEDIUM_AND_ABOVE"
                                | "BLOCK_ONLY_HIGH"
                                | "BLOCK_NONE";
                            },
                            {
                                category: | "HARM_CATEGORY_UNSPECIFIED"
                                | "HARM_CATEGORY_HATE_SPEECH"
                                | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                | "HARM_CATEGORY_HARASSMENT"
                                | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                threshold: | "BLOCK_LOW_AND_ABOVE"
                                | "BLOCK_MEDIUM_AND_ABOVE"
                                | "BLOCK_ONLY_HIGH"
                                | "BLOCK_NONE";
                            },
                        >,
                        "many",
                    >,
                >;
                temperature: z.ZodOptional<z.ZodNumber>;
                thinkingConfig: z.ZodOptional<
                    z.ZodObject<
                        {
                            includeThoughts: z.ZodOptional<z.ZodBoolean>;
                            thinkingBudget: z.ZodOptional<z.ZodNumber>;
                        },
                        "strip",
                        z.ZodTypeAny,
                        { includeThoughts?: boolean; thinkingBudget?: number },
                        { includeThoughts?: boolean; thinkingBudget?: number },
                    >,
                >;
                topP: z.ZodOptional<z.ZodNumber>;
                vertexRetrieval: z.ZodOptional<
                    z.ZodObject<
                        {
                            datastore: z.ZodObject<
                                {
                                    dataStoreId: z.ZodString;
                                    location: z.ZodOptional<(...)>;
                                    projectId: z.ZodOptional<(...)>;
                                },
                                "strip",
                                z.ZodTypeAny,
                                {
                                    dataStoreId: string;
                                    location?: (...)
                                    | (...);
                                    projectId?: (...) | (...);
                                },
                                {
                                    dataStoreId: string;
                                    location?: (...)
                                    | (...);
                                    projectId?: (...) | (...);
                                },
                            >;
                            disableAttribution: z.ZodOptional<z.ZodBoolean>;
                        },
                        "strip",
                        z.ZodTypeAny,
                        {
                            datastore: {
                                dataStoreId: string;
                                location?: string;
                                projectId?: string;
                            };
                            disableAttribution?: boolean;
                        },
                        {
                            datastore: {
                                dataStoreId: string;
                                location?: string;
                                projectId?: string;
                            };
                            disableAttribution?: boolean;
                        },
                    >,
                >;
            },
            z.ZodTypeAny,
            "passthrough",
        >

      Returns ModelReference<
          z.ZodObject<
              {
                  apiKey: z.ZodOptional<z.ZodString>;
                  maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                  stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                  topK: z.ZodOptional<z.ZodNumber>;
                  version: z.ZodOptional<z.ZodString>;
              } & {
                  functionCallingConfig: z.ZodOptional<
                      z.ZodObject<
                          {
                              allowedFunctionNames: z.ZodOptional<
                                  z.ZodArray<z.ZodString, "many">,
                              >;
                              mode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                          },
                          "strip",
                          z.ZodTypeAny,
                          {
                              allowedFunctionNames?: string[];
                              mode?: "MODE_UNSPECIFIED"
                              | "AUTO"
                              | "ANY"
                              | "NONE";
                          },
                          {
                              allowedFunctionNames?: string[];
                              mode?: "MODE_UNSPECIFIED"
                              | "AUTO"
                              | "ANY"
                              | "NONE";
                          },
                      >,
                  >;
                  googleSearchRetrieval: z.ZodOptional<
                      z.ZodObject<
                          { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                          "strip",
                          z.ZodTypeAny,
                          { disableAttribution?: boolean },
                          { disableAttribution?: boolean },
                      >,
                  >;
                  location: z.ZodOptional<z.ZodString>;
                  safetySettings: z.ZodOptional<
                      z.ZodArray<
                          z.ZodObject<
                              {
                                  category: z.ZodEnum<[(...), (...), (...), (...), (...)]>;
                                  threshold: z.ZodEnum<[(...), (...), (...), (...)]>;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                  category: | "HARM_CATEGORY_UNSPECIFIED"
                                  | "HARM_CATEGORY_HATE_SPEECH"
                                  | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                  | "HARM_CATEGORY_HARASSMENT"
                                  | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                  threshold: | "BLOCK_LOW_AND_ABOVE"
                                  | "BLOCK_MEDIUM_AND_ABOVE"
                                  | "BLOCK_ONLY_HIGH"
                                  | "BLOCK_NONE";
                              },
                              {
                                  category: | "HARM_CATEGORY_UNSPECIFIED"
                                  | "HARM_CATEGORY_HATE_SPEECH"
                                  | "HARM_CATEGORY_DANGEROUS_CONTENT"
                                  | "HARM_CATEGORY_HARASSMENT"
                                  | "HARM_CATEGORY_SEXUALLY_EXPLICIT";
                                  threshold: | "BLOCK_LOW_AND_ABOVE"
                                  | "BLOCK_MEDIUM_AND_ABOVE"
                                  | "BLOCK_ONLY_HIGH"
                                  | "BLOCK_NONE";
                              },
                          >,
                          "many",
                      >,
                  >;
                  temperature: z.ZodOptional<z.ZodNumber>;
                  thinkingConfig: z.ZodOptional<
                      z.ZodObject<
                          {
                              includeThoughts: z.ZodOptional<z.ZodBoolean>;
                              thinkingBudget: z.ZodOptional<z.ZodNumber>;
                          },
                          "strip",
                          z.ZodTypeAny,
                          { includeThoughts?: boolean; thinkingBudget?: number },
                          { includeThoughts?: boolean; thinkingBudget?: number },
                      >,
                  >;
                  topP: z.ZodOptional<z.ZodNumber>;
                  vertexRetrieval: z.ZodOptional<
                      z.ZodObject<
                          {
                              datastore: z.ZodObject<
                                  {
                                      dataStoreId: z.ZodString;
                                      location: z.ZodOptional<(...)>;
                                      projectId: z.ZodOptional<(...)>;
                                  },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                      dataStoreId: string;
                                      location?: (...)
                                      | (...);
                                      projectId?: (...) | (...);
                                  },
                                  {
                                      dataStoreId: string;
                                      location?: (...)
                                      | (...);
                                      projectId?: (...) | (...);
                                  },
                              >;
                              disableAttribution: z.ZodOptional<z.ZodBoolean>;
                          },
                          "strip",
                          z.ZodTypeAny,
                          {
                              datastore: {
                                  dataStoreId: string;
                                  location?: string;
                                  projectId?: string;
                              };
                              disableAttribution?: boolean;
                          },
                          {
                              datastore: {
                                  dataStoreId: string;
                                  location?: string;
                                  projectId?: string;
                              };
                              disableAttribution?: boolean;
                          },
                      >,
                  >;
              },
              "passthrough",
              z.ZodTypeAny,
              z.objectOutputType<
                  {
                      apiKey: z.ZodOptional<z.ZodString>;
                      maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                      stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                      topK: z.ZodOptional<z.ZodNumber>;
                      version: z.ZodOptional<z.ZodString>;
                  } & {
                      functionCallingConfig: z.ZodOptional<
                          z.ZodObject<
                              {
                                  allowedFunctionNames: z.ZodOptional<z.ZodArray<(...), (...)>>;
                                  mode: z.ZodOptional<z.ZodEnum<(...)>>;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                  allowedFunctionNames?: (...)[];
                                  mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                              },
                              {
                                  allowedFunctionNames?: (...)[];
                                  mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                              },
                          >,
                      >;
                      googleSearchRetrieval: z.ZodOptional<
                          z.ZodObject<
                              { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                              "strip",
                              z.ZodTypeAny,
                              { disableAttribution?: boolean },
                              { disableAttribution?: boolean },
                          >,
                      >;
                      location: z.ZodOptional<z.ZodString>;
                      safetySettings: z.ZodOptional<
                          z.ZodArray<
                              z.ZodObject<
                                  { category: z.ZodEnum<(...)>; threshold: z.ZodEnum<(...)> },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                      category: (...) | (...) | (...) | (...) | (...);
                                      threshold: (...) | (...) | (...) | (...);
                                  },
                                  {
                                      category: (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...);
                                      threshold: (...) | (...) | (...) | (...);
                                  },
                              >,
                              "many",
                          >,
                      >;
                      temperature: z.ZodOptional<z.ZodNumber>;
                      thinkingConfig: z.ZodOptional<
                          z.ZodObject<
                              {
                                  includeThoughts: z.ZodOptional<z.ZodBoolean>;
                                  thinkingBudget: z.ZodOptional<z.ZodNumber>;
                              },
                              "strip",
                              z.ZodTypeAny,
                              { includeThoughts?: boolean; thinkingBudget?: number },
                              { includeThoughts?: boolean; thinkingBudget?: number },
                          >,
                      >;
                      topP: z.ZodOptional<z.ZodNumber>;
                      vertexRetrieval: z.ZodOptional<
                          z.ZodObject<
                              {
                                  datastore: z.ZodObject<
                                      { dataStoreId: ...; location: ...; projectId: ... },
                                      "strip",
                                      z.ZodTypeAny,
                                      { dataStoreId: ...; location?: ...; projectId?: ... },
                                      { dataStoreId: ...; location?: ...; projectId?: ... },
                                  >;
                                  disableAttribution: z.ZodOptional<z.ZodBoolean>;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                  datastore: {
                                      dataStoreId: string;
                                      location?: (...)
                                      | (...);
                                      projectId?: (...) | (...);
                                  };
                                  disableAttribution?: boolean;
                              },
                              {
                                  datastore: {
                                      dataStoreId: string;
                                      location?: (...)
                                      | (...);
                                      projectId?: (...) | (...);
                                  };
                                  disableAttribution?: boolean;
                              },
                          >,
                      >;
                  },
                  z.ZodTypeAny,
                  "passthrough",
              >,
              z.objectInputType<
                  {
                      apiKey: z.ZodOptional<z.ZodString>;
                      maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                      stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                      topK: z.ZodOptional<z.ZodNumber>;
                      version: z.ZodOptional<z.ZodString>;
                  } & {
                      functionCallingConfig: z.ZodOptional<
                          z.ZodObject<
                              {
                                  allowedFunctionNames: z.ZodOptional<z.ZodArray<(...), (...)>>;
                                  mode: z.ZodOptional<z.ZodEnum<(...)>>;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                  allowedFunctionNames?: (...)[];
                                  mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                              },
                              {
                                  allowedFunctionNames?: (...)[];
                                  mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE";
                              },
                          >,
                      >;
                      googleSearchRetrieval: z.ZodOptional<
                          z.ZodObject<
                              { disableAttribution: z.ZodOptional<z.ZodBoolean> },
                              "strip",
                              z.ZodTypeAny,
                              { disableAttribution?: boolean },
                              { disableAttribution?: boolean },
                          >,
                      >;
                      location: z.ZodOptional<z.ZodString>;
                      safetySettings: z.ZodOptional<
                          z.ZodArray<
                              z.ZodObject<
                                  { category: z.ZodEnum<(...)>; threshold: z.ZodEnum<(...)> },
                                  "strip",
                                  z.ZodTypeAny,
                                  {
                                      category: (...) | (...) | (...) | (...) | (...);
                                      threshold: (...) | (...) | (...) | (...);
                                  },
                                  {
                                      category: (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...);
                                      threshold: (...) | (...) | (...) | (...);
                                  },
                              >,
                              "many",
                          >,
                      >;
                      temperature: z.ZodOptional<z.ZodNumber>;
                      thinkingConfig: z.ZodOptional<
                          z.ZodObject<
                              {
                                  includeThoughts: z.ZodOptional<z.ZodBoolean>;
                                  thinkingBudget: z.ZodOptional<z.ZodNumber>;
                              },
                              "strip",
                              z.ZodTypeAny,
                              { includeThoughts?: boolean; thinkingBudget?: number },
                              { includeThoughts?: boolean; thinkingBudget?: number },
                          >,
                      >;
                      topP: z.ZodOptional<z.ZodNumber>;
                      vertexRetrieval: z.ZodOptional<
                          z.ZodObject<
                              {
                                  datastore: z.ZodObject<
                                      { dataStoreId: ...; location: ...; projectId: ... },
                                      "strip",
                                      z.ZodTypeAny,
                                      { dataStoreId: ...; location?: ...; projectId?: ... },
                                      { dataStoreId: ...; location?: ...; projectId?: ... },
                                  >;
                                  disableAttribution: z.ZodOptional<z.ZodBoolean>;
                              },
                              "strip",
                              z.ZodTypeAny,
                              {
                                  datastore: {
                                      dataStoreId: string;
                                      location?: (...)
                                      | (...);
                                      projectId?: (...) | (...);
                                  };
                                  disableAttribution?: boolean;
                              },
                              {
                                  datastore: {
                                      dataStoreId: string;
                                      location?: (...)
                                      | (...);
                                      projectId?: (...) | (...);
                                  };
                                  disableAttribution?: boolean;
                              },
                          >,
                      >;
                  },
                  z.ZodTypeAny,
                  "passthrough",
              >,
          >,
      >

    • Parameters

      • name:
            | "imagen-3.0-generate-001"
            | "imagen-3.0-fast-generate-001"
            | `imagen${string}` & {}
      • Optionalconfig: z.objectOutputType<
            {
                apiKey: z.ZodOptional<z.ZodString>;
                maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                temperature: z.ZodOptional<z.ZodNumber>;
                topK: z.ZodOptional<z.ZodNumber>;
                topP: z.ZodOptional<z.ZodNumber>;
                version: z.ZodOptional<z.ZodString>;
            } & {
                addWatermark: z.ZodOptional<z.ZodBoolean>;
                aspectRatio: z.ZodOptional<
                    z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                >;
                editConfig: z.ZodOptional<
                    z.ZodObject<
                        {
                            editMode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                            guidanceScale: z.ZodOptional<z.ZodNumber>;
                            maskDilation: z.ZodOptional<z.ZodNumber>;
                            maskMode: z.ZodOptional<
                                z.ZodObject<
                                    { classes: ...; maskType: ... },
                                    "strip",
                                    z.ZodTypeAny,
                                    { classes?: ...; maskType: ... },
                                    { classes?: ...; maskType: ... },
                                >,
                            >;
                            productPosition: z.ZodOptional<z.ZodEnum<[(...), (...)]>>;
                        },
                        "passthrough",
                        z.ZodTypeAny,
                        z.objectOutputType<
                            {
                                editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                guidanceScale: z.ZodOptional<z.ZodNumber>;
                                maskDilation: z.ZodOptional<z.ZodNumber>;
                                maskMode: z.ZodOptional<
                                    z.ZodObject<(...), (...), (...), (...), (...)>,
                                >;
                                productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                            },
                            z.ZodTypeAny,
                            "passthrough",
                        >,
                        z.objectInputType<
                            {
                                editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                guidanceScale: z.ZodOptional<z.ZodNumber>;
                                maskDilation: z.ZodOptional<z.ZodNumber>;
                                maskMode: z.ZodOptional<
                                    z.ZodObject<(...), (...), (...), (...), (...)>,
                                >;
                                productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                            },
                            z.ZodTypeAny,
                            "passthrough",
                        >,
                    >,
                >;
                language: z.ZodOptional<
                    z.ZodEnum<
                        ["auto", "en", "es", "hi", "ja", "ko", "pt", "zh-TW", "zh", "zh-CN"],
                    >,
                >;
                location: z.ZodOptional<z.ZodString>;
                mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                negativePrompt: z.ZodOptional<z.ZodString>;
                personGeneration: z.ZodOptional<
                    z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                >;
                safetySetting: z.ZodOptional<
                    z.ZodEnum<["block_most", "block_some", "block_few", "block_fewest"]>,
                >;
                seed: z.ZodOptional<z.ZodNumber>;
                storageUri: z.ZodOptional<z.ZodString>;
                upscaleConfig: z.ZodOptional<
                    z.ZodObject<
                        { upscaleFactor: z.ZodEnum<["x2", "x4"]> },
                        "strip",
                        z.ZodTypeAny,
                        { upscaleFactor: "x2" | "x4" },
                        { upscaleFactor: "x2" | "x4" },
                    >,
                >;
            },
            z.ZodTypeAny,
            "passthrough",
        >

      Returns ModelReference<
          z.ZodObject<
              {
                  apiKey: z.ZodOptional<z.ZodString>;
                  maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                  stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                  temperature: z.ZodOptional<z.ZodNumber>;
                  topK: z.ZodOptional<z.ZodNumber>;
                  topP: z.ZodOptional<z.ZodNumber>;
                  version: z.ZodOptional<z.ZodString>;
              } & {
                  addWatermark: z.ZodOptional<z.ZodBoolean>;
                  aspectRatio: z.ZodOptional<
                      z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                  >;
                  editConfig: z.ZodOptional<
                      z.ZodObject<
                          {
                              editMode: z.ZodOptional<z.ZodEnum<[(...), (...), (...), (...)]>>;
                              guidanceScale: z.ZodOptional<z.ZodNumber>;
                              maskDilation: z.ZodOptional<z.ZodNumber>;
                              maskMode: z.ZodOptional<
                                  z.ZodObject<
                                      { classes: ...; maskType: ... },
                                      "strip",
                                      z.ZodTypeAny,
                                      { classes?: ...; maskType: ... },
                                      { classes?: ...; maskType: ... },
                                  >,
                              >;
                              productPosition: z.ZodOptional<z.ZodEnum<[(...), (...)]>>;
                          },
                          "passthrough",
                          z.ZodTypeAny,
                          z.objectOutputType<
                              {
                                  editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                  guidanceScale: z.ZodOptional<z.ZodNumber>;
                                  maskDilation: z.ZodOptional<z.ZodNumber>;
                                  maskMode: z.ZodOptional<
                                      z.ZodObject<(...), (...), (...), (...), (...)>,
                                  >;
                                  productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                              },
                              z.ZodTypeAny,
                              "passthrough",
                          >,
                          z.objectInputType<
                              {
                                  editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                  guidanceScale: z.ZodOptional<z.ZodNumber>;
                                  maskDilation: z.ZodOptional<z.ZodNumber>;
                                  maskMode: z.ZodOptional<
                                      z.ZodObject<(...), (...), (...), (...), (...)>,
                                  >;
                                  productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                              },
                              z.ZodTypeAny,
                              "passthrough",
                          >,
                      >,
                  >;
                  language: z.ZodOptional<
                      z.ZodEnum<
                          ["auto", "en", "es", "hi", "ja", "ko", "pt", "zh-TW", "zh", "zh-CN"],
                      >,
                  >;
                  location: z.ZodOptional<z.ZodString>;
                  mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                  negativePrompt: z.ZodOptional<z.ZodString>;
                  personGeneration: z.ZodOptional<
                      z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                  >;
                  safetySetting: z.ZodOptional<
                      z.ZodEnum<["block_most", "block_some", "block_few", "block_fewest"]>,
                  >;
                  seed: z.ZodOptional<z.ZodNumber>;
                  storageUri: z.ZodOptional<z.ZodString>;
                  upscaleConfig: z.ZodOptional<
                      z.ZodObject<
                          { upscaleFactor: z.ZodEnum<["x2", "x4"]> },
                          "strip",
                          z.ZodTypeAny,
                          { upscaleFactor: "x2" | "x4" },
                          { upscaleFactor: "x2" | "x4" },
                      >,
                  >;
              },
              "passthrough",
              z.ZodTypeAny,
              z.objectOutputType<
                  {
                      apiKey: z.ZodOptional<z.ZodString>;
                      maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                      stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                      temperature: z.ZodOptional<z.ZodNumber>;
                      topK: z.ZodOptional<z.ZodNumber>;
                      topP: z.ZodOptional<z.ZodNumber>;
                      version: z.ZodOptional<z.ZodString>;
                  } & {
                      addWatermark: z.ZodOptional<z.ZodBoolean>;
                      aspectRatio: z.ZodOptional<
                          z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                      >;
                      editConfig: z.ZodOptional<
                          z.ZodObject<
                              {
                                  editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                  guidanceScale: z.ZodOptional<z.ZodNumber>;
                                  maskDilation: z.ZodOptional<z.ZodNumber>;
                                  maskMode: z.ZodOptional<
                                      z.ZodObject<(...), (...), (...), (...), (...)>,
                                  >;
                                  productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                              },
                              "passthrough",
                              z.ZodTypeAny,
                              z.objectOutputType<
                                  {
                                      editMode: z.ZodOptional<(...)>;
                                      guidanceScale: z.ZodOptional<(...)>;
                                      maskDilation: z.ZodOptional<(...)>;
                                      maskMode: z.ZodOptional<(...)>;
                                      productPosition: z.ZodOptional<(...)>;
                                  },
                                  z.ZodTypeAny,
                                  "passthrough",
                              >,
                              z.objectInputType<
                                  {
                                      editMode: z.ZodOptional<(...)>;
                                      guidanceScale: z.ZodOptional<(...)>;
                                      maskDilation: z.ZodOptional<(...)>;
                                      maskMode: z.ZodOptional<(...)>;
                                      productPosition: z.ZodOptional<(...)>;
                                  },
                                  z.ZodTypeAny,
                                  "passthrough",
                              >,
                          >,
                      >;
                      language: z.ZodOptional<
                          z.ZodEnum<
                              [
                                  "auto",
                                  "en",
                                  "es",
                                  "hi",
                                  "ja",
                                  "ko",
                                  "pt",
                                  "zh-TW",
                                  "zh",
                                  "zh-CN",
                              ],
                          >,
                      >;
                      location: z.ZodOptional<z.ZodString>;
                      mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                      negativePrompt: z.ZodOptional<z.ZodString>;
                      personGeneration: z.ZodOptional<
                          z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                      >;
                      safetySetting: z.ZodOptional<
                          z.ZodEnum<["block_most", "block_some", "block_few", "block_fewest"]>,
                      >;
                      seed: z.ZodOptional<z.ZodNumber>;
                      storageUri: z.ZodOptional<z.ZodString>;
                      upscaleConfig: z.ZodOptional<
                          z.ZodObject<
                              { upscaleFactor: z.ZodEnum<[(...), (...)]> },
                              "strip",
                              z.ZodTypeAny,
                              { upscaleFactor: "x2" | "x4" },
                              { upscaleFactor: "x2" | "x4" },
                          >,
                      >;
                  },
                  z.ZodTypeAny,
                  "passthrough",
              >,
              z.objectInputType<
                  {
                      apiKey: z.ZodOptional<z.ZodString>;
                      maxOutputTokens: z.ZodOptional<z.ZodNumber>;
                      stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                      temperature: z.ZodOptional<z.ZodNumber>;
                      topK: z.ZodOptional<z.ZodNumber>;
                      topP: z.ZodOptional<z.ZodNumber>;
                      version: z.ZodOptional<z.ZodString>;
                  } & {
                      addWatermark: z.ZodOptional<z.ZodBoolean>;
                      aspectRatio: z.ZodOptional<
                          z.ZodEnum<["1:1", "9:16", "16:9", "3:4", "4:3"]>,
                      >;
                      editConfig: z.ZodOptional<
                          z.ZodObject<
                              {
                                  editMode: z.ZodOptional<z.ZodEnum<(...)>>;
                                  guidanceScale: z.ZodOptional<z.ZodNumber>;
                                  maskDilation: z.ZodOptional<z.ZodNumber>;
                                  maskMode: z.ZodOptional<
                                      z.ZodObject<(...), (...), (...), (...), (...)>,
                                  >;
                                  productPosition: z.ZodOptional<z.ZodEnum<(...)>>;
                              },
                              "passthrough",
                              z.ZodTypeAny,
                              z.objectOutputType<
                                  {
                                      editMode: z.ZodOptional<(...)>;
                                      guidanceScale: z.ZodOptional<(...)>;
                                      maskDilation: z.ZodOptional<(...)>;
                                      maskMode: z.ZodOptional<(...)>;
                                      productPosition: z.ZodOptional<(...)>;
                                  },
                                  z.ZodTypeAny,
                                  "passthrough",
                              >,
                              z.objectInputType<
                                  {
                                      editMode: z.ZodOptional<(...)>;
                                      guidanceScale: z.ZodOptional<(...)>;
                                      maskDilation: z.ZodOptional<(...)>;
                                      maskMode: z.ZodOptional<(...)>;
                                      productPosition: z.ZodOptional<(...)>;
                                  },
                                  z.ZodTypeAny,
                                  "passthrough",
                              >,
                          >,
                      >;
                      language: z.ZodOptional<
                          z.ZodEnum<
                              [
                                  "auto",
                                  "en",
                                  "es",
                                  "hi",
                                  "ja",
                                  "ko",
                                  "pt",
                                  "zh-TW",
                                  "zh",
                                  "zh-CN",
                              ],
                          >,
                      >;
                      location: z.ZodOptional<z.ZodString>;
                      mode: z.ZodOptional<z.ZodEnum<["upscale"]>>;
                      negativePrompt: z.ZodOptional<z.ZodString>;
                      personGeneration: z.ZodOptional<
                          z.ZodEnum<["dont_allow", "allow_adult", "allow_all"]>,
                      >;
                      safetySetting: z.ZodOptional<
                          z.ZodEnum<["block_most", "block_some", "block_few", "block_fewest"]>,
                      >;
                      seed: z.ZodOptional<z.ZodNumber>;
                      storageUri: z.ZodOptional<z.ZodString>;
                      upscaleConfig: z.ZodOptional<
                          z.ZodObject<
                              { upscaleFactor: z.ZodEnum<[(...), (...)]> },
                              "strip",
                              z.ZodTypeAny,
                              { upscaleFactor: "x2" | "x4" },
                              { upscaleFactor: "x2" | "x4" },
                          >,
                      >;
                  },
                  z.ZodTypeAny,
                  "passthrough",
              >,
          >,
      >

    • Parameters

      • name: string
      • Optionalconfig: any

      Returns ModelReference<z.ZodTypeAny>