Api

class Api : KotlinCustomResource

Manages an API within an API Management Service.

Example Usage

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: "My Company",
publisherEmail: "company@exmaple.com",
skuName: "Developer_1",
});
const exampleApi = new azure.apimanagement.Api("example", {
name: "example-api",
resourceGroupName: example.name,
apiManagementName: exampleService.name,
revision: "1",
displayName: "Example API",
path: "example",
protocols: ["https"],
"import": {
contentFormat: "swagger-link-json",
contentValue: "https://raw.githubusercontent.com/hashicorp/terraform-provider-azurerm/refs/heads/main/internal/services/apimanagement/testdata/api_management_api_schema_swagger.json",
},
});
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="My Company",
publisher_email="company@exmaple.com",
sku_name="Developer_1")
example_api = azure.apimanagement.Api("example",
name="example-api",
resource_group_name=example.name,
api_management_name=example_service.name,
revision="1",
display_name="Example API",
path="example",
protocols=["https"],
import_={
"content_format": "swagger-link-json",
"content_value": "https://raw.githubusercontent.com/hashicorp/terraform-provider-azurerm/refs/heads/main/internal/services/apimanagement/testdata/api_management_api_schema_swagger.json",
})
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 = "My Company",
PublisherEmail = "company@exmaple.com",
SkuName = "Developer_1",
});
var exampleApi = new Azure.ApiManagement.Api("example", new()
{
Name = "example-api",
ResourceGroupName = example.Name,
ApiManagementName = exampleService.Name,
Revision = "1",
DisplayName = "Example API",
Path = "example",
Protocols = new[]
{
"https",
},
Import = new Azure.ApiManagement.Inputs.ApiImportArgs
{
ContentFormat = "swagger-link-json",
ContentValue = "https://raw.githubusercontent.com/hashicorp/terraform-provider-azurerm/refs/heads/main/internal/services/apimanagement/testdata/api_management_api_schema_swagger.json",
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/apimanagement"
"github.com/pulumi/pulumi-azure/sdk/v6/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("My Company"),
PublisherEmail: pulumi.String("company@exmaple.com"),
SkuName: pulumi.String("Developer_1"),
})
if err != nil {
return err
}
_, err = apimanagement.NewApi(ctx, "example", &apimanagement.ApiArgs{
Name: pulumi.String("example-api"),
ResourceGroupName: example.Name,
ApiManagementName: exampleService.Name,
Revision: pulumi.String("1"),
DisplayName: pulumi.String("Example API"),
Path: pulumi.String("example"),
Protocols: pulumi.StringArray{
pulumi.String("https"),
},
Import: &apimanagement.ApiImportArgs{
ContentFormat: pulumi.String("swagger-link-json"),
ContentValue: pulumi.String("https://raw.githubusercontent.com/hashicorp/terraform-provider-azurerm/refs/heads/main/internal/services/apimanagement/testdata/api_management_api_schema_swagger.json"),
},
})
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.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.Api;
import com.pulumi.azure.apimanagement.ApiArgs;
import com.pulumi.azure.apimanagement.inputs.ApiImportArgs;
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("My Company")
.publisherEmail("company@exmaple.com")
.skuName("Developer_1")
.build());
var exampleApi = new Api("exampleApi", ApiArgs.builder()
.name("example-api")
.resourceGroupName(example.name())
.apiManagementName(exampleService.name())
.revision("1")
.displayName("Example API")
.path("example")
.protocols("https")
.import_(ApiImportArgs.builder()
.contentFormat("swagger-link-json")
.contentValue("https://raw.githubusercontent.com/hashicorp/terraform-provider-azurerm/refs/heads/main/internal/services/apimanagement/testdata/api_management_api_schema_swagger.json")
.build())
.build());
}
}
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: My Company
publisherEmail: company@exmaple.com
skuName: Developer_1
exampleApi:
type: azure:apimanagement:Api
name: example
properties:
name: example-api
resourceGroupName: ${example.name}
apiManagementName: ${exampleService.name}
revision: '1'
displayName: Example API
path: example
protocols:
- https
import:
contentFormat: swagger-link-json
contentValue: https://raw.githubusercontent.com/hashicorp/terraform-provider-azurerm/refs/heads/main/internal/services/apimanagement/testdata/api_management_api_schema_swagger.json

API Providers

This resource uses the following Azure API Providers:

  • Microsoft.ApiManagement: 2022-08-01

Import

API Management API's can be imported using the resource id, e.g.

$ pulumi import azure:apimanagement/api:Api example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.ApiManagement/service/instance1/apis/api1;rev=1

Properties

Link copied to clipboard

The Name of the API Management Service where this API should be created. Changing this forces a new resource to be created.

Link copied to clipboard
val apiType: Output<String>

Type of API. Possible values are graphql, http, soap, and websocket. Defaults to http.

Link copied to clipboard
val contact: Output<ApiContact>?

A contact block as documented below.

Link copied to clipboard
val description: Output<String>?

A description of the API Management API, which may include HTML formatting tags.

Link copied to clipboard
val displayName: Output<String>

The display name of the API.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val import: Output<ApiImport>?

A import block as documented below.

Link copied to clipboard
val isCurrent: Output<Boolean>

Is this the current API Revision?

Link copied to clipboard
val isOnline: Output<Boolean>

Is this API Revision online/accessible via the Gateway?

Link copied to clipboard
val license: Output<ApiLicense>?

A license block as documented below.

Link copied to clipboard
val name: Output<String>

The name of the API Management API. Changing this forces a new resource to be created.

Link copied to clipboard

An oauth2_authorization block as documented below.

Link copied to clipboard

An openid_authentication block as documented below.

Link copied to clipboard
val path: Output<String>

The Path for this API Management API, which is a relative URL which uniquely identifies this API and all of its resource paths within the API Management Service.

Link copied to clipboard
val protocols: Output<List<String>>

A list of protocols the operations in this API can be invoked. Possible values are http, https, ws, and wss.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The Name of the Resource Group where the API Management API exists. Changing this forces a new resource to be created.

Link copied to clipboard
val revision: Output<String>

The Revision which used for this API. Changing this forces a new resource to be created.

Link copied to clipboard

The description of the API Revision of the API Management API.

Link copied to clipboard
val serviceUrl: Output<String>

Absolute URL of the backend service implementing this API.

Link copied to clipboard
val sourceApiId: Output<String>?

The API id of the source API, which could be in format azurerm_api_management_api.example.id or in format azurerm_api_management_api.example.id;rev=1

Link copied to clipboard

A subscription_key_parameter_names block as documented below.

Link copied to clipboard

Should this API require a subscription key? Defaults to true.

Link copied to clipboard

Absolute URL of the Terms of Service for the API.

Link copied to clipboard
val urn: Output<String>
Link copied to clipboard
val version: Output<String>

The Version number of this API, if this API is versioned.

Link copied to clipboard

The description of the API Version of the API Management API.

Link copied to clipboard
val versionSetId: Output<String>

The ID of the Version Set which this API is associated with.