Microsoft.DevOpsInfrastructure pools 2023-10-30-preview

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

{
  kind: 'Stateful'
  maxAgentLifetime: 'string'
}

For Stateless, use:

{
  kind: 'Stateless'
}

OrganizationProfile objects

Set the kind property to specify the type of object.

For AzureDevOps, use:

{
  kind: 'AzureDevOps'
  organizations: [
    {
      parallelism: int
      projects: [
        'string'
      ]
      url: 'string'
    }
  ]
}

FabricProfile objects

Set the kind property to specify the type of object.

For Vmss, use:

{
  images: [
    {
      aliases: [
        'string'
      ]
      buffer: 'string'
      resourceId: 'string'
    }
  ]
  kind: 'Vmss'
  networkProfile: {
    subnetId: 'string'
  }
  osProfile: {
    secretsManagementSettings: {
      certificateStoreLocation: 'string'
      keyExportable: bool
      observedCertificates: [
        'string'
      ]
    }
  }
  sku: {
    name: 'string'
    tier: '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. any

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)

DevOpsAzureSku

Name Description Value
name The Azure SKU name of the machines in the pool. string (required)
tier The Azure SKU tier of the machines in the pool. string

FabricProfile

Name Description Value
kind Set to 'Vmss' for type VmssFabricProfile. 'Vmss' (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

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-z][a-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. 'AzureDevOps' (required)

OsProfile

Name Description Value
secretsManagementSettings The secret management settings of the machines in the pool. SecretsManagementSettings (required)

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 (required)

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'

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
kind Discriminator property for AgentProfile. 'Stateful' (required)
maxAgentLifetime How long should stateful machines be kept around. The maximum is one week. string (required)

StatelessAgentProfile

Name Description Value
kind Discriminator property for AgentProfile. 'Stateless' (required)

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)

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": "2023-10-30-preview",
  "name": "string",
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {
      }
    }
  },
  "location": "string",
  "properties": {
    "agentProfile": {
      "resourcePredictions": {},
      "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:

{
  "kind": "Stateful",
  "maxAgentLifetime": "string"
}

For Stateless, use:

{
  "kind": "Stateless"
}

OrganizationProfile objects

Set the kind property to specify the type of object.

For AzureDevOps, use:

{
  "kind": "AzureDevOps",
  "organizations": [
    {
      "parallelism": "int",
      "projects": [ "string" ],
      "url": "string"
    }
  ]
}

FabricProfile objects

Set the kind property to specify the type of object.

For Vmss, use:

{
  "images": [
    {
      "aliases": [ "string" ],
      "buffer": "string",
      "resourceId": "string"
    }
  ],
  "kind": "Vmss",
  "networkProfile": {
    "subnetId": "string"
  },
  "osProfile": {
    "secretsManagementSettings": {
      "certificateStoreLocation": "string",
      "keyExportable": "bool",
      "observedCertificates": [ "string" ]
    }
  },
  "sku": {
    "name": "string",
    "tier": "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. any

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)

DevOpsAzureSku

Name Description Value
name The Azure SKU name of the machines in the pool. string (required)
tier The Azure SKU tier of the machines in the pool. string

FabricProfile

Name Description Value
kind Set to 'Vmss' for type VmssFabricProfile. 'Vmss' (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

Microsoft.DevOpsInfrastructure/pools

Name Description Value
apiVersion The api version '2023-10-30-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-z][a-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. 'AzureDevOps' (required)

OsProfile

Name Description Value
secretsManagementSettings The secret management settings of the machines in the pool. SecretsManagementSettings (required)

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 (required)

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'

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
kind Discriminator property for AgentProfile. 'Stateful' (required)
maxAgentLifetime How long should stateful machines be kept around. The maximum is one week. string (required)

StatelessAgentProfile

Name Description Value
kind Discriminator property for AgentProfile. 'Stateless' (required)

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)

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@2023-10-30-preview"
  name = "string"
  identity = {
    type = "string"
    userAssignedIdentities = {
      {customized property} = {
      }
    }
  }
  location = "string"
  body = jsonencode({
    properties = {
      agentProfile = {
        resourcePredictions = ?
        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:

{
  kind = "Stateful"
  maxAgentLifetime = "string"
}

For Stateless, use:

{
  kind = "Stateless"
}

OrganizationProfile objects

Set the kind property to specify the type of object.

For AzureDevOps, use:

{
  kind = "AzureDevOps"
  organizations = [
    {
      parallelism = int
      projects = [
        "string"
      ]
      url = "string"
    }
  ]
}

FabricProfile objects

Set the kind property to specify the type of object.

For Vmss, use:

{
  images = [
    {
      aliases = [
        "string"
      ]
      buffer = "string"
      resourceId = "string"
    }
  ]
  kind = "Vmss"
  networkProfile = {
    subnetId = "string"
  }
  osProfile = {
    secretsManagementSettings = {
      certificateStoreLocation = "string"
      keyExportable = bool
      observedCertificates = [
        "string"
      ]
    }
  }
  sku = {
    name = "string"
    tier = "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. any

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)

DevOpsAzureSku

Name Description Value
name The Azure SKU name of the machines in the pool. string (required)
tier The Azure SKU tier of the machines in the pool. string

FabricProfile

Name Description Value
kind Set to 'Vmss' for type VmssFabricProfile. 'Vmss' (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

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-z][a-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@2023-10-30-preview"

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. 'AzureDevOps' (required)

OsProfile

Name Description Value
secretsManagementSettings The secret management settings of the machines in the pool. SecretsManagementSettings (required)

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 (required)

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'

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
kind Discriminator property for AgentProfile. 'Stateful' (required)
maxAgentLifetime How long should stateful machines be kept around. The maximum is one week. string (required)

StatelessAgentProfile

Name Description Value
kind Discriminator property for AgentProfile. 'Stateless' (required)

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)