1. Packages
  2. Alicloud Provider
  3. API Docs
  4. fc
  5. V3CustomDomain
Alibaba Cloud v3.62.1 published on Monday, Sep 16, 2024 by Pulumi

alicloud.fc.V3CustomDomain

Explore with Pulumi AI

alicloud logo
Alibaba Cloud v3.62.1 published on Monday, Sep 16, 2024 by Pulumi

    Provides a FCV3 Custom Domain resource.

    Custom Domain names allow users to access FC functions through custom domain names, providing convenience for building Web services using function compute. You can bind a custom domain name to Function Compute and set different paths to different functions of different services.

    For information about FCV3 Custom Domain and how to use it, see What is Custom Domain.

    NOTE: This content is a technical preview, and should not be relied on in a production environment.

    NOTE: Available since v1.228.0.

    Example Usage

    Basic Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as alicloud from "@pulumi/alicloud";
    
    const config = new pulumi.Config();
    const name = config.get("name") || "flask-6ew9.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net";
    const functionName1 = config.get("functionName1") || "terraform-custom-domain-t1";
    const authConfig = config.get("authConfig") || `{
        "jwks": {
            "keys": [
                {
                    "p": "8AdUVeldoE4LueFuzEF_C8tvJ7NhlkzS58Gz9KJTPXPr5DADSUVLWJCr5OdFE79q513SneT0UhGo-JfQ1lNMoNv5-YZ1AxIo9fZUEPIe-KyX9ttaglpzCAUE3TeKdm5J-_HZQzBPKbyUwJHAILNgB2-4IBZZwK7LAfbmfi9TmFM",
                    "kty": "RSA",
                    "q": "x8m5ydXwC8AAp9I-hOnUAx6yQJz1Nx-jXPCfn--XdHpJuNcuwRQsuUCSRQs_h3SoCI3qZZdzswQnPrtHFxgUJtQFuMj-QZpyMnebDb81rmczl2KPVUtaVDVagJEF6U9Ov3PfrLhvHUEv5u7p6s4Z6maBUaByfFlhEVPv4_ao8Us",
                    "d": "bjIQAKD2e65gwJ38_Sqq_EmLFuMMey3gjDv1bSCHFH8fyONJTq-utrZfvspz6EegRwW2mSHW9kq87hRwIBW9y7ED5N4KG5gHDjyh57BRE0SKv0Dz1igtKLyp-nl8-aHc1DbONwr1d7tZfFt255TxIN8cPTakXOp2Av_ztql_JotVUGK8eHmXNJFlvq5tc180sKWMHNSNsCUhQgcB1TWb_gwcqxdsIWPsLZI491XKeTGQ98J7z5h6R1cTC97lfJZ0vNtJahd2jHd3WfTUDj5-untMKyZpYYak2Vr8xtFz8H6Q5Rsz8uX_7gtEqYH2CMjPdbXcebrnD1igRSJMYiP0lQ",
                    "e": "AQAB",
                    "use": "sig",
                    "qi": "MTCCRu8AcvvjbHms7V_sDFO7wX0YNyvOJAAbuTmHvQbJ0NDeDta-f-hi8cjkMk7Fpk2hej158E5gDyO62UG99wHZSbmHT34MvIdmhQ5mnbL-5KK9rxde0nayO1ebGepD_GJThPAg9iskzeWpCg5X2etNo2bHoG_ZLQGXj2BQ1VM",
                    "dp": "J4_ttKNcTTnP8PlZO81n1VfYoGCOqylKceyZbq76rVxX-yp2wDLtslFWI8qCtjiMtEnglynPo19JzH-pakocjT70us4Qp0rs-W16ebiOpko8WfHZvzaNUzsQjC3FYrPW-fHo74wc4DI3Cm57jmhCYbdmT9OfQ4UL7Oz3HMFMNAU",
                    "alg": "RS256",
                    "dq": "H4-VgvYB-sk1EU3cRIDv1iJWRHDHKBMeaoM0pD5kLalX1hRgNW4rdoRl1vRk79AU720D11Kqm2APlxBctaA_JrcdxEg0KkbsvV45p11KbKeu9b5DKFVECsN27ZJ7XZUCuqnibtWf7_4pRBD_8PDoFShmS2_ORiiUdflNjzSbEas",
                    "n": "u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ"
                }
            ]
        },
        "tokenLookup": "header:auth",
        "claimPassBy": "header:name:name"
    }
    `;
    const certificate = config.get("certificate") || `-----BEGIN CERTIFICATE-----
    MIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV
    BAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP
    MA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0
    ZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow
    djELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE
    ChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG
    9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
    AoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB
    coG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook
    KOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw
    HQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy
    +OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC
    QkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN
    MAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ
    AJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT
    cQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1
    Ofi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd
    DUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=
    -----END CERTIFICATE-----
    `;
    const privateKey = config.get("privateKey") || `-----BEGIN RSA PRIVATE KEY-----
    MIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV
    kg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM
    ywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB
    AoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd
    6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP
    hwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4
    MdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz
    71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm
    Ev9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE
    qygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8
    9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM
    zWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe
    DrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=
    -----END RSA PRIVATE KEY-----
    `;
    const _default = new alicloud.fc.V3CustomDomain("default", {
        customDomainName: "flask-6ew9.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net",
        routeConfig: {
            routes: [
                {
                    functionName: functionName1,
                    rewriteConfig: {
                        regexRules: [
                            {
                                match: "/api/*",
                                replacement: "$1",
                            },
                            {
                                match: "/api1/*",
                                replacement: "$1",
                            },
                            {
                                match: "/api2/*",
                                replacement: "$1",
                            },
                        ],
                        wildcardRules: [
                            {
                                match: "^/api1/.+?/(.*)",
                                replacement: "/api/v1/$1",
                            },
                            {
                                match: "^/api2/.+?/(.*)",
                                replacement: "/api/v2/$1",
                            },
                            {
                                match: "^/api2/.+?/(.*)",
                                replacement: "/api/v3/$1",
                            },
                        ],
                        equalRules: [
                            {
                                match: "/old",
                                replacement: "/new",
                            },
                            {
                                replacement: "/new1",
                                match: "/old1",
                            },
                            {
                                match: "/old2",
                                replacement: "/new2",
                            },
                        ],
                    },
                    methods: [
                        "GET",
                        "POST",
                        "DELETE",
                        "HEAD",
                    ],
                    path: "/a",
                    qualifier: "LATEST",
                },
                {
                    functionName: functionName1,
                    methods: ["GET"],
                    path: "/b",
                    qualifier: "LATEST",
                },
                {
                    functionName: functionName1,
                    methods: ["POST"],
                    path: "/c",
                    qualifier: "1",
                },
            ],
        },
        authConfig: {
            authType: "jwt",
            authInfo: authConfig,
        },
        protocol: "HTTP,HTTPS",
        certConfig: {
            certName: "cert-name",
            certificate: certificate,
            privateKey: privateKey,
        },
        tlsConfig: {
            cipherSuites: [
                "TLS_RSA_WITH_AES_128_CBC_SHA",
                "TLS_RSA_WITH_AES_256_CBC_SHA",
                "TLS_RSA_WITH_AES_128_GCM_SHA256",
                "TLS_RSA_WITH_AES_256_GCM_SHA384",
            ],
            maxVersion: "TLSv1.3",
            minVersion: "TLSv1.0",
        },
        wafConfig: {
            enableWaf: false,
        },
    });
    
    import pulumi
    import pulumi_alicloud as alicloud
    
    config = pulumi.Config()
    name = config.get("name")
    if name is None:
        name = "flask-6ew9.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net"
    function_name1 = config.get("functionName1")
    if function_name1 is None:
        function_name1 = "terraform-custom-domain-t1"
    auth_config = config.get("authConfig")
    if auth_config is None:
        auth_config = """{
        "jwks": {
            "keys": [
                {
                    "p": "8AdUVeldoE4LueFuzEF_C8tvJ7NhlkzS58Gz9KJTPXPr5DADSUVLWJCr5OdFE79q513SneT0UhGo-JfQ1lNMoNv5-YZ1AxIo9fZUEPIe-KyX9ttaglpzCAUE3TeKdm5J-_HZQzBPKbyUwJHAILNgB2-4IBZZwK7LAfbmfi9TmFM",
                    "kty": "RSA",
                    "q": "x8m5ydXwC8AAp9I-hOnUAx6yQJz1Nx-jXPCfn--XdHpJuNcuwRQsuUCSRQs_h3SoCI3qZZdzswQnPrtHFxgUJtQFuMj-QZpyMnebDb81rmczl2KPVUtaVDVagJEF6U9Ov3PfrLhvHUEv5u7p6s4Z6maBUaByfFlhEVPv4_ao8Us",
                    "d": "bjIQAKD2e65gwJ38_Sqq_EmLFuMMey3gjDv1bSCHFH8fyONJTq-utrZfvspz6EegRwW2mSHW9kq87hRwIBW9y7ED5N4KG5gHDjyh57BRE0SKv0Dz1igtKLyp-nl8-aHc1DbONwr1d7tZfFt255TxIN8cPTakXOp2Av_ztql_JotVUGK8eHmXNJFlvq5tc180sKWMHNSNsCUhQgcB1TWb_gwcqxdsIWPsLZI491XKeTGQ98J7z5h6R1cTC97lfJZ0vNtJahd2jHd3WfTUDj5-untMKyZpYYak2Vr8xtFz8H6Q5Rsz8uX_7gtEqYH2CMjPdbXcebrnD1igRSJMYiP0lQ",
                    "e": "AQAB",
                    "use": "sig",
                    "qi": "MTCCRu8AcvvjbHms7V_sDFO7wX0YNyvOJAAbuTmHvQbJ0NDeDta-f-hi8cjkMk7Fpk2hej158E5gDyO62UG99wHZSbmHT34MvIdmhQ5mnbL-5KK9rxde0nayO1ebGepD_GJThPAg9iskzeWpCg5X2etNo2bHoG_ZLQGXj2BQ1VM",
                    "dp": "J4_ttKNcTTnP8PlZO81n1VfYoGCOqylKceyZbq76rVxX-yp2wDLtslFWI8qCtjiMtEnglynPo19JzH-pakocjT70us4Qp0rs-W16ebiOpko8WfHZvzaNUzsQjC3FYrPW-fHo74wc4DI3Cm57jmhCYbdmT9OfQ4UL7Oz3HMFMNAU",
                    "alg": "RS256",
                    "dq": "H4-VgvYB-sk1EU3cRIDv1iJWRHDHKBMeaoM0pD5kLalX1hRgNW4rdoRl1vRk79AU720D11Kqm2APlxBctaA_JrcdxEg0KkbsvV45p11KbKeu9b5DKFVECsN27ZJ7XZUCuqnibtWf7_4pRBD_8PDoFShmS2_ORiiUdflNjzSbEas",
                    "n": "u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ"
                }
            ]
        },
        "tokenLookup": "header:auth",
        "claimPassBy": "header:name:name"
    }
    """
    certificate = config.get("certificate")
    if certificate is None:
        certificate = """-----BEGIN CERTIFICATE-----
    MIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV
    BAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP
    MA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0
    ZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow
    djELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE
    ChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG
    9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
    AoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB
    coG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook
    KOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw
    HQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy
    +OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC
    QkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN
    MAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ
    AJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT
    cQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1
    Ofi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd
    DUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=
    -----END CERTIFICATE-----
    """
    private_key = config.get("privateKey")
    if private_key is None:
        private_key = """-----BEGIN RSA PRIVATE KEY-----
    MIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV
    kg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM
    ywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB
    AoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd
    6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP
    hwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4
    MdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz
    71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm
    Ev9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE
    qygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8
    9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM
    zWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe
    DrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=
    -----END RSA PRIVATE KEY-----
    """
    default = alicloud.fc.V3CustomDomain("default",
        custom_domain_name="flask-6ew9.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net",
        route_config={
            "routes": [
                {
                    "function_name": function_name1,
                    "rewrite_config": {
                        "regex_rules": [
                            {
                                "match": "/api/*",
                                "replacement": "$1",
                            },
                            {
                                "match": "/api1/*",
                                "replacement": "$1",
                            },
                            {
                                "match": "/api2/*",
                                "replacement": "$1",
                            },
                        ],
                        "wildcard_rules": [
                            {
                                "match": "^/api1/.+?/(.*)",
                                "replacement": "/api/v1/$1",
                            },
                            {
                                "match": "^/api2/.+?/(.*)",
                                "replacement": "/api/v2/$1",
                            },
                            {
                                "match": "^/api2/.+?/(.*)",
                                "replacement": "/api/v3/$1",
                            },
                        ],
                        "equal_rules": [
                            {
                                "match": "/old",
                                "replacement": "/new",
                            },
                            {
                                "replacement": "/new1",
                                "match": "/old1",
                            },
                            {
                                "match": "/old2",
                                "replacement": "/new2",
                            },
                        ],
                    },
                    "methods": [
                        "GET",
                        "POST",
                        "DELETE",
                        "HEAD",
                    ],
                    "path": "/a",
                    "qualifier": "LATEST",
                },
                {
                    "function_name": function_name1,
                    "methods": ["GET"],
                    "path": "/b",
                    "qualifier": "LATEST",
                },
                {
                    "function_name": function_name1,
                    "methods": ["POST"],
                    "path": "/c",
                    "qualifier": "1",
                },
            ],
        },
        auth_config={
            "auth_type": "jwt",
            "auth_info": auth_config,
        },
        protocol="HTTP,HTTPS",
        cert_config={
            "cert_name": "cert-name",
            "certificate": certificate,
            "private_key": private_key,
        },
        tls_config={
            "cipher_suites": [
                "TLS_RSA_WITH_AES_128_CBC_SHA",
                "TLS_RSA_WITH_AES_256_CBC_SHA",
                "TLS_RSA_WITH_AES_128_GCM_SHA256",
                "TLS_RSA_WITH_AES_256_GCM_SHA384",
            ],
            "max_version": "TLSv1.3",
            "min_version": "TLSv1.0",
        },
        waf_config={
            "enable_waf": False,
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cfg := config.New(ctx, "")
    		name := "flask-6ew9.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net"
    		if param := cfg.Get("name"); param != "" {
    			name = param
    		}
    		functionName1 := "terraform-custom-domain-t1"
    		if param := cfg.Get("functionName1"); param != "" {
    			functionName1 = param
    		}
    		authConfig := `{
        "jwks": {
            "keys": [
                {
                    "p": "8AdUVeldoE4LueFuzEF_C8tvJ7NhlkzS58Gz9KJTPXPr5DADSUVLWJCr5OdFE79q513SneT0UhGo-JfQ1lNMoNv5-YZ1AxIo9fZUEPIe-KyX9ttaglpzCAUE3TeKdm5J-_HZQzBPKbyUwJHAILNgB2-4IBZZwK7LAfbmfi9TmFM",
                    "kty": "RSA",
                    "q": "x8m5ydXwC8AAp9I-hOnUAx6yQJz1Nx-jXPCfn--XdHpJuNcuwRQsuUCSRQs_h3SoCI3qZZdzswQnPrtHFxgUJtQFuMj-QZpyMnebDb81rmczl2KPVUtaVDVagJEF6U9Ov3PfrLhvHUEv5u7p6s4Z6maBUaByfFlhEVPv4_ao8Us",
                    "d": "bjIQAKD2e65gwJ38_Sqq_EmLFuMMey3gjDv1bSCHFH8fyONJTq-utrZfvspz6EegRwW2mSHW9kq87hRwIBW9y7ED5N4KG5gHDjyh57BRE0SKv0Dz1igtKLyp-nl8-aHc1DbONwr1d7tZfFt255TxIN8cPTakXOp2Av_ztql_JotVUGK8eHmXNJFlvq5tc180sKWMHNSNsCUhQgcB1TWb_gwcqxdsIWPsLZI491XKeTGQ98J7z5h6R1cTC97lfJZ0vNtJahd2jHd3WfTUDj5-untMKyZpYYak2Vr8xtFz8H6Q5Rsz8uX_7gtEqYH2CMjPdbXcebrnD1igRSJMYiP0lQ",
                    "e": "AQAB",
                    "use": "sig",
                    "qi": "MTCCRu8AcvvjbHms7V_sDFO7wX0YNyvOJAAbuTmHvQbJ0NDeDta-f-hi8cjkMk7Fpk2hej158E5gDyO62UG99wHZSbmHT34MvIdmhQ5mnbL-5KK9rxde0nayO1ebGepD_GJThPAg9iskzeWpCg5X2etNo2bHoG_ZLQGXj2BQ1VM",
                    "dp": "J4_ttKNcTTnP8PlZO81n1VfYoGCOqylKceyZbq76rVxX-yp2wDLtslFWI8qCtjiMtEnglynPo19JzH-pakocjT70us4Qp0rs-W16ebiOpko8WfHZvzaNUzsQjC3FYrPW-fHo74wc4DI3Cm57jmhCYbdmT9OfQ4UL7Oz3HMFMNAU",
                    "alg": "RS256",
                    "dq": "H4-VgvYB-sk1EU3cRIDv1iJWRHDHKBMeaoM0pD5kLalX1hRgNW4rdoRl1vRk79AU720D11Kqm2APlxBctaA_JrcdxEg0KkbsvV45p11KbKeu9b5DKFVECsN27ZJ7XZUCuqnibtWf7_4pRBD_8PDoFShmS2_ORiiUdflNjzSbEas",
                    "n": "u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ"
                }
            ]
        },
        "tokenLookup": "header:auth",
        "claimPassBy": "header:name:name"
    }
    `
    		if param := cfg.Get("authConfig"); param != "" {
    			authConfig = param
    		}
    		certificate := `-----BEGIN CERTIFICATE-----
    MIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV
    BAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP
    MA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0
    ZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow
    djELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE
    ChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG
    9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
    AoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB
    coG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook
    KOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw
    HQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy
    +OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC
    QkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN
    MAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ
    AJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT
    cQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1
    Ofi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd
    DUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=
    -----END CERTIFICATE-----
    `
    		if param := cfg.Get("certificate"); param != "" {
    			certificate = param
    		}
    		privateKey := `-----BEGIN RSA PRIVATE KEY-----
    MIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV
    kg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM
    ywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB
    AoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd
    6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP
    hwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4
    MdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz
    71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm
    Ev9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE
    qygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8
    9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM
    zWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe
    DrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=
    -----END RSA PRIVATE KEY-----
    `
    		if param := cfg.Get("privateKey"); param != "" {
    			privateKey = param
    		}
    		_, err := fc.NewV3CustomDomain(ctx, "default", &fc.V3CustomDomainArgs{
    			CustomDomainName: pulumi.String("flask-6ew9.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net"),
    			RouteConfig: &fc.V3CustomDomainRouteConfigArgs{
    				Routes: fc.V3CustomDomainRouteConfigRouteArray{
    					&fc.V3CustomDomainRouteConfigRouteArgs{
    						FunctionName: pulumi.String(functionName1),
    						RewriteConfig: &fc.V3CustomDomainRouteConfigRouteRewriteConfigArgs{
    							RegexRules: fc.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArray{
    								&fc.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs{
    									Match:       pulumi.String("/api/*"),
    									Replacement: pulumi.String("$1"),
    								},
    								&fc.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs{
    									Match:       pulumi.String("/api1/*"),
    									Replacement: pulumi.String("$1"),
    								},
    								&fc.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs{
    									Match:       pulumi.String("/api2/*"),
    									Replacement: pulumi.String("$1"),
    								},
    							},
    							WildcardRules: fc.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArray{
    								&fc.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs{
    									Match:       pulumi.String("^/api1/.+?/(.*)"),
    									Replacement: pulumi.String("/api/v1/$1"),
    								},
    								&fc.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs{
    									Match:       pulumi.String("^/api2/.+?/(.*)"),
    									Replacement: pulumi.String("/api/v2/$1"),
    								},
    								&fc.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs{
    									Match:       pulumi.String("^/api2/.+?/(.*)"),
    									Replacement: pulumi.String("/api/v3/$1"),
    								},
    							},
    							EqualRules: fc.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArray{
    								&fc.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs{
    									Match:       pulumi.String("/old"),
    									Replacement: pulumi.String("/new"),
    								},
    								&fc.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs{
    									Replacement: pulumi.String("/new1"),
    									Match:       pulumi.String("/old1"),
    								},
    								&fc.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs{
    									Match:       pulumi.String("/old2"),
    									Replacement: pulumi.String("/new2"),
    								},
    							},
    						},
    						Methods: pulumi.StringArray{
    							pulumi.String("GET"),
    							pulumi.String("POST"),
    							pulumi.String("DELETE"),
    							pulumi.String("HEAD"),
    						},
    						Path:      pulumi.String("/a"),
    						Qualifier: pulumi.String("LATEST"),
    					},
    					&fc.V3CustomDomainRouteConfigRouteArgs{
    						FunctionName: pulumi.String(functionName1),
    						Methods: pulumi.StringArray{
    							pulumi.String("GET"),
    						},
    						Path:      pulumi.String("/b"),
    						Qualifier: pulumi.String("LATEST"),
    					},
    					&fc.V3CustomDomainRouteConfigRouteArgs{
    						FunctionName: pulumi.String(functionName1),
    						Methods: pulumi.StringArray{
    							pulumi.String("POST"),
    						},
    						Path:      pulumi.String("/c"),
    						Qualifier: pulumi.String("1"),
    					},
    				},
    			},
    			AuthConfig: &fc.V3CustomDomainAuthConfigArgs{
    				AuthType: pulumi.String("jwt"),
    				AuthInfo: pulumi.String(authConfig),
    			},
    			Protocol: pulumi.String("HTTP,HTTPS"),
    			CertConfig: &fc.V3CustomDomainCertConfigArgs{
    				CertName:    pulumi.String("cert-name"),
    				Certificate: pulumi.String(certificate),
    				PrivateKey:  pulumi.String(privateKey),
    			},
    			TlsConfig: &fc.V3CustomDomainTlsConfigArgs{
    				CipherSuites: pulumi.StringArray{
    					pulumi.String("TLS_RSA_WITH_AES_128_CBC_SHA"),
    					pulumi.String("TLS_RSA_WITH_AES_256_CBC_SHA"),
    					pulumi.String("TLS_RSA_WITH_AES_128_GCM_SHA256"),
    					pulumi.String("TLS_RSA_WITH_AES_256_GCM_SHA384"),
    				},
    				MaxVersion: pulumi.String("TLSv1.3"),
    				MinVersion: pulumi.String("TLSv1.0"),
    			},
    			WafConfig: &fc.V3CustomDomainWafConfigArgs{
    				EnableWaf: pulumi.Bool(false),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AliCloud = Pulumi.AliCloud;
    
    return await Deployment.RunAsync(() => 
    {
        var config = new Config();
        var name = config.Get("name") ?? "flask-6ew9.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net";
        var functionName1 = config.Get("functionName1") ?? "terraform-custom-domain-t1";
        var authConfig = config.Get("authConfig") ?? @"{
        ""jwks"": {
            ""keys"": [
                {
                    ""p"": ""8AdUVeldoE4LueFuzEF_C8tvJ7NhlkzS58Gz9KJTPXPr5DADSUVLWJCr5OdFE79q513SneT0UhGo-JfQ1lNMoNv5-YZ1AxIo9fZUEPIe-KyX9ttaglpzCAUE3TeKdm5J-_HZQzBPKbyUwJHAILNgB2-4IBZZwK7LAfbmfi9TmFM"",
                    ""kty"": ""RSA"",
                    ""q"": ""x8m5ydXwC8AAp9I-hOnUAx6yQJz1Nx-jXPCfn--XdHpJuNcuwRQsuUCSRQs_h3SoCI3qZZdzswQnPrtHFxgUJtQFuMj-QZpyMnebDb81rmczl2KPVUtaVDVagJEF6U9Ov3PfrLhvHUEv5u7p6s4Z6maBUaByfFlhEVPv4_ao8Us"",
                    ""d"": ""bjIQAKD2e65gwJ38_Sqq_EmLFuMMey3gjDv1bSCHFH8fyONJTq-utrZfvspz6EegRwW2mSHW9kq87hRwIBW9y7ED5N4KG5gHDjyh57BRE0SKv0Dz1igtKLyp-nl8-aHc1DbONwr1d7tZfFt255TxIN8cPTakXOp2Av_ztql_JotVUGK8eHmXNJFlvq5tc180sKWMHNSNsCUhQgcB1TWb_gwcqxdsIWPsLZI491XKeTGQ98J7z5h6R1cTC97lfJZ0vNtJahd2jHd3WfTUDj5-untMKyZpYYak2Vr8xtFz8H6Q5Rsz8uX_7gtEqYH2CMjPdbXcebrnD1igRSJMYiP0lQ"",
                    ""e"": ""AQAB"",
                    ""use"": ""sig"",
                    ""qi"": ""MTCCRu8AcvvjbHms7V_sDFO7wX0YNyvOJAAbuTmHvQbJ0NDeDta-f-hi8cjkMk7Fpk2hej158E5gDyO62UG99wHZSbmHT34MvIdmhQ5mnbL-5KK9rxde0nayO1ebGepD_GJThPAg9iskzeWpCg5X2etNo2bHoG_ZLQGXj2BQ1VM"",
                    ""dp"": ""J4_ttKNcTTnP8PlZO81n1VfYoGCOqylKceyZbq76rVxX-yp2wDLtslFWI8qCtjiMtEnglynPo19JzH-pakocjT70us4Qp0rs-W16ebiOpko8WfHZvzaNUzsQjC3FYrPW-fHo74wc4DI3Cm57jmhCYbdmT9OfQ4UL7Oz3HMFMNAU"",
                    ""alg"": ""RS256"",
                    ""dq"": ""H4-VgvYB-sk1EU3cRIDv1iJWRHDHKBMeaoM0pD5kLalX1hRgNW4rdoRl1vRk79AU720D11Kqm2APlxBctaA_JrcdxEg0KkbsvV45p11KbKeu9b5DKFVECsN27ZJ7XZUCuqnibtWf7_4pRBD_8PDoFShmS2_ORiiUdflNjzSbEas"",
                    ""n"": ""u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ""
                }
            ]
        },
        ""tokenLookup"": ""header:auth"",
        ""claimPassBy"": ""header:name:name""
    }
    ";
        var certificate = config.Get("certificate") ?? @"-----BEGIN CERTIFICATE-----
    MIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV
    BAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP
    MA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0
    ZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow
    djELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE
    ChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG
    9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
    AoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB
    coG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook
    KOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw
    HQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy
    +OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC
    QkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN
    MAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ
    AJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT
    cQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1
    Ofi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd
    DUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=
    -----END CERTIFICATE-----
    ";
        var privateKey = config.Get("privateKey") ?? @"-----BEGIN RSA PRIVATE KEY-----
    MIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV
    kg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM
    ywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB
    AoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd
    6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP
    hwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4
    MdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz
    71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm
    Ev9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE
    qygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8
    9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM
    zWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe
    DrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=
    -----END RSA PRIVATE KEY-----
    ";
        var @default = new AliCloud.FC.V3CustomDomain("default", new()
        {
            CustomDomainName = "flask-6ew9.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net",
            RouteConfig = new AliCloud.FC.Inputs.V3CustomDomainRouteConfigArgs
            {
                Routes = new[]
                {
                    new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteArgs
                    {
                        FunctionName = functionName1,
                        RewriteConfig = new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigArgs
                        {
                            RegexRules = new[]
                            {
                                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs
                                {
                                    Match = "/api/*",
                                    Replacement = "$1",
                                },
                                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs
                                {
                                    Match = "/api1/*",
                                    Replacement = "$1",
                                },
                                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs
                                {
                                    Match = "/api2/*",
                                    Replacement = "$1",
                                },
                            },
                            WildcardRules = new[]
                            {
                                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs
                                {
                                    Match = "^/api1/.+?/(.*)",
                                    Replacement = "/api/v1/$1",
                                },
                                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs
                                {
                                    Match = "^/api2/.+?/(.*)",
                                    Replacement = "/api/v2/$1",
                                },
                                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs
                                {
                                    Match = "^/api2/.+?/(.*)",
                                    Replacement = "/api/v3/$1",
                                },
                            },
                            EqualRules = new[]
                            {
                                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs
                                {
                                    Match = "/old",
                                    Replacement = "/new",
                                },
                                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs
                                {
                                    Replacement = "/new1",
                                    Match = "/old1",
                                },
                                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs
                                {
                                    Match = "/old2",
                                    Replacement = "/new2",
                                },
                            },
                        },
                        Methods = new[]
                        {
                            "GET",
                            "POST",
                            "DELETE",
                            "HEAD",
                        },
                        Path = "/a",
                        Qualifier = "LATEST",
                    },
                    new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteArgs
                    {
                        FunctionName = functionName1,
                        Methods = new[]
                        {
                            "GET",
                        },
                        Path = "/b",
                        Qualifier = "LATEST",
                    },
                    new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteArgs
                    {
                        FunctionName = functionName1,
                        Methods = new[]
                        {
                            "POST",
                        },
                        Path = "/c",
                        Qualifier = "1",
                    },
                },
            },
            AuthConfig = new AliCloud.FC.Inputs.V3CustomDomainAuthConfigArgs
            {
                AuthType = "jwt",
                AuthInfo = authConfig,
            },
            Protocol = "HTTP,HTTPS",
            CertConfig = new AliCloud.FC.Inputs.V3CustomDomainCertConfigArgs
            {
                CertName = "cert-name",
                Certificate = certificate,
                PrivateKey = privateKey,
            },
            TlsConfig = new AliCloud.FC.Inputs.V3CustomDomainTlsConfigArgs
            {
                CipherSuites = new[]
                {
                    "TLS_RSA_WITH_AES_128_CBC_SHA",
                    "TLS_RSA_WITH_AES_256_CBC_SHA",
                    "TLS_RSA_WITH_AES_128_GCM_SHA256",
                    "TLS_RSA_WITH_AES_256_GCM_SHA384",
                },
                MaxVersion = "TLSv1.3",
                MinVersion = "TLSv1.0",
            },
            WafConfig = new AliCloud.FC.Inputs.V3CustomDomainWafConfigArgs
            {
                EnableWaf = false,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.alicloud.fc.V3CustomDomain;
    import com.pulumi.alicloud.fc.V3CustomDomainArgs;
    import com.pulumi.alicloud.fc.inputs.V3CustomDomainRouteConfigArgs;
    import com.pulumi.alicloud.fc.inputs.V3CustomDomainAuthConfigArgs;
    import com.pulumi.alicloud.fc.inputs.V3CustomDomainCertConfigArgs;
    import com.pulumi.alicloud.fc.inputs.V3CustomDomainTlsConfigArgs;
    import com.pulumi.alicloud.fc.inputs.V3CustomDomainWafConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var config = ctx.config();
            final var name = config.get("name").orElse("flask-6ew9.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net");
            final var functionName1 = config.get("functionName1").orElse("terraform-custom-domain-t1");
            final var authConfig = config.get("authConfig").orElse("""
    {
        "jwks": {
            "keys": [
                {
                    "p": "8AdUVeldoE4LueFuzEF_C8tvJ7NhlkzS58Gz9KJTPXPr5DADSUVLWJCr5OdFE79q513SneT0UhGo-JfQ1lNMoNv5-YZ1AxIo9fZUEPIe-KyX9ttaglpzCAUE3TeKdm5J-_HZQzBPKbyUwJHAILNgB2-4IBZZwK7LAfbmfi9TmFM",
                    "kty": "RSA",
                    "q": "x8m5ydXwC8AAp9I-hOnUAx6yQJz1Nx-jXPCfn--XdHpJuNcuwRQsuUCSRQs_h3SoCI3qZZdzswQnPrtHFxgUJtQFuMj-QZpyMnebDb81rmczl2KPVUtaVDVagJEF6U9Ov3PfrLhvHUEv5u7p6s4Z6maBUaByfFlhEVPv4_ao8Us",
                    "d": "bjIQAKD2e65gwJ38_Sqq_EmLFuMMey3gjDv1bSCHFH8fyONJTq-utrZfvspz6EegRwW2mSHW9kq87hRwIBW9y7ED5N4KG5gHDjyh57BRE0SKv0Dz1igtKLyp-nl8-aHc1DbONwr1d7tZfFt255TxIN8cPTakXOp2Av_ztql_JotVUGK8eHmXNJFlvq5tc180sKWMHNSNsCUhQgcB1TWb_gwcqxdsIWPsLZI491XKeTGQ98J7z5h6R1cTC97lfJZ0vNtJahd2jHd3WfTUDj5-untMKyZpYYak2Vr8xtFz8H6Q5Rsz8uX_7gtEqYH2CMjPdbXcebrnD1igRSJMYiP0lQ",
                    "e": "AQAB",
                    "use": "sig",
                    "qi": "MTCCRu8AcvvjbHms7V_sDFO7wX0YNyvOJAAbuTmHvQbJ0NDeDta-f-hi8cjkMk7Fpk2hej158E5gDyO62UG99wHZSbmHT34MvIdmhQ5mnbL-5KK9rxde0nayO1ebGepD_GJThPAg9iskzeWpCg5X2etNo2bHoG_ZLQGXj2BQ1VM",
                    "dp": "J4_ttKNcTTnP8PlZO81n1VfYoGCOqylKceyZbq76rVxX-yp2wDLtslFWI8qCtjiMtEnglynPo19JzH-pakocjT70us4Qp0rs-W16ebiOpko8WfHZvzaNUzsQjC3FYrPW-fHo74wc4DI3Cm57jmhCYbdmT9OfQ4UL7Oz3HMFMNAU",
                    "alg": "RS256",
                    "dq": "H4-VgvYB-sk1EU3cRIDv1iJWRHDHKBMeaoM0pD5kLalX1hRgNW4rdoRl1vRk79AU720D11Kqm2APlxBctaA_JrcdxEg0KkbsvV45p11KbKeu9b5DKFVECsN27ZJ7XZUCuqnibtWf7_4pRBD_8PDoFShmS2_ORiiUdflNjzSbEas",
                    "n": "u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ"
                }
            ]
        },
        "tokenLookup": "header:auth",
        "claimPassBy": "header:name:name"
    }
            """);
            final var certificate = config.get("certificate").orElse("""
    -----BEGIN CERTIFICATE-----
    MIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV
    BAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP
    MA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0
    ZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow
    djELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE
    ChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG
    9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
    AoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB
    coG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook
    KOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw
    HQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy
    +OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC
    QkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN
    MAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ
    AJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT
    cQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1
    Ofi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd
    DUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=
    -----END CERTIFICATE-----
            """);
            final var privateKey = config.get("privateKey").orElse("""
    -----BEGIN RSA PRIVATE KEY-----
    MIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV
    kg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM
    ywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB
    AoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd
    6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP
    hwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4
    MdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz
    71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm
    Ev9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE
    qygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8
    9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM
    zWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe
    DrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=
    -----END RSA PRIVATE KEY-----
            """);
            var default_ = new V3CustomDomain("default", V3CustomDomainArgs.builder()
                .customDomainName("flask-6ew9.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net")
                .routeConfig(V3CustomDomainRouteConfigArgs.builder()
                    .routes(                
                        V3CustomDomainRouteConfigRouteArgs.builder()
                            .functionName(functionName1)
                            .rewriteConfig(V3CustomDomainRouteConfigRouteRewriteConfigArgs.builder()
                                .regexRules(                            
                                    V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs.builder()
                                        .match("/api/*")
                                        .replacement("$1")
                                        .build(),
                                    V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs.builder()
                                        .match("/api1/*")
                                        .replacement("$1")
                                        .build(),
                                    V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs.builder()
                                        .match("/api2/*")
                                        .replacement("$1")
                                        .build())
                                .wildcardRules(                            
                                    V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs.builder()
                                        .match("^/api1/.+?/(.*)")
                                        .replacement("/api/v1/$1")
                                        .build(),
                                    V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs.builder()
                                        .match("^/api2/.+?/(.*)")
                                        .replacement("/api/v2/$1")
                                        .build(),
                                    V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs.builder()
                                        .match("^/api2/.+?/(.*)")
                                        .replacement("/api/v3/$1")
                                        .build())
                                .equalRules(                            
                                    V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs.builder()
                                        .match("/old")
                                        .replacement("/new")
                                        .build(),
                                    V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs.builder()
                                        .replacement("/new1")
                                        .match("/old1")
                                        .build(),
                                    V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs.builder()
                                        .match("/old2")
                                        .replacement("/new2")
                                        .build())
                                .build())
                            .methods(                        
                                "GET",
                                "POST",
                                "DELETE",
                                "HEAD")
                            .path("/a")
                            .qualifier("LATEST")
                            .build(),
                        V3CustomDomainRouteConfigRouteArgs.builder()
                            .functionName(functionName1)
                            .methods("GET")
                            .path("/b")
                            .qualifier("LATEST")
                            .build(),
                        V3CustomDomainRouteConfigRouteArgs.builder()
                            .functionName(functionName1)
                            .methods("POST")
                            .path("/c")
                            .qualifier("1")
                            .build())
                    .build())
                .authConfig(V3CustomDomainAuthConfigArgs.builder()
                    .authType("jwt")
                    .authInfo(authConfig)
                    .build())
                .protocol("HTTP,HTTPS")
                .certConfig(V3CustomDomainCertConfigArgs.builder()
                    .certName("cert-name")
                    .certificate(certificate)
                    .privateKey(privateKey)
                    .build())
                .tlsConfig(V3CustomDomainTlsConfigArgs.builder()
                    .cipherSuites(                
                        "TLS_RSA_WITH_AES_128_CBC_SHA",
                        "TLS_RSA_WITH_AES_256_CBC_SHA",
                        "TLS_RSA_WITH_AES_128_GCM_SHA256",
                        "TLS_RSA_WITH_AES_256_GCM_SHA384")
                    .maxVersion("TLSv1.3")
                    .minVersion("TLSv1.0")
                    .build())
                .wafConfig(V3CustomDomainWafConfigArgs.builder()
                    .enableWaf("false")
                    .build())
                .build());
    
        }
    }
    
    configuration:
      name:
        type: string
        default: flask-6ew9.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net
      functionName1:
        type: string
        default: terraform-custom-domain-t1
      authConfig:
        type: string
        default: |
          {
              "jwks": {
                  "keys": [
                      {
                          "p": "8AdUVeldoE4LueFuzEF_C8tvJ7NhlkzS58Gz9KJTPXPr5DADSUVLWJCr5OdFE79q513SneT0UhGo-JfQ1lNMoNv5-YZ1AxIo9fZUEPIe-KyX9ttaglpzCAUE3TeKdm5J-_HZQzBPKbyUwJHAILNgB2-4IBZZwK7LAfbmfi9TmFM",
                          "kty": "RSA",
                          "q": "x8m5ydXwC8AAp9I-hOnUAx6yQJz1Nx-jXPCfn--XdHpJuNcuwRQsuUCSRQs_h3SoCI3qZZdzswQnPrtHFxgUJtQFuMj-QZpyMnebDb81rmczl2KPVUtaVDVagJEF6U9Ov3PfrLhvHUEv5u7p6s4Z6maBUaByfFlhEVPv4_ao8Us",
                          "d": "bjIQAKD2e65gwJ38_Sqq_EmLFuMMey3gjDv1bSCHFH8fyONJTq-utrZfvspz6EegRwW2mSHW9kq87hRwIBW9y7ED5N4KG5gHDjyh57BRE0SKv0Dz1igtKLyp-nl8-aHc1DbONwr1d7tZfFt255TxIN8cPTakXOp2Av_ztql_JotVUGK8eHmXNJFlvq5tc180sKWMHNSNsCUhQgcB1TWb_gwcqxdsIWPsLZI491XKeTGQ98J7z5h6R1cTC97lfJZ0vNtJahd2jHd3WfTUDj5-untMKyZpYYak2Vr8xtFz8H6Q5Rsz8uX_7gtEqYH2CMjPdbXcebrnD1igRSJMYiP0lQ",
                          "e": "AQAB",
                          "use": "sig",
                          "qi": "MTCCRu8AcvvjbHms7V_sDFO7wX0YNyvOJAAbuTmHvQbJ0NDeDta-f-hi8cjkMk7Fpk2hej158E5gDyO62UG99wHZSbmHT34MvIdmhQ5mnbL-5KK9rxde0nayO1ebGepD_GJThPAg9iskzeWpCg5X2etNo2bHoG_ZLQGXj2BQ1VM",
                          "dp": "J4_ttKNcTTnP8PlZO81n1VfYoGCOqylKceyZbq76rVxX-yp2wDLtslFWI8qCtjiMtEnglynPo19JzH-pakocjT70us4Qp0rs-W16ebiOpko8WfHZvzaNUzsQjC3FYrPW-fHo74wc4DI3Cm57jmhCYbdmT9OfQ4UL7Oz3HMFMNAU",
                          "alg": "RS256",
                          "dq": "H4-VgvYB-sk1EU3cRIDv1iJWRHDHKBMeaoM0pD5kLalX1hRgNW4rdoRl1vRk79AU720D11Kqm2APlxBctaA_JrcdxEg0KkbsvV45p11KbKeu9b5DKFVECsN27ZJ7XZUCuqnibtWf7_4pRBD_8PDoFShmS2_ORiiUdflNjzSbEas",
                          "n": "u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ"
                      }
                  ]
              },
              "tokenLookup": "header:auth",
              "claimPassBy": "header:name:name"
          }      
      certificate:
        type: string
        default: |
          -----BEGIN CERTIFICATE-----
          MIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV
          BAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP
          MA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0
          ZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow
          djELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE
          ChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG
          9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
          AoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB
          coG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook
          KOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw
          HQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy
          +OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC
          QkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN
          MAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ
          AJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT
          cQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1
          Ofi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd
          DUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=
          -----END CERTIFICATE-----      
      privateKey:
        type: string
        default: |
          -----BEGIN RSA PRIVATE KEY-----
          MIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV
          kg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM
          ywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB
          AoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd
          6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP
          hwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4
          MdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz
          71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm
          Ev9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE
          qygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8
          9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM
          zWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe
          DrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=
          -----END RSA PRIVATE KEY-----      
    resources:
      default:
        type: alicloud:fc:V3CustomDomain
        properties:
          customDomainName: flask-6ew9.fcv3.1511928242963727.cn-shanghai.fc.devsapp.net
          routeConfig:
            routes:
              - functionName: ${functionName1}
                rewriteConfig:
                  regexRules:
                    - match: /api/*
                      replacement: $1
                    - match: /api1/*
                      replacement: $1
                    - match: /api2/*
                      replacement: $1
                  wildcardRules:
                    - match: ^/api1/.+?/(.*)
                      replacement: /api/v1/$1
                    - match: ^/api2/.+?/(.*)
                      replacement: /api/v2/$1
                    - match: ^/api2/.+?/(.*)
                      replacement: /api/v3/$1
                  equalRules:
                    - match: /old
                      replacement: /new
                    - replacement: /new1
                      match: /old1
                    - match: /old2
                      replacement: /new2
                methods:
                  - GET
                  - POST
                  - DELETE
                  - HEAD
                path: /a
                qualifier: LATEST
              - functionName: ${functionName1}
                methods:
                  - GET
                path: /b
                qualifier: LATEST
              - functionName: ${functionName1}
                methods:
                  - POST
                path: /c
                qualifier: '1'
          authConfig:
            authType: jwt
            authInfo: ${authConfig}
          protocol: HTTP,HTTPS
          certConfig:
            certName: cert-name
            certificate: ${certificate}
            privateKey: ${privateKey}
          tlsConfig:
            cipherSuites:
              - TLS_RSA_WITH_AES_128_CBC_SHA
              - TLS_RSA_WITH_AES_256_CBC_SHA
              - TLS_RSA_WITH_AES_128_GCM_SHA256
              - TLS_RSA_WITH_AES_256_GCM_SHA384
            maxVersion: TLSv1.3
            minVersion: TLSv1.0
          wafConfig:
            enableWaf: 'false'
    

    Create V3CustomDomain Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new V3CustomDomain(name: string, args?: V3CustomDomainArgs, opts?: CustomResourceOptions);
    @overload
    def V3CustomDomain(resource_name: str,
                       args: Optional[V3CustomDomainArgs] = None,
                       opts: Optional[ResourceOptions] = None)
    
    @overload
    def V3CustomDomain(resource_name: str,
                       opts: Optional[ResourceOptions] = None,
                       auth_config: Optional[V3CustomDomainAuthConfigArgs] = None,
                       cert_config: Optional[V3CustomDomainCertConfigArgs] = None,
                       custom_domain_name: Optional[str] = None,
                       protocol: Optional[str] = None,
                       route_config: Optional[V3CustomDomainRouteConfigArgs] = None,
                       tls_config: Optional[V3CustomDomainTlsConfigArgs] = None,
                       waf_config: Optional[V3CustomDomainWafConfigArgs] = None)
    func NewV3CustomDomain(ctx *Context, name string, args *V3CustomDomainArgs, opts ...ResourceOption) (*V3CustomDomain, error)
    public V3CustomDomain(string name, V3CustomDomainArgs? args = null, CustomResourceOptions? opts = null)
    public V3CustomDomain(String name, V3CustomDomainArgs args)
    public V3CustomDomain(String name, V3CustomDomainArgs args, CustomResourceOptions options)
    
    type: alicloud:fc:V3CustomDomain
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args V3CustomDomainArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args V3CustomDomainArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args V3CustomDomainArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args V3CustomDomainArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args V3CustomDomainArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var v3customDomainResource = new AliCloud.FC.V3CustomDomain("v3customDomainResource", new()
    {
        AuthConfig = new AliCloud.FC.Inputs.V3CustomDomainAuthConfigArgs
        {
            AuthInfo = "string",
            AuthType = "string",
        },
        CertConfig = new AliCloud.FC.Inputs.V3CustomDomainCertConfigArgs
        {
            CertName = "string",
            Certificate = "string",
            PrivateKey = "string",
        },
        CustomDomainName = "string",
        Protocol = "string",
        RouteConfig = new AliCloud.FC.Inputs.V3CustomDomainRouteConfigArgs
        {
            Routes = new[]
            {
                new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteArgs
                {
                    FunctionName = "string",
                    Methods = new[]
                    {
                        "string",
                    },
                    Path = "string",
                    Qualifier = "string",
                    RewriteConfig = new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigArgs
                    {
                        EqualRules = new[]
                        {
                            new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs
                            {
                                Match = "string",
                                Replacement = "string",
                            },
                        },
                        RegexRules = new[]
                        {
                            new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs
                            {
                                Match = "string",
                                Replacement = "string",
                            },
                        },
                        WildcardRules = new[]
                        {
                            new AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs
                            {
                                Match = "string",
                                Replacement = "string",
                            },
                        },
                    },
                },
            },
        },
        TlsConfig = new AliCloud.FC.Inputs.V3CustomDomainTlsConfigArgs
        {
            CipherSuites = new[]
            {
                "string",
            },
            MaxVersion = "string",
            MinVersion = "string",
        },
        WafConfig = new AliCloud.FC.Inputs.V3CustomDomainWafConfigArgs
        {
            EnableWaf = false,
        },
    });
    
    example, err := fc.NewV3CustomDomain(ctx, "v3customDomainResource", &fc.V3CustomDomainArgs{
    	AuthConfig: &fc.V3CustomDomainAuthConfigArgs{
    		AuthInfo: pulumi.String("string"),
    		AuthType: pulumi.String("string"),
    	},
    	CertConfig: &fc.V3CustomDomainCertConfigArgs{
    		CertName:    pulumi.String("string"),
    		Certificate: pulumi.String("string"),
    		PrivateKey:  pulumi.String("string"),
    	},
    	CustomDomainName: pulumi.String("string"),
    	Protocol:         pulumi.String("string"),
    	RouteConfig: &fc.V3CustomDomainRouteConfigArgs{
    		Routes: fc.V3CustomDomainRouteConfigRouteArray{
    			&fc.V3CustomDomainRouteConfigRouteArgs{
    				FunctionName: pulumi.String("string"),
    				Methods: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				Path:      pulumi.String("string"),
    				Qualifier: pulumi.String("string"),
    				RewriteConfig: &fc.V3CustomDomainRouteConfigRouteRewriteConfigArgs{
    					EqualRules: fc.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArray{
    						&fc.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs{
    							Match:       pulumi.String("string"),
    							Replacement: pulumi.String("string"),
    						},
    					},
    					RegexRules: fc.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArray{
    						&fc.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs{
    							Match:       pulumi.String("string"),
    							Replacement: pulumi.String("string"),
    						},
    					},
    					WildcardRules: fc.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArray{
    						&fc.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs{
    							Match:       pulumi.String("string"),
    							Replacement: pulumi.String("string"),
    						},
    					},
    				},
    			},
    		},
    	},
    	TlsConfig: &fc.V3CustomDomainTlsConfigArgs{
    		CipherSuites: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		MaxVersion: pulumi.String("string"),
    		MinVersion: pulumi.String("string"),
    	},
    	WafConfig: &fc.V3CustomDomainWafConfigArgs{
    		EnableWaf: pulumi.Bool(false),
    	},
    })
    
    var v3customDomainResource = new V3CustomDomain("v3customDomainResource", V3CustomDomainArgs.builder()
        .authConfig(V3CustomDomainAuthConfigArgs.builder()
            .authInfo("string")
            .authType("string")
            .build())
        .certConfig(V3CustomDomainCertConfigArgs.builder()
            .certName("string")
            .certificate("string")
            .privateKey("string")
            .build())
        .customDomainName("string")
        .protocol("string")
        .routeConfig(V3CustomDomainRouteConfigArgs.builder()
            .routes(V3CustomDomainRouteConfigRouteArgs.builder()
                .functionName("string")
                .methods("string")
                .path("string")
                .qualifier("string")
                .rewriteConfig(V3CustomDomainRouteConfigRouteRewriteConfigArgs.builder()
                    .equalRules(V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs.builder()
                        .match("string")
                        .replacement("string")
                        .build())
                    .regexRules(V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs.builder()
                        .match("string")
                        .replacement("string")
                        .build())
                    .wildcardRules(V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs.builder()
                        .match("string")
                        .replacement("string")
                        .build())
                    .build())
                .build())
            .build())
        .tlsConfig(V3CustomDomainTlsConfigArgs.builder()
            .cipherSuites("string")
            .maxVersion("string")
            .minVersion("string")
            .build())
        .wafConfig(V3CustomDomainWafConfigArgs.builder()
            .enableWaf(false)
            .build())
        .build());
    
    v3custom_domain_resource = alicloud.fc.V3CustomDomain("v3customDomainResource",
        auth_config=alicloud.fc.V3CustomDomainAuthConfigArgs(
            auth_info="string",
            auth_type="string",
        ),
        cert_config=alicloud.fc.V3CustomDomainCertConfigArgs(
            cert_name="string",
            certificate="string",
            private_key="string",
        ),
        custom_domain_name="string",
        protocol="string",
        route_config=alicloud.fc.V3CustomDomainRouteConfigArgs(
            routes=[alicloud.fc.V3CustomDomainRouteConfigRouteArgs(
                function_name="string",
                methods=["string"],
                path="string",
                qualifier="string",
                rewrite_config=alicloud.fc.V3CustomDomainRouteConfigRouteRewriteConfigArgs(
                    equal_rules=[alicloud.fc.V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs(
                        match="string",
                        replacement="string",
                    )],
                    regex_rules=[alicloud.fc.V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs(
                        match="string",
                        replacement="string",
                    )],
                    wildcard_rules=[alicloud.fc.V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs(
                        match="string",
                        replacement="string",
                    )],
                ),
            )],
        ),
        tls_config=alicloud.fc.V3CustomDomainTlsConfigArgs(
            cipher_suites=["string"],
            max_version="string",
            min_version="string",
        ),
        waf_config=alicloud.fc.V3CustomDomainWafConfigArgs(
            enable_waf=False,
        ))
    
    const v3customDomainResource = new alicloud.fc.V3CustomDomain("v3customDomainResource", {
        authConfig: {
            authInfo: "string",
            authType: "string",
        },
        certConfig: {
            certName: "string",
            certificate: "string",
            privateKey: "string",
        },
        customDomainName: "string",
        protocol: "string",
        routeConfig: {
            routes: [{
                functionName: "string",
                methods: ["string"],
                path: "string",
                qualifier: "string",
                rewriteConfig: {
                    equalRules: [{
                        match: "string",
                        replacement: "string",
                    }],
                    regexRules: [{
                        match: "string",
                        replacement: "string",
                    }],
                    wildcardRules: [{
                        match: "string",
                        replacement: "string",
                    }],
                },
            }],
        },
        tlsConfig: {
            cipherSuites: ["string"],
            maxVersion: "string",
            minVersion: "string",
        },
        wafConfig: {
            enableWaf: false,
        },
    });
    
    type: alicloud:fc:V3CustomDomain
    properties:
        authConfig:
            authInfo: string
            authType: string
        certConfig:
            certName: string
            certificate: string
            privateKey: string
        customDomainName: string
        protocol: string
        routeConfig:
            routes:
                - functionName: string
                  methods:
                    - string
                  path: string
                  qualifier: string
                  rewriteConfig:
                    equalRules:
                        - match: string
                          replacement: string
                    regexRules:
                        - match: string
                          replacement: string
                    wildcardRules:
                        - match: string
                          replacement: string
        tlsConfig:
            cipherSuites:
                - string
            maxVersion: string
            minVersion: string
        wafConfig:
            enableWaf: false
    

    V3CustomDomain Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The V3CustomDomain resource accepts the following input properties:

    AuthConfig Pulumi.AliCloud.FC.Inputs.V3CustomDomainAuthConfig
    Permission authentication configuration See auth_config below.
    CertConfig Pulumi.AliCloud.FC.Inputs.V3CustomDomainCertConfig
    HTTPS certificate information See cert_config below.
    CustomDomainName string
    The name of the resource
    Protocol string
    The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.
    RouteConfig Pulumi.AliCloud.FC.Inputs.V3CustomDomainRouteConfig
    Route matching rule configuration See route_config below.
    TlsConfig Pulumi.AliCloud.FC.Inputs.V3CustomDomainTlsConfig
    TLS configuration information See tls_config below.
    WafConfig Pulumi.AliCloud.FC.Inputs.V3CustomDomainWafConfig
    Web application firewall configuration information See waf_config below.
    AuthConfig V3CustomDomainAuthConfigArgs
    Permission authentication configuration See auth_config below.
    CertConfig V3CustomDomainCertConfigArgs
    HTTPS certificate information See cert_config below.
    CustomDomainName string
    The name of the resource
    Protocol string
    The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.
    RouteConfig V3CustomDomainRouteConfigArgs
    Route matching rule configuration See route_config below.
    TlsConfig V3CustomDomainTlsConfigArgs
    TLS configuration information See tls_config below.
    WafConfig V3CustomDomainWafConfigArgs
    Web application firewall configuration information See waf_config below.
    authConfig V3CustomDomainAuthConfig
    Permission authentication configuration See auth_config below.
    certConfig V3CustomDomainCertConfig
    HTTPS certificate information See cert_config below.
    customDomainName String
    The name of the resource
    protocol String
    The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.
    routeConfig V3CustomDomainRouteConfig
    Route matching rule configuration See route_config below.
    tlsConfig V3CustomDomainTlsConfig
    TLS configuration information See tls_config below.
    wafConfig V3CustomDomainWafConfig
    Web application firewall configuration information See waf_config below.
    authConfig V3CustomDomainAuthConfig
    Permission authentication configuration See auth_config below.
    certConfig V3CustomDomainCertConfig
    HTTPS certificate information See cert_config below.
    customDomainName string
    The name of the resource
    protocol string
    The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.
    routeConfig V3CustomDomainRouteConfig
    Route matching rule configuration See route_config below.
    tlsConfig V3CustomDomainTlsConfig
    TLS configuration information See tls_config below.
    wafConfig V3CustomDomainWafConfig
    Web application firewall configuration information See waf_config below.
    auth_config V3CustomDomainAuthConfigArgs
    Permission authentication configuration See auth_config below.
    cert_config V3CustomDomainCertConfigArgs
    HTTPS certificate information See cert_config below.
    custom_domain_name str
    The name of the resource
    protocol str
    The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.
    route_config V3CustomDomainRouteConfigArgs
    Route matching rule configuration See route_config below.
    tls_config V3CustomDomainTlsConfigArgs
    TLS configuration information See tls_config below.
    waf_config V3CustomDomainWafConfigArgs
    Web application firewall configuration information See waf_config below.
    authConfig Property Map
    Permission authentication configuration See auth_config below.
    certConfig Property Map
    HTTPS certificate information See cert_config below.
    customDomainName String
    The name of the resource
    protocol String
    The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.
    routeConfig Property Map
    Route matching rule configuration See route_config below.
    tlsConfig Property Map
    TLS configuration information See tls_config below.
    wafConfig Property Map
    Web application firewall configuration information See waf_config below.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the V3CustomDomain resource produces the following output properties:

    CreateTime string
    The creation time of the resource
    Id string
    The provider-assigned unique ID for this managed resource.
    CreateTime string
    The creation time of the resource
    Id string
    The provider-assigned unique ID for this managed resource.
    createTime String
    The creation time of the resource
    id String
    The provider-assigned unique ID for this managed resource.
    createTime string
    The creation time of the resource
    id string
    The provider-assigned unique ID for this managed resource.
    create_time str
    The creation time of the resource
    id str
    The provider-assigned unique ID for this managed resource.
    createTime String
    The creation time of the resource
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing V3CustomDomain Resource

    Get an existing V3CustomDomain resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: V3CustomDomainState, opts?: CustomResourceOptions): V3CustomDomain
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            auth_config: Optional[V3CustomDomainAuthConfigArgs] = None,
            cert_config: Optional[V3CustomDomainCertConfigArgs] = None,
            create_time: Optional[str] = None,
            custom_domain_name: Optional[str] = None,
            protocol: Optional[str] = None,
            route_config: Optional[V3CustomDomainRouteConfigArgs] = None,
            tls_config: Optional[V3CustomDomainTlsConfigArgs] = None,
            waf_config: Optional[V3CustomDomainWafConfigArgs] = None) -> V3CustomDomain
    func GetV3CustomDomain(ctx *Context, name string, id IDInput, state *V3CustomDomainState, opts ...ResourceOption) (*V3CustomDomain, error)
    public static V3CustomDomain Get(string name, Input<string> id, V3CustomDomainState? state, CustomResourceOptions? opts = null)
    public static V3CustomDomain get(String name, Output<String> id, V3CustomDomainState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AuthConfig Pulumi.AliCloud.FC.Inputs.V3CustomDomainAuthConfig
    Permission authentication configuration See auth_config below.
    CertConfig Pulumi.AliCloud.FC.Inputs.V3CustomDomainCertConfig
    HTTPS certificate information See cert_config below.
    CreateTime string
    The creation time of the resource
    CustomDomainName string
    The name of the resource
    Protocol string
    The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.
    RouteConfig Pulumi.AliCloud.FC.Inputs.V3CustomDomainRouteConfig
    Route matching rule configuration See route_config below.
    TlsConfig Pulumi.AliCloud.FC.Inputs.V3CustomDomainTlsConfig
    TLS configuration information See tls_config below.
    WafConfig Pulumi.AliCloud.FC.Inputs.V3CustomDomainWafConfig
    Web application firewall configuration information See waf_config below.
    AuthConfig V3CustomDomainAuthConfigArgs
    Permission authentication configuration See auth_config below.
    CertConfig V3CustomDomainCertConfigArgs
    HTTPS certificate information See cert_config below.
    CreateTime string
    The creation time of the resource
    CustomDomainName string
    The name of the resource
    Protocol string
    The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.
    RouteConfig V3CustomDomainRouteConfigArgs
    Route matching rule configuration See route_config below.
    TlsConfig V3CustomDomainTlsConfigArgs
    TLS configuration information See tls_config below.
    WafConfig V3CustomDomainWafConfigArgs
    Web application firewall configuration information See waf_config below.
    authConfig V3CustomDomainAuthConfig
    Permission authentication configuration See auth_config below.
    certConfig V3CustomDomainCertConfig
    HTTPS certificate information See cert_config below.
    createTime String
    The creation time of the resource
    customDomainName String
    The name of the resource
    protocol String
    The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.
    routeConfig V3CustomDomainRouteConfig
    Route matching rule configuration See route_config below.
    tlsConfig V3CustomDomainTlsConfig
    TLS configuration information See tls_config below.
    wafConfig V3CustomDomainWafConfig
    Web application firewall configuration information See waf_config below.
    authConfig V3CustomDomainAuthConfig
    Permission authentication configuration See auth_config below.
    certConfig V3CustomDomainCertConfig
    HTTPS certificate information See cert_config below.
    createTime string
    The creation time of the resource
    customDomainName string
    The name of the resource
    protocol string
    The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.
    routeConfig V3CustomDomainRouteConfig
    Route matching rule configuration See route_config below.
    tlsConfig V3CustomDomainTlsConfig
    TLS configuration information See tls_config below.
    wafConfig V3CustomDomainWafConfig
    Web application firewall configuration information See waf_config below.
    auth_config V3CustomDomainAuthConfigArgs
    Permission authentication configuration See auth_config below.
    cert_config V3CustomDomainCertConfigArgs
    HTTPS certificate information See cert_config below.
    create_time str
    The creation time of the resource
    custom_domain_name str
    The name of the resource
    protocol str
    The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.
    route_config V3CustomDomainRouteConfigArgs
    Route matching rule configuration See route_config below.
    tls_config V3CustomDomainTlsConfigArgs
    TLS configuration information See tls_config below.
    waf_config V3CustomDomainWafConfigArgs
    Web application firewall configuration information See waf_config below.
    authConfig Property Map
    Permission authentication configuration See auth_config below.
    certConfig Property Map
    HTTPS certificate information See cert_config below.
    createTime String
    The creation time of the resource
    customDomainName String
    The name of the resource
    protocol String
    The protocol type supported by the domain name. HTTP: only HTTP protocol is supported. HTTPS: only HTTPS is supported. HTTP,HTTPS: Supports HTTP and HTTPS protocols.
    routeConfig Property Map
    Route matching rule configuration See route_config below.
    tlsConfig Property Map
    TLS configuration information See tls_config below.
    wafConfig Property Map
    Web application firewall configuration information See waf_config below.

    Supporting Types

    V3CustomDomainAuthConfig, V3CustomDomainAuthConfigArgs

    AuthInfo string
    Authentication Information.
    AuthType string
    Authentication type. anonymous, function, or jwt.
    AuthInfo string
    Authentication Information.
    AuthType string
    Authentication type. anonymous, function, or jwt.
    authInfo String
    Authentication Information.
    authType String
    Authentication type. anonymous, function, or jwt.
    authInfo string
    Authentication Information.
    authType string
    Authentication type. anonymous, function, or jwt.
    auth_info str
    Authentication Information.
    auth_type str
    Authentication type. anonymous, function, or jwt.
    authInfo String
    Authentication Information.
    authType String
    Authentication type. anonymous, function, or jwt.

    V3CustomDomainCertConfig, V3CustomDomainCertConfigArgs

    CertName string
    Certificate Name.
    Certificate string
    PEM format certificate.
    PrivateKey string
    Private Key in PEM format.
    CertName string
    Certificate Name.
    Certificate string
    PEM format certificate.
    PrivateKey string
    Private Key in PEM format.
    certName String
    Certificate Name.
    certificate String
    PEM format certificate.
    privateKey String
    Private Key in PEM format.
    certName string
    Certificate Name.
    certificate string
    PEM format certificate.
    privateKey string
    Private Key in PEM format.
    cert_name str
    Certificate Name.
    certificate str
    PEM format certificate.
    private_key str
    Private Key in PEM format.
    certName String
    Certificate Name.
    certificate String
    PEM format certificate.
    privateKey String
    Private Key in PEM format.

    V3CustomDomainRouteConfig, V3CustomDomainRouteConfigArgs

    Routes List<Pulumi.AliCloud.FC.Inputs.V3CustomDomainRouteConfigRoute>
    Routing Configuration List. See routes below.
    Routes []V3CustomDomainRouteConfigRoute
    Routing Configuration List. See routes below.
    routes List<V3CustomDomainRouteConfigRoute>
    Routing Configuration List. See routes below.
    routes V3CustomDomainRouteConfigRoute[]
    Routing Configuration List. See routes below.
    routes Sequence[V3CustomDomainRouteConfigRoute]
    Routing Configuration List. See routes below.
    routes List<Property Map>
    Routing Configuration List. See routes below.

    V3CustomDomainRouteConfigRoute, V3CustomDomainRouteConfigRouteArgs

    FunctionName string
    Function name.
    Methods List<string>
    List of supported HTTP methods.
    Path string
    Route matching rule.
    Qualifier string
    Version or Alias.
    RewriteConfig Pulumi.AliCloud.FC.Inputs.V3CustomDomainRouteConfigRouteRewriteConfig
    Override Configuration. See rewrite_config below.
    FunctionName string
    Function name.
    Methods []string
    List of supported HTTP methods.
    Path string
    Route matching rule.
    Qualifier string
    Version or Alias.
    RewriteConfig V3CustomDomainRouteConfigRouteRewriteConfig
    Override Configuration. See rewrite_config below.
    functionName String
    Function name.
    methods List<String>
    List of supported HTTP methods.
    path String
    Route matching rule.
    qualifier String
    Version or Alias.
    rewriteConfig V3CustomDomainRouteConfigRouteRewriteConfig
    Override Configuration. See rewrite_config below.
    functionName string
    Function name.
    methods string[]
    List of supported HTTP methods.
    path string
    Route matching rule.
    qualifier string
    Version or Alias.
    rewriteConfig V3CustomDomainRouteConfigRouteRewriteConfig
    Override Configuration. See rewrite_config below.
    function_name str
    Function name.
    methods Sequence[str]
    List of supported HTTP methods.
    path str
    Route matching rule.
    qualifier str
    Version or Alias.
    rewrite_config V3CustomDomainRouteConfigRouteRewriteConfig
    Override Configuration. See rewrite_config below.
    functionName String
    Function name.
    methods List<String>
    List of supported HTTP methods.
    path String
    Route matching rule.
    qualifier String
    Version or Alias.
    rewriteConfig Property Map
    Override Configuration. See rewrite_config below.

    V3CustomDomainRouteConfigRouteRewriteConfig, V3CustomDomainRouteConfigRouteRewriteConfigArgs

    EqualRules []V3CustomDomainRouteConfigRouteRewriteConfigEqualRule
    Exact Match Rule List. See equal_rules below.
    RegexRules []V3CustomDomainRouteConfigRouteRewriteConfigRegexRule
    Regular match rule list. See regex_rules below.
    WildcardRules []V3CustomDomainRouteConfigRouteRewriteConfigWildcardRule
    List of wildcard matching rules. See wildcard_rules below.
    equalRules List<V3CustomDomainRouteConfigRouteRewriteConfigEqualRule>
    Exact Match Rule List. See equal_rules below.
    regexRules List<V3CustomDomainRouteConfigRouteRewriteConfigRegexRule>
    Regular match rule list. See regex_rules below.
    wildcardRules List<V3CustomDomainRouteConfigRouteRewriteConfigWildcardRule>
    List of wildcard matching rules. See wildcard_rules below.
    equalRules V3CustomDomainRouteConfigRouteRewriteConfigEqualRule[]
    Exact Match Rule List. See equal_rules below.
    regexRules V3CustomDomainRouteConfigRouteRewriteConfigRegexRule[]
    Regular match rule list. See regex_rules below.
    wildcardRules V3CustomDomainRouteConfigRouteRewriteConfigWildcardRule[]
    List of wildcard matching rules. See wildcard_rules below.
    equal_rules Sequence[V3CustomDomainRouteConfigRouteRewriteConfigEqualRule]
    Exact Match Rule List. See equal_rules below.
    regex_rules Sequence[V3CustomDomainRouteConfigRouteRewriteConfigRegexRule]
    Regular match rule list. See regex_rules below.
    wildcard_rules Sequence[V3CustomDomainRouteConfigRouteRewriteConfigWildcardRule]
    List of wildcard matching rules. See wildcard_rules below.
    equalRules List<Property Map>
    Exact Match Rule List. See equal_rules below.
    regexRules List<Property Map>
    Regular match rule list. See regex_rules below.
    wildcardRules List<Property Map>
    List of wildcard matching rules. See wildcard_rules below.

    V3CustomDomainRouteConfigRouteRewriteConfigEqualRule, V3CustomDomainRouteConfigRouteRewriteConfigEqualRuleArgs

    Match string
    Matching Rules.
    Replacement string
    Replace Rules.
    Match string
    Matching Rules.
    Replacement string
    Replace Rules.
    match String
    Matching Rules.
    replacement String
    Replace Rules.
    match string
    Matching Rules.
    replacement string
    Replace Rules.
    match str
    Matching Rules.
    replacement str
    Replace Rules.
    match String
    Matching Rules.
    replacement String
    Replace Rules.

    V3CustomDomainRouteConfigRouteRewriteConfigRegexRule, V3CustomDomainRouteConfigRouteRewriteConfigRegexRuleArgs

    Match string
    Matching Rules.
    Replacement string
    Replace Rules.
    Match string
    Matching Rules.
    Replacement string
    Replace Rules.
    match String
    Matching Rules.
    replacement String
    Replace Rules.
    match string
    Matching Rules.
    replacement string
    Replace Rules.
    match str
    Matching Rules.
    replacement str
    Replace Rules.
    match String
    Matching Rules.
    replacement String
    Replace Rules.

    V3CustomDomainRouteConfigRouteRewriteConfigWildcardRule, V3CustomDomainRouteConfigRouteRewriteConfigWildcardRuleArgs

    Match string
    Matching Rules.
    Replacement string
    Replace Rules.
    Match string
    Matching Rules.
    Replacement string
    Replace Rules.
    match String
    Matching Rules.
    replacement String
    Replace Rules.
    match string
    Matching Rules.
    replacement string
    Replace Rules.
    match str
    Matching Rules.
    replacement str
    Replace Rules.
    match String
    Matching Rules.
    replacement String
    Replace Rules.

    V3CustomDomainTlsConfig, V3CustomDomainTlsConfigArgs

    CipherSuites List<string>
    List of TLS cipher suites.
    MaxVersion string
    The maximum version of TLS. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0.
    MinVersion string
    TLS minimum version number. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0.
    CipherSuites []string
    List of TLS cipher suites.
    MaxVersion string
    The maximum version of TLS. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0.
    MinVersion string
    TLS minimum version number. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0.
    cipherSuites List<String>
    List of TLS cipher suites.
    maxVersion String
    The maximum version of TLS. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0.
    minVersion String
    TLS minimum version number. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0.
    cipherSuites string[]
    List of TLS cipher suites.
    maxVersion string
    The maximum version of TLS. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0.
    minVersion string
    TLS minimum version number. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0.
    cipher_suites Sequence[str]
    List of TLS cipher suites.
    max_version str
    The maximum version of TLS. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0.
    min_version str
    TLS minimum version number. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0.
    cipherSuites List<String>
    List of TLS cipher suites.
    maxVersion String
    The maximum version of TLS. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0.
    minVersion String
    TLS minimum version number. Enumeration values: TLSv1.3, TLSv1.2, TLSv1.1, TLSv1.0.

    V3CustomDomainWafConfig, V3CustomDomainWafConfigArgs

    EnableWaf bool
    Enable WAF protection.
    EnableWaf bool
    Enable WAF protection.
    enableWaf Boolean
    Enable WAF protection.
    enableWaf boolean
    Enable WAF protection.
    enable_waf bool
    Enable WAF protection.
    enableWaf Boolean
    Enable WAF protection.

    Import

    FCV3 Custom Domain can be imported using the id, e.g.

    $ pulumi import alicloud:fc/v3CustomDomain:V3CustomDomain example <id>
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Alibaba Cloud pulumi/pulumi-alicloud
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the alicloud Terraform Provider.
    alicloud logo
    Alibaba Cloud v3.62.1 published on Monday, Sep 16, 2024 by Pulumi