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

com.pulumi.azure.apimanagement.kotlin.ApiVersionSetArgs.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: 6.15.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.apimanagement.kotlin

import com.pulumi.azure.apimanagement.ApiVersionSetArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Manages an API Version Set within an API Management Service.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-resources",
 *     location: "West Europe",
 * });
 * const exampleService = new azure.apimanagement.Service("example", {
 *     name: "example-apim",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     publisherName: "pub1",
 *     publisherEmail: "[email protected]",
 *     skuName: "Developer_1",
 * });
 * const exampleApiVersionSet = new azure.apimanagement.ApiVersionSet("example", {
 *     name: "example-apimapi-1_0_0",
 *     resourceGroupName: example.name,
 *     apiManagementName: exampleService.name,
 *     displayName: "ExampleAPIVersionSet",
 *     versioningScheme: "Segment",
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_azure as azure
 * example = azure.core.ResourceGroup("example",
 *     name="example-resources",
 *     location="West Europe")
 * example_service = azure.apimanagement.Service("example",
 *     name="example-apim",
 *     location=example.location,
 *     resource_group_name=example.name,
 *     publisher_name="pub1",
 *     publisher_email="[email protected]",
 *     sku_name="Developer_1")
 * example_api_version_set = azure.apimanagement.ApiVersionSet("example",
 *     name="example-apimapi-1_0_0",
 *     resource_group_name=example.name,
 *     api_management_name=example_service.name,
 *     display_name="ExampleAPIVersionSet",
 *     versioning_scheme="Segment")
 * ```
 * ```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-resources",
 *         Location = "West Europe",
 *     });
 *     var exampleService = new Azure.ApiManagement.Service("example", new()
 *     {
 *         Name = "example-apim",
 *         Location = example.Location,
 *         ResourceGroupName = example.Name,
 *         PublisherName = "pub1",
 *         PublisherEmail = "[email protected]",
 *         SkuName = "Developer_1",
 *     });
 *     var exampleApiVersionSet = new Azure.ApiManagement.ApiVersionSet("example", new()
 *     {
 *         Name = "example-apimapi-1_0_0",
 *         ResourceGroupName = example.Name,
 *         ApiManagementName = exampleService.Name,
 *         DisplayName = "ExampleAPIVersionSet",
 *         VersioningScheme = "Segment",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/apimanagement"
 * 	"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-resources"),
 * 			Location: pulumi.String("West Europe"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleService, err := apimanagement.NewService(ctx, "example", &apimanagement.ServiceArgs{
 * 			Name:              pulumi.String("example-apim"),
 * 			Location:          example.Location,
 * 			ResourceGroupName: example.Name,
 * 			PublisherName:     pulumi.String("pub1"),
 * 			PublisherEmail:    pulumi.String("[email protected]"),
 * 			SkuName:           pulumi.String("Developer_1"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = apimanagement.NewApiVersionSet(ctx, "example", &apimanagement.ApiVersionSetArgs{
 * 			Name:              pulumi.String("example-apimapi-1_0_0"),
 * 			ResourceGroupName: example.Name,
 * 			ApiManagementName: exampleService.Name,
 * 			DisplayName:       pulumi.String("ExampleAPIVersionSet"),
 * 			VersioningScheme:  pulumi.String("Segment"),
 * 		})
 * 		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.apimanagement.Service;
 * import com.pulumi.azure.apimanagement.ServiceArgs;
 * import com.pulumi.azure.apimanagement.ApiVersionSet;
 * import com.pulumi.azure.apimanagement.ApiVersionSetArgs;
 * 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-resources")
 *             .location("West Europe")
 *             .build());
 *         var exampleService = new Service("exampleService", ServiceArgs.builder()
 *             .name("example-apim")
 *             .location(example.location())
 *             .resourceGroupName(example.name())
 *             .publisherName("pub1")
 *             .publisherEmail("[email protected]")
 *             .skuName("Developer_1")
 *             .build());
 *         var exampleApiVersionSet = new ApiVersionSet("exampleApiVersionSet", ApiVersionSetArgs.builder()
 *             .name("example-apimapi-1_0_0")
 *             .resourceGroupName(example.name())
 *             .apiManagementName(exampleService.name())
 *             .displayName("ExampleAPIVersionSet")
 *             .versioningScheme("Segment")
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: azure:core:ResourceGroup
 *     properties:
 *       name: example-resources
 *       location: West Europe
 *   exampleService:
 *     type: azure:apimanagement:Service
 *     name: example
 *     properties:
 *       name: example-apim
 *       location: ${example.location}
 *       resourceGroupName: ${example.name}
 *       publisherName: pub1
 *       publisherEmail: [email protected]
 *       skuName: Developer_1
 *   exampleApiVersionSet:
 *     type: azure:apimanagement:ApiVersionSet
 *     name: example
 *     properties:
 *       name: example-apimapi-1_0_0
 *       resourceGroupName: ${example.name}
 *       apiManagementName: ${exampleService.name}
 *       displayName: ExampleAPIVersionSet
 *       versioningScheme: Segment
 * ```
 * 
 * ## Import
 * API Version Set can be imported using the `resource id`, e.g.
 * ```sh
 * $ pulumi import azure:apimanagement/apiVersionSet:ApiVersionSet example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/apiVersionSets/set1
 * ```
 * @property apiManagementName The name of the API Management Service in which the API Version Set should exist. May only contain alphanumeric characters and dashes up to 50 characters in length. Changing this forces a new resource to be created.
 * @property description The description of API Version Set.
 * @property displayName The display name of this API Version Set.
 * @property name The name of the API Version Set. May only contain alphanumeric characters and dashes up to 80 characters in length. Changing this forces a new resource to be created.
 * @property resourceGroupName The name of the Resource Group in which the parent API Management Service exists. Changing this forces a new resource to be created.
 * @property versionHeaderName The name of the Header which should be read from Inbound Requests which defines the API Version.
 * > **NOTE:** This must be specified when `versioning_scheme` is set to `Header`.
 * @property versionQueryName The name of the Query String which should be read from Inbound Requests which defines the API Version.
 * > **NOTE:** This must be specified when `versioning_scheme` is set to `Query`.
 * @property versioningScheme Specifies where in an Inbound HTTP Request that the API Version should be read from. Possible values are `Header`, `Query` and `Segment`.
 */
public data class ApiVersionSetArgs(
    public val apiManagementName: Output? = null,
    public val description: Output? = null,
    public val displayName: Output? = null,
    public val name: Output? = null,
    public val resourceGroupName: Output? = null,
    public val versionHeaderName: Output? = null,
    public val versionQueryName: Output? = null,
    public val versioningScheme: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.apimanagement.ApiVersionSetArgs =
        com.pulumi.azure.apimanagement.ApiVersionSetArgs.builder()
            .apiManagementName(apiManagementName?.applyValue({ args0 -> args0 }))
            .description(description?.applyValue({ args0 -> args0 }))
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .versionHeaderName(versionHeaderName?.applyValue({ args0 -> args0 }))
            .versionQueryName(versionQueryName?.applyValue({ args0 -> args0 }))
            .versioningScheme(versioningScheme?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ApiVersionSetArgs].
 */
@PulumiTagMarker
public class ApiVersionSetArgsBuilder internal constructor() {
    private var apiManagementName: Output? = null

    private var description: Output? = null

    private var displayName: Output? = null

    private var name: Output? = null

    private var resourceGroupName: Output? = null

    private var versionHeaderName: Output? = null

    private var versionQueryName: Output? = null

    private var versioningScheme: Output? = null

    /**
     * @param value The name of the API Management Service in which the API Version Set should exist. May only contain alphanumeric characters and dashes up to 50 characters in length. Changing this forces a new resource to be created.
     */
    @JvmName("hbwkvxvahwuixous")
    public suspend fun apiManagementName(`value`: Output) {
        this.apiManagementName = value
    }

    /**
     * @param value The description of API Version Set.
     */
    @JvmName("jbsfkdkvjfwnjumo")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The display name of this API Version Set.
     */
    @JvmName("hvsccitkhffsrdfd")
    public suspend fun displayName(`value`: Output) {
        this.displayName = value
    }

    /**
     * @param value The name of the API Version Set. May only contain alphanumeric characters and dashes up to 80 characters in length. Changing this forces a new resource to be created.
     */
    @JvmName("yoalftciqavkuuli")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The name of the Resource Group in which the parent API Management Service exists. Changing this forces a new resource to be created.
     */
    @JvmName("mdbstbsjpeitjbbc")
    public suspend fun resourceGroupName(`value`: Output) {
        this.resourceGroupName = value
    }

    /**
     * @param value The name of the Header which should be read from Inbound Requests which defines the API Version.
     * > **NOTE:** This must be specified when `versioning_scheme` is set to `Header`.
     */
    @JvmName("hglssmpkglgkgilo")
    public suspend fun versionHeaderName(`value`: Output) {
        this.versionHeaderName = value
    }

    /**
     * @param value The name of the Query String which should be read from Inbound Requests which defines the API Version.
     * > **NOTE:** This must be specified when `versioning_scheme` is set to `Query`.
     */
    @JvmName("qlbrigtykkfwmevq")
    public suspend fun versionQueryName(`value`: Output) {
        this.versionQueryName = value
    }

    /**
     * @param value Specifies where in an Inbound HTTP Request that the API Version should be read from. Possible values are `Header`, `Query` and `Segment`.
     */
    @JvmName("fyyrvfkdvomlkduq")
    public suspend fun versioningScheme(`value`: Output) {
        this.versioningScheme = value
    }

    /**
     * @param value The name of the API Management Service in which the API Version Set should exist. May only contain alphanumeric characters and dashes up to 50 characters in length. Changing this forces a new resource to be created.
     */
    @JvmName("ohuyralsenqdbigk")
    public suspend fun apiManagementName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.apiManagementName = mapped
    }

    /**
     * @param value The description of API Version Set.
     */
    @JvmName("hdyesprtsamtbadq")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The display name of this API Version Set.
     */
    @JvmName("uiarwwccxmkbbtrv")
    public suspend fun displayName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.displayName = mapped
    }

    /**
     * @param value The name of the API Version Set. May only contain alphanumeric characters and dashes up to 80 characters in length. Changing this forces a new resource to be created.
     */
    @JvmName("cpxmatatsldofnoh")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The name of the Resource Group in which the parent API Management Service exists. Changing this forces a new resource to be created.
     */
    @JvmName("crdxvlkinhftcxsd")
    public suspend fun resourceGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupName = mapped
    }

    /**
     * @param value The name of the Header which should be read from Inbound Requests which defines the API Version.
     * > **NOTE:** This must be specified when `versioning_scheme` is set to `Header`.
     */
    @JvmName("itephelbwdyldrgh")
    public suspend fun versionHeaderName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.versionHeaderName = mapped
    }

    /**
     * @param value The name of the Query String which should be read from Inbound Requests which defines the API Version.
     * > **NOTE:** This must be specified when `versioning_scheme` is set to `Query`.
     */
    @JvmName("mxtdjyljmjduthfn")
    public suspend fun versionQueryName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.versionQueryName = mapped
    }

    /**
     * @param value Specifies where in an Inbound HTTP Request that the API Version should be read from. Possible values are `Header`, `Query` and `Segment`.
     */
    @JvmName("xayvrumwnkvpdjgv")
    public suspend fun versioningScheme(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.versioningScheme = mapped
    }

    internal fun build(): ApiVersionSetArgs = ApiVersionSetArgs(
        apiManagementName = apiManagementName,
        description = description,
        displayName = displayName,
        name = name,
        resourceGroupName = resourceGroupName,
        versionHeaderName = versionHeaderName,
        versionQueryName = versionQueryName,
        versioningScheme = versioningScheme,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy