api-management-service-apis
This Bicep AVM module deploys an API Management Service API.
ipm add --package avm-bicep/api-management-service-apis --version 0.2.0
API Management Service APIs [Microsoft.ApiManagement/service/apis]
This module deploys an API Management Service API.
You can reference the module as follows:
module service './packages/api-management-service-apis/main.bicep' = {
params: { (...) }
}
For examples, please refer to the Usage Examples section.
Navigation
Resource Types
| Resource Type | API Version | References |
|---|---|---|
Microsoft.ApiManagement/service/apis |
2024-05-01 | |
Microsoft.ApiManagement/service/apis/diagnostics |
2024-05-01 | |
Microsoft.ApiManagement/service/apis/operations |
2024-05-01 | |
Microsoft.ApiManagement/service/apis/operations/policies |
2024-05-01 | |
Microsoft.ApiManagement/service/apis/policies |
2024-05-01 |
Parameters
Required parameters
| Parameter | Type | Description |
|---|---|---|
displayName |
string | API display name. |
name |
string | API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number. |
path |
string | Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API. |
Conditional parameters
| Parameter | Type | Description |
|---|---|---|
apiManagementServiceName |
string | The name of the parent API Management service. Required if the template is used in a standalone deployment. |
Optional parameters
| Parameter | Type | Description |
|---|---|---|
apiRevision |
string | Describes the Revision of the API. If no value is provided, default revision 1 is created. |
apiRevisionDescription |
string | Description of the API Revision. |
apiType |
string | Type of API to create. * * * * |
apiVersion |
string | Indicates the Version identifier of the API if the API is versioned. |
apiVersionDescription |
string | Description of the API Version. |
apiVersionSetName |
string | The name of the API version set to link. |
authenticationSettings |
object | Collection of authentication settings included into this API. |
description |
string | Description of the API. May include HTML formatting tags. |
diagnostics |
array | Array of diagnostics to apply to the Service API. |
enableTelemetry |
bool | Enable/Disable usage telemetry for module. |
format |
string | Format of the Content in which the API is getting imported. |
isCurrent |
bool | Indicates if API revision is current API revision. |
operations |
array | The operations of the api. |
policies |
array | Array of Policies to apply to the Service API. |
protocols |
array | Describes on which protocols the operations in this API can be invoked. |
serviceUrl |
string | Absolute URL of the backend service implementing this API. |
sourceApiId |
string | API identifier of the source API. |
subscriptionKeyParameterNames |
object | Protocols over which API is made available. |
subscriptionRequired |
bool | Specifies whether an API or Product subscription is required for accessing the API. |
type |
string | Type of API. |
value |
string | Content value when Importing an API. |
wsdlSelector |
object | Criteria to limit import of WSDL to a subset of the document. |
Parameter: displayName
API display name.
- Required: Yes
- Type: string
Parameter: name
API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
- Required: Yes
- Type: string
Parameter: path
Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
- Required: Yes
- Type: string
Parameter: apiManagementServiceName
The name of the parent API Management service. Required if the template is used in a standalone deployment.
- Required: Yes
- Type: string
Parameter: apiRevision
Describes the Revision of the API. If no value is provided, default revision 1 is created.
- Required: No
- Type: string
Parameter: apiRevisionDescription
Description of the API Revision.
- Required: No
- Type: string
Parameter: apiType
Type of API to create.
* http creates a REST API
* soap creates a SOAP pass-through API
* websocket creates websocket API
* graphql creates GraphQL API.
- Required: No
- Type: string
- Default:
'http' - Allowed:
[ 'graphql' 'http' 'soap' 'websocket' ]
Parameter: apiVersion
Indicates the Version identifier of the API if the API is versioned.
- Required: No
- Type: string
Parameter: apiVersionDescription
Description of the API Version.
- Required: No
- Type: string
Parameter: apiVersionSetName
The name of the API version set to link.
- Required: No
- Type: string
Parameter: authenticationSettings
Collection of authentication settings included into this API.
- Required: No
- Type: object
Parameter: description
Description of the API. May include HTML formatting tags.
- Required: No
- Type: string
Parameter: diagnostics
Array of diagnostics to apply to the Service API.
- Required: No
- Type: array
Required parameters
| Parameter | Type | Description |
|---|---|---|
loggerName |
string | The name of the target logger. |
Conditional parameters
| Parameter | Type | Description |
|---|---|---|
httpCorrelationProtocol |
string | Sets correlation protocol to use for Application Insights diagnostics. Required if using Application Insights. |
metrics |
bool | Emit custom metrics via emit-metric policy. Required if using Application Insights. |
operationNameFormat |
string | The format of the Operation Name for Application Insights telemetries. Required if using Application Insights. |
Optional parameters
| Parameter | Type | Description |
|---|---|---|
alwaysLog |
string | Specifies for what type of messages sampling settings should not apply. |
backend |
object | Diagnostic settings for incoming/outgoing HTTP messages to the Backend. |
frontend |
object | Diagnostic settings for incoming/outgoing HTTP messages to the Gateway. |
logClientIp |
bool | Log the ClientIP. |
name |
string | The identifier of the Diagnostic. |
samplingPercentage |
int | Rate of sampling for fixed-rate sampling. Specifies the percentage of requests that are logged. |
verbosity |
string | The verbosity level applied to traces emitted by trace policies. |
Parameter: diagnostics.loggerName
The name of the target logger.
- Required: Yes
- Type: string
Parameter: diagnostics.httpCorrelationProtocol
Sets correlation protocol to use for Application Insights diagnostics. Required if using Application Insights.
- Required: No
- Type: string
- Allowed:
[ 'Legacy' 'None' 'W3C' ]
Parameter: diagnostics.metrics
Emit custom metrics via emit-metric policy. Required if using Application Insights.
- Required: No
- Type: bool
Parameter: diagnostics.operationNameFormat
The format of the Operation Name for Application Insights telemetries. Required if using Application Insights.
- Required: No
- Type: string
- Allowed:
[ 'Name' 'Url' ]
Parameter: diagnostics.alwaysLog
Specifies for what type of messages sampling settings should not apply.
- Required: No
- Type: string
- Allowed:
[ 'allErrors' ]
Parameter: diagnostics.backend
Diagnostic settings for incoming/outgoing HTTP messages to the Backend.
- Required: No
- Type: object
Parameter: diagnostics.frontend
Diagnostic settings for incoming/outgoing HTTP messages to the Gateway.
- Required: No
- Type: object
Parameter: diagnostics.logClientIp
Log the ClientIP.
- Required: No
- Type: bool
Parameter: diagnostics.name
The identifier of the Diagnostic.
- Required: No
- Type: string
- Allowed:
[ 'applicationinsights' 'azuremonitor' 'local' ]
Parameter: diagnostics.samplingPercentage
Rate of sampling for fixed-rate sampling. Specifies the percentage of requests that are logged.
- Required: No
- Type: int
- MinValue: 0
- MaxValue: 100
Parameter: diagnostics.verbosity
The verbosity level applied to traces emitted by trace policies.
- Required: No
- Type: string
- Allowed:
[ 'error' 'information' 'verbose' ]
Parameter: enableTelemetry
Enable/Disable usage telemetry for module.
- Required: No
- Type: bool
- Default:
True
Parameter: format
Format of the Content in which the API is getting imported.
- Required: No
- Type: string
- Default:
'openapi' - Allowed:
[ 'graphql-link' 'grpc' 'grpc-link' 'odata' 'odata-link' 'openapi' 'openapi-link' 'openapi+json' 'openapi+json-link' 'swagger-json' 'swagger-link-json' 'wadl-link-json' 'wadl-xml' 'wsdl' 'wsdl-link' ]
Parameter: isCurrent
Indicates if API revision is current API revision.
- Required: No
- Type: bool
- Default:
True
Parameter: operations
The operations of the api.
- Required: No
- Type: array
Required parameters
| Parameter | Type | Description |
|---|---|---|
displayName |
string | The display name of the operation. |
method |
string | A Valid HTTP Operation Method. Typical Http Methods like GET, PUT, POST but not limited by only them. |
name |
string | The name of the operation. |
urlTemplate |
string | Relative URL template identifying the target resource for this operation. May include parameters. Example: /customers/{cid}/orders/{oid}/?date={date}. |
Optional parameters
| Parameter | Type | Description |
|---|---|---|
description |
string | Description of the operation. May include HTML formatting tags. Must not be longer than 1.000 characters. |
policies |
array | The policies to apply to the operation. |
request |
object | An entity containing request details. |
responses |
array | Array of Operation responses. |
templateParameters |
array | Collection of URL template parameters. |
Parameter: operations.displayName
The display name of the operation.
- Required: Yes
- Type: string
Parameter: operations.method
A Valid HTTP Operation Method. Typical Http Methods like GET, PUT, POST but not limited by only them.
- Required: Yes
- Type: string
Parameter: operations.name
The name of the operation.
- Required: Yes
- Type: string
Parameter: operations.urlTemplate
Relative URL template identifying the target resource for this operation. May include parameters. Example: /customers/{cid}/orders/{oid}/?date={date}.
- Required: Yes
- Type: string
Parameter: operations.description
Description of the operation. May include HTML formatting tags. Must not be longer than 1.000 characters.
- Required: No
- Type: string
Parameter: operations.policies
The policies to apply to the operation.
- Required: No
- Type: array
Required parameters
| Parameter | Type | Description |
|---|---|---|
value |
string | Contents of the Policy as defined by the format. |
Optional parameters
| Parameter | Type | Description |
|---|---|---|
format |
string | Format of the policyContent. |
name |
string | The name of the policy. |
Parameter: operations.policies.value
Contents of the Policy as defined by the format.
- Required: Yes
- Type: string
Parameter: operations.policies.format
Format of the policyContent.
- Required: No
- Type: string
- Allowed:
[ 'rawxml' 'rawxml-link' 'xml' 'xml-link' ]
Parameter: operations.policies.name
The name of the policy.
- Required: No
- Type: string
Parameter: operations.request
An entity containing request details.
- Required: No
- Type: object
Parameter: operations.responses
Array of Operation responses.
- Required: No
- Type: array
Parameter: operations.templateParameters
Collection of URL template parameters.
- Required: No
- Type: array
Parameter: policies
Array of Policies to apply to the Service API.
- Required: No
- Type: array
Required parameters
| Parameter | Type | Description |
|---|---|---|
value |
string | Contents of the Policy as defined by the format. |
Optional parameters
| Parameter | Type | Description |
|---|---|---|
format |
string | Format of the policyContent. |
name |
string | The name of the policy. |
Parameter: policies.value
Contents of the Policy as defined by the format.
- Required: Yes
- Type: string
Parameter: policies.format
Format of the policyContent.
- Required: No
- Type: string
- Allowed:
[ 'rawxml' 'rawxml-link' 'xml' 'xml-link' ]
Parameter: policies.name
The name of the policy.
- Required: No
- Type: string
Parameter: protocols
Describes on which protocols the operations in this API can be invoked.
- Required: No
- Type: array
- Default:
[ 'https' ] - Allowed:
[ 'http' 'https' 'ws' 'wss' ]
Parameter: serviceUrl
Absolute URL of the backend service implementing this API.
- Required: No
- Type: string
Parameter: sourceApiId
API identifier of the source API.
- Required: No
- Type: string
Parameter: subscriptionKeyParameterNames
Protocols over which API is made available.
- Required: No
- Type: object
Parameter: subscriptionRequired
Specifies whether an API or Product subscription is required for accessing the API.
- Required: No
- Type: bool
- Default:
False
Parameter: type
Type of API.
- Required: No
- Type: string
- Default:
'http' - Allowed:
[ 'graphql' 'grpc' 'http' 'odata' 'soap' 'websocket' ]
Parameter: value
Content value when Importing an API.
- Required: No
- Type: string
Parameter: wsdlSelector
Criteria to limit import of WSDL to a subset of the document.
- Required: No
- Type: object
Outputs
| Output | Type | Description |
|---|---|---|
name |
string | The name of the API management service API. |
resourceGroupName |
string | The resource group the API management service API was deployed to. |
resourceId |
string | The resource ID of the API management service API. |
Data Collection
The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.
Changelog
The latest version of the changelog can be found here.
0.2.0
Changes
- Added length decorators to multiple parameters
- Updated descriptions of various parameters for clarity
- Added missing allowed values to
formatparameter andtypeparameter - Added allowed values to
protocolsparameter - Updated module deployment names for consistency
- Aligned
operationTypedefinition with theoperationchild module specification - Aligned
diagnosticTypedefinition with thediagnosticchild module specification - Changed
diagnosticType.alwaysLogtype to specific union('allErrors')? - Fixed
diagnosticType.operationNameFormatallowed value fromURItoUrl, matching API specification
Breaking Changes
- The
diagnosticType.operationNameFormatallowed value has been corrected fromURItoUrl
0.1.1
Changes
- Minor json formatting adjustments
Breaking Changes
- None
0.1.0
Changes
- Initial version
Breaking Changes
- None
{
"workingFolder": "packages",
"packages": [
// packages defined earlier
{
"name": "avm-bicep/api-management-service-apis",
"version": "0.2.0"
}
]
}
This package has no dependencies
Stats
Selected version:
0.2.0
Downloads this version:
0
Downloads all versions:
0
Latest version:
0.2.0
Latest update:
14-01-2026
avm-bicep
Other versions (1)
Other packages
from avm-bicep
Ready to End Infrastructure Code Chaos?
Join infrastructure teams who've moved from scattered repositories to unified package management
Built by infrastructure experts
Who understand your challengesComplete solutions
No scattered filesSee what's deployed where
When it needs updatesZero vendor lock-in
Packages work without usDirect founder access Zero security incidents in 2+ years Works with any cloud, any CI/CD platform