Highlights
-
Add
resourceInput<>
andresourceOutput<>
utility types (#15825)
We've added two new utility types (resourceInput<> and resourceOutput<>), which deprecates the existing resource<> utility types. These three utility types are all closely related but differ in which property flags they surface:resource<>
has the flags that were originally defined in the RP types artifact. This is generally not what people want.resourceInput<>
strips out all WriteOnly flags. This means that template authors can access properties on a resourceInput<>-typed parameter that would have previously raised a BCP077 diagnostic.resourceOutput<>
strips out all ReadOnly flags.
-
Expose
fail
function (#15958) This function takes a single string argument, whose value is the message of the error that will be raised.
param storageAccountData object
resource a 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: !empty(storageAccountData.?name) ? toLower(storageAccountData.name) : fail('No storage account name was provided')
Other bugs and features
- extendable param files add a warning when referencing to a non-existent .bicepparam file (#15338)
- adding support for variables, objects and arrays in extended param files (#15834)
- Refactor and simplify handling of single quotes in module completions (#15913)
use-safe-access
linter rule: Expand to check for nullable properties (#15838)- Fix for WhatIf results not showing up properly in the deploy pane (#16048)
- Support object property name completions in lambda body syntax (#16055)
- MS Graph type provider warns on property mismatch (#15824)
- Fix unhandled exception in import closure calculation (#15833)
- Validate type clauses in UDFs (#15842)
- Allow exports of symbols that share a name with an output (#15899)
- Catch recursion in parameterized type invocations (#15903)
- Use fully qualified symbolic name as copy loop name (#15910)
- Include imported variables in max variables check (#15956)
- Rename Bicep.IO package to Azure.Bicep.IO (#16046)
- Validate that type expressions that will be compiled to ARM schema nodes can be expressed in ARM's type system prior to compilation (#15901)
- SecureOutput Feature Bug Fix (#16108)
- Allow accessing generated module names (#16058)
- Deprecate the term
provider
(#16107) - Fix linter discrepancies when optional module name is enabled (#16106)
- Emit symbolic name template when an optional module name is enabled. (#16114)
- Fix BCP159 to check existence of any nested resources (#15988)
- Decompile-params: Resolve bicep file path relative to current directory (#15986)
- Add AdditionalPropertiesDescription property to ObjectType (#15990)