@accelerated-software-development/caddy-api-client - v0.4.3
    Preparing search index...

    Variable SecurityAppSchemaConst

    SecurityAppSchema: ZodObject<
        {
            config: ZodOptional<
                ZodObject<
                    {
                        authentication_portals: ZodOptional<
                            ZodArray<
                                ZodObject<
                                    {
                                        cookie_config: ZodOptional<
                                            ZodObject<(...), (...), (...), (...), (...)>,
                                        >;
                                        identity_providers: ZodOptional<ZodArray<(...), (...)>>;
                                        identity_stores: ZodOptional<ZodArray<(...), (...)>>;
                                        name: ZodString;
                                        ui: ZodOptional<ZodObject<(...), (...), (...), (...), (...)>>;
                                        user_transformer_configs: ZodOptional<ZodArray<(...), (...)>>;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    {
                                        cookie_config?: {
                                            domains?: ...;
                                            insecure?: ...;
                                            lifetime?: ...;
                                            path?: ...;
                                            same_site?: ...;
                                        };
                                        identity_providers?: (...)[];
                                        identity_stores?: (...)[];
                                        name: string;
                                        ui?: { custom_css?: ...; logo_url?: ...; theme?: ... };
                                        user_transformer_configs?: (...)[];
                                    },
                                    {
                                        cookie_config?: {
                                            domains?: ...;
                                            insecure?: ...;
                                            lifetime?: ...;
                                            path?: ...;
                                            same_site?: ...;
                                        };
                                        identity_providers?: (...)[];
                                        identity_stores?: (...)[];
                                        name: string;
                                        ui?: { custom_css?: ...; logo_url?: ...; theme?: ... };
                                        user_transformer_configs?: (...)[];
                                    },
                                >,
                                "many",
                            >,
                        >;
                        authorization_policies: ZodOptional<
                            ZodArray<
                                ZodObject<
                                    {
                                        access_list_rules: ZodOptional<ZodArray<(...), (...)>>;
                                        bypass_configs: ZodOptional<ZodArray<(...), (...)>>;
                                        crypto_key_configs: ZodOptional<ZodArray<(...), (...)>>;
                                        name: ZodString;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    {
                                        access_list_rules?: (...)[];
                                        bypass_configs?: (...)[];
                                        crypto_key_configs?: (...)[];
                                        name: string;
                                    },
                                    {
                                        access_list_rules?: (...)[];
                                        bypass_configs?: (...)[];
                                        crypto_key_configs?: (...)[];
                                        name: string;
                                    },
                                >,
                                "many",
                            >,
                        >;
                        credentials: ZodOptional<
                            ZodObject<
                                { generic: ZodOptional<ZodRecord<ZodString, ZodUnknown>> },
                                "strip",
                                ZodTypeAny,
                                { generic?: Record<string, unknown> },
                                { generic?: Record<string, unknown> },
                            >,
                        >;
                        identity_providers: ZodOptional<
                            ZodArray<
                                ZodObject<
                                    {
                                        kind: ZodLiteral<"oauth">;
                                        name: ZodString;
                                        params: ZodUnion<[(...), (...)]>;
                                    },
                                    "strip",
                                    ZodTypeAny,
                                    {
                                        kind: "oauth";
                                        name: string;
                                        params: | objectOutputType<(...), (...), (...)>
                                        | objectOutputType<(...), (...), (...)>;
                                    },
                                    {
                                        kind: "oauth";
                                        name: string;
                                        params: | objectInputType<(...), (...), (...)>
                                        | objectInputType<(...), (...), (...)>;
                                    },
                                >,
                                "many",
                            >,
                        >;
                        identity_stores: ZodOptional<
                            ZodArray<
                                ZodDiscriminatedUnion<
                                    "kind",
                                    [
                                        ZodObject<
                                            { kind: ...; name: ...; params: ... },
                                            "strip",
                                            ZodTypeAny,
                                            { kind: ...; name: ...; params: ... },
                                            { kind: ...; name: ...; params: ... },
                                        >,
                                        ZodObject<
                                            { kind: ...; name: ...; params: ... },
                                            "strip",
                                            ZodTypeAny,
                                            { kind: ...; name: ...; params: ... },
                                            { kind: ...; name: ...; params: ... },
                                        >,
                                    ],
                                >,
                                "many",
                            >,
                        >;
                    },
                    "strip",
                    ZodTypeAny,
                    {
                        authentication_portals?: {
                            cookie_config?: {
                                domains?: (...)
                                | (...);
                                insecure?: (...) | (...) | (...);
                                lifetime?: (...) | (...);
                                path?: (...) | (...);
                                same_site?: (...) | (...);
                            };
                            identity_providers?: string[];
                            identity_stores?: string[];
                            name: string;
                            ui?: {
                                custom_css?: (...)
                                | (...);
                                logo_url?: (...) | (...);
                                theme?: (...) | (...);
                            };
                            user_transformer_configs?: Record<(...), (...)>[];
                        }[];
                        authorization_policies?: {
                            access_list_rules?: {
                                action?: ...;
                                comment?: ...;
                                conditions?: ...;
                            }[];
                            bypass_configs?: { match_type: ...; uri?: ... }[];
                            crypto_key_configs?: { source?: ...; token_name?: ... }[];
                            name: string;
                        }[];
                        credentials?: { generic?: Record<string, unknown> };
                        identity_providers?: {
                            kind: "oauth";
                            name: string;
                            params:
                                | objectOutputType<
                                    {
                                        authorization_url: ...;
                                        client_id: ...;
                                        client_secret: ...;
                                        driver: ...;
                                        realm: ...;
                                        scopes: ...;
                                        token_url: ...;
                                    },
                                    ZodTypeAny,
                                    "passthrough",
                                >
                                | objectOutputType<
                                    {
                                        client_id: ...;
                                        client_secret: ...;
                                        driver: ...;
                                        metadata_url: ...;
                                        realm: ...;
                                        scopes: ...;
                                    },
                                    ZodTypeAny,
                                    "passthrough",
                                >;
                        }[];
                        identity_stores?: (
                            | {
                                kind: "local";
                                name: string;
                                params: { path: string; realm?: (...)
                                | (...) };
                            }
                            | {
                                kind: "ldap";
                                name: string;
                                params: {
                                    bind_password?: ...;
                                    bind_username?: ...;
                                    groups?: ...;
                                    realm?: ...;
                                    search_base_dn?: ...;
                                    search_user_filter?: ...;
                                    servers?: ...;
                                } & { [k: ...]: ... };
                            }
                        )[];
                    },
                    {
                        authentication_portals?: {
                            cookie_config?: {
                                domains?: (...)
                                | (...);
                                insecure?: (...) | (...) | (...);
                                lifetime?: (...) | (...);
                                path?: (...) | (...);
                                same_site?: (...) | (...);
                            };
                            identity_providers?: string[];
                            identity_stores?: string[];
                            name: string;
                            ui?: {
                                custom_css?: (...)
                                | (...);
                                logo_url?: (...) | (...);
                                theme?: (...) | (...);
                            };
                            user_transformer_configs?: Record<(...), (...)>[];
                        }[];
                        authorization_policies?: {
                            access_list_rules?: {
                                action?: ...;
                                comment?: ...;
                                conditions?: ...;
                            }[];
                            bypass_configs?: { match_type: ...; uri?: ... }[];
                            crypto_key_configs?: { source?: ...; token_name?: ... }[];
                            name: string;
                        }[];
                        credentials?: { generic?: Record<string, unknown> };
                        identity_providers?: {
                            kind: "oauth";
                            name: string;
                            params:
                                | objectInputType<
                                    {
                                        authorization_url: ...;
                                        client_id: ...;
                                        client_secret: ...;
                                        driver: ...;
                                        realm: ...;
                                        scopes: ...;
                                        token_url: ...;
                                    },
                                    ZodTypeAny,
                                    "passthrough",
                                >
                                | objectInputType<
                                    {
                                        client_id: ...;
                                        client_secret: ...;
                                        driver: ...;
                                        metadata_url: ...;
                                        realm: ...;
                                        scopes: ...;
                                    },
                                    ZodTypeAny,
                                    "passthrough",
                                >;
                        }[];
                        identity_stores?: (
                            | {
                                kind: "local";
                                name: string;
                                params: { path: string; realm?: (...)
                                | (...) };
                            }
                            | {
                                kind: "ldap";
                                name: string;
                                params: {
                                    bind_password?: ...;
                                    bind_username?: ...;
                                    groups?: ...;
                                    realm?: ...;
                                    search_base_dn?: ...;
                                    search_user_filter?: ...;
                                    servers?: ...;
                                } & { [k: ...]: ... };
                            }
                        )[];
                    },
                >,
            >;
            secrets_managers: ZodOptional<
                ZodArray<
                    ZodObject<
                        { driver: ZodString },
                        "passthrough",
                        ZodTypeAny,
                        objectOutputType<{ driver: ZodString }, ZodTypeAny, "passthrough">,
                        objectInputType<{ driver: ZodString }, ZodTypeAny, "passthrough">,
                    >,
                    "many",
                >,
            >;
        },
        "strip",
        ZodTypeAny,
        {
            config?: {
                authentication_portals?: {
                    cookie_config?: {
                        domains?: Record<(...), (...)>;
                        insecure?: boolean;
                        lifetime?: number;
                        path?: string;
                        same_site?: string;
                    };
                    identity_providers?: string[];
                    identity_stores?: string[];
                    name: string;
                    ui?: { custom_css?: string; logo_url?: string; theme?: string };
                    user_transformer_configs?: Record<string, unknown>[];
                }[];
                authorization_policies?: {
                    access_list_rules?: {
                        action?: (...)
                        | (...)
                        | (...);
                        comment?: (...) | (...);
                        conditions?: (...) | (...);
                    }[];
                    bypass_configs?: { match_type: string; uri?: (...)
                    | (...) }[];
                    crypto_key_configs?: {
                        source?: (...) | (...);
                        token_name?: (...) | (...);
                    }[];
                    name: string;
                }[];
                credentials?: { generic?: Record<string, unknown> };
                identity_providers?: {
                    kind: "oauth";
                    name: string;
                    params:
                        | objectOutputType<
                            {
                                authorization_url: ZodOptional<(...)>;
                                client_id: ZodOptional<(...)>;
                                client_secret: ZodOptional<(...)>;
                                driver: ZodOptional<(...)>;
                                realm: ZodOptional<(...)>;
                                scopes: ZodOptional<(...)>;
                                token_url: ZodOptional<(...)>;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >
                        | objectOutputType<
                            {
                                client_id: ZodOptional<(...)>;
                                client_secret: ZodOptional<(...)>;
                                driver: ZodOptional<(...)>;
                                metadata_url: ZodOptional<(...)>;
                                realm: ZodOptional<(...)>;
                                scopes: ZodOptional<(...)>;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >;
                }[];
                identity_stores?: (
                    | {
                        kind: "local";
                        name: string;
                        params: { path: string; realm?: string };
                    }
                    | {
                        kind: "ldap";
                        name: string;
                        params: {
                            bind_password?: (...)
                            | (...);
                            bind_username?: (...) | (...);
                            groups?: (...) | (...);
                            realm?: (...) | (...);
                            search_base_dn?: (...) | (...);
                            search_user_filter?: (...) | (...);
                            servers?: (...) | (...);
                        } & { [k: string]: unknown };
                    }
                )[];
            };
            secrets_managers?: objectOutputType<
                { driver: ZodString },
                ZodTypeAny,
                "passthrough",
            >[];
        },
        {
            config?: {
                authentication_portals?: {
                    cookie_config?: {
                        domains?: Record<(...), (...)>;
                        insecure?: boolean;
                        lifetime?: number;
                        path?: string;
                        same_site?: string;
                    };
                    identity_providers?: string[];
                    identity_stores?: string[];
                    name: string;
                    ui?: { custom_css?: string; logo_url?: string; theme?: string };
                    user_transformer_configs?: Record<string, unknown>[];
                }[];
                authorization_policies?: {
                    access_list_rules?: {
                        action?: (...)
                        | (...)
                        | (...);
                        comment?: (...) | (...);
                        conditions?: (...) | (...);
                    }[];
                    bypass_configs?: { match_type: string; uri?: (...)
                    | (...) }[];
                    crypto_key_configs?: {
                        source?: (...) | (...);
                        token_name?: (...) | (...);
                    }[];
                    name: string;
                }[];
                credentials?: { generic?: Record<string, unknown> };
                identity_providers?: {
                    kind: "oauth";
                    name: string;
                    params:
                        | objectInputType<
                            {
                                authorization_url: ZodOptional<(...)>;
                                client_id: ZodOptional<(...)>;
                                client_secret: ZodOptional<(...)>;
                                driver: ZodOptional<(...)>;
                                realm: ZodOptional<(...)>;
                                scopes: ZodOptional<(...)>;
                                token_url: ZodOptional<(...)>;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >
                        | objectInputType<
                            {
                                client_id: ZodOptional<(...)>;
                                client_secret: ZodOptional<(...)>;
                                driver: ZodOptional<(...)>;
                                metadata_url: ZodOptional<(...)>;
                                realm: ZodOptional<(...)>;
                                scopes: ZodOptional<(...)>;
                            },
                            ZodTypeAny,
                            "passthrough",
                        >;
                }[];
                identity_stores?: (
                    | {
                        kind: "local";
                        name: string;
                        params: { path: string; realm?: string };
                    }
                    | {
                        kind: "ldap";
                        name: string;
                        params: {
                            bind_password?: (...)
                            | (...);
                            bind_username?: (...) | (...);
                            groups?: (...) | (...);
                            realm?: (...) | (...);
                            search_base_dn?: (...) | (...);
                            search_user_filter?: (...) | (...);
                            servers?: (...) | (...);
                        } & { [k: string]: unknown };
                    }
                )[];
            };
            secrets_managers?: objectInputType<
                { driver: ZodString },
                ZodTypeAny,
                "passthrough",
            >[];
        },
    > = ...

    Security app schema

    Validates the full security app at /config/apps/security

    const securityApp = SecurityAppSchema.parse({
    config: {
    authentication_portals: [{
    name: "myportal",
    identity_stores: ["localdb"],
    }],
    },
    });