ApiArgs

data class ApiArgs(val apiManagementName: Output<String>? = null, val apiType: Output<String>? = null, val contact: Output<ApiContactArgs>? = null, val description: Output<String>? = null, val displayName: Output<String>? = null, val import: Output<ApiImportArgs>? = null, val license: Output<ApiLicenseArgs>? = null, val name: Output<String>? = null, val oauth2Authorization: Output<ApiOauth2AuthorizationArgs>? = null, val openidAuthentication: Output<ApiOpenidAuthenticationArgs>? = null, val path: Output<String>? = null, val protocols: Output<List<String>>? = null, val resourceGroupName: Output<String>? = null, val revision: Output<String>? = null, val revisionDescription: Output<String>? = null, val serviceUrl: Output<String>? = null, val sourceApiId: Output<String>? = null, val subscriptionKeyParameterNames: Output<ApiSubscriptionKeyParameterNamesArgs>? = null, val subscriptionRequired: Output<Boolean>? = null, val termsOfServiceUrl: Output<String>? = null, val version: Output<String>? = null, val versionDescription: Output<String>? = null, val versionSetId: Output<String>? = null) : ConvertibleToJava<ApiArgs>

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

Constructors

Link copied to clipboard
constructor(apiManagementName: Output<String>? = null, apiType: Output<String>? = null, contact: Output<ApiContactArgs>? = null, description: Output<String>? = null, displayName: Output<String>? = null, import: Output<ApiImportArgs>? = null, license: Output<ApiLicenseArgs>? = null, name: Output<String>? = null, oauth2Authorization: Output<ApiOauth2AuthorizationArgs>? = null, openidAuthentication: Output<ApiOpenidAuthenticationArgs>? = null, path: Output<String>? = null, protocols: Output<List<String>>? = null, resourceGroupName: Output<String>? = null, revision: Output<String>? = null, revisionDescription: Output<String>? = null, serviceUrl: Output<String>? = null, sourceApiId: Output<String>? = null, subscriptionKeyParameterNames: Output<ApiSubscriptionKeyParameterNamesArgs>? = null, subscriptionRequired: Output<Boolean>? = null, termsOfServiceUrl: Output<String>? = null, version: Output<String>? = null, versionDescription: Output<String>? = null, versionSetId: Output<String>? = null)

Properties

Link copied to clipboard
val apiManagementName: Output<String>? = null

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>? = null

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

Link copied to clipboard
val contact: Output<ApiContactArgs>? = null

A contact block as documented below.

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

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

Link copied to clipboard
val displayName: Output<String>? = null

The display name of the API.

Link copied to clipboard
val import: Output<ApiImportArgs>? = null

A import block as documented below.

Link copied to clipboard
val license: Output<ApiLicenseArgs>? = null

A license block as documented below.

Link copied to clipboard
val name: Output<String>? = null

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>? = null

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>>? = null

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 resourceGroupName: Output<String>? = null

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>? = null

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

Link copied to clipboard
val revisionDescription: Output<String>? = null

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

Link copied to clipboard
val serviceUrl: Output<String>? = null

Absolute URL of the backend service implementing this API.

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

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
val subscriptionRequired: Output<Boolean>? = null

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

Link copied to clipboard
val termsOfServiceUrl: Output<String>? = null

Absolute URL of the Terms of Service for the API.

Link copied to clipboard
val version: Output<String>? = null

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

Link copied to clipboard
val versionDescription: Output<String>? = null

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

Link copied to clipboard
val versionSetId: Output<String>? = null

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

Functions

Link copied to clipboard
open override fun toJava(): ApiArgs