If you see the above BCP081 warning, it means you’re trying to use something like this, which is copied and pasted from Microsoft’s own reference page:
resource symbolicname 'Microsoft.ApiManagement/service/apis/schemas@2023-05-01-preview' = {
BCP081 means that the type Microsoft.ApiManagement/service/apis/schemas
is not in the 2023-05-01-preview
API version.
This Stack Overflow answer explains one way to find which API version the type is in, by searching Azure’s ARM GitHub repo.
So in my case, I went over to that repo, and then typed a / to search through the whole repo. I searched for Microsoft.ApiManagement/service/apis/schemas
which returned these 5 results:
Which tells me that Microsoft.ApiManagement/service/apis/schemas
is in 5 API versions:
- 2021-08-01
- 2022-08-01
- 2021-04-01-preview
- 2021-12-01-preview
- 2022-04-01-preview.
So I should change my bicep to use one of those versions to make the Warning go away:
resource symbolicname 'Microsoft.ApiManagement/service/apis/schemas@2022-08-01' = {
It seems to me that there’s a bug in Microsoft’s documentation generator in that it suggested I use 2023-05-01-preview, since using that version generates a warning.
As a side note, no matter which version of Microsoft.ApiManagement/service/apis/schemas I used, I couldn’t get it to deploy the Definition to APIM. The deployment would run without errors, but the Definition never appeared in the APIM portal. So I ended up using Microsoft.ApiManagement/service/schemas@2022-08-01 instead:
resource propertySchema 'Microsoft.ApiManagement/service/schemas@2022-08-01' = { name: 'property-definition' parent: apimService properties: { description: 'Used to validate /property request' document: loadJsonContent('apim/create-property-schema.json') schemaType: 'json' value: any(null) } }
which deploys the schema to a different location, but is an acceptable workaround for my needs – the validate-content APIM policy.