Bicep Module Documentation
| Property | Value | Description |
|---|---|---|
| general (required) | general | |
| skuCapacity (required) | int | Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0. |
| skuName (required) | 'Basic' 'Consumption' 'Developer' 'Isolated' 'Premium' 'Standard' |
Name of the Sku. |
| identity | identity | |
| additionalLocations | apiManagementAdditionalLocation[] | Additional datacenter locations of the API Management service. |
| minApiVersion | string | Control Plane Apis version constraint for the API Management service. Limit control plane API calls to API Management service with version equal to or newer than this value. |
| certificates | apiManagementCertificateConfiguration[] | List of Certificates that need to be installed in the API Management service. Max supported certificates that can be installed is 10. |
| legacyApi | 'Disabled' 'Enabled' |
Configuration API configuration of the API Management service. Indication whether or not the legacy Configuration API (v1) should be exposed on the API Management service. Value is optional but must be Enabled or Disabled. If Disabled, legacy Configuration API (v1) will not be available for self-hosted gateways. Default value is Disabled |
| customProperties | object | Custom properties of the API Management service. (see documentation) |
| developerPortalStatus | 'Disabled' 'Enabled' |
Status of developer portal in this API Management service. |
| disableGateway | bool | Property only valid for an Api Management service deployed in multiple locations. This can be used to disable the gateway in master region. |
| enableClientCertificate | bool | Property only meant to be used for Consumption SKU Service. This enforces a client certificate to be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the policy on the gateway. |
| hostnameConfigurations | apiManagementHostnameConfiguration[] | Custom hostname configuration of the API Management service. |
| legacyPortalStatus | 'Disabled' 'Enabled' |
Status of legacy portal in the API Management service. |
| natGatewayState | 'Disabled' 'Enabled' |
Property can be used to enable NAT Gateway for this API Management service. |
| notificationSenderEmail | string | Email address from which the notification will be sent. |
| publicIpAddressId | string | Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in the region. Supported only for Developer and Premium SKU being deployed in Virtual Network. |
| publicNetworkAccess | 'Disabled' 'Enabled' |
Whether or not public endpoint access is allowed for this API Management service. Value is optional but if passed in, must be Enabled or Disabled. If Disabled, private endpoints are the exclusive access method. (default: Enabled) |
| publisherEmail (required) | string | Publisher email. |
| publisherName (required) | string | Publisher name. |
| restore | bool | Undelete Api Management Service if it was previously soft-deleted. If this flag is specified and set to True all other properties will be ignored. |
| virtualNetworkConfigurationSubnetId | string | Virtual network configuration of the API Management service. |
| virtualNetworkType | 'External' 'Internal' 'None' |
The type of VPN in which API Management service needs to be configured in. None (Default Value) means the API Management service is not part of any Virtual Network, External means the API Management deployment is set up inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is setup inside a Virtual Network having an Intranet Facing Endpoint only. |
| zones | Array containing any of: '1' '2' '3' |
A list of availability zones denoting where the resource needs to come from. |
| privateLink | privateLink | Settings for the private endpoint and private link for this resource |
| Property | Value | Description |
|---|---|---|
| type | 'None' 'SystemAssigned' 'SystemAssigned, UserAssigned' 'UserAssigned' |
The types of identities associated with this resource. (default: none) |
| userAssignedIdentities | string[] | Resource IDs of User Assigned Identities to associate with this resource |
| Property | Value | Description |
|---|---|---|
| disableGateway | bool | Property only valid for an Api Management service deployed in multiple locations. This can be used to disable the gateway in master region. |
| location (required) | string | The location name of the additional region among Azure Data center regions. |
| natGatewayState | 'Disabled' 'Enabled' |
Property can be used to enable NAT Gateway for this API Management service. |
| publicIpAddressId | string | Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in the region. Supported only for Developer and Premium SKU being deployed in Virtual Network. |
| sku (required) | sku | |
| virtualNetworkConfiguration (required) | virtualNetworkConfiguration | Virtual network configuration for the location. |
| zones | Array containing any of: '1' '2' '3' |
A list of availability zones denoting where the resource needs to come from. |
| Property | Value | Description |
|---|---|---|
| capacity (required) | int | Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0. |
| name (required) | 'Basic' 'Consumption' 'Developer' 'Isolated' 'Premium' 'Standard' |
Name of the Sku. |
| Property | Value | Description |
|---|---|---|
| subnetResourceId | string |
| Property | Value | Description |
|---|---|---|
| certificate (required) | certificate | Certificate information. |
| certificatePassword | string | Certificate Password. |
| encodedCertificate (required) | string | Base64 Encoded certificate. |
| storeName (required) | 'CertificateAuthority' 'Root' |
The System.Security.Cryptography.x509certificates.StoreName certificate store location. Only Root and CertificateAuthority are valid locations. |
| Property | Value | Description |
|---|---|---|
| expiry (required) | string | Expiration date of the certificate. The date conforms to the following format: yyyy-MM-ddTHH:mm:ssZ as specified by the ISO 8601 standard. |
| subject (required) | string | Subject of the certificate. |
| thumbprint (required) | string | Thumbprint of the certificate. |
| Property | Value | Description |
|---|---|---|
| certificate (required) | certificate | Certificate information. |
| certificatePassword | string | Certificate Password. |
| certificateSource | 'BuiltIn' 'Custom' 'KeyVault' 'Managed' |
Certificate Source. |
| defaultSslBinding | bool | Specify true to setup the certificate associated with this Hostname as the Default SSL Certificate. If a client does not send the SNI header, then this will be the certificate that will be challenged. The property is useful if a service has multiple custom hostname enabled and it needs to decide on the default ssl certificate. The setting only applied to gateway Hostname Type. |
| encodedCertificate (required) | string | Base64 Encoded certificate. |
| hostName (required) | string | Hostname to configure on the Api Management service. |
| identityClientId | string | System or User Assigned Managed identity clientId as generated by Azure AD, which has GET access to the keyVault containing the SSL certificate. |
| keyVaultId | string | Url to the KeyVault Secret containing the Ssl Certificate. If absolute Url containing version is provided, auto-update of ssl certificate will not work. This requires Api Management service to be configured with aka.ms/apimmsi. The secret should be of type application/x-pkcs12 |
| negotiateClientCertificate | bool | Specify true to always negotiate client certificate on the hostname. Default Value is false. |
| type (required) | 'ConfigurationApi' 'DeveloperPortal' 'Management' 'Portal' 'Proxy' 'Scm' |
Hostname type. |
| Property | Value | Description |
|---|---|---|
| forceFunctionAsFullName | bool | Use the function value as the full name of the resource |
| abbreviation | string | Override the abbreviation of this resource with this parameter |
| environment | string | The resource environment (for example: dev, tst, acc, prd) |
| location | string | The resource location (for example: weu, we, westeurope) |
| customer | string | The name of the customer |
| delimiter | string | The delimiter between resources (default: -) |
| nameFormat | Array containing any of: 'abbreviation' 'customer' 'environment' 'function' 'location' 'param1' 'param2' 'param3' 'useCaseName' |
The order of the array defines the order of elements in the naming scheme |
| param1 | string | Extra parameter self defined |
| param2 | string | Extra parameter self defined |
| param3 | string | Extra parameter self defined |
| function (required) | string | Function of the resource [can be app, db, security,...] |
| useCaseName | string | Name of the use case [can be hub, spoke,...] |
| suffix | string | Suffix for the resource, if empty non will be appended, otherwise will be added to the end [can be index, ...] |
| forceDefaultNaming | bool | Force the CAF naming instead of default company naming |
| Property | Value | Description |
|---|---|---|
| name | string | Character limit: 1-90. Valid characters: Alphanumerics, periods, underscores, hyphens, and parenthesis. Cant end in period. |
| level (required) | 'CanNotDelete' 'ReadOnly' |
The level of the lock. Possible values are: CanNotDelete and ReadOnly. CanNotDelete means authorized users are able to read and modify the resources, but not delete. ReadOnly means authorized users can only read from a resource, but they cant modify or delete it. Read-Only locks must be commented to be able to deploy again |
| notes | string | Notes about the lock. Maximum of 512 characters. |
| owners | resourceLockOwner[] | The owners of the lock |
| Property | Value | Description |
|---|---|---|
| applicationId (required) | string | The application ID of the lock owner. |
| Property | Value | Description |
|---|---|---|
| principalId (required) | string | The principal ID |
| roleDefinitionId (required) | string | The role definition ID, data file can be used for this |
| condition | string | Condition on the role assignment |
| conditionVersion | string | Version of the condition. Currently the only accepted value is "2.0" |
| delegatedManagedIdentityResourceId | string | Id of the delegated managed identity resource |
| description | string | Description of role assignment |
| principalType (required) | 'Device' 'ForeignGroup' 'Group' 'ServicePrincipal' 'User' |
The principal type of the assigned principal ID |
| Property | Value | Description |
|---|---|---|
| tags | object | Tags of the resource [hashtable] |
| location (required) | string | Location of the resource |
| naming (required) | naming | Naming module of the resource |
| resourceGroupName (required) | string | Name of the resource group where the resource should be located |
| sharedNaming (required) | naming | Reference to the default naming |
| roleAssignments | roleAssignment[] | Role assignments on the resource |
| resourceLocks | resourceLock[] | Resource Locks on the resource |
| Property | Value | Description |
|---|---|---|
| pepNaming | naming | Name of the private endpoint |
| nicNaming | naming | Name of the network interface of the private endpoint |
| privateLinkNaming | naming | Name of the private link connection |
| subnets (required) | subnets[] | Id of the subnets and optionally the name of the resourcegroup in which the private endpoint should be created |
| dnsZoneIds (required) | string[] | List of DNS zone ids that need to be linked |
| Property | Value | Description |
|---|---|---|
| resourceGroupName | string | Resourcegroup (default: resourcegroup defined here => resourceGroup of pep resource => resourceGroup of subnet) |
| id (required) | string | Id of the subnet |
| location | string | Location if Vnet is in different location |