Api Gateway
A single API Management gateway resource in List or Get response. Uses Azure REST API version 2024-06-01-preview. In version 2.x of the Azure Native provider, it used API version 2023-09-01-preview. Other available API versions: 2023-09-01-preview, 2024-05-01. These can be accessed by generating a local SDK package using the CLI command pulumi package add azure-native apimanagement [ApiVersion]
. See the ../../../version-guide/#accessing-any-api-version-via-local-packages for details.
Example Usage
ApiManagementCreateStandardGateway
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var apiGateway = new AzureNative.ApiManagement.ApiGateway("apiGateway", new()
{
Backend = new AzureNative.ApiManagement.Inputs.BackendConfigurationArgs
{
Subnet = new AzureNative.ApiManagement.Inputs.BackendSubnetConfigurationArgs
{
Id = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vn1/subnets/sn1",
},
},
GatewayName = "apimGateway1",
Location = "South Central US",
ResourceGroupName = "rg1",
Sku = new AzureNative.ApiManagement.Inputs.ApiManagementGatewaySkuPropertiesArgs
{
Capacity = 1,
Name = AzureNative.ApiManagement.ApiGatewaySkuType.Standard,
},
Tags =
{
{ "Name", "Contoso" },
{ "Test", "User" },
},
});
});
package main
import (
apimanagement "github.com/pulumi/pulumi-azure-native-sdk/apimanagement/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := apimanagement.NewApiGateway(ctx, "apiGateway", &apimanagement.ApiGatewayArgs{
Backend: &apimanagement.BackendConfigurationArgs{
Subnet: &apimanagement.BackendSubnetConfigurationArgs{
Id: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vn1/subnets/sn1"),
},
},
GatewayName: pulumi.String("apimGateway1"),
Location: pulumi.String("South Central US"),
ResourceGroupName: pulumi.String("rg1"),
Sku: &apimanagement.ApiManagementGatewaySkuPropertiesArgs{
Capacity: pulumi.Int(1),
Name: pulumi.String(apimanagement.ApiGatewaySkuTypeStandard),
},
Tags: pulumi.StringMap{
"Name": pulumi.String("Contoso"),
"Test": pulumi.String("User"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.apimanagement.ApiGateway;
import com.pulumi.azurenative.apimanagement.ApiGatewayArgs;
import com.pulumi.azurenative.apimanagement.inputs.BackendConfigurationArgs;
import com.pulumi.azurenative.apimanagement.inputs.BackendSubnetConfigurationArgs;
import com.pulumi.azurenative.apimanagement.inputs.ApiManagementGatewaySkuPropertiesArgs;
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 apiGateway = new ApiGateway("apiGateway", ApiGatewayArgs.builder()
.backend(BackendConfigurationArgs.builder()
.subnet(BackendSubnetConfigurationArgs.builder()
.id("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vn1/subnets/sn1")
.build())
.build())
.gatewayName("apimGateway1")
.location("South Central US")
.resourceGroupName("rg1")
.sku(ApiManagementGatewaySkuPropertiesArgs.builder()
.capacity(1)
.name("Standard")
.build())
.tags(Map.ofEntries(
Map.entry("Name", "Contoso"),
Map.entry("Test", "User")
))
.build());
}
}
ApiManagementCreateWorkspacePremiumGateway
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var apiGateway = new AzureNative.ApiManagement.ApiGateway("apiGateway", new()
{
Backend = new AzureNative.ApiManagement.Inputs.BackendConfigurationArgs
{
Subnet = new AzureNative.ApiManagement.Inputs.BackendSubnetConfigurationArgs
{
Id = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vn1/subnets/sn1",
},
},
GatewayName = "apimGateway1",
Location = "South Central US",
ResourceGroupName = "rg1",
Sku = new AzureNative.ApiManagement.Inputs.ApiManagementGatewaySkuPropertiesArgs
{
Capacity = 1,
Name = AzureNative.ApiManagement.ApiGatewaySkuType.WorkspaceGatewayPremium,
},
Tags =
{
{ "Name", "Contoso" },
{ "Test", "User" },
},
VirtualNetworkType = AzureNative.ApiManagement.VirtualNetworkType.External,
});
});
package main
import (
apimanagement "github.com/pulumi/pulumi-azure-native-sdk/apimanagement/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := apimanagement.NewApiGateway(ctx, "apiGateway", &apimanagement.ApiGatewayArgs{
Backend: &apimanagement.BackendConfigurationArgs{
Subnet: &apimanagement.BackendSubnetConfigurationArgs{
Id: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vn1/subnets/sn1"),
},
},
GatewayName: pulumi.String("apimGateway1"),
Location: pulumi.String("South Central US"),
ResourceGroupName: pulumi.String("rg1"),
Sku: &apimanagement.ApiManagementGatewaySkuPropertiesArgs{
Capacity: pulumi.Int(1),
Name: pulumi.String(apimanagement.ApiGatewaySkuTypeWorkspaceGatewayPremium),
},
Tags: pulumi.StringMap{
"Name": pulumi.String("Contoso"),
"Test": pulumi.String("User"),
},
VirtualNetworkType: pulumi.String(apimanagement.VirtualNetworkTypeExternal),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.apimanagement.ApiGateway;
import com.pulumi.azurenative.apimanagement.ApiGatewayArgs;
import com.pulumi.azurenative.apimanagement.inputs.BackendConfigurationArgs;
import com.pulumi.azurenative.apimanagement.inputs.BackendSubnetConfigurationArgs;
import com.pulumi.azurenative.apimanagement.inputs.ApiManagementGatewaySkuPropertiesArgs;
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 apiGateway = new ApiGateway("apiGateway", ApiGatewayArgs.builder()
.backend(BackendConfigurationArgs.builder()
.subnet(BackendSubnetConfigurationArgs.builder()
.id("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vn1/subnets/sn1")
.build())
.build())
.gatewayName("apimGateway1")
.location("South Central US")
.resourceGroupName("rg1")
.sku(ApiManagementGatewaySkuPropertiesArgs.builder()
.capacity(1)
.name("WorkspaceGatewayPremium")
.build())
.tags(Map.ofEntries(
Map.entry("Name", "Contoso"),
Map.entry("Test", "User")
))
.virtualNetworkType("External")
.build());
}
}
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:apimanagement:ApiGateway apimGateway1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/gateways/{gatewayName}
Properties
The Azure API version of the resource.
Information regarding how the gateway should integrate with backend systems.
Information regarding the Configuration API of the API Management gateway. This is only applicable for API gateway with Standard SKU.
Creation UTC date of the API Management gateway.The date conforms to the following format: yyyy-MM-ddTHH:mm:ssZ
as specified by the ISO 8601 standard.
Information regarding how the gateway should be exposed.
The current provisioning state of the API Management gateway which can be one of the following: Created/Activating/Succeeded/Updating/Failed/Stopped/Terminating/TerminationFailed/Deleted.
SKU properties of the API Management gateway.
Metadata pertaining to creation and last modification of the resource.
The provisioning state of the API Management gateway, which is targeted by the long running operation started on the gateway.
The type of VPN in which API Management gateway needs to be configured in.