From 70b1184b40c80a096169c0067749abb2e3cd28f0 Mon Sep 17 00:00:00 2001 From: Ahmad Abdalla <28486158+ahmadabdalla@users.noreply.github.com> Date: Sat, 14 Oct 2023 07:53:34 +1100 Subject: [PATCH] [AVM] Updated Readme's to support AVM transition - Part (3) (#4080) * Updated desktop virtualization host and scaling plan * Updated Digital Twins * Updated event grid * Updated event hubs * Healthcare APIs * Updated healthcare APIs * updated action groups * activity log alert * insights activity log attempt v2 * Updated metric Alert * document db 1 * Updated cosmos db --- .../host-pool/README.md | 86 +---- .../host-pool/main.bicep | 2 +- .../host-pool/main.json | 10 +- .../scaling-plan/.test/common/main.test.bicep | 39 +++ .../scaling-plan/README.md | 183 +++++------ .../scaling-plan/main.json | 8 +- .../digital-twins-instance/README.md | 127 -------- .../endpoint--event-grid/main.json | 4 +- .../endpoint--event-hub/README.md | 4 +- .../endpoint--event-hub/main.bicep | 4 +- .../endpoint--event-hub/main.json | 8 +- .../endpoint--service-bus/README.md | 4 +- .../endpoint--service-bus/main.bicep | 4 +- .../endpoint--service-bus/main.json | 8 +- .../digital-twins-instance/main.json | 40 +-- .../document-db/database-account/README.md | 208 ------------ .../gremlin-database/README.md | 115 +++---- .../gremlin-database/graph/README.md | 27 +- .../mongodb-database/README.md | 4 - .../mongodb-database/collection/README.md | 27 +- .../sql-database/container/README.md | 27 +- modules/event-grid/system-topic/README.md | 73 ----- modules/event-grid/topic/README.md | 73 ----- modules/event-hub/namespace/main.json | 52 +-- .../namespace/network-rule-set/README.md | 46 +-- .../namespace/network-rule-set/main.bicep | 4 +- .../namespace/network-rule-set/main.json | 8 +- modules/healthcare-apis/workspace/README.md | 235 +++++--------- .../workspace/fhirservice/README.md | 83 ++--- .../workspace/iotconnector/README.md | 181 ++++++----- .../iotconnector/fhirdestination/README.md | 31 +- .../action-group/.test/common/main.test.bicep | 14 +- modules/insights/action-group/README.md | 94 +----- modules/insights/action-group/main.json | 8 +- .../.test/common/main.test.bicep | 29 +- modules/insights/activity-log-alert/README.md | 304 +++--------------- .../insights/activity-log-alert/main.bicep | 2 +- modules/insights/activity-log-alert/main.json | 10 +- modules/insights/metric-alert/README.md | 218 +------------ modules/insights/metric-alert/main.bicep | 2 +- modules/insights/metric-alert/main.json | 10 +- 41 files changed, 656 insertions(+), 1760 deletions(-) diff --git a/modules/desktop-virtualization/host-pool/README.md b/modules/desktop-virtualization/host-pool/README.md index 95799c2de3..81a5599f0a 100644 --- a/modules/desktop-virtualization/host-pool/README.md +++ b/modules/desktop-virtualization/host-pool/README.md @@ -65,7 +65,7 @@ This module deploys an Azure Virtual Desktop (AVD) Host Pool. | `tokenValidityLength` | string | `'PT8H'` | | Host Pool token validity length. Usage: 'PT8H' - valid for 8 hours; 'P5D' - valid for 5 days; 'P1Y' - valid for 1 year. When not provided, the token will be valid for 8 hours. | | `type` | string | `'Pooled'` | `[Personal, Pooled]` | Set this parameter to Personal if you would like to enable Persistent Desktop experience. Defaults to Pooled. | | `validationEnvironment` | bool | `False` | | Validation host pools allows you to test service changes before they are deployed to production. When set to true, the Host Pool will be deployed in a validation 'ring' (environment) that receives all the new features (might be less stable). Defaults to false that stands for the stable, production-ready environment. | -| `vmTemplate` | object | `{object}` | | The necessary information for adding more VMs to this Host Pool. | +| `vmTemplate` | object | `{object}` | | The necessary information for adding more VMs to this Host Pool. The object is converted to an in-line string when handed over to the resource deployment, since that only takes strings. | **Generated parameters** @@ -133,90 +133,6 @@ roleAssignments: [

-### Parameter Usage: `vmTemplate` - -The below parameter object is converted to an in-line string when handed over to the resource deployment, since that only takes strings. - -

- -Parameter JSON format - -```json -"vmTemplate": { - "value": { - "domain": ".com", - "galleryImageOffer": "office-365", - "galleryImagePublisher": "microsoftwindowsdesktop", - "galleryImageSKU": "19h2-evd-o365pp", - "imageType": "Gallery", - "imageUri": null, - "customImageId": null, - "namePrefix": "AVDv2", - "osDiskType": "StandardSSD_LRS", - "useManagedDisks": true, - "vmSize": { - "id": "Standard_D2s_v3", - "cores": 2, - "ram": 8 - } - } -} -``` - -
- -
- -Bicep format - -```bicep -vmTemplate: { - domain: '.com' - galleryImageOffer: 'office-365' - galleryImagePublisher: 'microsoftwindowsdesktop' - galleryImageSKU: '19h2-evd-o365pp' - imageType: 'Gallery' - imageUri: null - customImageId: null - namePrefix: 'AVDv2' - osDiskType: 'StandardSSD_LRS' - useManagedDisks: true - vmSize: { - id: 'Standard_D2s_v3' - cores: 2 - ram: 8 - } -} -``` - -
-

- -### Parameter Usage: `customRdpProperty` - -

- -Parameter JSON format - -```json -"customRdpProperty": { - "value": "audiocapturemode:i:1;audiomode:i:0;drivestoredirect:s:;redirectclipboard:i:1;redirectcomports:i:1;redirectprinters:i:1;redirectsmartcards:i:1;screen mode ID:i:2;" -} -``` - -
- -
- -Bicep format - -```bicep -customRdpProperty: 'audiocapturemode:i:1;audiomode:i:0;drivestoredirect:s:;redirectclipboard:i:1;redirectcomports:i:1;redirectprinters:i:1;redirectsmartcards:i:1;screen mode ID:i:2;' -``` - -
-

- ### Parameter Usage: `tags` Tag names and tag values can be provided as needed. A tag can be left without a value. diff --git a/modules/desktop-virtualization/host-pool/main.bicep b/modules/desktop-virtualization/host-pool/main.bicep index 483e0faa44..79ea1e7407 100644 --- a/modules/desktop-virtualization/host-pool/main.bicep +++ b/modules/desktop-virtualization/host-pool/main.bicep @@ -47,7 +47,7 @@ param customRdpProperty string = 'audiocapturemode:i:1;audiomode:i:0;drivestored @sys.description('Optional. Validation host pools allows you to test service changes before they are deployed to production. When set to true, the Host Pool will be deployed in a validation \'ring\' (environment) that receives all the new features (might be less stable). Defaults to false that stands for the stable, production-ready environment.') param validationEnvironment bool = false -@sys.description('Optional. The necessary information for adding more VMs to this Host Pool.') +@sys.description('Optional. The necessary information for adding more VMs to this Host Pool. The object is converted to an in-line string when handed over to the resource deployment, since that only takes strings.') param vmTemplate object = {} @sys.description('Optional. Host Pool token validity length. Usage: \'PT8H\' - valid for 8 hours; \'P5D\' - valid for 5 days; \'P1Y\' - valid for 1 year. When not provided, the token will be valid for 8 hours.') diff --git a/modules/desktop-virtualization/host-pool/main.json b/modules/desktop-virtualization/host-pool/main.json index c986ba58ae..9f61db2a23 100644 --- a/modules/desktop-virtualization/host-pool/main.json +++ b/modules/desktop-virtualization/host-pool/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "14979820932920385091" + "version": "0.22.6.54827", + "templateHash": "15971169028304265471" }, "name": "Azure Virtual Desktop (AVD) Host Pools", "description": "This module deploys an Azure Virtual Desktop (AVD) Host Pool.", @@ -100,7 +100,7 @@ "type": "object", "defaultValue": {}, "metadata": { - "description": "Optional. The necessary information for adding more VMs to this Host Pool." + "description": "Optional. The necessary information for adding more VMs to this Host Pool. The object is converted to an in-line string when handed over to the resource deployment, since that only takes strings." } }, "tokenValidityLength": { @@ -465,8 +465,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "15758203474913146406" + "version": "0.22.6.54827", + "templateHash": "11172902539120316456" } }, "parameters": { diff --git a/modules/desktop-virtualization/scaling-plan/.test/common/main.test.bicep b/modules/desktop-virtualization/scaling-plan/.test/common/main.test.bicep index 0a6f49d2c5..5423566864 100644 --- a/modules/desktop-virtualization/scaling-plan/.test/common/main.test.bicep +++ b/modules/desktop-virtualization/scaling-plan/.test/common/main.test.bicep @@ -84,5 +84,44 @@ module testDeployment '../../main.bicep' = { hostPoolType: 'Pooled' friendlyName: 'My Scaling Plan' description: 'My Scaling Plan Description' + schedules: [ { + rampUpStartTime: { + hour: 7 + minute: 0 + } + peakStartTime: { + hour: 9 + minute: 0 + } + rampDownStartTime: { + hour: 18 + minute: 0 + } + offPeakStartTime: { + hour: 20 + minute: 0 + } + name: 'weekdays_schedule' + daysOfWeek: [ + 'Monday' + 'Tuesday' + 'Wednesday' + 'Thursday' + 'Friday' + ] + rampUpLoadBalancingAlgorithm: 'DepthFirst' + rampUpMinimumHostsPct: 20 + rampUpCapacityThresholdPct: 60 + peakLoadBalancingAlgorithm: 'DepthFirst' + rampDownLoadBalancingAlgorithm: 'DepthFirst' + rampDownMinimumHostsPct: 10 + rampDownCapacityThresholdPct: 90 + rampDownForceLogoffUsers: true + rampDownWaitTimeMinutes: 30 + rampDownNotificationMessage: 'You will be logged off in 30 min. Make sure to save your work.' + rampDownStopHostsWhen: 'ZeroSessions' + offPeakLoadBalancingAlgorithm: 'DepthFirst' + } + ] } } diff --git a/modules/desktop-virtualization/scaling-plan/README.md b/modules/desktop-virtualization/scaling-plan/README.md index 93eb2d7557..25b485d144 100644 --- a/modules/desktop-virtualization/scaling-plan/README.md +++ b/modules/desktop-virtualization/scaling-plan/README.md @@ -48,107 +48,6 @@ This module deploys an Azure Virtual Desktop (AVD) Scaling Plan. | `timeZone` | string | `'W. Europe Standard Time'` | | Timezone to be used for the scaling plan. | -### Parameter Usage: `schedules` - -Multiple schedules can be provided as needed. If a schedule is not provided, a default schedule will be created. - -```json -"schedules" : { - "value": [ - { - "rampUpStartTime": { - "hour": 7, - "minute": 0 - }, - "peakStartTime": { - "hour": 9, - "minute": 0 - }, - "rampDownStartTime": { - "hour": 18, - "minute": 0 - }, - "offPeakStartTime": { - "hour": 20, - "minute": 0 - }, - "name": "weekdays_schedule", - "daysOfWeek": [ - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday" - ], - "rampUpLoadBalancingAlgorithm": "DepthFirst", - "rampUpMinimumHostsPct": 20, - "rampUpCapacityThresholdPct": 60, - "peakLoadBalancingAlgorithm": "DepthFirst", - "rampDownLoadBalancingAlgorithm": "DepthFirst", - "rampDownMinimumHostsPct": 10, - "rampDownCapacityThresholdPct": 90, - "rampDownForceLogoffUsers": true, - "rampDownWaitTimeMinutes": 30, - "rampDownNotificationMessage": "You will be logged off in 30 min. Make sure to save your work.", - "rampDownStopHostsWhen": "ZeroSessions", - "offPeakLoadBalancingAlgorithm": "DepthFirst" - } - ] -} -``` - - - -

- -Bicep format - -```bicep -'schedules': [ - { - rampUpStartTime: { - hour: 7 - minute: 0 - } - peakStartTime: { - hour: 9 - minute: 0 - } - rampDownStartTime: { - hour: 18 - minute: 0 - } - offPeakStartTime: { - hour: 20 - minute: 0 - } - name: 'weekdays_schedule' - daysOfWeek: [ - 'Monday' - 'Tuesday' - 'Wednesday' - 'Thursday' - 'Friday' - ] - rampUpLoadBalancingAlgorithm: 'DepthFirst' - rampUpMinimumHostsPct: 20 - rampUpCapacityThresholdPct: 60 - peakLoadBalancingAlgorithm: 'DepthFirst' - rampDownLoadBalancingAlgorithm: 'DepthFirst' - rampDownMinimumHostsPct: 10 - rampDownCapacityThresholdPct: 90 - rampDownForceLogoffUsers: true - rampDownWaitTimeMinutes: 30 - rampDownNotificationMessage: 'You will be logged off in 30 min. Make sure to save your work.' - rampDownStopHostsWhen: 'ZeroSessions' - offPeakLoadBalancingAlgorithm: 'DepthFirst' - } -] -``` - -
-

- ### Parameter Usage: `tags` Tag names and tag values can be provided as needed. A tag can be left without a value. @@ -299,6 +198,46 @@ module scalingPlan './desktop-virtualization/scaling-plan/main.bicep' = { roleDefinitionIdOrName: 'Reader' } ] + schedules: [ + { + daysOfWeek: [ + 'Friday' + 'Monday' + 'Thursday' + 'Tuesday' + 'Wednesday' + ] + name: 'weekdays_schedule' + offPeakLoadBalancingAlgorithm: 'DepthFirst' + offPeakStartTime: { + hour: 20 + minute: 0 + } + peakLoadBalancingAlgorithm: 'DepthFirst' + peakStartTime: { + hour: 9 + minute: 0 + } + rampDownCapacityThresholdPct: 90 + rampDownForceLogoffUsers: true + rampDownLoadBalancingAlgorithm: 'DepthFirst' + rampDownMinimumHostsPct: 10 + rampDownNotificationMessage: 'You will be logged off in 30 min. Make sure to save your work.' + rampDownStartTime: { + hour: 18 + minute: 0 + } + rampDownStopHostsWhen: 'ZeroSessions' + rampDownWaitTimeMinutes: 30 + rampUpCapacityThresholdPct: 60 + rampUpLoadBalancingAlgorithm: 'DepthFirst' + rampUpMinimumHostsPct: 20 + rampUpStartTime: { + hour: 7 + minute: 0 + } + } + ] tags: { Environment: 'Non-Prod' 'hidden-title': 'This is visible in the resource name' @@ -360,6 +299,48 @@ module scalingPlan './desktop-virtualization/scaling-plan/main.bicep' = { } ] }, + "schedules": { + "value": [ + { + "daysOfWeek": [ + "Friday", + "Monday", + "Thursday", + "Tuesday", + "Wednesday" + ], + "name": "weekdays_schedule", + "offPeakLoadBalancingAlgorithm": "DepthFirst", + "offPeakStartTime": { + "hour": 20, + "minute": 0 + }, + "peakLoadBalancingAlgorithm": "DepthFirst", + "peakStartTime": { + "hour": 9, + "minute": 0 + }, + "rampDownCapacityThresholdPct": 90, + "rampDownForceLogoffUsers": true, + "rampDownLoadBalancingAlgorithm": "DepthFirst", + "rampDownMinimumHostsPct": 10, + "rampDownNotificationMessage": "You will be logged off in 30 min. Make sure to save your work.", + "rampDownStartTime": { + "hour": 18, + "minute": 0 + }, + "rampDownStopHostsWhen": "ZeroSessions", + "rampDownWaitTimeMinutes": 30, + "rampUpCapacityThresholdPct": 60, + "rampUpLoadBalancingAlgorithm": "DepthFirst", + "rampUpMinimumHostsPct": 20, + "rampUpStartTime": { + "hour": 7, + "minute": 0 + } + } + ] + }, "tags": { "value": { "Environment": "Non-Prod", diff --git a/modules/desktop-virtualization/scaling-plan/main.json b/modules/desktop-virtualization/scaling-plan/main.json index 0d39c715ee..ce7aa1ec9b 100644 --- a/modules/desktop-virtualization/scaling-plan/main.json +++ b/modules/desktop-virtualization/scaling-plan/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "6944405808593930056" + "version": "0.22.6.54827", + "templateHash": "2358392324334042734" }, "name": "Azure Virtual Desktop (AVD) Scaling Plans", "description": "This module deploys an Azure Virtual Desktop (AVD) Scaling Plan.", @@ -276,8 +276,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "5284850760210698082" + "version": "0.22.6.54827", + "templateHash": "919506430332723114" } }, "parameters": { diff --git a/modules/digital-twins/digital-twins-instance/README.md b/modules/digital-twins/digital-twins-instance/README.md index 4be6c79af6..512bd242ac 100644 --- a/modules/digital-twins/digital-twins-instance/README.md +++ b/modules/digital-twins/digital-twins-instance/README.md @@ -289,134 +289,7 @@ userAssignedIdentities: {

-### Parameter Usage: `eventhubEndpoint` - -

- -Parameter JSON format - -```json -"eventhubEndpoint": { - "value": { - "authenticationType": "IdentityBased", // IdentityBased or KeyBased - "name": "", - "entityPath": "evh1", // Event Hub Name - "endpointUri": "sb://xyz.servicebus.windows.net", //Event Hub namespace, including sb:// - "deadLetterUri": "", - "deadLetterSecret": "", - "connectionStringPrimaryKey": "", //Keybased Auth - "connectionStringSecondaryKey": "" //Keybased Auth - } -} -``` - -
-

- -

- -Bicep format - -```bicep -eventhubEndpoint: { - authenticationType: 'IdentityBased' // IdentityBased or KeyBased - name: '' - entityPath: 'evh1' // Event Hub Name - endpointUri: 'sb://xyz.servicebus.windows.net' //Event Hub namespace, including sb:// - deadLetterUri: '' - deadLetterSecret: '' - connectionStringPrimaryKey: '' //Keybased Auth - connectionStringSecondaryKey: '' //Keybased Auth -} - ``` - -
-

- -### Parameter Usage: `eventGridEndpoint` - -

- -Parameter JSON format - -```json -"eventGridEndpoint": { - "value": { - "name": "", - "accessKey1": "", - "accessKey2": "", - "TopicEndpoint": "", - "deadLetterUri": "", - "deadLetterSecret": "" - } -} -``` - -

- -

- -Bicep format - -```bicep -eventGridEndpoint: { - name: '' - accessKey1: '' - accessKey2: '' - TopicEndpoint: '' - deadLetterSecret: '' - deadLetterSecret: '' -} - ``` - -
-

- -### Parameter Usage: `serviceBusEndpoint` - -

- -Parameter JSON format - -```json -"serviceBusEndpoint": { - "value": { - "authenticationType": "IdentityBased", // IdentityBased or KeyBased - "name": "", - "entityPath": "sb1", // Event Hub Name - "endpointUri": "sb://xyz.servicebus.windows.net", //Event Hub namespace, including sb:// - "deadLetterUri": "", - "deadLetterSecret": "", - "connectionStringPrimaryKey": "", //Keybased Auth - "connectionStringSecondaryKey": "" //Keybased Auth - } -} -``` - -
-

- -

- -Bicep format - -```bicep -serviceBusEndpoint: { - authenticationType: 'IdentityBased' // IdentityBased or KeyBased - name: '' - entityPath: 'evh1' // Event Hub Name - endpointUri: 'sb://xyz.servicebus.windows.net' //Event Hub namespace, including sb:// - deadLetterUri: '' - deadLetterSecret: '' - connectionStringPrimaryKey: '' //Keybased Auth - connectionStringSecondaryKey: '' //Keybased Auth -} - ``` - -
-

- ## Outputs | Output Name | Type | Description | diff --git a/modules/digital-twins/digital-twins-instance/endpoint--event-grid/main.json b/modules/digital-twins/digital-twins-instance/endpoint--event-grid/main.json index a1978b3907..27b52f1b55 100644 --- a/modules/digital-twins/digital-twins-instance/endpoint--event-grid/main.json +++ b/modules/digital-twins/digital-twins-instance/endpoint--event-grid/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.20.4.51522", - "templateHash": "7115177198919820190" + "version": "0.22.6.54827", + "templateHash": "15429197908359098698" }, "name": "Digital Twins Instance Event Grid Endpoints", "description": "This module deploys a Digital Twins Instance Event Grid Endpoint.", diff --git a/modules/digital-twins/digital-twins-instance/endpoint--event-hub/README.md b/modules/digital-twins/digital-twins-instance/endpoint--event-hub/README.md index acdd791423..89cb8b96b9 100644 --- a/modules/digital-twins/digital-twins-instance/endpoint--event-hub/README.md +++ b/modules/digital-twins/digital-twins-instance/endpoint--event-hub/README.md @@ -29,11 +29,11 @@ This module deploys a Digital Twins Instance EventHub Endpoint. | Parameter Name | Type | Default Value | Allowed Values | Description | | :-- | :-- | :-- | :-- | :-- | | `authenticationType` | string | `'IdentityBased'` | `[IdentityBased, KeyBased]` | Specifies the authentication type being used for connecting to the endpoint. If 'KeyBased' is selected, a connection string must be specified (at least the primary connection string). If 'IdentityBased' is selected, the endpointUri and entityPath properties must be specified. | -| `connectionStringSecondaryKey` | securestring | `''` | | SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read. | +| `connectionStringSecondaryKey` | securestring | `''` | | SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read. Only used if the `authenticationType` is "KeyBased". | | `deadLetterSecret` | securestring | `''` | | Dead letter storage secret for key-based authentication. Will be obfuscated during read. | | `deadLetterUri` | string | `''` | | Dead letter storage URL for identity-based authentication. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | -| `endpointUri` | string | `''` | | The URL of the EventHub namespace for identity-based authentication. It must include the protocol 'sb://'. | +| `endpointUri` | string | `''` | | The URL of the EventHub namespace for identity-based authentication. It must include the protocol 'sb://' (i.e. sb://xyz.servicebus.windows.net). | | `entityPath` | string | `''` | | The EventHub name in the EventHub namespace for identity-based authentication. | | `name` | string | `'EventHubEndpoint'` | | The name of the Digital Twin Endpoint. | | `systemAssignedIdentity` | bool | `False` | | Enables system assigned managed identity on the resource. | diff --git a/modules/digital-twins/digital-twins-instance/endpoint--event-hub/main.bicep b/modules/digital-twins/digital-twins-instance/endpoint--event-hub/main.bicep index bcb41b28e8..bde961d9e6 100644 --- a/modules/digital-twins/digital-twins-instance/endpoint--event-hub/main.bicep +++ b/modules/digital-twins/digital-twins-instance/endpoint--event-hub/main.bicep @@ -26,14 +26,14 @@ param deadLetterUri string = '' @secure() param connectionStringPrimaryKey string = '' -@description('Optional. SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read.') +@description('Optional. SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read. Only used if the `authenticationType` is "KeyBased".') @secure() param connectionStringSecondaryKey string = '' @description('Optional. The EventHub name in the EventHub namespace for identity-based authentication.') param entityPath string = '' -@description('Optional. The URL of the EventHub namespace for identity-based authentication. It must include the protocol \'sb://\'.') +@description('Optional. The URL of the EventHub namespace for identity-based authentication. It must include the protocol \'sb://\' (i.e. sb://xyz.servicebus.windows.net).') param endpointUri string = '' @description('Optional. Enable telemetry via the Customer Usage Attribution ID (GUID).') diff --git a/modules/digital-twins/digital-twins-instance/endpoint--event-hub/main.json b/modules/digital-twins/digital-twins-instance/endpoint--event-hub/main.json index a964a1f125..3ef4af7bb3 100644 --- a/modules/digital-twins/digital-twins-instance/endpoint--event-hub/main.json +++ b/modules/digital-twins/digital-twins-instance/endpoint--event-hub/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.20.4.51522", - "templateHash": "10898754622351027742" + "version": "0.22.6.54827", + "templateHash": "1200386987193874100" }, "name": "Digital Twins Instance EventHub Endpoint", "description": "This module deploys a Digital Twins Instance EventHub Endpoint.", @@ -61,7 +61,7 @@ "type": "securestring", "defaultValue": "", "metadata": { - "description": "Optional. SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read." + "description": "Optional. SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read. Only used if the `authenticationType` is \"KeyBased\"." } }, "entityPath": { @@ -75,7 +75,7 @@ "type": "string", "defaultValue": "", "metadata": { - "description": "Optional. The URL of the EventHub namespace for identity-based authentication. It must include the protocol 'sb://'." + "description": "Optional. The URL of the EventHub namespace for identity-based authentication. It must include the protocol 'sb://' (i.e. sb://xyz.servicebus.windows.net)." } }, "enableDefaultTelemetry": { diff --git a/modules/digital-twins/digital-twins-instance/endpoint--service-bus/README.md b/modules/digital-twins/digital-twins-instance/endpoint--service-bus/README.md index d782e9bca2..3f448d3791 100644 --- a/modules/digital-twins/digital-twins-instance/endpoint--service-bus/README.md +++ b/modules/digital-twins/digital-twins-instance/endpoint--service-bus/README.md @@ -32,10 +32,10 @@ This module deploys a Digital Twins Instance ServiceBus Endpoint. | `deadLetterSecret` | securestring | `''` | | Dead letter storage secret for key-based authentication. Will be obfuscated during read. | | `deadLetterUri` | string | `''` | | Dead letter storage URL for identity-based authentication. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | -| `endpointUri` | string | `''` | | The URL of the ServiceBus namespace for identity-based authentication. It must include the protocol 'sb://'. | +| `endpointUri` | string | `''` | | The URL of the ServiceBus namespace for identity-based authentication. It must include the protocol 'sb://' (e.g. sb://xyz.servicebus.windows.net). | | `entityPath` | string | `''` | | The ServiceBus Topic name for identity-based authentication. | | `name` | string | `'ServiceBusEndpoint'` | | The name of the Digital Twin Endpoint. | -| `secondaryConnectionString` | securestring | `''` | | SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read. | +| `secondaryConnectionString` | securestring | `''` | | SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read. Only used if the `authenticationType` is "KeyBased". | | `systemAssignedIdentity` | bool | `False` | | Enables system assigned managed identity on the resource. | | `userAssignedIdentity` | string | `''` | | The ID to assign to the resource. | diff --git a/modules/digital-twins/digital-twins-instance/endpoint--service-bus/main.bicep b/modules/digital-twins/digital-twins-instance/endpoint--service-bus/main.bicep index 91050fff39..25e6eb0ae7 100644 --- a/modules/digital-twins/digital-twins-instance/endpoint--service-bus/main.bicep +++ b/modules/digital-twins/digital-twins-instance/endpoint--service-bus/main.bicep @@ -22,7 +22,7 @@ param deadLetterSecret string = '' @description('Optional. Dead letter storage URL for identity-based authentication.') param deadLetterUri string = '' -@description('Optional. The URL of the ServiceBus namespace for identity-based authentication. It must include the protocol \'sb://\'.') +@description('Optional. The URL of the ServiceBus namespace for identity-based authentication. It must include the protocol \'sb://\' (e.g. sb://xyz.servicebus.windows.net).') param endpointUri string = '' @description('Optional. The ServiceBus Topic name for identity-based authentication.') @@ -32,7 +32,7 @@ param entityPath string = '' @secure() param primaryConnectionString string = '' -@description('Optional. SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read.') +@description('Optional. SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read. Only used if the `authenticationType` is "KeyBased".') @secure() param secondaryConnectionString string = '' diff --git a/modules/digital-twins/digital-twins-instance/endpoint--service-bus/main.json b/modules/digital-twins/digital-twins-instance/endpoint--service-bus/main.json index b1513fcf98..31056e282d 100644 --- a/modules/digital-twins/digital-twins-instance/endpoint--service-bus/main.json +++ b/modules/digital-twins/digital-twins-instance/endpoint--service-bus/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.20.4.51522", - "templateHash": "13127448885590640743" + "version": "0.22.6.54827", + "templateHash": "2168121049050485718" }, "name": "Digital Twins Instance ServiceBus Endpoint", "description": "This module deploys a Digital Twins Instance ServiceBus Endpoint.", @@ -54,7 +54,7 @@ "type": "string", "defaultValue": "", "metadata": { - "description": "Optional. The URL of the ServiceBus namespace for identity-based authentication. It must include the protocol 'sb://'." + "description": "Optional. The URL of the ServiceBus namespace for identity-based authentication. It must include the protocol 'sb://' (e.g. sb://xyz.servicebus.windows.net)." } }, "entityPath": { @@ -75,7 +75,7 @@ "type": "securestring", "defaultValue": "", "metadata": { - "description": "Optional. SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read." + "description": "Optional. SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read. Only used if the `authenticationType` is \"KeyBased\"." } }, "enableDefaultTelemetry": { diff --git a/modules/digital-twins/digital-twins-instance/main.json b/modules/digital-twins/digital-twins-instance/main.json index d4bae9acbc..5f9ecd3472 100644 --- a/modules/digital-twins/digital-twins-instance/main.json +++ b/modules/digital-twins/digital-twins-instance/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "16548186733986998903" + "version": "0.22.6.54827", + "templateHash": "4594245496875399302" }, "name": "Digital Twins Instances", "description": "This module deploys an Azure Digital Twins Instance.", @@ -298,8 +298,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "14898430327900380970" + "version": "0.22.6.54827", + "templateHash": "1200386987193874100" }, "name": "Digital Twins Instance EventHub Endpoint", "description": "This module deploys a Digital Twins Instance EventHub Endpoint.", @@ -355,7 +355,7 @@ "type": "securestring", "defaultValue": "", "metadata": { - "description": "Optional. SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read." + "description": "Optional. SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read. Only used if the `authenticationType` is \"KeyBased\"." } }, "entityPath": { @@ -369,7 +369,7 @@ "type": "string", "defaultValue": "", "metadata": { - "description": "Optional. The URL of the EventHub namespace for identity-based authentication. It must include the protocol 'sb://'." + "description": "Optional. The URL of the EventHub namespace for identity-based authentication. It must include the protocol 'sb://' (i.e. sb://xyz.servicebus.windows.net)." } }, "enableDefaultTelemetry": { @@ -488,8 +488,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "5050137596110044755" + "version": "0.22.6.54827", + "templateHash": "15429197908359098698" }, "name": "Digital Twins Instance Event Grid Endpoints", "description": "This module deploys a Digital Twins Instance Event Grid Endpoint.", @@ -636,8 +636,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "9533801539124134426" + "version": "0.22.6.54827", + "templateHash": "2168121049050485718" }, "name": "Digital Twins Instance ServiceBus Endpoint", "description": "This module deploys a Digital Twins Instance ServiceBus Endpoint.", @@ -686,7 +686,7 @@ "type": "string", "defaultValue": "", "metadata": { - "description": "Optional. The URL of the ServiceBus namespace for identity-based authentication. It must include the protocol 'sb://'." + "description": "Optional. The URL of the ServiceBus namespace for identity-based authentication. It must include the protocol 'sb://' (e.g. sb://xyz.servicebus.windows.net)." } }, "entityPath": { @@ -707,7 +707,7 @@ "type": "securestring", "defaultValue": "", "metadata": { - "description": "Optional. SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read." + "description": "Optional. SecondaryConnectionString of the endpoint for key-based authentication. Will be obfuscated during read. Only used if the `authenticationType` is \"KeyBased\"." } }, "enableDefaultTelemetry": { @@ -840,8 +840,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "14580007913383558904" + "version": "0.22.6.54827", + "templateHash": "2884140170473394983" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1040,8 +1040,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "2469208411936339153" + "version": "0.22.6.54827", + "templateHash": "5610247137574346230" }, "name": "Private Endpoint Private DNS Zone Groups", "description": "This module deploys a Private Endpoint Private DNS Zone Group.", @@ -1178,8 +1178,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "13032708393704093995" + "version": "0.22.6.54827", + "templateHash": "14351187799927334028" } }, "parameters": { @@ -1392,8 +1392,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "2921285895718977549" + "version": "0.22.6.54827", + "templateHash": "4249531612554442902" } }, "parameters": { diff --git a/modules/document-db/database-account/README.md b/modules/document-db/database-account/README.md index ee70f0bac0..a1b836499f 100644 --- a/modules/document-db/database-account/README.md +++ b/modules/document-db/database-account/README.md @@ -173,214 +173,6 @@ tags: {

-### Parameter Usage: `locations` - -

- -Parameter JSON format - -```json -"locations": { - "value": [ - { - "failoverPriority": 1, - "locationName": "East US", - "isZoneRedundant": false - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -locations: [ - { - failoverPriority: 1 - locationName: 'East US' - isZoneRedundant: false - } -] -``` - -
-

- -### Parameter Usage: `sqlDatabases` - -

- -Parameter JSON format - -```json -"sqlDatabases": { - "value": [ - { - "name": "sxx-az-sql-x-001", - "containers": [ - "container-001", - "container-002" - ] - }, - { - "name": "sxx-az-sql-x-002", - "containers": [] - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -sqlDatabases: { - value: [ - { - name: 'sxx-az-sql-x-001' - containers: [ - 'container-001' - 'container-002' - ] - } - { - name: 'sxx-az-sql-x-002' - containers: [] - } - ] -} -``` - -
-

- -### Parameter Usage: `mongodbDatabases` - -

- -Parameter JSON format - -```json -"mongodbDatabases": { - "value": [ - { - "name": "sxx-az-mdb-x-001", - "collections": [ - <...> - ] - }, - { - "name": "sxx-az-mdb-x-002", - "collections": [ - <...> - ] - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -mongodbDatabases: [ - { - name: 'sxx-az-mdb-x-001' - collections: [ - <...> - ] - } - { - name: 'sxx-az-mdb-x-002' - collections: [ - <...> - ] - } -] -``` - -
-

- -Please reference the documentation for [mongodbDatabase](./mongodb-database/README.md) - -### Parameter Usage: `gremlinDatabases` - -

- -Parameter JSON format - -```json -"mongodbDatabases": { - "value": [ - { - "name": "graphDb01", - "graphs": [ - { - "name": "graph01", - "automaticIndexing": true, - "partitionKeyPaths": [ - "/name" - ] - }, - { - "name": "graph02", - "automaticIndexing": true, - "partitionKeyPaths": [ - "/name" - ] - } - ] - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -gremlinDatabases: [ - { - name: 'graphDb01' - graphs: [ - { - name: 'graph01' - automaticIndexing: true - partitionKeyPaths: [ - '/name' - ] - } - { - name: 'graph02' - automaticIndexing: true - partitionKeyPaths: [ - '/name' - ] - } - ] - } -] -``` - -
-

- -Please reference the documentation for [gremlinDatabase](./gremlin-database/README.md) - ### Parameter Usage: `roleAssignments` Create a role assignment for the given resource. If you want to assign a service principal / managed identity that is created in the same deployment, make sure to also specify the `'principalType'` parameter and set it to 'ServicePrincipal'. This will ensure the role assignment waits for the principal's propagation in Azure. diff --git a/modules/document-db/database-account/gremlin-database/README.md b/modules/document-db/database-account/gremlin-database/README.md index 4e531443bb..cd4b13532a 100644 --- a/modules/document-db/database-account/gremlin-database/README.md +++ b/modules/document-db/database-account/gremlin-database/README.md @@ -8,6 +8,7 @@ This module deploys a Gremlin Database within a CosmosDB Account. - [Parameters](#Parameters) - [Outputs](#Outputs) - [Cross-referenced modules](#Cross-referenced-modules) +- [Notes](#Notes) ## Resource Types @@ -43,62 +44,6 @@ This module deploys a Gremlin Database within a CosmosDB Account. | `userAssignedIdentities` | object | `{object}` | The ID(s) to assign to the resource. | -### Parameter Usage: `graphs` - -List of graph databaseAccounts - -

- -Parameter JSON format - -```json -"graphs": { - "value": [ - { - "name": "graph01", - "automaticIndexing": true, - "partitionKeyPaths": [ - "/name" - ] - }, - { - "name": "graph02", - "automaticIndexing": true, - "partitionKeyPaths": [ - "/name" - ] - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -graphs: [ - { - name: 'graph01' - automaticIndexing: true - partitionKeyPaths: [ - '/name' - ] - } - { - name: 'graph02' - automaticIndexing: true - partitionKeyPaths: [ - '/name' - ] - } -] -``` - -
- ### Parameter Usage: `tags` Tag names and tag values can be provided as needed. A tag can be left without a value. @@ -184,3 +129,61 @@ userAssignedIdentities: { ## Cross-referenced modules _None_ + +## Notes + +### Parameter Usage: `graphs` + +List of graph databaseAccounts. + +
+ +Parameter JSON format + +```json +"graphs": { + "value": [ + { + "name": "graph01", + "automaticIndexing": true, + "partitionKeyPaths": [ + "/name" + ] + }, + { + "name": "graph02", + "automaticIndexing": true, + "partitionKeyPaths": [ + "/name" + ] + } + ] +} +``` + +
+ +
+ +Bicep format + +```bicep +graphs: [ + { + name: 'graph01' + automaticIndexing: true + partitionKeyPaths: [ + '/name' + ] + } + { + name: 'graph02' + automaticIndexing: true + partitionKeyPaths: [ + '/name' + ] + } +] +``` + +
diff --git a/modules/document-db/database-account/gremlin-database/graph/README.md b/modules/document-db/database-account/gremlin-database/graph/README.md index 0254cb0940..46669ea63c 100644 --- a/modules/document-db/database-account/gremlin-database/graph/README.md +++ b/modules/document-db/database-account/gremlin-database/graph/README.md @@ -8,6 +8,7 @@ This module deploys a DocumentDB Database Accounts Gremlin Database Graph. - [Parameters](#Parameters) - [Outputs](#Outputs) - [Cross-referenced modules](#Cross-referenced-modules) +- [Notes](#Notes) ## Resource Types @@ -81,6 +82,20 @@ tags: {

+## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the graph. | +| `resourceGroupName` | string | The name of the resource group the graph was created in. | +| `resourceId` | string | The resource ID of the graph. | + +## Cross-referenced modules + +_None_ + +## Notes + ### Parameter Usage: `partitionKeyPaths`, `uniqueKeyPaths` Different kinds of paths can be provided as array of strings: @@ -111,15 +126,3 @@ graphs: [

- -## Outputs - -| Output Name | Type | Description | -| :-- | :-- | :-- | -| `name` | string | The name of the graph. | -| `resourceGroupName` | string | The name of the resource group the graph was created in. | -| `resourceId` | string | The resource ID of the graph. | - -## Cross-referenced modules - -_None_ diff --git a/modules/document-db/database-account/mongodb-database/README.md b/modules/document-db/database-account/mongodb-database/README.md index db3dbf1e40..21d0be5f7e 100644 --- a/modules/document-db/database-account/mongodb-database/README.md +++ b/modules/document-db/database-account/mongodb-database/README.md @@ -81,10 +81,6 @@ tags: {

-### Parameter Usage: `collections` - -Please reference the documentation for [collection](./collection/README.md) - ## Outputs | Output Name | Type | Description | diff --git a/modules/document-db/database-account/mongodb-database/collection/README.md b/modules/document-db/database-account/mongodb-database/collection/README.md index 4092da7d8d..c29b48e614 100644 --- a/modules/document-db/database-account/mongodb-database/collection/README.md +++ b/modules/document-db/database-account/mongodb-database/collection/README.md @@ -8,6 +8,7 @@ This module deploys a MongoDB Database Collection. - [Parameters](#Parameters) - [Outputs](#Outputs) - [Cross-referenced modules](#Cross-referenced-modules) +- [Notes](#Notes) ## Resource Types @@ -40,6 +41,20 @@ This module deploys a MongoDB Database Collection. | `throughput` | int | `400` | Name of the mongodb database. | +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the mongodb database. | +| `resourceGroupName` | string | The name of the resource group the mongodb database was created in. | +| `resourceId` | string | The resource ID of the mongodb database. | + +## Cross-referenced modules + +_None_ + +## Notes + ### Parameter Usage: `indexes` Array of index keys as MongoIndex. The array contains keys for each MongoDB collection in the Azure Cosmos DB service with a collection resource object (as `key`) and collection index options (as `options`). @@ -169,15 +184,3 @@ shardKey: {

- -## Outputs - -| Output Name | Type | Description | -| :-- | :-- | :-- | -| `name` | string | The name of the mongodb database. | -| `resourceGroupName` | string | The name of the resource group the mongodb database was created in. | -| `resourceId` | string | The resource ID of the mongodb database. | - -## Cross-referenced modules - -_None_ diff --git a/modules/document-db/database-account/sql-database/container/README.md b/modules/document-db/database-account/sql-database/container/README.md index c30d0050f1..d1f36ece5d 100644 --- a/modules/document-db/database-account/sql-database/container/README.md +++ b/modules/document-db/database-account/sql-database/container/README.md @@ -8,6 +8,7 @@ This module deploys a SQL Database Container in a CosmosDB Account. - [Parameters](#Parameters) - [Outputs](#Outputs) - [Cross-referenced modules](#Cross-referenced-modules) +- [Notes](#Notes) ## Resource Types @@ -88,6 +89,20 @@ tags: {

+## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `name` | string | The name of the container. | +| `resourceGroupName` | string | The name of the resource group the container was created in. | +| `resourceId` | string | The resource ID of the container. | + +## Cross-referenced modules + +_None_ + +## Notes + ### Parameter Usage: `indexingPolicy` Tag names and tag values can be provided as needed. A tag can be left without a value. @@ -129,15 +144,3 @@ indexingPolicy: {

- -## Outputs - -| Output Name | Type | Description | -| :-- | :-- | :-- | -| `name` | string | The name of the container. | -| `resourceGroupName` | string | The name of the resource group the container was created in. | -| `resourceId` | string | The resource ID of the container. | - -## Cross-referenced modules - -_None_ diff --git a/modules/event-grid/system-topic/README.md b/modules/event-grid/system-topic/README.md index a6aa00839d..4d00048638 100644 --- a/modules/event-grid/system-topic/README.md +++ b/modules/event-grid/system-topic/README.md @@ -51,79 +51,6 @@ This module deploys an Event Grid System Topic. | `userAssignedIdentities` | object | `{object}` | | The ID(s) to assign to the resource. | -### Parameter Usage: `eventSubscriptions` - -You can specify multiple event subscriptions using the following format: - -

- -Parameter JSON format - -```json -"eventSubscriptions": { - "value": [ - { - "destination": { - "endpointType": "StorageQueue", - "properties": { - "queueMessageTimeToLiveInSeconds": 86400, - "queueName": "", - "resourceId": "" - } - }, - "enableDefaultTelemetry": "", - "eventDeliverySchema": "CloudEventSchemaV1_0", - "expirationTimeUtc": "2099-01-01T11:00:21.715Z", - "filter": { - "enableAdvancedFilteringOnArrays": true, - "isSubjectCaseSensitive": false - }, - "name": "[[namePrefix]]egstcom001", - "retryPolicy": { - "eventTimeToLive": "120", - "maxDeliveryAttempts": 10 - } - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -eventSubscriptions: [ - { - destination: { - endpointType: 'StorageQueue' - properties: { - queueMessageTimeToLiveInSeconds: 86400 - queueName: '' - resourceId: '' - } - } - enableDefaultTelemetry: '' - eventDeliverySchema: 'CloudEventSchemaV1_0' - expirationTimeUtc: '2099-01-01T11:00:21.715Z' - filter: { - enableAdvancedFilteringOnArrays: true - isSubjectCaseSensitive: false - } - name: '[[namePrefix]]egstcom001' - retryPolicy: { - eventTimeToLive: '120' - maxDeliveryAttempts: 10 - } - } - ] -``` - -
-

- ### Parameter Usage: `roleAssignments` Create a role assignment for the given resource. If you want to assign a service principal / managed identity that is created in the same deployment, make sure to also specify the `'principalType'` parameter and set it to `'ServicePrincipal'`. This will ensure the role assignment waits for the principal's propagation in Azure. diff --git a/modules/event-grid/topic/README.md b/modules/event-grid/topic/README.md index 4710dcd36a..8e5edbc4b1 100644 --- a/modules/event-grid/topic/README.md +++ b/modules/event-grid/topic/README.md @@ -52,79 +52,6 @@ This module deploys an Event Grid Topic. | `tags` | object | `{object}` | | Tags of the resource. | -### Parameter Usage: `eventSubscriptions` - -You can specify multiple event subscriptions using the following format: - -

- -Parameter JSON format - -```json -"eventSubscriptions": { - "value": [ - { - "destination": { - "endpointType": "StorageQueue", - "properties": { - "queueMessageTimeToLiveInSeconds": 86400, - "queueName": "", - "resourceId": "" - } - }, - "enableDefaultTelemetry": "", - "eventDeliverySchema": "CloudEventSchemaV1_0", - "expirationTimeUtc": "2099-01-01T11:00:21.715Z", - "filter": { - "enableAdvancedFilteringOnArrays": true, - "isSubjectCaseSensitive": false - }, - "name": "[[namePrefix]]egstcom001", - "retryPolicy": { - "eventTimeToLive": "120", - "maxDeliveryAttempts": 10 - } - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -eventSubscriptions: [ - { - destination: { - endpointType: 'StorageQueue' - properties: { - queueMessageTimeToLiveInSeconds: 86400 - queueName: '' - resourceId: '' - } - } - enableDefaultTelemetry: '' - eventDeliverySchema: 'CloudEventSchemaV1_0' - expirationTimeUtc: '2099-01-01T11:00:21.715Z' - filter: { - enableAdvancedFilteringOnArrays: true - isSubjectCaseSensitive: false - } - name: '[[namePrefix]]egstcom001' - retryPolicy: { - eventTimeToLive: '120' - maxDeliveryAttempts: 10 - } - } - ] -``` - -
-

- ### Parameter Usage: `privateEndpoints` To use Private Endpoint the following dependencies must be deployed: diff --git a/modules/event-hub/namespace/main.json b/modules/event-hub/namespace/main.json index 7e9e3029bd..10bb99aa07 100644 --- a/modules/event-hub/namespace/main.json +++ b/modules/event-hub/namespace/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "894531966017959267" + "version": "0.22.6.54827", + "templateHash": "16009659029865974325" }, "name": "Event Hub Namespaces", "description": "This module deploys an Event Hub Namespace.", @@ -432,8 +432,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "16751252701811556931" + "version": "0.22.6.54827", + "templateHash": "3063860457313937367" }, "name": "Event Hub Namespace Authorization Rule", "description": "This module deploys an Event Hub Namespace Authorization Rule.", @@ -553,8 +553,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "17596363769961747539" + "version": "0.22.6.54827", + "templateHash": "7624585689136088815" }, "name": "Event Hub Namespace Disaster Recovery Configs", "description": "This module deploys an Event Hub Namespace Disaster Recovery Config.", @@ -690,8 +690,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "16089237218391136247" + "version": "0.22.6.54827", + "templateHash": "11568505658717744379" }, "name": "Event Hub Namespace Event Hubs", "description": "This module deploys an Event Hub Namespace Event Hub.", @@ -999,8 +999,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "4574999956856176990" + "version": "0.22.6.54827", + "templateHash": "3522913919009222120" }, "name": "Event Hub Namespace Event Hub Consumer Groups", "description": "This module deploys an Event Hub Namespace Event Hub Consumer Group.", @@ -1127,8 +1127,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "6269095332062865528" + "version": "0.22.6.54827", + "templateHash": "12245634232079362340" }, "name": "Event Hub Namespace Event Hub Authorization Rules", "description": "This module deploys an Event Hub Namespace Event Hub Authorization Rule.", @@ -1260,8 +1260,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "13315777836788317981" + "version": "0.22.6.54827", + "templateHash": "5794309156960386834" } }, "parameters": { @@ -1445,8 +1445,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "7109134385195243655" + "version": "0.22.6.54827", + "templateHash": "17411238681152908216" }, "name": "Event Hub Namespace Network Rule Sets", "description": "This module deploys an Event Hub Namespace Network Rule Set.", @@ -1492,14 +1492,14 @@ "type": "array", "defaultValue": [], "metadata": { - "description": "Optional. List virtual network rules. It will not be set if publicNetworkAccess is \"Disabled\". Otherwise, when used, defaultAction will be set to \"Deny\"." + "description": "Optional. Contains an array of objects of subnet resource IDs that this Event Hub Namespace is exposed to via Service Endpoints. You can enable the `ignoreMissingVnetServiceEndpoint` if you wish to add this virtual network to Event Hub Namespace but do not have an existing service endpoint. It will not be set if publicNetworkAccess is \"Disabled\". Otherwise, when used, defaultAction will be set to \"Deny\"." } }, "ipRules": { "type": "array", "defaultValue": [], "metadata": { - "description": "Optional. List of IpRules. It will not be set if publicNetworkAccess is \"Disabled\". Otherwise, when used, defaultAction will be set to \"Deny\"." + "description": "Optional. Contains an array of objects for the public IP ranges you want to allow via the Event Hub Namespace firewall. Supports IPv4 address or CIDR. It will not be set if publicNetworkAccess is \"Disabled\". Otherwise, when used, defaultAction will be set to \"Deny\"." } }, "enableDefaultTelemetry": { @@ -1625,8 +1625,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "14580007913383558904" + "version": "0.22.6.54827", + "templateHash": "2884140170473394983" }, "name": "Private Endpoints", "description": "This module deploys a Private Endpoint.", @@ -1825,8 +1825,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "2469208411936339153" + "version": "0.22.6.54827", + "templateHash": "5610247137574346230" }, "name": "Private Endpoint Private DNS Zone Groups", "description": "This module deploys a Private Endpoint Private DNS Zone Group.", @@ -1963,8 +1963,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "13032708393704093995" + "version": "0.22.6.54827", + "templateHash": "14351187799927334028" } }, "parameters": { @@ -2177,8 +2177,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "1887246320785357809" + "version": "0.22.6.54827", + "templateHash": "3195673782424292860" } }, "parameters": { diff --git a/modules/event-hub/namespace/network-rule-set/README.md b/modules/event-hub/namespace/network-rule-set/README.md index 4be4872512..4d10778ca7 100644 --- a/modules/event-hub/namespace/network-rule-set/README.md +++ b/modules/event-hub/namespace/network-rule-set/README.md @@ -29,54 +29,12 @@ This module deploys an Event Hub Namespace Network Rule Set. | :-- | :-- | :-- | :-- | :-- | | `defaultAction` | string | `'Allow'` | `[Allow, Deny]` | Default Action for Network Rule Set. Default is "Allow". It will not be set if publicNetworkAccess is "Disabled". Otherwise, it will be set to "Deny" if ipRules or virtualNetworkRules are being used. | | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via a Globally Unique Identifier (GUID). | -| `ipRules` | array | `[]` | | List of IpRules. It will not be set if publicNetworkAccess is "Disabled". Otherwise, when used, defaultAction will be set to "Deny". | +| `ipRules` | array | `[]` | | An array of objects for the public IP ranges you want to allow via the Event Hub Namespace firewall. Supports IPv4 address or CIDR. It will not be set if publicNetworkAccess is "Disabled". Otherwise, when used, defaultAction will be set to "Deny". | | `publicNetworkAccess` | string | `'Enabled'` | `[Disabled, Enabled]` | This determines if traffic is allowed over public network. Default is "Enabled". If set to "Disabled", traffic to this namespace will be restricted over Private Endpoints only and network rules will not be applied. | | `trustedServiceAccessEnabled` | bool | `True` | | Value that indicates whether Trusted Service Access is enabled or not. Default is "true". It will not be set if publicNetworkAccess is "Disabled". | -| `virtualNetworkRules` | array | `[]` | | List virtual network rules. It will not be set if publicNetworkAccess is "Disabled". Otherwise, when used, defaultAction will be set to "Deny". | +| `virtualNetworkRules` | array | `[]` | | An array of subnet resource ID objects that this Event Hub Namespace is exposed to via Service Endpoints. You can enable the `ignoreMissingVnetServiceEndpoint` if you wish to add this virtual network to Event Hub Namespace but do not have an existing service endpoint. It will not be set if publicNetworkAccess is "Disabled". Otherwise, when used, defaultAction will be set to "Deny". | -### Parameter Usage: `` - -Contains an array of subnets that this Event Hub Namespace is exposed to via Service Endpoints. You can enable the `ignoreMissingVnetServiceEndpoint` if you wish to add this virtual network to Event Hub Namespace but do not have an existing service endpoint. - -```json -"virtualNetworkRules": { - "value": [ - { - "ignoreMissingVnetServiceEndpoint": true, - "subnet": { - "id": "/subscriptions/[[subscriptionId]]/resourcegroups/[[resourceGroupName]]/providers/Microsoft.Network/virtualNetworks/[[virtualNetworkName]]/subnets/[[subnetName1]]" - } - }, - { - "ignoreMissingVnetServiceEndpoint": false, - "subnet": { - "id": "/subscriptions/[[subscriptionId]]/resourcegroups/[[resourceGroupName]]/providers/Microsoft.Network/virtualNetworks/[[virtualNetworkName]]/subnets/[[subnetName2]]" - } - } - ] -} -``` - -### Parameter Usage: `` - -Contains an array of objects for the public IP ranges you want to allow via the Event Hub Namespace firewall. Supports IPv4 address or CIDR. - -```json -"ipRules": { - "value": [ - { - "action": "Allow", - "ipMask": "a.b.c.d/e" - }, - { - "action": "Allow", - "ipMask": "x.x.x.x/x" - } - ] -} -``` - ## Outputs | Output Name | Type | Description | diff --git a/modules/event-hub/namespace/network-rule-set/main.bicep b/modules/event-hub/namespace/network-rule-set/main.bicep index c36bd58609..c84fe076bd 100644 --- a/modules/event-hub/namespace/network-rule-set/main.bicep +++ b/modules/event-hub/namespace/network-rule-set/main.bicep @@ -22,10 +22,10 @@ param defaultAction string = 'Allow' @description('Optional. Value that indicates whether Trusted Service Access is enabled or not. Default is "true". It will not be set if publicNetworkAccess is "Disabled".') param trustedServiceAccessEnabled bool = true -@description('Optional. List virtual network rules. It will not be set if publicNetworkAccess is "Disabled". Otherwise, when used, defaultAction will be set to "Deny".') +@description('Optional. An array of subnet resource ID objects that this Event Hub Namespace is exposed to via Service Endpoints. You can enable the `ignoreMissingVnetServiceEndpoint` if you wish to add this virtual network to Event Hub Namespace but do not have an existing service endpoint. It will not be set if publicNetworkAccess is "Disabled". Otherwise, when used, defaultAction will be set to "Deny".') param virtualNetworkRules array = [] -@description('Optional. List of IpRules. It will not be set if publicNetworkAccess is "Disabled". Otherwise, when used, defaultAction will be set to "Deny".') +@description('Optional. An array of objects for the public IP ranges you want to allow via the Event Hub Namespace firewall. Supports IPv4 address or CIDR. It will not be set if publicNetworkAccess is "Disabled". Otherwise, when used, defaultAction will be set to "Deny".') param ipRules array = [] @description('Optional. Enable telemetry via a Globally Unique Identifier (GUID).') diff --git a/modules/event-hub/namespace/network-rule-set/main.json b/modules/event-hub/namespace/network-rule-set/main.json index 1c3f921460..ec22360d6f 100644 --- a/modules/event-hub/namespace/network-rule-set/main.json +++ b/modules/event-hub/namespace/network-rule-set/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "7109134385195243655" + "version": "0.22.6.54827", + "templateHash": "17411238681152908216" }, "name": "Event Hub Namespace Network Rule Sets", "description": "This module deploys an Event Hub Namespace Network Rule Set.", @@ -51,14 +51,14 @@ "type": "array", "defaultValue": [], "metadata": { - "description": "Optional. List virtual network rules. It will not be set if publicNetworkAccess is \"Disabled\". Otherwise, when used, defaultAction will be set to \"Deny\"." + "description": "Optional. Contains an array of objects of subnet resource IDs that this Event Hub Namespace is exposed to via Service Endpoints. You can enable the `ignoreMissingVnetServiceEndpoint` if you wish to add this virtual network to Event Hub Namespace but do not have an existing service endpoint. It will not be set if publicNetworkAccess is \"Disabled\". Otherwise, when used, defaultAction will be set to \"Deny\"." } }, "ipRules": { "type": "array", "defaultValue": [], "metadata": { - "description": "Optional. List of IpRules. It will not be set if publicNetworkAccess is \"Disabled\". Otherwise, when used, defaultAction will be set to \"Deny\"." + "description": "Optional. Contains an array of objects for the public IP ranges you want to allow via the Event Hub Namespace firewall. Supports IPv4 address or CIDR. It will not be set if publicNetworkAccess is \"Disabled\". Otherwise, when used, defaultAction will be set to \"Deny\"." } }, "enableDefaultTelemetry": { diff --git a/modules/healthcare-apis/workspace/README.md b/modules/healthcare-apis/workspace/README.md index a0803593be..a27a82037a 100644 --- a/modules/healthcare-apis/workspace/README.md +++ b/modules/healthcare-apis/workspace/README.md @@ -9,6 +9,7 @@ This module deploys a Healthcare API Workspace. - [Outputs](#Outputs) - [Cross-referenced modules](#Cross-referenced-modules) - [Deployment examples](#Deployment-examples) +- [Notes](#Notes) ## Resource Types @@ -143,156 +144,6 @@ fhirServices: [

-### Parameter Usage: `dicomservices` - -Create a DICOM service with the workspace. - -

- -Parameter JSON format - -```json -"dicomServices": { - "value": [ - { - "name": "[[namePrefix]]-az-dicom-x-001", - "workspaceName": "[[namePrefix]]001", - "corsOrigins": [ "*" ], - "corsHeaders": [ "*" ], - "corsMethods": [ "GET" ], - "corsMaxAge": 600, - "corsAllowCredentials": false, - "location": "[[location]]", - "diagnosticStorageAccountId": "[[storageAccountResourceId]]", - "diagnosticWorkspaceId": "[[logAnalyticsWorkspaceResourceId]]", - "diagnosticEventHubAuthorizationRuleId": "[[eventHubAuthorizationRuleId]]", - "diagnosticEventHubName": "[[eventHubNamespaceEventHubName]]", - "publicNetworkAccess": "Enabled", - "enableDefaultTelemetry": false, - "systemAssignedIdentity": true, - "userAssignedIdentities": { - "[[managedIdentityResourceId]]": {} - } - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -dicomServices: [ - { - name: '[[namePrefix]]-az-dicom-x-001' - workspaceName: '[[namePrefix]]001' - corsOrigins: [ '*' ] - corsHeaders: [ '*' ] - corsMethods: [ 'GET' ] - corsMaxAge: 600 - corsAllowCredentials: false - location: location - diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId - diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId - diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId - diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName - publicNetworkAccess: 'Enabled' - enableDefaultTelemetry: enableDefaultTelemetry - systemAssignedIdentity: true - userAssignedIdentities: { - '${resourceGroupResources.outputs.managedIdentityResourceId}': {} - } - } -] -``` - -
-

- -### Parameter Usage: `iotconnectors` - -Create an IOT Connector (MedTech) service with the workspace. - -

- -Parameter JSON format - -```json -"iotConnectors": { - "value": [ - { - "name": "[[namePrefix]]-az-iomt-x-001", - "workspaceName": "[[namePrefix]]001", - "corsOrigins": [ "*" ], - "corsHeaders": [ "*" ], - "corsMethods": [ "GET" ], - "corsMaxAge": 600, - "corsAllowCredentials": false, - "location": "[[location]]", - "diagnosticStorageAccountId": "[[storageAccountResourceId]]", - "diagnosticWorkspaceId": "[[logAnalyticsWorkspaceResourceId]]", - "diagnosticEventHubAuthorizationRuleId": "[[eventHubAuthorizationRuleId]]", - "diagnosticEventHubName": "[[eventHubNamespaceEventHubName]]", - "publicNetworkAccess": "Enabled", - "enableDefaultTelemetry": false, - "systemAssignedIdentity": true, - "userAssignedIdentities": { - "[[managedIdentityResourceId]]": {} - }, - "eventHubName": "[[eventHubName]]", - "consumerGroup": "[[consumerGroup]]", - "eventHubNamespaceName": "[[eventHubNamespaceName]]", - "deviceMapping": "[[deviceMapping]]", - "destinationMapping": "[[destinationMapping]]", - "fhirServiceResourceId": "[[fhirServiceResourceId]]", - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -iotConnectors: [ - { - name: '[[namePrefix]]-az-iomt-x-001' - workspaceName: '[[namePrefix]]001' - corsOrigins: [ '*' ] - corsHeaders: [ '*' ] - corsMethods: [ 'GET' ] - corsMaxAge: 600 - corsAllowCredentials: false - location: location - diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId - diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId - diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId - diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName - publicNetworkAccess: 'Enabled' - enableDefaultTelemetry: enableDefaultTelemetry - systemAssignedIdentity: true - userAssignedIdentities: { - '${resourceGroupResources.outputs.managedIdentityResourceId}': {} - } - eventHubName: '[[eventHubName]]' - consumerGroup: '[[consumerGroup]]' - eventHubNamespaceName: '[[eventHubNamespaceName]]' - deviceMapping: '[[deviceMapping]]' - destinationMapping: '[[destinationMapping]]' - fhirServiceResourceId: '[[fhirServiceResourceId]]' - } -] -``` - -
-

- ### Parameter Usage: `roleAssignments` Create a role assignment for the given resource. If you want to assign a service principal / managed identity that is created in the same deployment, make sure to also specify the `'principalType'` parameter and set it to `'ServicePrincipal'`. This will ensure the role assignment waits for the principal's propagation in Azure. @@ -678,3 +529,87 @@ module workspace './healthcare-apis/workspace/main.bicep' = {

+ + +## Notes + +### Parameter Usage: `iotconnectors` + +Create an IOT Connector (MedTech) service with the workspace. + +

+ +Parameter JSON format + +```json +"iotConnectors": { + "value": [ + { + "name": "[[namePrefix]]-az-iomt-x-001", + "workspaceName": "[[namePrefix]]001", + "corsOrigins": [ "*" ], + "corsHeaders": [ "*" ], + "corsMethods": [ "GET" ], + "corsMaxAge": 600, + "corsAllowCredentials": false, + "location": "[[location]]", + "diagnosticStorageAccountId": "[[storageAccountResourceId]]", + "diagnosticWorkspaceId": "[[logAnalyticsWorkspaceResourceId]]", + "diagnosticEventHubAuthorizationRuleId": "[[eventHubAuthorizationRuleId]]", + "diagnosticEventHubName": "[[eventHubNamespaceEventHubName]]", + "publicNetworkAccess": "Enabled", + "enableDefaultTelemetry": false, + "systemAssignedIdentity": true, + "userAssignedIdentities": { + "[[managedIdentityResourceId]]": {} + }, + "eventHubName": "[[eventHubName]]", + "consumerGroup": "[[consumerGroup]]", + "eventHubNamespaceName": "[[eventHubNamespaceName]]", + "deviceMapping": "[[deviceMapping]]", + "destinationMapping": "[[destinationMapping]]", + "fhirServiceResourceId": "[[fhirServiceResourceId]]", + } + ] +} +``` + +
+ +
+ +Bicep format + +```bicep +iotConnectors: [ + { + name: '[[namePrefix]]-az-iomt-x-001' + workspaceName: '[[namePrefix]]001' + corsOrigins: [ '*' ] + corsHeaders: [ '*' ] + corsMethods: [ 'GET' ] + corsMaxAge: 600 + corsAllowCredentials: false + location: location + diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId + diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName + publicNetworkAccess: 'Enabled' + enableDefaultTelemetry: enableDefaultTelemetry + systemAssignedIdentity: true + userAssignedIdentities: { + '${resourceGroupResources.outputs.managedIdentityResourceId}': {} + } + eventHubName: '[[eventHubName]]' + consumerGroup: '[[consumerGroup]]' + eventHubNamespaceName: '[[eventHubNamespaceName]]' + deviceMapping: '[[deviceMapping]]' + destinationMapping: '[[destinationMapping]]' + fhirServiceResourceId: '[[fhirServiceResourceId]]' + } +] +``` + +
+

diff --git a/modules/healthcare-apis/workspace/fhirservice/README.md b/modules/healthcare-apis/workspace/fhirservice/README.md index 894e8c400c..511faf3271 100644 --- a/modules/healthcare-apis/workspace/fhirservice/README.md +++ b/modules/healthcare-apis/workspace/fhirservice/README.md @@ -8,6 +8,7 @@ This module deploys a Healthcare API Workspace FHIR Service. - [Parameters](#Parameters) - [Outputs](#Outputs) - [Cross-referenced modules](#Cross-referenced-modules) +- [Notes](#Notes) ## Resource Types @@ -71,46 +72,6 @@ This module deploys a Healthcare API Workspace FHIR Service. | `userAssignedIdentities` | object | `{object}` | | The ID(s) to assign to the resource. | -### Parameter Usage: `acrOciArtifacts` - -You can specify multiple Azure Container OCI artifacts using the following format: - -

- -Parameter JSON format - -```json -"acrOciArtifacts": { - "value": { - [{ - "digest": "sha256:0a2e01852872580b2c2fea9380ff8d7b637d3928783c55beb3f21a6e58d5d108", - "imageName": "myimage:v1", - "loginServer": "myregistry.azurecr.io" - }] - } -} -``` - -
- -
- -Bicep format - -```bicep -acrOciArtifacts: [ - { - digest: 'sha256:0a2e01852872580b2c2fea9380ff8d7b637d3928783c55beb3f21a6e58d5d108' - imageName: 'myimage:v1' - loginServer: 'myregistry.azurecr.io' - } -] -``` - -
- -

- ### Parameter Usage: `userAssignedIdentities` You can specify multiple user assigned identities to a resource by providing additional resource IDs using the following format: @@ -291,3 +252,45 @@ userAssignedIdentities: { ## Cross-referenced modules _None_ + +## Notes + +### Parameter Usage: `acrOciArtifacts` + +You can specify multiple Azure Container OCI artifacts using the following format: + +

+ +Parameter JSON format + +```json +"acrOciArtifacts": { + "value": { + [{ + "digest": "sha256:0a2e01852872580b2c2fea9380ff8d7b637d3928783c55beb3f21a6e58d5d108", + "imageName": "myimage:v1", + "loginServer": "myregistry.azurecr.io" + }] + } +} +``` + +
+ +
+ +Bicep format + +```bicep +acrOciArtifacts: [ + { + digest: 'sha256:0a2e01852872580b2c2fea9380ff8d7b637d3928783c55beb3f21a6e58d5d108' + imageName: 'myimage:v1' + loginServer: 'myregistry.azurecr.io' + } +] +``` + +
+ +

diff --git a/modules/healthcare-apis/workspace/iotconnector/README.md b/modules/healthcare-apis/workspace/iotconnector/README.md index 81f646817d..2537a702dc 100644 --- a/modules/healthcare-apis/workspace/iotconnector/README.md +++ b/modules/healthcare-apis/workspace/iotconnector/README.md @@ -8,6 +8,7 @@ This module deploys a Healthcare API Workspace IoT Connector. - [Parameters](#Parameters) - [Outputs](#Outputs) - [Cross-referenced modules](#Cross-referenced-modules) +- [Notes](#Notes) ## Resource Types @@ -56,6 +57,97 @@ This module deploys a Healthcare API Workspace IoT Connector. | `userAssignedIdentities` | object | `{object}` | | The ID(s) to assign to the resource. | +### Parameter Usage: `tags` + +Tag names and tag values can be provided as needed. A tag can be left without a value. + +

+ +Parameter JSON format + +```json +"tags": { + "value": { + "Environment": "Non-Prod", + "Contact": "test.user@testcompany.com", + "PurchaseOrder": "1234", + "CostCenter": "7890", + "ServiceName": "DeploymentValidation", + "Role": "DeploymentValidation" + } +} +``` + +
+ +
+ +Bicep format + +```bicep +tags: { + Environment: 'Non-Prod' + Contact: 'test.user@testcompany.com' + PurchaseOrder: '1234' + CostCenter: '7890' + ServiceName: 'DeploymentValidation' + Role: 'DeploymentValidation' +} +``` + +
+

+ +### Parameter Usage: `userAssignedIdentities` + +You can specify multiple user assigned identities to a resource by providing additional resource IDs using the following format: + +

+ +Parameter JSON format + +```json +"userAssignedIdentities": { + "value": { + "/subscriptions/[[subscriptionId]]/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-001": {}, + "/subscriptions/[[subscriptionId]]/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-002": {} + } +} +``` + +
+ +
+ +Bicep format + +```bicep +userAssignedIdentities: { + '/subscriptions/[[subscriptionId]]/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-001': {} + '/subscriptions/[[subscriptionId]]/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-002': {} +} +``` + +
+

+ +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `location` | string | The location the resource was deployed into. | +| `name` | string | The name of the medtech service. | +| `resourceGroupName` | string | The resource group where the namespace is deployed. | +| `resourceId` | string | The resource ID of the medtech service. | +| `systemAssignedPrincipalId` | string | The principal ID of the system assigned identity. | +| `workspaceName` | string | The name of the medtech workspace. | + +## Cross-referenced modules + +_None_ + +## Notes + ### Parameter Usage: `deviceMapping` You can specify a collection of device mapping using the following format: @@ -192,92 +284,3 @@ destinationMapping: {

- -### Parameter Usage: `tags` - -Tag names and tag values can be provided as needed. A tag can be left without a value. - -

- -Parameter JSON format - -```json -"tags": { - "value": { - "Environment": "Non-Prod", - "Contact": "test.user@testcompany.com", - "PurchaseOrder": "1234", - "CostCenter": "7890", - "ServiceName": "DeploymentValidation", - "Role": "DeploymentValidation" - } -} -``` - -
- -
- -Bicep format - -```bicep -tags: { - Environment: 'Non-Prod' - Contact: 'test.user@testcompany.com' - PurchaseOrder: '1234' - CostCenter: '7890' - ServiceName: 'DeploymentValidation' - Role: 'DeploymentValidation' -} -``` - -
-

- -### Parameter Usage: `userAssignedIdentities` - -You can specify multiple user assigned identities to a resource by providing additional resource IDs using the following format: - -

- -Parameter JSON format - -```json -"userAssignedIdentities": { - "value": { - "/subscriptions/[[subscriptionId]]/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-001": {}, - "/subscriptions/[[subscriptionId]]/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-002": {} - } -} -``` - -
- -
- -Bicep format - -```bicep -userAssignedIdentities: { - '/subscriptions/[[subscriptionId]]/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-001': {} - '/subscriptions/[[subscriptionId]]/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-sxx-az-msi-x-002': {} -} -``` - -
-

- -## Outputs - -| Output Name | Type | Description | -| :-- | :-- | :-- | -| `location` | string | The location the resource was deployed into. | -| `name` | string | The name of the medtech service. | -| `resourceGroupName` | string | The resource group where the namespace is deployed. | -| `resourceId` | string | The resource ID of the medtech service. | -| `systemAssignedPrincipalId` | string | The principal ID of the system assigned identity. | -| `workspaceName` | string | The name of the medtech workspace. | - -## Cross-referenced modules - -_None_ diff --git a/modules/healthcare-apis/workspace/iotconnector/fhirdestination/README.md b/modules/healthcare-apis/workspace/iotconnector/fhirdestination/README.md index 7064bfd1b7..9a81a65c63 100644 --- a/modules/healthcare-apis/workspace/iotconnector/fhirdestination/README.md +++ b/modules/healthcare-apis/workspace/iotconnector/fhirdestination/README.md @@ -8,6 +8,7 @@ This module deploys a Healthcare API Workspace IoT Connector FHIR Destination. - [Parameters](#Parameters) - [Outputs](#Outputs) - [Cross-referenced modules](#Cross-referenced-modules) +- [Notes](#Notes) ## Resource Types @@ -41,6 +42,22 @@ This module deploys a Healthcare API Workspace IoT Connector FHIR Destination. | `resourceIdentityResolutionType` | string | `'Lookup'` | `[Create, Lookup]` | Determines how resource identity is resolved on the destination. | +## Outputs + +| Output Name | Type | Description | +| :-- | :-- | :-- | +| `iotConnectorName` | string | The name of the medtech service. | +| `location` | string | The location the resource was deployed into. | +| `name` | string | The name of the FHIR destination. | +| `resourceGroupName` | string | The resource group where the namespace is deployed. | +| `resourceId` | string | The resource ID of the FHIR destination. | + +## Cross-referenced modules + +_None_ + +## Notes + ### Parameter Usage: `destinationMapping` You can specify a collection of destination mapping using the following format: @@ -106,17 +123,3 @@ destinationMapping: { ``` - -## Outputs - -| Output Name | Type | Description | -| :-- | :-- | :-- | -| `iotConnectorName` | string | The name of the medtech service. | -| `location` | string | The location the resource was deployed into. | -| `name` | string | The name of the FHIR destination. | -| `resourceGroupName` | string | The resource group where the namespace is deployed. | -| `resourceId` | string | The resource ID of the FHIR destination. | - -## Cross-referenced modules - -_None_ diff --git a/modules/insights/action-group/.test/common/main.test.bicep b/modules/insights/action-group/.test/common/main.test.bicep index e9130942bf..cbc7e3e4f2 100644 --- a/modules/insights/action-group/.test/common/main.test.bicep +++ b/modules/insights/action-group/.test/common/main.test.bicep @@ -62,6 +62,13 @@ module testDeployment '../../main.bicep' = { useCommonAlertSchema: true } ] + smsReceivers: [ + { + countryCode: '1' + name: 'TestUser_-SMSAction-' + phoneNumber: '2345678901' + } + ] roleAssignments: [ { principalIds: [ @@ -70,13 +77,6 @@ module testDeployment '../../main.bicep' = { roleDefinitionIdOrName: 'Reader' } ] - smsReceivers: [ - { - countryCode: '1' - name: 'TestUser_-SMSAction-' - phoneNumber: '2345678901' - } - ] tags: { 'hidden-title': 'This is visible in the resource name' Environment: 'Non-Prod' diff --git a/modules/insights/action-group/README.md b/modules/insights/action-group/README.md index 0d64d6ac5e..1d1dadea2f 100644 --- a/modules/insights/action-group/README.md +++ b/modules/insights/action-group/README.md @@ -9,6 +9,7 @@ This module deploys an Action Group. - [Outputs](#Outputs) - [Cross-referenced modules](#Cross-referenced-modules) - [Deployment examples](#Deployment-examples) +- [Notes](#Notes) ## Resource Types @@ -47,71 +48,6 @@ This module deploys an Action Group. | `webhookReceivers` | array | `[]` | The list of webhook receivers that are part of this action group. | -### Parameter Usage: receivers - -See [Documentation](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Insights/2019-06-01/actiongroups) for description of parameters usage and syntax. - -

- -Parameter JSON file - -```json -"emailReceivers": { - "value": [ - { - "name": "TestUser_-EmailAction-", - "emailAddress": "test.user@testcompany.com", - "useCommonAlertSchema": true - }, - { - "name": "TestUser2", - "emailAddress": "test.user2@testcompany.com", - "useCommonAlertSchema": true - } - ] -}, -"smsReceivers": { - "value": [ - { - "name": "TestUser_-SMSAction-", - "countryCode": "1", - "phoneNumber": "2345678901" - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -emailReceivers: [ - { - name: 'TestUser_-EmailAction-' - emailAddress: 'test.user@testcompany.com' - useCommonAlertSchema: true - } - { - name: 'TestUser2' - emailAddress: 'test.user2@testcompany.com' - useCommonAlertSchema: true - } -] -smsReceivers: [ - { - name: 'TestUser_-SMSAction-' - countryCode: '1' - phoneNumber: '2345678901' - } -] -``` - -
-

- ### Parameter Usage: `roleAssignments` Create a role assignment for the given resource. If you want to assign a service principal / managed identity that is created in the same deployment, make sure to also specify the `'principalType'` parameter and set it to `'ServicePrincipal'`. This will ensure the role assignment waits for the principal's propagation in Azure. @@ -212,18 +148,6 @@ tags: {

-### Additional notes on parameters - -- Receiver name must be unique across the ActionGroup -- Email, SMS, Azure App push and Voice can be grouped in the same Action. To do so, the `name` field of the receivers must be in the `RecName_-ActionType-` format where: - - _RecName_ is the name you want to give to the Action - - _ActionType_ is one of the action types that can be grouped together. Possible values are: - - EmailAction - - SMSAction - - AzureAppAction - - VoiceAction -- To understand the impact of the `useCommonAlertSchema` field, see [here](https://learn.microsoft.com/en-us/azure/azure-monitor/platform/alerts-common-schema) - ## Outputs | Output Name | Type | Description | @@ -413,3 +337,19 @@ module actionGroup './insights/action-group/main.bicep' = {

+ + +## Notes + +### Module Usage Considerations + +- Receiver name must be unique across the ActionGroup. +- Email, SMS, Azure App push and Voice can be grouped in the same Action. To do so, the `name` field of the receivers must be in the `RecName_-ActionType-` format where: + - _RecName_ is the name you want to give to the Action + - _ActionType_ is one of the action types that can be grouped together. Possible values are: + - EmailAction + - SMSAction + - AzureAppAction + - VoiceAction + +- To understand the impact of the `useCommonAlertSchema` field, see [documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/platform/alerts-common-schema). diff --git a/modules/insights/action-group/main.json b/modules/insights/action-group/main.json index 172be30385..2a88b67d97 100644 --- a/modules/insights/action-group/main.json +++ b/modules/insights/action-group/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "13796806533868847082" + "version": "0.22.6.54827", + "templateHash": "11117499491590178682" }, "name": "Action Groups", "description": "This module deploys an Action Group.", @@ -200,8 +200,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "2628891413283540922" + "version": "0.22.6.54827", + "templateHash": "3593800460322974765" } }, "parameters": { diff --git a/modules/insights/activity-log-alert/.test/common/main.test.bicep b/modules/insights/activity-log-alert/.test/common/main.test.bicep index f61430c448..f95e1529af 100644 --- a/modules/insights/activity-log-alert/.test/common/main.test.bicep +++ b/modules/insights/activity-log-alert/.test/common/main.test.bicep @@ -50,19 +50,36 @@ module testDeployment '../../main.bicep' = { params: { enableDefaultTelemetry: enableDefaultTelemetry name: '${namePrefix}${serviceShort}001' - conditions: [ { - equals: 'Administrative' field: 'category' + equals: 'ServiceHealth' + } + { + anyOf: [ + { + field: 'properties.incidentType' + equals: 'Incident' + } + { + field: 'properties.incidentType' + equals: 'Maintenance' + } + ] } { - equals: 'microsoft.compute/virtualmachines' - field: 'resourceType' + field: 'properties.impactedServices[*].ServiceName' + containsAny: [ + 'Action Groups' + 'Activity Logs & Alerts' + ] } { - equals: 'Microsoft.Compute/virtualMachines/performMaintenance/action' - field: 'operationName' + field: 'properties.impactedServices[*].ImpactedRegions[*].RegionName' + containsAny: [ + 'West Europe' + 'Global' + ] } ] actions: [ diff --git a/modules/insights/activity-log-alert/README.md b/modules/insights/activity-log-alert/README.md index 46d8a409c5..caa33005cc 100644 --- a/modules/insights/activity-log-alert/README.md +++ b/modules/insights/activity-log-alert/README.md @@ -23,7 +23,7 @@ This module deploys an Activity Log Alert. | Parameter Name | Type | Description | | :-- | :-- | :-- | -| `conditions` | array | The condition that will cause this alert to activate. Array of objects. | +| `conditions` | array | An Array of objects containing conditions that will cause this alert to activate. Conditions can also be combined with logical operators `allOf` and `anyOf`. Each condition can specify only one field between `equals` and `containsAny`. An alert rule condition must have exactly one category (Administrative, ServiceHealth, ResourceHealth, Alert, Autoscale, Recommendation, Security, or Policy). | | `name` | string | The name of the alert. | **Optional parameters** @@ -40,252 +40,6 @@ This module deploys an Activity Log Alert. | `tags` | object | `{object}` | Tags of the resource. | -### Parameter Usage: actions - -

- -Parameter JSON format - -```json -"actions": { - "value": [ - { - "actionGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rgName/providers/Microsoft.Insights/actiongroups/actionGroupName", - "webhookProperties": {} - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -actions: [ - { - actionGroupId: '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rgName/providers/Microsoft.Insights/actiongroups/actionGroupName' - webhookProperties: {} - } -] -``` - -
-

- -`webhookProperties` is optional. - -If you do only want to provide actionGroupIds, a shorthand use of the parameter is available. - -

- -Parameter JSON format - -```json -"actions": { - "value": [ - "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rgName/providers/Microsoft.Insights/actiongroups/actionGroupName" - ] -} -``` - -
- -
- -Bicep format - -```bicep -actions: [ - '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rgName/providers/Microsoft.Insights/actiongroups/actionGroupName' -] -``` - -
-

- -### Parameter Usage: conditions - -**Conditions can also be combined with logical operators `allOf` and `anyOf`** - - -

- -Parameter JSON format - -```json -{ - "field": "string", - "equals": "string", - "containsAny": "array" -} -``` - -
- -
- -Bicep format - -```bicep -{ - field: 'string' - equals: 'string' - containsAny: 'array' -} -``` - -
-

- -Each condition can specify only one field between `equals` and `containsAny`. - -| Parameter Name | Type | Possible values | Description | -| :------------- | :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- | -| `field` | string | `resourceId`,
`category`,
`caller`,
`level`,
`operationName`,
`resourceGroup`,
`resourceProvider`,
`status`,
`subStatus`,
`resourceType`,
or anything beginning with `properties.` | Required. The name of the field that this condition will examine. | -| `equals` | string | | Optional (Alternative to `containsAny`). The value to confront with. | -| `containsAny` | array of strings | | Optional (Alternative to `equals`). Condition will be satisfied if value of the field in the event is within one of the specified here. | - -**Sample** - -
- -Parameter JSON format - -```json -"conditions": { - "value": [ - { - "field": "category", - "equals": "Administrative" - }, - { - "field": "resourceType", - "equals": "microsoft.compute/virtualmachines" - }, - { - "field": "operationName", - "equals": "Microsoft.Compute/virtualMachines/performMaintenance/action" - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -conditions: [ - { - field: 'category' - equals: 'Administrative' - } - { - field: 'resourceType' - equals: 'microsoft.compute/virtualmachines' - } - { - field: 'operationName' - equals: 'Microsoft.Compute/virtualMachines/performMaintenance/action' - } -] -``` - -
-

- -**Sample 2** - -

- -Parameter JSON format - -```json -"conditions":{ - "value": [ - { - "field": "category", - "equals": "ServiceHealth" - }, - { - "anyOf": [ - { - "field": "properties.incidentType", - "equals": "Incident" - }, - { - "field": "properties.incidentType", - "equals": "Maintenance" - } - ] - }, - { - "field": "properties.impactedServices[*].ServiceName", - "containsAny": [ - "Action Groups", - "Activity Logs & Alerts" - ] - }, - { - "field": "properties.impactedServices[*].ImpactedRegions[*].RegionName", - "containsAny": [ - "West Europe", - "Global" - ] - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -conditions: [ - { - field: 'category' - equals: 'ServiceHealth' - } - { - anyOf: [ - { - field: 'properties.incidentType' - equals: 'Incident' - } - { - field: 'properties.incidentType' - equals: 'Maintenance' - } - ] - } - { - field: 'properties.impactedServices[*].ServiceName' - containsAny: [ - 'Action Groups' - 'Activity Logs & Alerts' - ] - } - { - field: 'properties.impactedServices[*].ImpactedRegions[*].RegionName' - containsAny: [ - 'West Europe' - 'Global' - ] - } -] -``` - -
-

- ### Parameter Usage: `roleAssignments` Create a role assignment for the given resource. If you want to assign a service principal / managed identity that is created in the same deployment, make sure to also specify the `'principalType'` parameter and set it to `'ServicePrincipal'`. This will ensure the role assignment waits for the principal's propagation in Azure. @@ -419,16 +173,34 @@ module activityLogAlert './insights/activity-log-alert/main.bicep' = { // Required parameters conditions: [ { - equals: 'Administrative' + equals: 'ServiceHealth' field: 'category' } { - equals: 'microsoft.compute/virtualmachines' - field: 'resourceType' + anyOf: [ + { + equals: 'Incident' + field: 'properties.incidentType' + } + { + equals: 'Maintenance' + field: 'properties.incidentType' + } + ] + } + { + containsAny: [ + 'Action Groups' + 'Activity Logs & Alerts' + ] + field: 'properties.impactedServices[*].ServiceName' } { - equals: 'Microsoft.Compute/virtualMachines/performMaintenance/action' - field: 'operationName' + containsAny: [ + 'Global' + 'West Europe' + ] + field: 'properties.impactedServices[*].ImpactedRegions[*].RegionName' } ] name: 'ialacom001' @@ -476,16 +248,34 @@ module activityLogAlert './insights/activity-log-alert/main.bicep' = { "conditions": { "value": [ { - "equals": "Administrative", + "equals": "ServiceHealth", "field": "category" }, { - "equals": "microsoft.compute/virtualmachines", - "field": "resourceType" + "anyOf": [ + { + "equals": "Incident", + "field": "properties.incidentType" + }, + { + "equals": "Maintenance", + "field": "properties.incidentType" + } + ] + }, + { + "containsAny": [ + "Action Groups", + "Activity Logs & Alerts" + ], + "field": "properties.impactedServices[*].ServiceName" }, { - "equals": "Microsoft.Compute/virtualMachines/performMaintenance/action", - "field": "operationName" + "containsAny": [ + "Global", + "West Europe" + ], + "field": "properties.impactedServices[*].ImpactedRegions[*].RegionName" } ] }, diff --git a/modules/insights/activity-log-alert/main.bicep b/modules/insights/activity-log-alert/main.bicep index c9aa792869..b31bb74665 100644 --- a/modules/insights/activity-log-alert/main.bicep +++ b/modules/insights/activity-log-alert/main.bicep @@ -22,7 +22,7 @@ param scopes array = [ @description('Optional. The list of actions to take when alert triggers.') param actions array = [] -@description('Required. The condition that will cause this alert to activate. Array of objects.') +@description('Required. An Array of objects containing conditions that will cause this alert to activate. Conditions can also be combined with logical operators `allOf` and `anyOf`. Each condition can specify only one field between `equals` and `containsAny`. An alert rule condition must have exactly one category (Administrative, ServiceHealth, ResourceHealth, Alert, Autoscale, Recommendation, Security, or Policy).') param conditions array @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') diff --git a/modules/insights/activity-log-alert/main.json b/modules/insights/activity-log-alert/main.json index 3ad64ea733..b3d35d5ff4 100644 --- a/modules/insights/activity-log-alert/main.json +++ b/modules/insights/activity-log-alert/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "16456832175233219235" + "version": "0.22.6.54827", + "templateHash": "7845044983132371204" }, "name": "Activity Log Alerts", "description": "This module deploys an Activity Log Alert.", @@ -58,7 +58,7 @@ "conditions": { "type": "array", "metadata": { - "description": "Required. The condition that will cause this alert to activate. Array of objects." + "description": "Required. An Array of objects containing conditions that will cause this alert to activate. Conditions can also be combined with logical operators `allOf` and `anyOf`. Each condition can specify only one field between `equals` and `containsAny`. An alert rule condition must have exactly one category (Administrative, ServiceHealth, ResourceHealth, Alert, Autoscale, Recommendation, Security, or Policy)." } }, "roleAssignments": { @@ -162,8 +162,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "441111163887526316" + "version": "0.22.6.54827", + "templateHash": "9472664752100118667" } }, "parameters": { diff --git a/modules/insights/metric-alert/README.md b/modules/insights/metric-alert/README.md index 505b63e93f..47d2e0958f 100644 --- a/modules/insights/metric-alert/README.md +++ b/modules/insights/metric-alert/README.md @@ -23,7 +23,7 @@ This module deploys a Metric Alert. | Parameter Name | Type | Description | | :-- | :-- | :-- | -| `criterias` | array | Criterias to trigger the alert. Array of 'Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria' or 'Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria' objects. | +| `criterias` | array | Criterias to trigger the alert. Array of 'Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria' or 'Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria' objects. When using MultipleResourceMultipleMetricCriteria criteria type, some parameters becomes mandatory. It is not possible to convert from SingleResourceMultipleMetricCriteria to MultipleResourceMultipleMetricCriteria. The alert must be deleted and recreated. | | `name` | string | The name of the alert. | **Conditional parameters** @@ -52,216 +52,6 @@ This module deploys a Metric Alert. | `windowSize` | string | `'PT15M'` | `[P1D, PT12H, PT15M, PT1H, PT1M, PT30M, PT5M, PT6H]` | the period of time (in ISO 8601 duration format) that is used to monitor alert activity based on the threshold. | -### Parameter Usage: actions - -

- -Parameter JSON format - -```json -"actions": { - "value": [ - { - "actionGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rgName/providers/Microsoft.Insights/actiongroups/ActionGroupName", - "webhookProperties": {} - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -actions: [ - { - actionGroupId: '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rgName/providers/Microsoft.Insights/actiongroups/ActionGroupName' - webhookProperties: {} - } -] -``` - -
-

- -`webhookProperties` is optional. - -If you do only want to provide actionGroupIds, a shorthand use of the parameter is available. - -

- -Parameter JSON format - -```json -"actions": { - "value": [ - "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rgName/providers/Microsoft.Insights/actiongroups/actionGroupName" - ] -} -``` - -
- - -
- -Bicep format - -```bicep - - -``` - -
- -### Parameter Usage: `criteria` - -**SingleResourceMultipleMetricCriteria** - - -
- -Parameter JSON format - -```json -{ - "criterionType": "string", - "dimensions": [], - "metricName": "string", - "metricNamespace": "string", - "name": "string", - "operator": "string", - "threshold": "integer", - "timeAggregation": "string" -} -``` - -
- - -
- -Bicep format - -```bicep -{ - criterionType: 'string' - dimensions: [] - metricName: 'string' - metricNamespace: 'string' - name: 'string' - operator: 'string' - threshold: 'integer' - timeAggregation: 'string' -} -``` - -
-

- -**MultipleResourceMultipleMetricCriteria** - -

- -Parameter JSON format - -```json -{ - "criterionType": "string", - "dimensions": [], - "metricName": "string", - "metricNamespace": "string", - "name": "string", - "operator": "string", - "threshold": "integer", - "timeAggregation": "string", - "alertSensitivity": "string", - "failingPeriods": { - "minFailingPeriodsToAlert": "integer", - "numberOfEvaluationPeriods": "integer" - }, - "ignoreDataBefore": "string" -} -``` - -
- - -
- -Bicep format - -```bicep -{ - criterionType: 'string' - dimensions: [] - metricName: 'string' - metricNamespace: 'string' - name: 'string' - operator: 'string' - threshold: 'integer' - timeAggregation: 'string' - alertSensitivity: 'string' - failingPeriods: { - minFailingPeriodsToAlert: 'integer' - numberOfEvaluationPeriods: 'integer' - } - ignoreDataBefore: 'string' -} -``` - -
-

- -**Sample** -The following sample can be use both for Single and Multiple criteria. The other parameters are optional. - -

- -Parameter JSON format - -```json -"criterias":{ - "value": [ - { - "criterionType": "StaticThresholdCriterion", - "metricName": "Percentage CPU", - "metricNamespace": "microsoft.compute/virtualmachines", - "name": "HighCPU", - "operator": "GreaterThan", - "threshold": "90", - "timeAggregation": "Average" - } - ] -} -``` - -
- -
- -Bicep format - -```bicep -criterias: [ - { - criterionType: 'StaticThresholdCriterion' - metricName: 'Percentage CPU' - metricNamespace: 'microsoft.compute/virtualmachines' - name: 'HighCPU' - operator: 'GreaterThan' - threshold: '90' - timeAggregation: 'Average' - } -] -``` - -
-

- ### Parameter Usage: `roleAssignments` Create a role assignment for the given resource. If you want to assign a service principal / managed identity that is created in the same deployment, make sure to also specify the `'principalType'` parameter and set it to `'ServicePrincipal'`. This will ensure the role assignment waits for the principal's propagation in Azure. @@ -362,12 +152,6 @@ tags: {

-### Additional notes on parameters - -- When using MultipleResourceMultipleMetricCriteria criteria type, some parameters becomes mandatory (see above) -- MultipleResourceMultipleMetricCriteria is suggested, as additional scopes can be added later -- It's not possible to convert from SingleResourceMultipleMetricCriteria to MultipleResourceMultipleMetricCriteria. Delete and re-create the alert. - ## Outputs | Output Name | Type | Description | diff --git a/modules/insights/metric-alert/main.bicep b/modules/insights/metric-alert/main.bicep index 2cf20873d3..978e41e69e 100644 --- a/modules/insights/metric-alert/main.bicep +++ b/modules/insights/metric-alert/main.bicep @@ -72,7 +72,7 @@ param actions array = [] ]) param alertCriteriaType string = 'Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria' -@description('Required. Criterias to trigger the alert. Array of \'Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\' or \'Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\' objects.') +@description('Required. Criterias to trigger the alert. Array of \'Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\' or \'Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria\' objects. When using MultipleResourceMultipleMetricCriteria criteria type, some parameters becomes mandatory. It is not possible to convert from SingleResourceMultipleMetricCriteria to MultipleResourceMultipleMetricCriteria. The alert must be deleted and recreated.') param criterias array @description('Optional. Array of role assignment objects that contain the \'roleDefinitionIdOrName\' and \'principalId\' to define RBAC role assignments on this resource. In the roleDefinitionIdOrName attribute, you can provide either the display name of the role definition, or its fully qualified ID in the following format: \'/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\'.') diff --git a/modules/insights/metric-alert/main.json b/modules/insights/metric-alert/main.json index bb45999b4b..dd0d30a3f6 100644 --- a/modules/insights/metric-alert/main.json +++ b/modules/insights/metric-alert/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "13551710672251370699" + "version": "0.22.6.54827", + "templateHash": "15731967065620351074" }, "name": "Metric Alerts", "description": "This module deploys a Metric Alert.", @@ -136,7 +136,7 @@ "criterias": { "type": "array", "metadata": { - "description": "Required. Criterias to trigger the alert. Array of 'Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria' or 'Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria' objects." + "description": "Required. Criterias to trigger the alert. Array of 'Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria' or 'Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria' objects. When using MultipleResourceMultipleMetricCriteria criteria type, some parameters becomes mandatory. It is not possible to convert from SingleResourceMultipleMetricCriteria to MultipleResourceMultipleMetricCriteria. The alert must be deleted and recreated." } }, "roleAssignments": { @@ -245,8 +245,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.21.1.54444", - "templateHash": "8947238026152055709" + "version": "0.22.6.54827", + "templateHash": "14564060617945907933" } }, "parameters": {