Skip to content

Commit

Permalink
feat: avm/res/data-factory/factory Added various UDTs (#2763)
Browse files Browse the repository at this point in the history
## Description

<!--
>Thank you for your contribution !
> Please include a summary of the change and which issue is fixed.
> Please also include the context.
> List any dependencies that are required for this change.

Fixes #123
Fixes #456
Closes #123
Closes #456
-->

Added UDTs for:

- Managed Private Endpoints
- Integration Runtimes
- Linked Services

For a better dev experience.

## Pipeline Reference

<!-- Insert your Pipeline Status Badge below -->

| Pipeline |
| -------- |
|
[![avm.res.data-factory.factory](https://github.com/donheerschap/bicep-registry-modules/actions/workflows/avm.res.data-factory.factory.yml/badge.svg)](https://github.com/donheerschap/bicep-registry-modules/actions/workflows/avm.res.data-factory.factory.yml)
|

## Type of Change

<!-- Use the checkboxes [x] on the options that are relevant. -->

- [ ] Update to CI Environment or utilities (Non-module affecting
changes)
- [x] Azure Verified Module updates:
- [ ] Bugfix containing backwards-compatible bug fixes, and I have NOT
bumped the MAJOR or MINOR version in `version.json`:
- [ ] Someone has opened a bug report issue, and I have included "Closes
#{bug_report_issue_number}" in the PR description.
- [ ] The bug was found by the module author, and no one has opened an
issue to report it yet.
- [x] Feature update backwards compatible feature updates, and I have
bumped the MINOR version in `version.json`.
- [ ] Breaking changes and I have bumped the MAJOR version in
`version.json`.
  - [ ] Update to documentation

## Checklist

- [x] I'm sure there are no other open Pull Requests for the same
update/change
- [x] I have run `Set-AVMModule` locally to generate the supporting
module files.
- [x] My corresponding pipelines / checks run clean and green without
any errors or warnings

<!-- Please keep up to date with the contribution guide at
https://aka.ms/avm/contribute/bicep -->

---------

Co-authored-by: Alexander Sehr <[email protected]>
  • Loading branch information
donheerschap and AlexanderSehr authored Aug 29, 2024
1 parent a8fb8d6 commit 38b4a89
Show file tree
Hide file tree
Showing 3 changed files with 344 additions and 7 deletions.
157 changes: 157 additions & 0 deletions avm/res/data-factory/factory/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -869,6 +869,63 @@ An array of objects for the configuration of an Integration Runtime.
- Type: array
- Default: `[]`

**Required parameters**

| Parameter | Type | Description |
| :-- | :-- | :-- |
| [`name`](#parameter-integrationruntimesname) | string | Specify the name of integration runtime. |
| [`type`](#parameter-integrationruntimestype) | string | Specify the type of the integration runtime. |

**Optional parameters**

| Parameter | Type | Description |
| :-- | :-- | :-- |
| [`integrationRuntimeCustomDescription`](#parameter-integrationruntimesintegrationruntimecustomdescription) | string | Specify custom description for the integration runtime. |
| [`managedVirtualNetworkName`](#parameter-integrationruntimesmanagedvirtualnetworkname) | string | Specify managed vritual network name for the integration runtime to link to. |
| [`typeProperties`](#parameter-integrationruntimestypeproperties) | object | Integration Runtime type properties. Required if type is "Managed". |

### Parameter: `integrationRuntimes.name`

Specify the name of integration runtime.

- Required: Yes
- Type: string

### Parameter: `integrationRuntimes.type`

Specify the type of the integration runtime.

- Required: Yes
- Type: string
- Allowed:
```Bicep
[
'Managed'
'SelfHosted'
]
```

### Parameter: `integrationRuntimes.integrationRuntimeCustomDescription`

Specify custom description for the integration runtime.

- Required: No
- Type: string

### Parameter: `integrationRuntimes.managedVirtualNetworkName`

Specify managed vritual network name for the integration runtime to link to.

- Required: No
- Type: string

### Parameter: `integrationRuntimes.typeProperties`

Integration Runtime type properties. Required if type is "Managed".

- Required: No
- Type: object

### Parameter: `linkedServices`

An array of objects for the configuration of Linked Services.
Expand All @@ -877,6 +934,64 @@ An array of objects for the configuration of Linked Services.
- Type: array
- Default: `[]`

**Required parameters**

| Parameter | Type | Description |
| :-- | :-- | :-- |
| [`name`](#parameter-linkedservicesname) | string | The name of the Linked Service. |
| [`type`](#parameter-linkedservicestype) | string | The type of Linked Service. See https://learn.microsoft.com/en-us/azure/templates/microsoft.datafactory/factories/linkedservices?pivots=deployment-language-bicep#linkedservice-objects for more information. |

**Optional parameters**

| Parameter | Type | Description |
| :-- | :-- | :-- |
| [`description`](#parameter-linkedservicesdescription) | string | The description of the Integration Runtime. |
| [`integrationRuntimeName`](#parameter-linkedservicesintegrationruntimename) | string | The name of the Integration Runtime to use. |
| [`parameters`](#parameter-linkedservicesparameters) | object | Use this to add parameters for a linked service connection string. |
| [`typeProperties`](#parameter-linkedservicestypeproperties) | object | Used to add connection properties for your linked services. |

### Parameter: `linkedServices.name`

The name of the Linked Service.

- Required: Yes
- Type: string

### Parameter: `linkedServices.type`

The type of Linked Service. See https://learn.microsoft.com/en-us/azure/templates/microsoft.datafactory/factories/linkedservices?pivots=deployment-language-bicep#linkedservice-objects for more information.

- Required: Yes
- Type: string

### Parameter: `linkedServices.description`

The description of the Integration Runtime.

- Required: No
- Type: string

### Parameter: `linkedServices.integrationRuntimeName`

The name of the Integration Runtime to use.

- Required: No
- Type: string

### Parameter: `linkedServices.parameters`

Use this to add parameters for a linked service connection string.

- Required: No
- Type: object

### Parameter: `linkedServices.typeProperties`

Used to add connection properties for your linked services.

- Required: No
- Type: object

### Parameter: `location`

Location for all Resources.
Expand Down Expand Up @@ -957,6 +1072,48 @@ An array of managed private endpoints objects created in the Data Factory manage
- Type: array
- Default: `[]`

**Required parameters**

| Parameter | Type | Description |
| :-- | :-- | :-- |
| [`groupId`](#parameter-managedprivateendpointsgroupid) | string | Specify the sub-resource of the managed private endpoint. |
| [`name`](#parameter-managedprivateendpointsname) | string | Specify the name of managed private endpoint. |
| [`privateLinkResourceId`](#parameter-managedprivateendpointsprivatelinkresourceid) | string | Specify the resource ID to create the managed private endpoint for. |

**Optional parameters**

| Parameter | Type | Description |
| :-- | :-- | :-- |
| [`fqdns`](#parameter-managedprivateendpointsfqdns) | array | Specify the FQDNS of the linked resources to create private endpoints for, depending on the type of linked resource this is required. |

### Parameter: `managedPrivateEndpoints.groupId`

Specify the sub-resource of the managed private endpoint.

- Required: Yes
- Type: string

### Parameter: `managedPrivateEndpoints.name`

Specify the name of managed private endpoint.

- Required: Yes
- Type: string

### Parameter: `managedPrivateEndpoints.privateLinkResourceId`

Specify the resource ID to create the managed private endpoint for.

- Required: Yes
- Type: string

### Parameter: `managedPrivateEndpoints.fqdns`

Specify the FQDNS of the linked resources to create private endpoints for, depending on the type of linked resource this is required.

- Required: No
- Type: array

### Parameter: `managedVirtualNetworkName`

The name of the Managed Virtual Network.
Expand Down
57 changes: 54 additions & 3 deletions avm/res/data-factory/factory/main.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ param name string
param managedVirtualNetworkName string = ''

@description('Optional. An array of managed private endpoints objects created in the Data Factory managed virtual network.')
param managedPrivateEndpoints array = []
param managedPrivateEndpoints managedPrivateEndpointsType = []

@description('Optional. An array of objects for the configuration of an Integration Runtime.')
param integrationRuntimes array = []
param integrationRuntimes integrationRuntimesType = []

@description('Optional. An array of objects for the configuration of Linked Services.')
param linkedServices array = []
param linkedServices linkedServicesType = []

@description('Optional. Location for all Resources.')
param location string = resourceGroup().location
Expand Down Expand Up @@ -567,3 +567,54 @@ type customerManagedKeyType = {
@description('Optional. User assigned identity to use when fetching the customer managed key. Required if no system assigned identity is available for use.')
userAssignedIdentityResourceId: string?
}?

type managedPrivateEndpointsType = {
@description('Required. Specify the name of managed private endpoint.')
name: string

@description('Required. Specify the sub-resource of the managed private endpoint.')
groupId: string

@description('Required. Specify the resource ID to create the managed private endpoint for.')
privateLinkResourceId: string

@description('Optional. Specify the FQDNS of the linked resources to create private endpoints for, depending on the type of linked resource this is required.')
fqdns: string[]?
}[]

type integrationRuntimesType = {
@description('Required. Specify the name of integration runtime.')
name: string

@description('Required. Specify the type of the integration runtime.')
type: ('Managed' | 'SelfHosted')

@description('Optional. Specify custom description for the integration runtime.')
integrationRuntimeCustomDescription: string?

@description('Optional. Specify managed vritual network name for the integration runtime to link to.')
managedVirtualNetworkName: string?

@description('Optional. Integration Runtime type properties. Required if type is "Managed".')
typeProperties: object?
}[]

type linkedServicesType = {
@description('Required. The name of the Linked Service.')
name: string

@description('Required. The type of Linked Service. See https://learn.microsoft.com/en-us/azure/templates/microsoft.datafactory/factories/linkedservices?pivots=deployment-language-bicep#linkedservice-objects for more information.')
type: string

@description('Optional. Used to add connection properties for your linked services.')
typeProperties: object?

@description('Optional. The name of the Integration Runtime to use.')
integrationRuntimeName: string?

@description('Optional. Use this to add parameters for a linked service connection string.')
parameters: object?

@description('Optional. The description of the Integration Runtime.')
description: string?
}[]
Loading

0 comments on commit 38b4a89

Please sign in to comment.