Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Bicep resource definition
The pools resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.DevOpsInfrastructure/pools resource, add the following Bicep to your template.
resource symbolicname 'Microsoft.DevOpsInfrastructure/pools@2025-01-21' = {
identity: {
type: 'string'
userAssignedIdentities: {
{customized property}: {}
}
}
location: 'string'
name: 'string'
properties: {
agentProfile: {
resourcePredictions: any(...)
resourcePredictionsProfile: {
kind: 'string'
// For remaining properties, see ResourcePredictionsProfile objects
}
kind: 'string'
// For remaining properties, see AgentProfile objects
}
devCenterProjectResourceId: 'string'
fabricProfile: {
kind: 'string'
// For remaining properties, see FabricProfile objects
}
maximumConcurrency: int
organizationProfile: {
kind: 'string'
// For remaining properties, see OrganizationProfile objects
}
provisioningState: 'string'
}
tags: {
{customized property}: 'string'
}
}
ResourcePredictionsProfile objects
Set the kind property to specify the type of object.
For Automatic, use:
{
kind: 'Automatic'
predictionPreference: 'string'
}
For Manual, use:
{
kind: 'Manual'
}
FabricProfile objects
Set the kind property to specify the type of object.
For Vmss, use:
{
images: [
{
aliases: [
'string'
]
buffer: 'string'
ephemeralType: 'string'
resourceId: 'string'
wellKnownImageName: 'string'
}
]
kind: 'Vmss'
networkProfile: {
subnetId: 'string'
}
osProfile: {
logonType: 'string'
secretsManagementSettings: {
certificateStoreLocation: 'string'
certificateStoreName: 'string'
keyExportable: bool
observedCertificates: [
'string'
]
}
}
sku: {
name: 'string'
}
storageProfile: {
dataDisks: [
{
caching: 'string'
diskSizeGiB: int
driveLetter: 'string'
storageAccountType: 'string'
}
]
osDiskStorageAccountType: 'string'
}
}
OrganizationProfile objects
Set the kind property to specify the type of object.
For AzureDevOps, use:
{
kind: 'AzureDevOps'
organizations: [
{
openAccess: bool
parallelism: int
projects: [
'string'
]
url: 'string'
}
]
permissionProfile: {
groups: [
'string'
]
kind: 'string'
users: [
'string'
]
}
}
For GitHub, use:
{
kind: 'GitHub'
organizations: [
{
repositories: [
'string'
]
url: 'string'
}
]
}
AgentProfile objects
Set the kind property to specify the type of object.
For Stateful, use:
{
gracePeriodTimeSpan: 'string'
kind: 'Stateful'
maxAgentLifetime: 'string'
}
For Stateless, use:
{
kind: 'Stateless'
}
Property Values
AgentProfile
Name | Description | Value |
---|---|---|
kind | Set to 'Stateful' for type Stateful. Set to 'Stateless' for type StatelessAgentProfile. | 'Stateful' 'Stateless' (required) |
resourcePredictions | Defines pool buffer/stand-by agents. | any |
resourcePredictionsProfile | Defines how the pool buffer/stand-by agents is provided. | ResourcePredictionsProfile |
AutomaticResourcePredictionsProfile
Name | Description | Value |
---|---|---|
kind | Determines how the stand-by scheme should be provided. | 'Automatic' (required) |
predictionPreference | Determines the balance between cost and performance. | 'Balanced' 'BestPerformance' 'MoreCostEffective' 'MorePerformance' 'MostCostEffective' |
AzureDevOpsOrganizationProfile
Name | Description | Value |
---|---|---|
kind | Discriminator property for OrganizationProfile. | 'AzureDevOps' (required) |
organizations | The list of Azure DevOps organizations the pool should be present in. | Organization[] (required) |
permissionProfile | The type of permission which determines which accounts are admins on the Azure DevOps pool. | AzureDevOpsPermissionProfile |
AzureDevOpsPermissionProfile
Name | Description | Value |
---|---|---|
groups | Group email addresses | string[] |
kind | Determines who has admin permissions to the Azure DevOps pool. | 'CreatorOnly' 'Inherit' 'SpecificAccounts' (required) |
users | User email addresses | string[] |
DataDisk
Name | Description | Value |
---|---|---|
caching | The type of caching to be enabled for the data disks. The default value for caching is readwrite. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. | 'None' 'ReadOnly' 'ReadWrite' |
diskSizeGiB | The initial disk size in gigabytes. | int |
driveLetter | The drive letter for the empty data disk. If not specified, it will be the first available letter. | string |
storageAccountType | The storage Account type to be used for the data disk. If omitted, the default is "standard_lrs". | 'Premium_LRS' 'Premium_ZRS' 'StandardSSD_LRS' 'StandardSSD_ZRS' 'Standard_LRS' |
DevOpsAzureSku
Name | Description | Value |
---|---|---|
name | The Azure SKU name of the machines in the pool. | string (required) |
FabricProfile
Name | Description | Value |
---|---|---|
kind | Set to 'Vmss' for type VmssFabricProfile. | 'Vmss' (required) |
GitHubOrganization
Name | Description | Value |
---|---|---|
repositories | Optional list of repositories in which the pool should be created. | string[] |
url | The GitHub organization URL in which the pool should be created. | string (required) |
GitHubOrganizationProfile
Name | Description | Value |
---|---|---|
kind | Discriminator property for OrganizationProfile. | 'GitHub' (required) |
organizations | The list of GitHub organizations/repositories the pool should be present in. | GitHubOrganization[] (required) |
ManagedServiceIdentity
Name | Description | Value |
---|---|---|
type | Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (required) |
userAssignedIdentities | The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests. | UserAssignedIdentities |
ManualResourcePredictionsProfile
Name | Description | Value |
---|---|---|
kind | Determines how the stand-by scheme should be provided. | 'Manual' (required) |
Microsoft.DevOpsInfrastructure/pools
Name | Description | Value |
---|---|---|
identity | The managed service identities assigned to this resource. | ManagedServiceIdentity |
location | The geo-location where the resource lives | string (required) |
name | The resource name | string Constraints: Pattern = ^[a-zA-Z0-9][a-zA-Z0-9-.]*$ (required) |
properties | The resource-specific properties for this resource. | PoolProperties |
tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
NetworkProfile
Name | Description | Value |
---|---|---|
subnetId | The subnet id on which to put all machines created in the pool. | string (required) |
Organization
Name | Description | Value |
---|---|---|
openAccess | Determines if the pool should have open access to all projects in this organization. | bool |
parallelism | How many machines can be created at maximum in this organization out of the maximumConcurrency of the pool. | int |
projects | Optional list of projects in which the pool should be created. | string[] |
url | The Azure DevOps organization URL in which the pool should be created. | string (required) |
OrganizationProfile
Name | Description | Value |
---|---|---|
kind | Set to 'AzureDevOps' for type AzureDevOpsOrganizationProfile. Set to 'GitHub' for type GitHubOrganizationProfile. | 'AzureDevOps' 'GitHub' (required) |
OsProfile
Name | Description | Value |
---|---|---|
logonType | Determines how the service should be run. By default, this will be set to Service. | 'Interactive' 'Service' |
secretsManagementSettings | The secret management settings of the machines in the pool. | SecretsManagementSettings |
PoolImage
Name | Description | Value |
---|---|---|
aliases | List of aliases to reference the image by. | string[] |
buffer | The percentage of the buffer to be allocated to this image. | string |
ephemeralType | The ephemeral type of the image. | 'Automatic' 'CacheDisk' 'ResourceDisk' |
resourceId | The resource id of the image. | string |
wellKnownImageName | The image to use from a well-known set of images made available to customers. | string |
PoolProperties
Name | Description | Value |
---|---|---|
agentProfile | Defines how the machine will be handled once it executed a job. | AgentProfile (required) |
devCenterProjectResourceId | The resource id of the DevCenter Project the pool belongs to. | string (required) |
fabricProfile | Defines the type of fabric the agent will run on. | FabricProfile (required) |
maximumConcurrency | Defines how many resources can there be created at any given time. | int Constraints: Min value = 1 Max value = 10000 (required) |
organizationProfile | Defines the organization in which the pool will be used. | OrganizationProfile (required) |
provisioningState | The status of the current operation. | 'Accepted' 'Canceled' 'Deleting' 'Failed' 'Provisioning' 'Succeeded' 'Updating' |
ResourcePredictionsProfile
Name | Description | Value |
---|---|---|
kind | Set to 'Automatic' for type AutomaticResourcePredictionsProfile. Set to 'Manual' for type ManualResourcePredictionsProfile. | 'Automatic' 'Manual' (required) |
SecretsManagementSettings
Name | Description | Value |
---|---|---|
certificateStoreLocation | Where to store certificates on the machine. | string |
certificateStoreName | Name of the certificate store to use on the machine, currently 'My' and 'Root' are supported. | 'My' 'Root' |
keyExportable | Defines if the key of the certificates should be exportable. | bool (required) |
observedCertificates | The list of certificates to install on all machines in the pool. | string[] (required) |
Stateful
Name | Description | Value |
---|---|---|
gracePeriodTimeSpan | How long should the machine be kept around after it ran a workload when there are no stand-by agents. The maximum is one week. | string |
kind | Discriminator property for AgentProfile. | 'Stateful' (required) |
maxAgentLifetime | How long should stateful machines be kept around. The maximum is one week. | string |
StatelessAgentProfile
Name | Description | Value |
---|---|---|
kind | Discriminator property for AgentProfile. | 'Stateless' (required) |
StorageProfile
Name | Description | Value |
---|---|---|
dataDisks | A list of empty data disks to attach. | DataDisk[] |
osDiskStorageAccountType | The Azure SKU name of the machines in the pool. | 'Premium' 'Standard' 'StandardSSD' |
TrackedResourceTags
Name | Description | Value |
---|
UserAssignedIdentities
Name | Description | Value |
---|
UserAssignedIdentity
Name | Description | Value |
---|
VmssFabricProfile
Name | Description | Value |
---|---|---|
images | The VM images of the machines in the pool. | PoolImage[] (required) |
kind | Discriminator property for FabricProfile. | 'Vmss' (required) |
networkProfile | The network profile of the machines in the pool. | NetworkProfile |
osProfile | The OS profile of the machines in the pool. | OsProfile |
sku | The Azure SKU of the machines in the pool. | DevOpsAzureSku (required) |
storageProfile | The storage profile of the machines in the pool. | StorageProfile |
Usage Examples
Azure Verified Modules
The following Azure Verified Modules can be used to deploy this resource type.
Module | Description |
---|---|
DevOps Infrastructure Pool | AVM Resource Module for DevOps Infrastructure Pool |
ARM template resource definition
The pools resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.DevOpsInfrastructure/pools resource, add the following JSON to your template.
{
"type": "Microsoft.DevOpsInfrastructure/pools",
"apiVersion": "2025-01-21",
"name": "string",
"identity": {
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
}
}
},
"location": "string",
"properties": {
"agentProfile": {
"resourcePredictions": {},
"resourcePredictionsProfile": {
"kind": "string"
// For remaining properties, see ResourcePredictionsProfile objects
},
"kind": "string"
// For remaining properties, see AgentProfile objects
},
"devCenterProjectResourceId": "string",
"fabricProfile": {
"kind": "string"
// For remaining properties, see FabricProfile objects
},
"maximumConcurrency": "int",
"organizationProfile": {
"kind": "string"
// For remaining properties, see OrganizationProfile objects
},
"provisioningState": "string"
},
"tags": {
"{customized property}": "string"
}
}
ResourcePredictionsProfile objects
Set the kind property to specify the type of object.
For Automatic, use:
{
"kind": "Automatic",
"predictionPreference": "string"
}
For Manual, use:
{
"kind": "Manual"
}
FabricProfile objects
Set the kind property to specify the type of object.
For Vmss, use:
{
"images": [
{
"aliases": [ "string" ],
"buffer": "string",
"ephemeralType": "string",
"resourceId": "string",
"wellKnownImageName": "string"
}
],
"kind": "Vmss",
"networkProfile": {
"subnetId": "string"
},
"osProfile": {
"logonType": "string",
"secretsManagementSettings": {
"certificateStoreLocation": "string",
"certificateStoreName": "string",
"keyExportable": "bool",
"observedCertificates": [ "string" ]
}
},
"sku": {
"name": "string"
},
"storageProfile": {
"dataDisks": [
{
"caching": "string",
"diskSizeGiB": "int",
"driveLetter": "string",
"storageAccountType": "string"
}
],
"osDiskStorageAccountType": "string"
}
}
OrganizationProfile objects
Set the kind property to specify the type of object.
For AzureDevOps, use:
{
"kind": "AzureDevOps",
"organizations": [
{
"openAccess": "bool",
"parallelism": "int",
"projects": [ "string" ],
"url": "string"
}
],
"permissionProfile": {
"groups": [ "string" ],
"kind": "string",
"users": [ "string" ]
}
}
For GitHub, use:
{
"kind": "GitHub",
"organizations": [
{
"repositories": [ "string" ],
"url": "string"
}
]
}
AgentProfile objects
Set the kind property to specify the type of object.
For Stateful, use:
{
"gracePeriodTimeSpan": "string",
"kind": "Stateful",
"maxAgentLifetime": "string"
}
For Stateless, use:
{
"kind": "Stateless"
}
Property Values
AgentProfile
Name | Description | Value |
---|---|---|
kind | Set to 'Stateful' for type Stateful. Set to 'Stateless' for type StatelessAgentProfile. | 'Stateful' 'Stateless' (required) |
resourcePredictions | Defines pool buffer/stand-by agents. | any |
resourcePredictionsProfile | Defines how the pool buffer/stand-by agents is provided. | ResourcePredictionsProfile |
AutomaticResourcePredictionsProfile
Name | Description | Value |
---|---|---|
kind | Determines how the stand-by scheme should be provided. | 'Automatic' (required) |
predictionPreference | Determines the balance between cost and performance. | 'Balanced' 'BestPerformance' 'MoreCostEffective' 'MorePerformance' 'MostCostEffective' |
AzureDevOpsOrganizationProfile
Name | Description | Value |
---|---|---|
kind | Discriminator property for OrganizationProfile. | 'AzureDevOps' (required) |
organizations | The list of Azure DevOps organizations the pool should be present in. | Organization[] (required) |
permissionProfile | The type of permission which determines which accounts are admins on the Azure DevOps pool. | AzureDevOpsPermissionProfile |
AzureDevOpsPermissionProfile
Name | Description | Value |
---|---|---|
groups | Group email addresses | string[] |
kind | Determines who has admin permissions to the Azure DevOps pool. | 'CreatorOnly' 'Inherit' 'SpecificAccounts' (required) |
users | User email addresses | string[] |
DataDisk
Name | Description | Value |
---|---|---|
caching | The type of caching to be enabled for the data disks. The default value for caching is readwrite. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. | 'None' 'ReadOnly' 'ReadWrite' |
diskSizeGiB | The initial disk size in gigabytes. | int |
driveLetter | The drive letter for the empty data disk. If not specified, it will be the first available letter. | string |
storageAccountType | The storage Account type to be used for the data disk. If omitted, the default is "standard_lrs". | 'Premium_LRS' 'Premium_ZRS' 'StandardSSD_LRS' 'StandardSSD_ZRS' 'Standard_LRS' |
DevOpsAzureSku
Name | Description | Value |
---|---|---|
name | The Azure SKU name of the machines in the pool. | string (required) |
FabricProfile
Name | Description | Value |
---|---|---|
kind | Set to 'Vmss' for type VmssFabricProfile. | 'Vmss' (required) |
GitHubOrganization
Name | Description | Value |
---|---|---|
repositories | Optional list of repositories in which the pool should be created. | string[] |
url | The GitHub organization URL in which the pool should be created. | string (required) |
GitHubOrganizationProfile
Name | Description | Value |
---|---|---|
kind | Discriminator property for OrganizationProfile. | 'GitHub' (required) |
organizations | The list of GitHub organizations/repositories the pool should be present in. | GitHubOrganization[] (required) |
ManagedServiceIdentity
Name | Description | Value |
---|---|---|
type | Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (required) |
userAssignedIdentities | The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests. | UserAssignedIdentities |
ManualResourcePredictionsProfile
Name | Description | Value |
---|---|---|
kind | Determines how the stand-by scheme should be provided. | 'Manual' (required) |
Microsoft.DevOpsInfrastructure/pools
Name | Description | Value |
---|---|---|
apiVersion | The api version | '2025-01-21' |
identity | The managed service identities assigned to this resource. | ManagedServiceIdentity |
location | The geo-location where the resource lives | string (required) |
name | The resource name | string Constraints: Pattern = ^[a-zA-Z0-9][a-zA-Z0-9-.]*$ (required) |
properties | The resource-specific properties for this resource. | PoolProperties |
tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
type | The resource type | 'Microsoft.DevOpsInfrastructure/pools' |
NetworkProfile
Name | Description | Value |
---|---|---|
subnetId | The subnet id on which to put all machines created in the pool. | string (required) |
Organization
Name | Description | Value |
---|---|---|
openAccess | Determines if the pool should have open access to all projects in this organization. | bool |
parallelism | How many machines can be created at maximum in this organization out of the maximumConcurrency of the pool. | int |
projects | Optional list of projects in which the pool should be created. | string[] |
url | The Azure DevOps organization URL in which the pool should be created. | string (required) |
OrganizationProfile
Name | Description | Value |
---|---|---|
kind | Set to 'AzureDevOps' for type AzureDevOpsOrganizationProfile. Set to 'GitHub' for type GitHubOrganizationProfile. | 'AzureDevOps' 'GitHub' (required) |
OsProfile
Name | Description | Value |
---|---|---|
logonType | Determines how the service should be run. By default, this will be set to Service. | 'Interactive' 'Service' |
secretsManagementSettings | The secret management settings of the machines in the pool. | SecretsManagementSettings |
PoolImage
Name | Description | Value |
---|---|---|
aliases | List of aliases to reference the image by. | string[] |
buffer | The percentage of the buffer to be allocated to this image. | string |
ephemeralType | The ephemeral type of the image. | 'Automatic' 'CacheDisk' 'ResourceDisk' |
resourceId | The resource id of the image. | string |
wellKnownImageName | The image to use from a well-known set of images made available to customers. | string |
PoolProperties
Name | Description | Value |
---|---|---|
agentProfile | Defines how the machine will be handled once it executed a job. | AgentProfile (required) |
devCenterProjectResourceId | The resource id of the DevCenter Project the pool belongs to. | string (required) |
fabricProfile | Defines the type of fabric the agent will run on. | FabricProfile (required) |
maximumConcurrency | Defines how many resources can there be created at any given time. | int Constraints: Min value = 1 Max value = 10000 (required) |
organizationProfile | Defines the organization in which the pool will be used. | OrganizationProfile (required) |
provisioningState | The status of the current operation. | 'Accepted' 'Canceled' 'Deleting' 'Failed' 'Provisioning' 'Succeeded' 'Updating' |
ResourcePredictionsProfile
Name | Description | Value |
---|---|---|
kind | Set to 'Automatic' for type AutomaticResourcePredictionsProfile. Set to 'Manual' for type ManualResourcePredictionsProfile. | 'Automatic' 'Manual' (required) |
SecretsManagementSettings
Name | Description | Value |
---|---|---|
certificateStoreLocation | Where to store certificates on the machine. | string |
certificateStoreName | Name of the certificate store to use on the machine, currently 'My' and 'Root' are supported. | 'My' 'Root' |
keyExportable | Defines if the key of the certificates should be exportable. | bool (required) |
observedCertificates | The list of certificates to install on all machines in the pool. | string[] (required) |
Stateful
Name | Description | Value |
---|---|---|
gracePeriodTimeSpan | How long should the machine be kept around after it ran a workload when there are no stand-by agents. The maximum is one week. | string |
kind | Discriminator property for AgentProfile. | 'Stateful' (required) |
maxAgentLifetime | How long should stateful machines be kept around. The maximum is one week. | string |
StatelessAgentProfile
Name | Description | Value |
---|---|---|
kind | Discriminator property for AgentProfile. | 'Stateless' (required) |
StorageProfile
Name | Description | Value |
---|---|---|
dataDisks | A list of empty data disks to attach. | DataDisk[] |
osDiskStorageAccountType | The Azure SKU name of the machines in the pool. | 'Premium' 'Standard' 'StandardSSD' |
TrackedResourceTags
Name | Description | Value |
---|
UserAssignedIdentities
Name | Description | Value |
---|
UserAssignedIdentity
Name | Description | Value |
---|
VmssFabricProfile
Name | Description | Value |
---|---|---|
images | The VM images of the machines in the pool. | PoolImage[] (required) |
kind | Discriminator property for FabricProfile. | 'Vmss' (required) |
networkProfile | The network profile of the machines in the pool. | NetworkProfile |
osProfile | The OS profile of the machines in the pool. | OsProfile |
sku | The Azure SKU of the machines in the pool. | DevOpsAzureSku (required) |
storageProfile | The storage profile of the machines in the pool. | StorageProfile |
Usage Examples
Terraform (AzAPI provider) resource definition
The pools resource type can be deployed with operations that target:
- Resource groups
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.DevOpsInfrastructure/pools resource, add the following Terraform to your template.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.DevOpsInfrastructure/pools@2025-01-21"
name = "string"
identity = {
type = "string"
userAssignedIdentities = {
{customized property} = {
}
}
}
location = "string"
tags = {
{customized property} = "string"
}
body = {
properties = {
agentProfile = {
resourcePredictions = ?
resourcePredictionsProfile = {
kind = "string"
// For remaining properties, see ResourcePredictionsProfile objects
}
kind = "string"
// For remaining properties, see AgentProfile objects
}
devCenterProjectResourceId = "string"
fabricProfile = {
kind = "string"
// For remaining properties, see FabricProfile objects
}
maximumConcurrency = int
organizationProfile = {
kind = "string"
// For remaining properties, see OrganizationProfile objects
}
provisioningState = "string"
}
}
}
ResourcePredictionsProfile objects
Set the kind property to specify the type of object.
For Automatic, use:
{
kind = "Automatic"
predictionPreference = "string"
}
For Manual, use:
{
kind = "Manual"
}
FabricProfile objects
Set the kind property to specify the type of object.
For Vmss, use:
{
images = [
{
aliases = [
"string"
]
buffer = "string"
ephemeralType = "string"
resourceId = "string"
wellKnownImageName = "string"
}
]
kind = "Vmss"
networkProfile = {
subnetId = "string"
}
osProfile = {
logonType = "string"
secretsManagementSettings = {
certificateStoreLocation = "string"
certificateStoreName = "string"
keyExportable = bool
observedCertificates = [
"string"
]
}
}
sku = {
name = "string"
}
storageProfile = {
dataDisks = [
{
caching = "string"
diskSizeGiB = int
driveLetter = "string"
storageAccountType = "string"
}
]
osDiskStorageAccountType = "string"
}
}
OrganizationProfile objects
Set the kind property to specify the type of object.
For AzureDevOps, use:
{
kind = "AzureDevOps"
organizations = [
{
openAccess = bool
parallelism = int
projects = [
"string"
]
url = "string"
}
]
permissionProfile = {
groups = [
"string"
]
kind = "string"
users = [
"string"
]
}
}
For GitHub, use:
{
kind = "GitHub"
organizations = [
{
repositories = [
"string"
]
url = "string"
}
]
}
AgentProfile objects
Set the kind property to specify the type of object.
For Stateful, use:
{
gracePeriodTimeSpan = "string"
kind = "Stateful"
maxAgentLifetime = "string"
}
For Stateless, use:
{
kind = "Stateless"
}
Property Values
AgentProfile
Name | Description | Value |
---|---|---|
kind | Set to 'Stateful' for type Stateful. Set to 'Stateless' for type StatelessAgentProfile. | 'Stateful' 'Stateless' (required) |
resourcePredictions | Defines pool buffer/stand-by agents. | any |
resourcePredictionsProfile | Defines how the pool buffer/stand-by agents is provided. | ResourcePredictionsProfile |
AutomaticResourcePredictionsProfile
Name | Description | Value |
---|---|---|
kind | Determines how the stand-by scheme should be provided. | 'Automatic' (required) |
predictionPreference | Determines the balance between cost and performance. | 'Balanced' 'BestPerformance' 'MoreCostEffective' 'MorePerformance' 'MostCostEffective' |
AzureDevOpsOrganizationProfile
Name | Description | Value |
---|---|---|
kind | Discriminator property for OrganizationProfile. | 'AzureDevOps' (required) |
organizations | The list of Azure DevOps organizations the pool should be present in. | Organization[] (required) |
permissionProfile | The type of permission which determines which accounts are admins on the Azure DevOps pool. | AzureDevOpsPermissionProfile |
AzureDevOpsPermissionProfile
Name | Description | Value |
---|---|---|
groups | Group email addresses | string[] |
kind | Determines who has admin permissions to the Azure DevOps pool. | 'CreatorOnly' 'Inherit' 'SpecificAccounts' (required) |
users | User email addresses | string[] |
DataDisk
Name | Description | Value |
---|---|---|
caching | The type of caching to be enabled for the data disks. The default value for caching is readwrite. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. | 'None' 'ReadOnly' 'ReadWrite' |
diskSizeGiB | The initial disk size in gigabytes. | int |
driveLetter | The drive letter for the empty data disk. If not specified, it will be the first available letter. | string |
storageAccountType | The storage Account type to be used for the data disk. If omitted, the default is "standard_lrs". | 'Premium_LRS' 'Premium_ZRS' 'StandardSSD_LRS' 'StandardSSD_ZRS' 'Standard_LRS' |
DevOpsAzureSku
Name | Description | Value |
---|---|---|
name | The Azure SKU name of the machines in the pool. | string (required) |
FabricProfile
Name | Description | Value |
---|---|---|
kind | Set to 'Vmss' for type VmssFabricProfile. | 'Vmss' (required) |
GitHubOrganization
Name | Description | Value |
---|---|---|
repositories | Optional list of repositories in which the pool should be created. | string[] |
url | The GitHub organization URL in which the pool should be created. | string (required) |
GitHubOrganizationProfile
Name | Description | Value |
---|---|---|
kind | Discriminator property for OrganizationProfile. | 'GitHub' (required) |
organizations | The list of GitHub organizations/repositories the pool should be present in. | GitHubOrganization[] (required) |
ManagedServiceIdentity
Name | Description | Value |
---|---|---|
type | Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (required) |
userAssignedIdentities | The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests. | UserAssignedIdentities |
ManualResourcePredictionsProfile
Name | Description | Value |
---|---|---|
kind | Determines how the stand-by scheme should be provided. | 'Manual' (required) |
Microsoft.DevOpsInfrastructure/pools
Name | Description | Value |
---|---|---|
identity | The managed service identities assigned to this resource. | ManagedServiceIdentity |
location | The geo-location where the resource lives | string (required) |
name | The resource name | string Constraints: Pattern = ^[a-zA-Z0-9][a-zA-Z0-9-.]*$ (required) |
properties | The resource-specific properties for this resource. | PoolProperties |
tags | Resource tags | Dictionary of tag names and values. |
type | The resource type | "Microsoft.DevOpsInfrastructure/pools@2025-01-21" |
NetworkProfile
Name | Description | Value |
---|---|---|
subnetId | The subnet id on which to put all machines created in the pool. | string (required) |
Organization
Name | Description | Value |
---|---|---|
openAccess | Determines if the pool should have open access to all projects in this organization. | bool |
parallelism | How many machines can be created at maximum in this organization out of the maximumConcurrency of the pool. | int |
projects | Optional list of projects in which the pool should be created. | string[] |
url | The Azure DevOps organization URL in which the pool should be created. | string (required) |
OrganizationProfile
Name | Description | Value |
---|---|---|
kind | Set to 'AzureDevOps' for type AzureDevOpsOrganizationProfile. Set to 'GitHub' for type GitHubOrganizationProfile. | 'AzureDevOps' 'GitHub' (required) |
OsProfile
Name | Description | Value |
---|---|---|
logonType | Determines how the service should be run. By default, this will be set to Service. | 'Interactive' 'Service' |
secretsManagementSettings | The secret management settings of the machines in the pool. | SecretsManagementSettings |
PoolImage
Name | Description | Value |
---|---|---|
aliases | List of aliases to reference the image by. | string[] |
buffer | The percentage of the buffer to be allocated to this image. | string |
ephemeralType | The ephemeral type of the image. | 'Automatic' 'CacheDisk' 'ResourceDisk' |
resourceId | The resource id of the image. | string |
wellKnownImageName | The image to use from a well-known set of images made available to customers. | string |
PoolProperties
Name | Description | Value |
---|---|---|
agentProfile | Defines how the machine will be handled once it executed a job. | AgentProfile (required) |
devCenterProjectResourceId | The resource id of the DevCenter Project the pool belongs to. | string (required) |
fabricProfile | Defines the type of fabric the agent will run on. | FabricProfile (required) |
maximumConcurrency | Defines how many resources can there be created at any given time. | int Constraints: Min value = 1 Max value = 10000 (required) |
organizationProfile | Defines the organization in which the pool will be used. | OrganizationProfile (required) |
provisioningState | The status of the current operation. | 'Accepted' 'Canceled' 'Deleting' 'Failed' 'Provisioning' 'Succeeded' 'Updating' |
ResourcePredictionsProfile
Name | Description | Value |
---|---|---|
kind | Set to 'Automatic' for type AutomaticResourcePredictionsProfile. Set to 'Manual' for type ManualResourcePredictionsProfile. | 'Automatic' 'Manual' (required) |
SecretsManagementSettings
Name | Description | Value |
---|---|---|
certificateStoreLocation | Where to store certificates on the machine. | string |
certificateStoreName | Name of the certificate store to use on the machine, currently 'My' and 'Root' are supported. | 'My' 'Root' |
keyExportable | Defines if the key of the certificates should be exportable. | bool (required) |
observedCertificates | The list of certificates to install on all machines in the pool. | string[] (required) |
Stateful
Name | Description | Value |
---|---|---|
gracePeriodTimeSpan | How long should the machine be kept around after it ran a workload when there are no stand-by agents. The maximum is one week. | string |
kind | Discriminator property for AgentProfile. | 'Stateful' (required) |
maxAgentLifetime | How long should stateful machines be kept around. The maximum is one week. | string |
StatelessAgentProfile
Name | Description | Value |
---|---|---|
kind | Discriminator property for AgentProfile. | 'Stateless' (required) |
StorageProfile
Name | Description | Value |
---|---|---|
dataDisks | A list of empty data disks to attach. | DataDisk[] |
osDiskStorageAccountType | The Azure SKU name of the machines in the pool. | 'Premium' 'Standard' 'StandardSSD' |
TrackedResourceTags
Name | Description | Value |
---|
UserAssignedIdentities
Name | Description | Value |
---|
UserAssignedIdentity
Name | Description | Value |
---|
VmssFabricProfile
Name | Description | Value |
---|---|---|
images | The VM images of the machines in the pool. | PoolImage[] (required) |
kind | Discriminator property for FabricProfile. | 'Vmss' (required) |
networkProfile | The network profile of the machines in the pool. | NetworkProfile |
osProfile | The OS profile of the machines in the pool. | OsProfile |
sku | The Azure SKU of the machines in the pool. | DevOpsAzureSku (required) |
storageProfile | The storage profile of the machines in the pool. | StorageProfile |
Usage Examples
Azure Verified Modules
The following Azure Verified Modules can be used to deploy this resource type.
Module | Description |
---|---|
DevOps Pools | AVM Resource Module for DevOps Pools |