Skip to content

Commit

Permalink
readme
Browse files Browse the repository at this point in the history
  • Loading branch information
segraef committed Feb 24, 2024
1 parent 2cc7884 commit 461009b
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 160 deletions.
20 changes: 14 additions & 6 deletions avm/res/automation/automation-account/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1420,7 +1420,7 @@ Configuration details for private endpoints. For security reasons, it is recomme

| Parameter | Type | Description |
| :-- | :-- | :-- |
| [`service`](#parameter-privateendpointsservice) | string | The service (sub-) type to deploy the private endpoint for. For example "vault" or "blob". |
| [`service`](#parameter-privateendpointsservice) | string | The subresource to deploy the private endpoint for. For example "blob", "table", "queue" or "file". |
| [`subnetResourceId`](#parameter-privateendpointssubnetresourceid) | string | Resource ID of the subnet where the endpoint needs to be created. |

**Optional parameters**
Expand All @@ -1432,9 +1432,10 @@ Configuration details for private endpoints. For security reasons, it is recomme
| [`customNetworkInterfaceName`](#parameter-privateendpointscustomnetworkinterfacename) | string | The custom name of the network interface attached to the private endpoint. |
| [`enableTelemetry`](#parameter-privateendpointsenabletelemetry) | bool | Enable/Disable usage telemetry for module. |
| [`ipConfigurations`](#parameter-privateendpointsipconfigurations) | array | A list of IP configurations of the private endpoint. This will be used to map to the First Party Service endpoints. |
| [`isManualConnection`](#parameter-privateendpointsismanualconnection) | bool | If Manual Private Link Connection is required. |
| [`location`](#parameter-privateendpointslocation) | string | The location to deploy the private endpoint to. |
| [`lock`](#parameter-privateendpointslock) | object | Specify the type of lock. |
| [`manualPrivateLinkServiceConnections`](#parameter-privateendpointsmanualprivatelinkserviceconnections) | array | Manual PrivateLink Service Connections. |
| [`manualConnectionRequestMessage`](#parameter-privateendpointsmanualconnectionrequestmessage) | string | A message passed to the owner of the remote resource with the manual connection request. Restricted to 140 chars. |
| [`name`](#parameter-privateendpointsname) | string | The name of the private endpoint. |
| [`privateDnsZoneGroupName`](#parameter-privateendpointsprivatednszonegroupname) | string | The name of the private DNS zone group to create if privateDnsZoneResourceIds were provided. |
| [`privateDnsZoneResourceIds`](#parameter-privateendpointsprivatednszoneresourceids) | array | The private DNS zone groups to associate the private endpoint with. A DNS zone group can support up to 5 DNS zones. |
Expand All @@ -1443,7 +1444,7 @@ Configuration details for private endpoints. For security reasons, it is recomme

### Parameter: `privateEndpoints.service`

The service (sub-) type to deploy the private endpoint for. For example "vault" or "blob".
The subresource to deploy the private endpoint for. For example "blob", "table", "queue" or "file".

- Required: Yes
- Type: string
Expand Down Expand Up @@ -1561,6 +1562,13 @@ A private ip address obtained from the private endpoint's subnet.
- Required: Yes
- Type: string

### Parameter: `privateEndpoints.isManualConnection`

If Manual Private Link Connection is required.

- Required: No
- Type: bool

### Parameter: `privateEndpoints.location`

The location to deploy the private endpoint to.
Expand Down Expand Up @@ -1604,12 +1612,12 @@ Specify the name of lock.
- Required: No
- Type: string

### Parameter: `privateEndpoints.manualPrivateLinkServiceConnections`
### Parameter: `privateEndpoints.manualConnectionRequestMessage`

Manual PrivateLink Service Connections.
A message passed to the owner of the remote resource with the manual connection request. Restricted to 140 chars.

- Required: No
- Type: array
- Type: string

### Parameter: `privateEndpoints.name`

Expand Down
51 changes: 22 additions & 29 deletions avm/res/automation/automation-account/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"_generator": {
"name": "bicep",
"version": "0.24.24.22086",
"templateHash": "139832401033434251"
"templateHash": "14118178153874910817"
},
"name": "Automation Accounts",
"description": "This module deploys an Azure Automation Account.",
Expand Down Expand Up @@ -149,7 +149,7 @@
"service": {
"type": "string",
"metadata": {
"description": "Required. The service (sub-) type to deploy the private endpoint for. For example \"vault\" or \"blob\"."
"description": "Required. The subresource to deploy the private endpoint for. For example \"blob\", \"table\", \"queue\" or \"file\"."
}
},
"subnetResourceId": {
Expand All @@ -175,6 +175,20 @@
"description": "Optional. The private DNS zone groups to associate the private endpoint with. A DNS zone group can support up to 5 DNS zones."
}
},
"isManualConnection": {
"type": "bool",
"nullable": true,
"metadata": {
"description": "Optional. If Manual Private Link Connection is required."
}
},
"manualConnectionRequestMessage": {
"type": "string",
"nullable": true,
"metadata": {
"description": "Optional. A message passed to the owner of the remote resource with the manual connection request. Restricted to 140 chars."
}
},
"customDnsConfigs": {
"type": "array",
"items": {
Expand Down Expand Up @@ -283,13 +297,6 @@
"description": "Optional. Tags to be applied on all resources/resource groups in this deployment."
}
},
"manualPrivateLinkServiceConnections": {
"type": "array",
"nullable": true,
"metadata": {
"description": "Optional. Manual PrivateLink Service Connections."
}
},
"enableTelemetry": {
"type": "bool",
"nullable": true,
Expand Down Expand Up @@ -2310,25 +2317,17 @@
},
"mode": "Incremental",
"parameters": {
"privateLinkServiceConnections": {
"value": [
{
"name": "[parameters('name')]",
"properties": {
"privateLinkServiceId": "[resourceId('Microsoft.Automation/automationAccounts', parameters('name'))]",
"groupIds": [
"[coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'service'), 'automationaccount')]"
]
}
}
]
},
"name": {
"value": "[coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'name'), format('pep-{0}-{1}-{2}', last(split(resourceId('Microsoft.Automation/automationAccounts', parameters('name')), '/')), coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'service'), coalesce(parameters('privateEndpoints'), createArray())[copyIndex()].service), copyIndex()))]"
"value": "[coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'name'), format('pep-{0}-{1}-{2}', last(split(resourceId('Microsoft.Automation/automationAccounts', parameters('name')), '/')), coalesce(parameters('privateEndpoints'), createArray())[copyIndex()].service, copyIndex()))]"
},
"privateLinkServiceConnections": "[if(not(equals(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'manualPrivateLinkServiceConnections'), true())), createObject('value', createArray(createObject('name', coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'privateLinkServiceConnectionName'), format('{0}-{1}-{2}', last(split(resourceId('Microsoft.Automation/automationAccounts', parameters('name')), '/')), coalesce(parameters('privateEndpoints'), createArray())[copyIndex()].service, copyIndex())), 'properties', createObject('privateLinkServiceId', resourceId('Microsoft.Automation/automationAccounts', parameters('name')), 'groupIds', createArray(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()].service))))), createObject('value', null()))]",
"manualPrivateLinkServiceConnections": "[if(equals(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'manualPrivateLinkServiceConnections'), true()), createObject('value', createArray(createObject('name', coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'privateLinkServiceConnectionName'), format('{0}-{1}-{2}', last(split(resourceId('Microsoft.Automation/automationAccounts', parameters('name')), '/')), coalesce(parameters('privateEndpoints'), createArray())[copyIndex()].service, copyIndex())), 'properties', createObject('privateLinkServiceId', resourceId('Microsoft.Automation/automationAccounts', parameters('name')), 'groupIds', createArray(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()].service), 'requestMessage', coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'manualConnectionRequestMessage'), 'Manual approval required.'))))), createObject('value', null()))]",
"subnetResourceId": {
"value": "[coalesce(parameters('privateEndpoints'), createArray())[copyIndex()].subnetResourceId]"
},
"enableTelemetry": {
"value": "[coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'enableTelemetry'), parameters('enableTelemetry'))]"
},
"location": {
"value": "[coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'location'), reference(split(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()].subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location)]"
},
Expand All @@ -2347,9 +2346,6 @@
"tags": {
"value": "[coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'tags'), parameters('tags'))]"
},
"manualPrivateLinkServiceConnections": {
"value": "[tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'manualPrivateLinkServiceConnections')]"
},
"customDnsConfigs": {
"value": "[tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'customDnsConfigs')]"
},
Expand All @@ -2361,9 +2357,6 @@
},
"customNetworkInterfaceName": {
"value": "[tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'customNetworkInterfaceName')]"
},
"enableTelemetry": {
"value": "[coalesce(tryGet(coalesce(parameters('privateEndpoints'), createArray())[copyIndex()], 'enableTelemetry'), parameters('enableTelemetry'))]"
}
},
"template": {
Expand Down
131 changes: 6 additions & 125 deletions avm/res/document-db/database-account/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,9 @@ The following section provides usage examples for the module, which were used to
- [Using only defaults](#example-1-using-only-defaults)
- [Germlin Database](#example-2-germlin-database)
- [Mongo Database](#example-3-mongo-database)
- [Private Endpoints](#example-4-private-endpoints)
- [Plain](#example-5-plain)
- [SQL Database](#example-6-sql-database)
- [WAF-aligned](#example-7-waf-aligned)
- [Plain](#example-4-plain)
- [SQL Database](#example-5-sql-database)
- [WAF-aligned](#example-6-waf-aligned)

### Example 1: _Using only defaults_

Expand Down Expand Up @@ -910,125 +909,7 @@ module databaseAccount 'br/public:avm/res/document-db/database-account:<version>
</details>
<p>

### Example 4: _Private Endpoints_

This instance deploys the module with all Private Endpoints.


<details>

<summary>via Bicep module</summary>

```bicep
module databaseAccount 'br/public:avm/res/document-db/database-account:<version>' = {
name: '${uniqueString(deployment().name, resourceLocation)}-test-dddape'
params: {
// Required parameters
locations: [
{
failoverPriority: 0
isZoneRedundant: false
locationName: '<locationName>'
}
]
name: 'dddape001'
// Non-required parameters
location: '<location>'
managedIdentities: {
userAssignedResourceIds: [
'<managedIdentityResourceId>'
]
}
privateEndpoints: [
{
privateDnsZoneResourceIds: [
'<privateDNSZoneResourceId>'
]
service: 'Sql'
subnetResourceId: '<subnetResourceId>'
tags: {
Environment: 'Non-Prod'
'hidden-title': 'This is visible in the resource name'
Role: 'DeploymentValidation'
}
}
]
tags: {
Environment: 'Non-Prod'
'hidden-title': 'This is visible in the resource name'
Role: 'DeploymentValidation'
}
}
}
```

</details>
<p>

<details>

<summary>via JSON Parameter file</summary>

```json
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
// Required parameters
"locations": {
"value": [
{
"failoverPriority": 0,
"isZoneRedundant": false,
"locationName": "<locationName>"
}
]
},
"name": {
"value": "dddape001"
},
// Non-required parameters
"location": {
"value": "<location>"
},
"managedIdentities": {
"value": {
"userAssignedResourceIds": [
"<managedIdentityResourceId>"
]
}
},
"privateEndpoints": {
"value": [
{
"privateDnsZoneResourceIds": [
"<privateDNSZoneResourceId>"
],
"service": "Sql",
"subnetResourceId": "<subnetResourceId>",
"tags": {
"Environment": "Non-Prod",
"hidden-title": "This is visible in the resource name",
"Role": "DeploymentValidation"
}
}
]
},
"tags": {
"value": {
"Environment": "Non-Prod",
"hidden-title": "This is visible in the resource name",
"Role": "DeploymentValidation"
}
}
}
}
```

</details>
<p>

### Example 5: _Plain_
### Example 4: _Plain_

This instance deploys the module without a Database.

Expand Down Expand Up @@ -1190,7 +1071,7 @@ module databaseAccount 'br/public:avm/res/document-db/database-account:<version>
</details>
<p>

### Example 6: _SQL Database_
### Example 5: _SQL Database_

This instance deploys the module with a SQL Database.

Expand Down Expand Up @@ -1534,7 +1415,7 @@ module databaseAccount 'br/public:avm/res/document-db/database-account:<version>
</details>
<p>

### Example 7: _WAF-aligned_
### Example 6: _WAF-aligned_

This instance deploys the module in alignment with the best-practices of the Azure Well-Architected Framework.

Expand Down

0 comments on commit 461009b

Please sign in to comment.