Microsoft.DevOpsInfrastructure pools

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-10-19' = {
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  location: 'string'
  name: 'string'
  properties: {
    agentProfile: {
      resourcePredictions: any(Azure.Bicep.Types.Concrete.AnyType)
      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'
  }
}

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'
}

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'
    }
  ]
}

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
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

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-10-19",
  "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"
  }
}

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"
}

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"
    }
  ]
}

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 '2024-10-19'
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
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

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@2024-10-19"
  name = "string"
  identity = {
    type = "string"
    userAssignedIdentities = {
      {customized property} = {
      }
    }
  }
  location = "string"
  body = jsonencode({
    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"
  }
}

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"
}

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"
    }
  ]
}

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@2024-10-19"

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