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:
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@2024-04-04-preview' = {
scope: resourceSymbolicName or scope
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'
}
}
FabricProfile objects
Set the kind property to specify the type of object.
For Vmss, use:
{
images: [
{
aliases: [
'string'
]
buffer: 'string'
resourceId: 'string'
wellKnownImageName: 'string'
}
]
kind: 'Vmss'
networkProfile: {
subnetId: 'string'
}
osProfile: {
logonType: 'string'
secretsManagementSettings: {
certificateStoreLocation: '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: [
{
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'
}
ResourcePredictionsProfile objects
Set the kind property to specify the type of object.
For Automatic, use:
{
kind: 'Automatic'
predictionPreference: 'string'
}
For Manual, use:
{
kind: 'Manual'
}
Property Values
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 |
| scope | Use when creating a resource at a scope that is different than the deployment scope. | Set this property to the symbolic name of a resource to apply the extension resource. |
| tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
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) |
NetworkProfile
| Name | Description | Value |
|---|---|---|
| subnetId | The subnet id on which to put all machines created in the pool. | string (required) |
Organization
| Name | Description | Value |
|---|---|---|
| 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 |
| 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 |
| 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:
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": "2024-04-04-preview",
"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"
}
}
FabricProfile objects
Set the kind property to specify the type of object.
For Vmss, use:
{
"images": [
{
"aliases": [ "string" ],
"buffer": "string",
"resourceId": "string",
"wellKnownImageName": "string"
}
],
"kind": "Vmss",
"networkProfile": {
"subnetId": "string"
},
"osProfile": {
"logonType": "string",
"secretsManagementSettings": {
"certificateStoreLocation": "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": [
{
"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"
}
ResourcePredictionsProfile objects
Set the kind property to specify the type of object.
For Automatic, use:
{
"kind": "Automatic",
"predictionPreference": "string"
}
For Manual, use:
{
"kind": "Manual"
}
Property Values
Microsoft.DevOpsInfrastructure/pools
| Name | Description | Value |
|---|---|---|
| apiVersion | The api version | '2024-04-04-preview' |
| 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' |
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) |
NetworkProfile
| Name | Description | Value |
|---|---|---|
| subnetId | The subnet id on which to put all machines created in the pool. | string (required) |
Organization
| Name | Description | Value |
|---|---|---|
| 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 |
| 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 |
| 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:
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@2024-04-04-preview"
name = "string"
parent_id = "string"
identity {
type = "string"
identity_ids = [
"string"
]
}
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"
}
}
}
FabricProfile objects
Set the kind property to specify the type of object.
For Vmss, use:
{
images = [
{
aliases = [
"string"
]
buffer = "string"
resourceId = "string"
wellKnownImageName = "string"
}
]
kind = "Vmss"
networkProfile = {
subnetId = "string"
}
osProfile = {
logonType = "string"
secretsManagementSettings = {
certificateStoreLocation = "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 = [
{
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"
}
ResourcePredictionsProfile objects
Set the kind property to specify the type of object.
For Automatic, use:
{
kind = "Automatic"
predictionPreference = "string"
}
For Manual, use:
{
kind = "Manual"
}
Property Values
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) |
| parent_id | The ID of the resource to apply this extension resource to. | string (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@2024-04-04-preview" |
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) |
NetworkProfile
| Name | Description | Value |
|---|---|---|
| subnetId | The subnet id on which to put all machines created in the pool. | string (required) |
Organization
| Name | Description | Value |
|---|---|---|
| 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 |
| 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 |
| 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 |