in src/Bicep.LangServer.IntegrationTests/ExpressionAndTypeExtractorTests.cs [535:687]
public async Task ShouldHandleObjects()
{
await RunExtractToVariableAndParameterTest("""
param _artifactsLocation string
param _artifactsLocationSasToken string
resource resourceWithProperties 'Microsoft.Compute/virtualMachines/extensions@2019-12-01' = if (isWindowsOS && provisionExtensions) {
parent: vmName_resource
name: 'cse-windows'
location: location
properties: <<{
// Entire properties object selected
publisher: 'Microsoft.Compute'
type: 'CustomScriptExtension'
typeHandlerVersion: '1.8'
autoUpgradeMinorVersion: true
settings: {
fileUris: [
uri(_artifactsLocation, 'writeblob.ps1${_artifactsLocationSasToken}')
]
commandToExecute: commandToExecute
}
}>>
}
""",
"""
param _artifactsLocation string
param _artifactsLocationSasToken string
var properties = {
// Entire properties object selected
publisher: 'Microsoft.Compute'
type: 'CustomScriptExtension'
typeHandlerVersion: '1.8'
autoUpgradeMinorVersion: true
settings: {
fileUris: [
uri(_artifactsLocation, 'writeblob.ps1${_artifactsLocationSasToken}')
]
commandToExecute: commandToExecute
}
}
resource resourceWithProperties 'Microsoft.Compute/virtualMachines/extensions@2019-12-01' = if (isWindowsOS && provisionExtensions) {
parent: vmName_resource
name: 'cse-windows'
location: location
properties: properties
}
""",
"""
param _artifactsLocation string
param _artifactsLocationSasToken string
@description('Describes the properties of a Virtual Machine Extension.')
param properties object = {
// Entire properties object selected
publisher: 'Microsoft.Compute'
type: 'CustomScriptExtension'
typeHandlerVersion: '1.8'
autoUpgradeMinorVersion: true
settings: {
fileUris: [
uri(_artifactsLocation, 'writeblob.ps1${_artifactsLocationSasToken}')
]
commandToExecute: commandToExecute
}
}
resource resourceWithProperties 'Microsoft.Compute/virtualMachines/extensions@2019-12-01' = if (isWindowsOS && provisionExtensions) {
parent: vmName_resource
name: 'cse-windows'
location: location
properties: properties
}
""",
"""
param _artifactsLocation string
param _artifactsLocationSasToken string
@description('Describes the properties of a Virtual Machine Extension.')
param properties {
autoUpgradeMinorVersion: bool?
forceUpdateTag: string?
instanceView: {
name: string?
statuses: {
code: string?
displayStatus: string?
level: ('Error' | 'Info' | 'Warning')?
message: string?
time: string?
}[]?
substatuses: {
code: string?
displayStatus: string?
level: ('Error' | 'Info' | 'Warning')?
message: string?
time: string?
}[]?
type: string?
typeHandlerVersion: string?
}?
protectedSettings: object? /* any */
publisher: string?
settings: object? /* any */
type: string?
typeHandlerVersion: string?
} = {
// Entire properties object selected
publisher: 'Microsoft.Compute'
type: 'CustomScriptExtension'
typeHandlerVersion: '1.8'
autoUpgradeMinorVersion: true
settings: {
fileUris: [
uri(_artifactsLocation, 'writeblob.ps1${_artifactsLocationSasToken}')
]
commandToExecute: commandToExecute
}
}
resource resourceWithProperties 'Microsoft.Compute/virtualMachines/extensions@2019-12-01' = if (isWindowsOS && provisionExtensions) {
parent: vmName_resource
name: 'cse-windows'
location: location
properties: properties
}
""",
"""
param _artifactsLocation string
param _artifactsLocationSasToken string
@description('Describes the properties of a Virtual Machine Extension.')
param properties resourceInput<'Microsoft.Compute/virtualMachines/extensions@2019-12-01'>.properties = {
// Entire properties object selected
publisher: 'Microsoft.Compute'
type: 'CustomScriptExtension'
typeHandlerVersion: '1.8'
autoUpgradeMinorVersion: true
settings: {
fileUris: [
uri(_artifactsLocation, 'writeblob.ps1${_artifactsLocationSasToken}')
]
commandToExecute: commandToExecute
}
}
resource resourceWithProperties 'Microsoft.Compute/virtualMachines/extensions@2019-12-01' = if (isWindowsOS && provisionExtensions) {
parent: vmName_resource
name: 'cse-windows'
location: location
properties: properties
}
""");
}