
com.pulumi.azure.appplatform.kotlin.SpringCloudGatewayRouteConfig.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azure.appplatform.kotlin
import com.pulumi.azure.appplatform.kotlin.outputs.SpringCloudGatewayRouteConfigOpenApi
import com.pulumi.azure.appplatform.kotlin.outputs.SpringCloudGatewayRouteConfigRoute
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import com.pulumi.azure.appplatform.kotlin.outputs.SpringCloudGatewayRouteConfigOpenApi.Companion.toKotlin as springCloudGatewayRouteConfigOpenApiToKotlin
import com.pulumi.azure.appplatform.kotlin.outputs.SpringCloudGatewayRouteConfigRoute.Companion.toKotlin as springCloudGatewayRouteConfigRouteToKotlin
/**
* Builder for [SpringCloudGatewayRouteConfig].
*/
@PulumiTagMarker
public class SpringCloudGatewayRouteConfigResourceBuilder internal constructor() {
public var name: String? = null
public var args: SpringCloudGatewayRouteConfigArgs = SpringCloudGatewayRouteConfigArgs()
public var opts: CustomResourceOptions = CustomResourceOptions()
/**
* @param name The _unique_ name of the resulting resource.
*/
public fun name(`value`: String) {
this.name = value
}
/**
* @param block The arguments to use to populate this resource's properties.
*/
public suspend fun args(block: suspend SpringCloudGatewayRouteConfigArgsBuilder.() -> Unit) {
val builder = SpringCloudGatewayRouteConfigArgsBuilder()
block(builder)
this.args = builder.build()
}
/**
* @param block A bag of options that control this resource's behavior.
*/
public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
}
internal fun build(): SpringCloudGatewayRouteConfig {
val builtJavaResource =
com.pulumi.azure.appplatform.SpringCloudGatewayRouteConfig(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return SpringCloudGatewayRouteConfig(builtJavaResource)
}
}
/**
* Manages a Spring Cloud Gateway Route Config.
* > **NOTE:** This resource is applicable only for Spring Cloud Service with enterprise tier.
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as azure from "@pulumi/azure";
* const example = new azure.core.ResourceGroup("example", {
* name: "example",
* location: "West Europe",
* });
* const exampleSpringCloudService = new azure.appplatform.SpringCloudService("example", {
* name: "example",
* location: example.location,
* resourceGroupName: example.name,
* skuName: "E0",
* });
* const exampleSpringCloudApp = new azure.appplatform.SpringCloudApp("example", {
* name: "example",
* resourceGroupName: example.name,
* serviceName: exampleSpringCloudService.name,
* });
* const exampleSpringCloudGateway = new azure.appplatform.SpringCloudGateway("example", {
* name: "default",
* springCloudServiceId: exampleSpringCloudService.id,
* });
* const exampleSpringCloudGatewayRouteConfig = new azure.appplatform.SpringCloudGatewayRouteConfig("example", {
* name: "example",
* springCloudGatewayId: exampleSpringCloudGateway.id,
* springCloudAppId: exampleSpringCloudApp.id,
* protocol: "HTTPS",
* routes: [{
* description: "example description",
* filters: [
* "StripPrefix=2",
* "RateLimit=1,1s",
* ],
* order: 1,
* predicates: ["Path=/api5/customer/**"],
* ssoValidationEnabled: true,
* title: "myApp route config",
* tokenRelay: true,
* uri: "https://www.example.com",
* classificationTags: [
* "tag1",
* "tag2",
* ],
* }],
* });
* ```
* ```python
* import pulumi
* import pulumi_azure as azure
* example = azure.core.ResourceGroup("example",
* name="example",
* location="West Europe")
* example_spring_cloud_service = azure.appplatform.SpringCloudService("example",
* name="example",
* location=example.location,
* resource_group_name=example.name,
* sku_name="E0")
* example_spring_cloud_app = azure.appplatform.SpringCloudApp("example",
* name="example",
* resource_group_name=example.name,
* service_name=example_spring_cloud_service.name)
* example_spring_cloud_gateway = azure.appplatform.SpringCloudGateway("example",
* name="default",
* spring_cloud_service_id=example_spring_cloud_service.id)
* example_spring_cloud_gateway_route_config = azure.appplatform.SpringCloudGatewayRouteConfig("example",
* name="example",
* spring_cloud_gateway_id=example_spring_cloud_gateway.id,
* spring_cloud_app_id=example_spring_cloud_app.id,
* protocol="HTTPS",
* routes=[{
* "description": "example description",
* "filters": [
* "StripPrefix=2",
* "RateLimit=1,1s",
* ],
* "order": 1,
* "predicates": ["Path=/api5/customer/**"],
* "sso_validation_enabled": True,
* "title": "myApp route config",
* "token_relay": True,
* "uri": "https://www.example.com",
* "classification_tags": [
* "tag1",
* "tag2",
* ],
* }])
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Azure = Pulumi.Azure;
* return await Deployment.RunAsync(() =>
* {
* var example = new Azure.Core.ResourceGroup("example", new()
* {
* Name = "example",
* Location = "West Europe",
* });
* var exampleSpringCloudService = new Azure.AppPlatform.SpringCloudService("example", new()
* {
* Name = "example",
* Location = example.Location,
* ResourceGroupName = example.Name,
* SkuName = "E0",
* });
* var exampleSpringCloudApp = new Azure.AppPlatform.SpringCloudApp("example", new()
* {
* Name = "example",
* ResourceGroupName = example.Name,
* ServiceName = exampleSpringCloudService.Name,
* });
* var exampleSpringCloudGateway = new Azure.AppPlatform.SpringCloudGateway("example", new()
* {
* Name = "default",
* SpringCloudServiceId = exampleSpringCloudService.Id,
* });
* var exampleSpringCloudGatewayRouteConfig = new Azure.AppPlatform.SpringCloudGatewayRouteConfig("example", new()
* {
* Name = "example",
* SpringCloudGatewayId = exampleSpringCloudGateway.Id,
* SpringCloudAppId = exampleSpringCloudApp.Id,
* Protocol = "HTTPS",
* Routes = new[]
* {
* new Azure.AppPlatform.Inputs.SpringCloudGatewayRouteConfigRouteArgs
* {
* Description = "example description",
* Filters = new[]
* {
* "StripPrefix=2",
* "RateLimit=1,1s",
* },
* Order = 1,
* Predicates = new[]
* {
* "Path=/api5/customer/**",
* },
* SsoValidationEnabled = true,
* Title = "myApp route config",
* TokenRelay = true,
* Uri = "https://www.example.com",
* ClassificationTags = new[]
* {
* "tag1",
* "tag2",
* },
* },
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appplatform"
* "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
* Name: pulumi.String("example"),
* Location: pulumi.String("West Europe"),
* })
* if err != nil {
* return err
* }
* exampleSpringCloudService, err := appplatform.NewSpringCloudService(ctx, "example", &appplatform.SpringCloudServiceArgs{
* Name: pulumi.String("example"),
* Location: example.Location,
* ResourceGroupName: example.Name,
* SkuName: pulumi.String("E0"),
* })
* if err != nil {
* return err
* }
* exampleSpringCloudApp, err := appplatform.NewSpringCloudApp(ctx, "example", &appplatform.SpringCloudAppArgs{
* Name: pulumi.String("example"),
* ResourceGroupName: example.Name,
* ServiceName: exampleSpringCloudService.Name,
* })
* if err != nil {
* return err
* }
* exampleSpringCloudGateway, err := appplatform.NewSpringCloudGateway(ctx, "example", &appplatform.SpringCloudGatewayArgs{
* Name: pulumi.String("default"),
* SpringCloudServiceId: exampleSpringCloudService.ID(),
* })
* if err != nil {
* return err
* }
* _, err = appplatform.NewSpringCloudGatewayRouteConfig(ctx, "example", &appplatform.SpringCloudGatewayRouteConfigArgs{
* Name: pulumi.String("example"),
* SpringCloudGatewayId: exampleSpringCloudGateway.ID(),
* SpringCloudAppId: exampleSpringCloudApp.ID(),
* Protocol: pulumi.String("HTTPS"),
* Routes: appplatform.SpringCloudGatewayRouteConfigRouteArray{
* &appplatform.SpringCloudGatewayRouteConfigRouteArgs{
* Description: pulumi.String("example description"),
* Filters: pulumi.StringArray{
* pulumi.String("StripPrefix=2"),
* pulumi.String("RateLimit=1,1s"),
* },
* Order: pulumi.Int(1),
* Predicates: pulumi.StringArray{
* pulumi.String("Path=/api5/customer/**"),
* },
* SsoValidationEnabled: pulumi.Bool(true),
* Title: pulumi.String("myApp route config"),
* TokenRelay: pulumi.Bool(true),
* Uri: pulumi.String("https://www.example.com"),
* ClassificationTags: pulumi.StringArray{
* pulumi.String("tag1"),
* pulumi.String("tag2"),
* },
* },
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.azure.core.ResourceGroup;
* import com.pulumi.azure.core.ResourceGroupArgs;
* import com.pulumi.azure.appplatform.SpringCloudService;
* import com.pulumi.azure.appplatform.SpringCloudServiceArgs;
* import com.pulumi.azure.appplatform.SpringCloudApp;
* import com.pulumi.azure.appplatform.SpringCloudAppArgs;
* import com.pulumi.azure.appplatform.SpringCloudGateway;
* import com.pulumi.azure.appplatform.SpringCloudGatewayArgs;
* import com.pulumi.azure.appplatform.SpringCloudGatewayRouteConfig;
* import com.pulumi.azure.appplatform.SpringCloudGatewayRouteConfigArgs;
* import com.pulumi.azure.appplatform.inputs.SpringCloudGatewayRouteConfigRouteArgs;
* 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) {
* var example = new ResourceGroup("example", ResourceGroupArgs.builder()
* .name("example")
* .location("West Europe")
* .build());
* var exampleSpringCloudService = new SpringCloudService("exampleSpringCloudService", SpringCloudServiceArgs.builder()
* .name("example")
* .location(example.location())
* .resourceGroupName(example.name())
* .skuName("E0")
* .build());
* var exampleSpringCloudApp = new SpringCloudApp("exampleSpringCloudApp", SpringCloudAppArgs.builder()
* .name("example")
* .resourceGroupName(example.name())
* .serviceName(exampleSpringCloudService.name())
* .build());
* var exampleSpringCloudGateway = new SpringCloudGateway("exampleSpringCloudGateway", SpringCloudGatewayArgs.builder()
* .name("default")
* .springCloudServiceId(exampleSpringCloudService.id())
* .build());
* var exampleSpringCloudGatewayRouteConfig = new SpringCloudGatewayRouteConfig("exampleSpringCloudGatewayRouteConfig", SpringCloudGatewayRouteConfigArgs.builder()
* .name("example")
* .springCloudGatewayId(exampleSpringCloudGateway.id())
* .springCloudAppId(exampleSpringCloudApp.id())
* .protocol("HTTPS")
* .routes(SpringCloudGatewayRouteConfigRouteArgs.builder()
* .description("example description")
* .filters(
* "StripPrefix=2",
* "RateLimit=1,1s")
* .order(1)
* .predicates("Path=/api5/customer/**")
* .ssoValidationEnabled(true)
* .title("myApp route config")
* .tokenRelay(true)
* .uri("https://www.example.com")
* .classificationTags(
* "tag1",
* "tag2")
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* example:
* type: azure:core:ResourceGroup
* properties:
* name: example
* location: West Europe
* exampleSpringCloudService:
* type: azure:appplatform:SpringCloudService
* name: example
* properties:
* name: example
* location: ${example.location}
* resourceGroupName: ${example.name}
* skuName: E0
* exampleSpringCloudApp:
* type: azure:appplatform:SpringCloudApp
* name: example
* properties:
* name: example
* resourceGroupName: ${example.name}
* serviceName: ${exampleSpringCloudService.name}
* exampleSpringCloudGateway:
* type: azure:appplatform:SpringCloudGateway
* name: example
* properties:
* name: default
* springCloudServiceId: ${exampleSpringCloudService.id}
* exampleSpringCloudGatewayRouteConfig:
* type: azure:appplatform:SpringCloudGatewayRouteConfig
* name: example
* properties:
* name: example
* springCloudGatewayId: ${exampleSpringCloudGateway.id}
* springCloudAppId: ${exampleSpringCloudApp.id}
* protocol: HTTPS
* routes:
* - description: example description
* filters:
* - StripPrefix=2
* - RateLimit=1,1s
* order: 1
* predicates:
* - Path=/api5/customer/**
* ssoValidationEnabled: true
* title: myApp route config
* tokenRelay: true
* uri: https://www.example.com
* classificationTags:
* - tag1
* - tag2
* ```
*
* ## Import
* Spring Cloud Gateway Route Configs can be imported using the `resource id`, e.g.
* ```sh
* $ pulumi import azure:appplatform/springCloudGatewayRouteConfig:SpringCloudGatewayRouteConfig example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.AppPlatform/spring/service1/gateways/gateway1/routeConfigs/routeConfig1
* ```
* */*/*/*/*/*/
*/
public class SpringCloudGatewayRouteConfig internal constructor(
override val javaResource: com.pulumi.azure.appplatform.SpringCloudGatewayRouteConfig,
) : KotlinCustomResource(javaResource, SpringCloudGatewayRouteConfigMapper) {
/**
* Specifies a list of filters which are used to modify the request before sending it to the target endpoint, or the received response in app level.
*/
public val filters: Output>?
get() = javaResource.filters().applyValue({ args0 ->
args0.map({ args0 ->
args0.map({ args0 ->
args0
})
}).orElse(null)
})
/**
* The name which should be used for this Spring Cloud Gateway Route Config. Changing this forces a new Spring Cloud Gateway Route Config to be created.
*/
public val name: Output
get() = javaResource.name().applyValue({ args0 -> args0 })
/**
* One or more `open_api` blocks as defined below.
*/
public val openApi: Output?
get() = javaResource.openApi().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
springCloudGatewayRouteConfigOpenApiToKotlin(args0)
})
}).orElse(null)
})
/**
* Specifies a list of conditions to evaluate a route for each request in app level. Each predicate may be evaluated against request headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be matched to the request.
*/
public val predicates: Output>?
get() = javaResource.predicates().applyValue({ args0 ->
args0.map({ args0 ->
args0.map({ args0 ->
args0
})
}).orElse(null)
})
/**
* Specifies the protocol of routed Spring Cloud App. Allowed values are `HTTP` and `HTTPS`. Defaults to `HTTP`.
* > **Note:** You likely want to use `HTTPS` in a production environment, since `HTTP` offers no encryption.
*/
public val protocol: Output?
get() = javaResource.protocol().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
/**
* One or more `route` blocks as defined below.
*/
public val routes: Output>?
get() = javaResource.routes().applyValue({ args0 ->
args0.map({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> springCloudGatewayRouteConfigRouteToKotlin(args0) })
})
}).orElse(null)
})
/**
* The ID of the Spring Cloud App.
*/
public val springCloudAppId: Output?
get() = javaResource.springCloudAppId().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The ID of the Spring Cloud Gateway. Changing this forces a new Spring Cloud Gateway Route Config to be created.
*/
public val springCloudGatewayId: Output
get() = javaResource.springCloudGatewayId().applyValue({ args0 -> args0 })
/**
* Should the sso validation be enabled in app level?
*/
public val ssoValidationEnabled: Output?
get() = javaResource.ssoValidationEnabled().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
}
public object SpringCloudGatewayRouteConfigMapper : ResourceMapper {
override fun supportsMappingOfType(javaResource: Resource): Boolean =
com.pulumi.azure.appplatform.SpringCloudGatewayRouteConfig::class == javaResource::class
override fun map(javaResource: Resource): SpringCloudGatewayRouteConfig =
SpringCloudGatewayRouteConfig(
javaResource as
com.pulumi.azure.appplatform.SpringCloudGatewayRouteConfig,
)
}
/**
* @see [SpringCloudGatewayRouteConfig].
* @param name The _unique_ name of the resulting resource.
* @param block Builder for [SpringCloudGatewayRouteConfig].
*/
public suspend fun springCloudGatewayRouteConfig(
name: String,
block: suspend SpringCloudGatewayRouteConfigResourceBuilder.() -> Unit,
): SpringCloudGatewayRouteConfig {
val builder = SpringCloudGatewayRouteConfigResourceBuilder()
builder.name(name)
block(builder)
return builder.build()
}
/**
* @see [SpringCloudGatewayRouteConfig].
* @param name The _unique_ name of the resulting resource.
*/
public fun springCloudGatewayRouteConfig(name: String): SpringCloudGatewayRouteConfig {
val builder = SpringCloudGatewayRouteConfigResourceBuilder()
builder.name(name)
return builder.build()
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy