All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.gcp.compute.kotlin.inputs.URLMapPathMatcherArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 8.13.1.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.compute.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property defaultCustomErrorResponsePolicy defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendService or BackendBucket responds with an error.
 * This policy takes effect at the PathMatcher level and applies only when no policy has been defined for the error code at lower levels like RouteRule and PathRule within this PathMatcher. If an error code does not have a policy defined in defaultCustomErrorResponsePolicy, then a policy defined for the error code in UrlMap.defaultCustomErrorResponsePolicy takes effect.
 * For example, consider a UrlMap with the following configuration:
 * UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors
 * A RouteRule for /coming_soon/ is configured for the error code 404.
 * If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect.
 * When used in conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client.
 * defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers.
 * Structure is documented below.
 * @property defaultRouteAction defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs
 * advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request
 * to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set.
 * Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices.
 * Only one of defaultRouteAction or defaultUrlRedirect must be set.
 * Structure is documented below.
 * @property defaultService The backend service or backend bucket to use when none of the given paths match.
 * @property defaultUrlRedirect When none of the specified hostRules match, the request is redirected to a URL specified
 * by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or
 * defaultRouteAction must not be set.
 * Structure is documented below.
 * @property description An optional description of this resource. Provide this property when you create
 * the resource.
 * @property headerAction Specifies changes to request and response headers that need to take effect for
 * the selected backendService. HeaderAction specified here are applied after the
 * matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
 * Structure is documented below.
 * @property name The name to which this PathMatcher is referred by the HostRule.
 * @property pathRules The list of path rules. Use this list instead of routeRules when routing based
 * on simple path matching is all that's required. The order by which path rules
 * are specified does not matter. Matches are always done on the longest-path-first
 * basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*
 * irrespective of the order in which those paths appear in this list. Within a
 * given pathMatcher, only one of pathRules or routeRules must be set.
 * Structure is documented below.
 * @property routeRules The list of ordered HTTP route rules. Use this list instead of pathRules when
 * advanced route matching and routing actions are desired. The order of specifying
 * routeRules matters: the first rule that matches will cause its specified routing
 * action to take effect. Within a given pathMatcher, only one of pathRules or
 * routeRules must be set. routeRules are not supported in UrlMaps intended for
 * External load balancers.
 * Structure is documented below.
 * */*/
 */
public data class URLMapPathMatcherArgs(
    public val defaultCustomErrorResponsePolicy: Output? = null,
    public val defaultRouteAction: Output? = null,
    public val defaultService: Output? = null,
    public val defaultUrlRedirect: Output? = null,
    public val description: Output? = null,
    public val headerAction: Output? = null,
    public val name: Output,
    public val pathRules: Output>? = null,
    public val routeRules: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs =
        com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs.builder()
            .defaultCustomErrorResponsePolicy(
                defaultCustomErrorResponsePolicy?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .defaultRouteAction(
                defaultRouteAction?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .defaultService(defaultService?.applyValue({ args0 -> args0 }))
            .defaultUrlRedirect(
                defaultUrlRedirect?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .description(description?.applyValue({ args0 -> args0 }))
            .headerAction(headerAction?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .name(name.applyValue({ args0 -> args0 }))
            .pathRules(
                pathRules?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .routeRules(
                routeRules?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [URLMapPathMatcherArgs].
 */
@PulumiTagMarker
public class URLMapPathMatcherArgsBuilder internal constructor() {
    private var defaultCustomErrorResponsePolicy:
        Output? = null

    private var defaultRouteAction: Output? = null

    private var defaultService: Output? = null

    private var defaultUrlRedirect: Output? = null

    private var description: Output? = null

    private var headerAction: Output? = null

    private var name: Output? = null

    private var pathRules: Output>? = null

    private var routeRules: Output>? = null

    /**
     * @param value defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendService or BackendBucket responds with an error.
     * This policy takes effect at the PathMatcher level and applies only when no policy has been defined for the error code at lower levels like RouteRule and PathRule within this PathMatcher. If an error code does not have a policy defined in defaultCustomErrorResponsePolicy, then a policy defined for the error code in UrlMap.defaultCustomErrorResponsePolicy takes effect.
     * For example, consider a UrlMap with the following configuration:
     * UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors
     * A RouteRule for /coming_soon/ is configured for the error code 404.
     * If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect.
     * When used in conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client.
     * defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers.
     * Structure is documented below.
     */
    @JvmName("tciaoinvjvqhrmdn")
    public suspend fun defaultCustomErrorResponsePolicy(`value`: Output) {
        this.defaultCustomErrorResponsePolicy = value
    }

    /**
     * @param value defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs
     * advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request
     * to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set.
     * Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices.
     * Only one of defaultRouteAction or defaultUrlRedirect must be set.
     * Structure is documented below.
     */
    @JvmName("cqobmrnwwqvgvcig")
    public suspend fun defaultRouteAction(`value`: Output) {
        this.defaultRouteAction = value
    }

    /**
     * @param value The backend service or backend bucket to use when none of the given paths match.
     */
    @JvmName("rryesobjrhtkbavf")
    public suspend fun defaultService(`value`: Output) {
        this.defaultService = value
    }

    /**
     * @param value When none of the specified hostRules match, the request is redirected to a URL specified
     * by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or
     * defaultRouteAction must not be set.
     * Structure is documented below.
     */
    @JvmName("pnostblirlbrlcly")
    public suspend fun defaultUrlRedirect(`value`: Output) {
        this.defaultUrlRedirect = value
    }

    /**
     * @param value An optional description of this resource. Provide this property when you create
     * the resource.
     */
    @JvmName("oyosgdhkqwymkgfd")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value Specifies changes to request and response headers that need to take effect for
     * the selected backendService. HeaderAction specified here are applied after the
     * matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
     * Structure is documented below.
     */
    @JvmName("cqkmvpintachlbvd")
    public suspend fun headerAction(`value`: Output) {
        this.headerAction = value
    }

    /**
     * @param value The name to which this PathMatcher is referred by the HostRule.
     */
    @JvmName("ixrmitnflvdgdhun")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The list of path rules. Use this list instead of routeRules when routing based
     * on simple path matching is all that's required. The order by which path rules
     * are specified does not matter. Matches are always done on the longest-path-first
     * basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*
     * irrespective of the order in which those paths appear in this list. Within a
     * given pathMatcher, only one of pathRules or routeRules must be set.
     * Structure is documented below.
     * */*/
     */
    @JvmName("ienkkqbkqxsfmxwc")
    public suspend fun pathRules(`value`: Output>) {
        this.pathRules = value
    }

    @JvmName("fjrgauaqqensoufa")
    public suspend fun pathRules(vararg values: Output) {
        this.pathRules = Output.all(values.asList())
    }

    /**
     * @param values The list of path rules. Use this list instead of routeRules when routing based
     * on simple path matching is all that's required. The order by which path rules
     * are specified does not matter. Matches are always done on the longest-path-first
     * basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*
     * irrespective of the order in which those paths appear in this list. Within a
     * given pathMatcher, only one of pathRules or routeRules must be set.
     * Structure is documented below.
     * */*/
     */
    @JvmName("cxysutiighthceoc")
    public suspend fun pathRules(values: List>) {
        this.pathRules = Output.all(values)
    }

    /**
     * @param value The list of ordered HTTP route rules. Use this list instead of pathRules when
     * advanced route matching and routing actions are desired. The order of specifying
     * routeRules matters: the first rule that matches will cause its specified routing
     * action to take effect. Within a given pathMatcher, only one of pathRules or
     * routeRules must be set. routeRules are not supported in UrlMaps intended for
     * External load balancers.
     * Structure is documented below.
     */
    @JvmName("pgvgjtctqybqogql")
    public suspend fun routeRules(`value`: Output>) {
        this.routeRules = value
    }

    @JvmName("valrnicchvkkfbgl")
    public suspend fun routeRules(vararg values: Output) {
        this.routeRules = Output.all(values.asList())
    }

    /**
     * @param values The list of ordered HTTP route rules. Use this list instead of pathRules when
     * advanced route matching and routing actions are desired. The order of specifying
     * routeRules matters: the first rule that matches will cause its specified routing
     * action to take effect. Within a given pathMatcher, only one of pathRules or
     * routeRules must be set. routeRules are not supported in UrlMaps intended for
     * External load balancers.
     * Structure is documented below.
     */
    @JvmName("mylphrkrmxcprlso")
    public suspend fun routeRules(values: List>) {
        this.routeRules = Output.all(values)
    }

    /**
     * @param value defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendService or BackendBucket responds with an error.
     * This policy takes effect at the PathMatcher level and applies only when no policy has been defined for the error code at lower levels like RouteRule and PathRule within this PathMatcher. If an error code does not have a policy defined in defaultCustomErrorResponsePolicy, then a policy defined for the error code in UrlMap.defaultCustomErrorResponsePolicy takes effect.
     * For example, consider a UrlMap with the following configuration:
     * UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors
     * A RouteRule for /coming_soon/ is configured for the error code 404.
     * If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect.
     * When used in conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client.
     * defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers.
     * Structure is documented below.
     */
    @JvmName("sgyycqtoqjexlwxi")
    public suspend fun defaultCustomErrorResponsePolicy(`value`: URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultCustomErrorResponsePolicy = mapped
    }

    /**
     * @param argument defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendService or BackendBucket responds with an error.
     * This policy takes effect at the PathMatcher level and applies only when no policy has been defined for the error code at lower levels like RouteRule and PathRule within this PathMatcher. If an error code does not have a policy defined in defaultCustomErrorResponsePolicy, then a policy defined for the error code in UrlMap.defaultCustomErrorResponsePolicy takes effect.
     * For example, consider a UrlMap with the following configuration:
     * UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors
     * A RouteRule for /coming_soon/ is configured for the error code 404.
     * If the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect.
     * When used in conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client.
     * defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers.
     * Structure is documented below.
     */
    @JvmName("aqrusgeeiqbimxng")
    public suspend fun defaultCustomErrorResponsePolicy(argument: suspend URLMapPathMatcherDefaultCustomErrorResponsePolicyArgsBuilder.() -> Unit) {
        val toBeMapped = URLMapPathMatcherDefaultCustomErrorResponsePolicyArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.defaultCustomErrorResponsePolicy = mapped
    }

    /**
     * @param value defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs
     * advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request
     * to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set.
     * Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices.
     * Only one of defaultRouteAction or defaultUrlRedirect must be set.
     * Structure is documented below.
     */
    @JvmName("sucpuitrvamnnpyd")
    public suspend fun defaultRouteAction(`value`: URLMapPathMatcherDefaultRouteActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultRouteAction = mapped
    }

    /**
     * @param argument defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs
     * advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request
     * to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set.
     * Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices.
     * Only one of defaultRouteAction or defaultUrlRedirect must be set.
     * Structure is documented below.
     */
    @JvmName("afnlfqqahqcwvuta")
    public suspend fun defaultRouteAction(argument: suspend URLMapPathMatcherDefaultRouteActionArgsBuilder.() -> Unit) {
        val toBeMapped = URLMapPathMatcherDefaultRouteActionArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.defaultRouteAction = mapped
    }

    /**
     * @param value The backend service or backend bucket to use when none of the given paths match.
     */
    @JvmName("gvgcrdocuuwpsofx")
    public suspend fun defaultService(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultService = mapped
    }

    /**
     * @param value When none of the specified hostRules match, the request is redirected to a URL specified
     * by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or
     * defaultRouteAction must not be set.
     * Structure is documented below.
     */
    @JvmName("bwvxkspqhlbkyiur")
    public suspend fun defaultUrlRedirect(`value`: URLMapPathMatcherDefaultUrlRedirectArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultUrlRedirect = mapped
    }

    /**
     * @param argument When none of the specified hostRules match, the request is redirected to a URL specified
     * by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or
     * defaultRouteAction must not be set.
     * Structure is documented below.
     */
    @JvmName("erwbfrwirihbqntv")
    public suspend fun defaultUrlRedirect(argument: suspend URLMapPathMatcherDefaultUrlRedirectArgsBuilder.() -> Unit) {
        val toBeMapped = URLMapPathMatcherDefaultUrlRedirectArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.defaultUrlRedirect = mapped
    }

    /**
     * @param value An optional description of this resource. Provide this property when you create
     * the resource.
     */
    @JvmName("vxwuqmcqgjodqhog")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value Specifies changes to request and response headers that need to take effect for
     * the selected backendService. HeaderAction specified here are applied after the
     * matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
     * Structure is documented below.
     */
    @JvmName("nbqvacqxsmfyybwt")
    public suspend fun headerAction(`value`: URLMapPathMatcherHeaderActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.headerAction = mapped
    }

    /**
     * @param argument Specifies changes to request and response headers that need to take effect for
     * the selected backendService. HeaderAction specified here are applied after the
     * matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
     * Structure is documented below.
     */
    @JvmName("vgblcaocknylbkjq")
    public suspend fun headerAction(argument: suspend URLMapPathMatcherHeaderActionArgsBuilder.() -> Unit) {
        val toBeMapped = URLMapPathMatcherHeaderActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.headerAction = mapped
    }

    /**
     * @param value The name to which this PathMatcher is referred by the HostRule.
     */
    @JvmName("nudxumdvbiuxcawh")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The list of path rules. Use this list instead of routeRules when routing based
     * on simple path matching is all that's required. The order by which path rules
     * are specified does not matter. Matches are always done on the longest-path-first
     * basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*
     * irrespective of the order in which those paths appear in this list. Within a
     * given pathMatcher, only one of pathRules or routeRules must be set.
     * Structure is documented below.
     * */*/
     */
    @JvmName("ajokqgumsowuhmqn")
    public suspend fun pathRules(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.pathRules = mapped
    }

    /**
     * @param argument The list of path rules. Use this list instead of routeRules when routing based
     * on simple path matching is all that's required. The order by which path rules
     * are specified does not matter. Matches are always done on the longest-path-first
     * basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*
     * irrespective of the order in which those paths appear in this list. Within a
     * given pathMatcher, only one of pathRules or routeRules must be set.
     * Structure is documented below.
     * */*/
     */
    @JvmName("hrqvxbgxnvynmlyv")
    public suspend fun pathRules(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            URLMapPathMatcherPathRuleArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.pathRules = mapped
    }

    /**
     * @param argument The list of path rules. Use this list instead of routeRules when routing based
     * on simple path matching is all that's required. The order by which path rules
     * are specified does not matter. Matches are always done on the longest-path-first
     * basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*
     * irrespective of the order in which those paths appear in this list. Within a
     * given pathMatcher, only one of pathRules or routeRules must be set.
     * Structure is documented below.
     * */*/
     */
    @JvmName("ajorgwtmsbnfwlsf")
    public suspend fun pathRules(vararg argument: suspend URLMapPathMatcherPathRuleArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            URLMapPathMatcherPathRuleArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.pathRules = mapped
    }

    /**
     * @param argument The list of path rules. Use this list instead of routeRules when routing based
     * on simple path matching is all that's required. The order by which path rules
     * are specified does not matter. Matches are always done on the longest-path-first
     * basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*
     * irrespective of the order in which those paths appear in this list. Within a
     * given pathMatcher, only one of pathRules or routeRules must be set.
     * Structure is documented below.
     * */*/
     */
    @JvmName("yikokedmsqpekfmh")
    public suspend fun pathRules(argument: suspend URLMapPathMatcherPathRuleArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            URLMapPathMatcherPathRuleArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.pathRules = mapped
    }

    /**
     * @param values The list of path rules. Use this list instead of routeRules when routing based
     * on simple path matching is all that's required. The order by which path rules
     * are specified does not matter. Matches are always done on the longest-path-first
     * basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*
     * irrespective of the order in which those paths appear in this list. Within a
     * given pathMatcher, only one of pathRules or routeRules must be set.
     * Structure is documented below.
     * */*/
     */
    @JvmName("stbaqrivahwsfeld")
    public suspend fun pathRules(vararg values: URLMapPathMatcherPathRuleArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.pathRules = mapped
    }

    /**
     * @param value The list of ordered HTTP route rules. Use this list instead of pathRules when
     * advanced route matching and routing actions are desired. The order of specifying
     * routeRules matters: the first rule that matches will cause its specified routing
     * action to take effect. Within a given pathMatcher, only one of pathRules or
     * routeRules must be set. routeRules are not supported in UrlMaps intended for
     * External load balancers.
     * Structure is documented below.
     */
    @JvmName("hbqhjrgpejftreng")
    public suspend fun routeRules(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.routeRules = mapped
    }

    /**
     * @param argument The list of ordered HTTP route rules. Use this list instead of pathRules when
     * advanced route matching and routing actions are desired. The order of specifying
     * routeRules matters: the first rule that matches will cause its specified routing
     * action to take effect. Within a given pathMatcher, only one of pathRules or
     * routeRules must be set. routeRules are not supported in UrlMaps intended for
     * External load balancers.
     * Structure is documented below.
     */
    @JvmName("yugsaxprjahqdgkc")
    public suspend fun routeRules(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            URLMapPathMatcherRouteRuleArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.routeRules = mapped
    }

    /**
     * @param argument The list of ordered HTTP route rules. Use this list instead of pathRules when
     * advanced route matching and routing actions are desired. The order of specifying
     * routeRules matters: the first rule that matches will cause its specified routing
     * action to take effect. Within a given pathMatcher, only one of pathRules or
     * routeRules must be set. routeRules are not supported in UrlMaps intended for
     * External load balancers.
     * Structure is documented below.
     */
    @JvmName("ptyoulnmvukgascv")
    public suspend fun routeRules(vararg argument: suspend URLMapPathMatcherRouteRuleArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            URLMapPathMatcherRouteRuleArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.routeRules = mapped
    }

    /**
     * @param argument The list of ordered HTTP route rules. Use this list instead of pathRules when
     * advanced route matching and routing actions are desired. The order of specifying
     * routeRules matters: the first rule that matches will cause its specified routing
     * action to take effect. Within a given pathMatcher, only one of pathRules or
     * routeRules must be set. routeRules are not supported in UrlMaps intended for
     * External load balancers.
     * Structure is documented below.
     */
    @JvmName("adswjpurykqfkkps")
    public suspend fun routeRules(argument: suspend URLMapPathMatcherRouteRuleArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            URLMapPathMatcherRouteRuleArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.routeRules = mapped
    }

    /**
     * @param values The list of ordered HTTP route rules. Use this list instead of pathRules when
     * advanced route matching and routing actions are desired. The order of specifying
     * routeRules matters: the first rule that matches will cause its specified routing
     * action to take effect. Within a given pathMatcher, only one of pathRules or
     * routeRules must be set. routeRules are not supported in UrlMaps intended for
     * External load balancers.
     * Structure is documented below.
     */
    @JvmName("vwwbihpakctolxko")
    public suspend fun routeRules(vararg values: URLMapPathMatcherRouteRuleArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.routeRules = mapped
    }

    internal fun build(): URLMapPathMatcherArgs = URLMapPathMatcherArgs(
        defaultCustomErrorResponsePolicy = defaultCustomErrorResponsePolicy,
        defaultRouteAction = defaultRouteAction,
        defaultService = defaultService,
        defaultUrlRedirect = defaultUrlRedirect,
        description = description,
        headerAction = headerAction,
        name = name ?: throw PulumiNullFieldException("name"),
        pathRules = pathRules,
        routeRules = routeRules,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy