{"id":26400968,"url":"https://github.com/libre-devops/terraform-azapi-managed-devops-pool","last_synced_at":"2025-10-18T10:03:34.180Z","repository":{"id":279502084,"uuid":"939000678","full_name":"libre-devops/terraform-azapi-managed-devops-pool","owner":"libre-devops","description":"A module used to deploy Managed DevOps pools for Azure \u0026 Azure DevOps 🚀","archived":false,"fork":false,"pushed_at":"2025-03-08T22:36:32.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-08T23:24:12.456Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/libre-devops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-25T20:43:04.000Z","updated_at":"2025-03-08T22:36:33.000Z","dependencies_parsed_at":"2025-02-25T22:42:00.621Z","dependency_job_id":null,"html_url":"https://github.com/libre-devops/terraform-azapi-managed-devops-pool","commit_stats":null,"previous_names":["libre-devops/terraform-azapi-managed-devops-pool"],"tags_count":0,"template":false,"template_full_name":"libre-devops/terraform-module-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azapi-managed-devops-pool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azapi-managed-devops-pool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azapi-managed-devops-pool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azapi-managed-devops-pool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libre-devops","download_url":"https://codeload.github.com/libre-devops/terraform-azapi-managed-devops-pool/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244051180,"owners_count":20389846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-17T14:38:18.031Z","updated_at":"2025-10-18T10:03:34.082Z","avatar_url":"https://github.com/libre-devops.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"```hcl\nresource \"azapi_resource\" \"managed_devops_pool\" {\n  type = var.managed_pool_api_version\n  body = {\n    properties = {\n      devCenterProjectResourceId = var.dev_center_project_resource_id\n      maximumConcurrency         = var.maximum_concurrency\n      organizationProfile = {\n        kind              = local.version_control_system_type\n        organizations     = local.organization_profile.organizations\n        permissionProfile = local.organization_profile.permission_profile\n      }\n\n      agentProfile = local.agent_profile\n\n      fabricProfile = {\n        sku = {\n          name = var.fabric_profile_sku_name\n        }\n        images = [for image in var.fabric_profile_images : {\n          wellKnownImageName = image.well_known_image_name\n          aliases            = image.aliases\n          buffer             = image.buffer\n          resourceId         = image.resource_id\n        }]\n\n        networkProfile = var.subnet_id != null ? {\n          subnetId = var.subnet_id\n        } : null\n        osProfile = {\n          logonType = var.fabric_profile_os_profile_logon_type\n        }\n        storageProfile = {\n          osDiskStorageAccountType = var.fabric_profile_os_disk_storage_account_type\n          dataDisks = [for data_disk in var.fabric_profile_data_disks : {\n            diskSizeGiB        = data_disk.disk_size_gigabytes\n            caching            = data_disk.caching\n            driveLetter        = data_disk.drive_letter\n            storageAccountType = data_disk.storage_account_type\n          }]\n        }\n        kind = \"Vmss\"\n      }\n    }\n  }\n  location                  = var.location\n  name                      = var.name\n  parent_id                 = var.rg_id\n  schema_validation_enabled = false\n  tags                      = var.tags\n\n  dynamic \"identity\" {\n    for_each = length(var.identity_ids) == 0 \u0026\u0026 var.identity_type == \"SystemAssigned\" ? [var.identity_type] : []\n    content {\n      type = var.identity_type\n    }\n  }\n\n  dynamic \"identity\" {\n    for_each = var.identity_type == \"UserAssigned\" ? [var.identity_type] : []\n    content {\n      type         = var.identity_type\n      identity_ids = length(var.identity_ids) \u003e 0 ? var.identity_ids : []\n    }\n  }\n\n  dynamic \"identity\" {\n    for_each = var.identity_type == \"SystemAssigned, UserAssigned\" ? [var.identity_type] : []\n    content {\n      type         = var.identity_type\n      identity_ids = length(var.identity_ids) \u003e 0 ? var.identity_ids : []\n    }\n  }\n\n\n}\n```\n## Requirements\n\nNo requirements.\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_azapi\"\u003e\u003c/a\u003e [azapi](#provider\\_azapi) | n/a |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [azapi_resource.managed_devops_pool](https://registry.terraform.io/providers/Azure/azapi/latest/docs/resources/resource) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_agent_profile_grace_period_time_span\"\u003e\u003c/a\u003e [agent\\_profile\\_grace\\_period\\_time\\_span](#input\\_agent\\_profile\\_grace\\_period\\_time\\_span) | How long should the stateful machines be kept around. Maximum value is 7 days and the format must be in `d:hh:mm:ss`. | `string` | `null` | no |\n| \u003ca name=\"input_agent_profile_kind\"\u003e\u003c/a\u003e [agent\\_profile\\_kind](#input\\_agent\\_profile\\_kind) | The kind of agent profile. | `string` | `\"Stateless\"` | no |\n| \u003ca name=\"input_agent_profile_max_agent_lifetime\"\u003e\u003c/a\u003e [agent\\_profile\\_max\\_agent\\_lifetime](#input\\_agent\\_profile\\_max\\_agent\\_lifetime) | The maximum lifetime of the agent. Maximum value is 7 days and the format must be in `d:hh:mm:ss`. | `string` | `null` | no |\n| \u003ca name=\"input_agent_profile_resource_prediction_profile\"\u003e\u003c/a\u003e [agent\\_profile\\_resource\\_prediction\\_profile](#input\\_agent\\_profile\\_resource\\_prediction\\_profile) | The resource prediction profile for the agent, a.k.a `Stand by agent mode`, supported values are 'Off', 'Manual', 'Automatic', defaults to 'Off'. | `string` | `\"Off\"` | no |\n| \u003ca name=\"input_agent_profile_resource_prediction_profile_automatic\"\u003e\u003c/a\u003e [agent\\_profile\\_resource\\_prediction\\_profile\\_automatic](#input\\_agent\\_profile\\_resource\\_prediction\\_profile\\_automatic) | The automatic resource prediction profile for the agent.\u003cbr/\u003e\u003cbr/\u003eThe object can have the following attributes:\u003cbr/\u003e- `kind` - (Required) The kind of prediction profile. Default is \"Automatic\".\u003cbr/\u003e- `prediction_preference` - (Required) The preference for resource prediction. Supported values are `Balanced`, `MostCostEffective`, `MoreCostEffective`, `MorePerformance`, and `BestPerformance`. | \u003cpre\u003eobject({\u003cbr/\u003e    kind                  = optional(string, \"Automatic\")\u003cbr/\u003e    prediction_preference = optional(string, \"Balanced\")\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"kind\": \"Automatic\",\u003cbr/\u003e  \"prediction_preference\": \"Balanced\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_agent_profile_resource_prediction_profile_manual\"\u003e\u003c/a\u003e [agent\\_profile\\_resource\\_prediction\\_profile\\_manual](#input\\_agent\\_profile\\_resource\\_prediction\\_profile\\_manual) | The manual resource prediction profile for the agent. | \u003cpre\u003eobject({\u003cbr/\u003e    kind = string\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"kind\": \"Manual\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_agent_profile_resource_predictions_manual\"\u003e\u003c/a\u003e [agent\\_profile\\_resource\\_predictions\\_manual](#input\\_agent\\_profile\\_resource\\_predictions\\_manual) | An object representing manual resource predictions for agent profiles, including time zone and optional daily schedules.\u003cbr/\u003e\u003cbr/\u003e- `time_zone` - (Optional) The time zone for the agent profile. E.g. \"Eastern Standard Time\". Defaults to `UTC`. To see valid values for this run this command in PowerShell: `[System.TimeZoneInfo]::GetSystemTimeZones() | Select Id, BaseUtcOffSet`\u003cbr/\u003e- `days_data` - (Optional) A list representing the manual schedules. Defaults to a single standby agent constantly running.\u003cbr/\u003e\u003cbr/\u003eThe `days_data` list should contain one or seven maps. Supply one to apply the same schedule each day. Supply seven for a different schedule each day.\u003cbr/\u003e\u003cbr/\u003eExamples:\u003cbr/\u003e\u003cbr/\u003e- To set always having 1 agent available, you would use the following configuration:\u003cpre\u003ehcl\u003cbr/\u003e  agent_profile_resource_predictions_manual = {\u003cbr/\u003e    days_data = [\u003cbr/\u003e      {\u003cbr/\u003e        \"00:00:00\" = 1\u003cbr/\u003e      }\u003cbr/\u003e    ]\u003cbr/\u003e  }\u003c/pre\u003e- To set the schedule for every day to scale to one agent at 8:00 AM and scale down to zero agents at 5:00 PM, you would use the following configuration:\u003cpre\u003ehcl\u003cbr/\u003e  agent_profile_resource_predictions_manual = {\u003cbr/\u003e    time_zone = \"Eastern Standard Time\"\u003cbr/\u003e    days_data = [\u003cbr/\u003e      {\u003cbr/\u003e        \"08:00:00\" = 1\u003cbr/\u003e        \"17:00:00\" = 0\u003cbr/\u003e      }\u003cbr/\u003e    ]\u003cbr/\u003e  }\u003c/pre\u003e- To set a different schedule for each day, you would use the following configuration:\u003cpre\u003ehcl\u003cbr/\u003e  agent_profile_resource_predictions_manual = {\u003cbr/\u003e    time_zone = \"Eastern Standard Time\"\u003cbr/\u003e    days_data = [\u003cbr/\u003e      # Sunday\u003cbr/\u003e      {}, # Empty map to skip Sunday\u003cbr/\u003e      # Monday\u003cbr/\u003e      {\u003cbr/\u003e        \"03:00:00\" = 2  # Scale to 2 agents at 3:00 AM\u003cbr/\u003e        \"08:00:00\" = 4  # Scale to 4 agents at 8:00 AM\u003cbr/\u003e        \"17:00:00\" = 2  # Scale to 2 agents at 5:00 PM\u003cbr/\u003e        \"22:00:00\" = 0  # Scale to 0 agents at 10:00 PM\u003cbr/\u003e      },\u003cbr/\u003e      # Tuesday\u003cbr/\u003e      {\u003cbr/\u003e        \"08:00:00\" = 2\u003cbr/\u003e        \"17:00:00\" = 0\u003cbr/\u003e      },\u003cbr/\u003e      # Wednesday\u003cbr/\u003e      {\u003cbr/\u003e        \"08:00:00\" = 2\u003cbr/\u003e        \"17:00:00\" = 0\u003cbr/\u003e      },\u003cbr/\u003e      # Thursday\u003cbr/\u003e      {\u003cbr/\u003e        \"08:00:00\" = 2\u003cbr/\u003e        \"17:00:00\" = 0\u003cbr/\u003e      },\u003cbr/\u003e      # Friday\u003cbr/\u003e      {\u003cbr/\u003e        \"08:00:00\" = 2\u003cbr/\u003e        \"17:00:00\" = 0\u003cbr/\u003e      },\u003cbr/\u003e      # Saturday\u003cbr/\u003e      {} # Empty map to skip Saturday\u003cbr/\u003e    ]\u003cbr/\u003e  }\u003c/pre\u003e | \u003cpre\u003eobject({\u003cbr/\u003e    time_zone = optional(string, \"UTC\")\u003cbr/\u003e    days_data = optional(list(map(number)))\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"days_data\": [\u003cbr/\u003e    {\u003cbr/\u003e      \"00:00:00\": 1\u003cbr/\u003e    }\u003cbr/\u003e  ]\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_dev_center_project_resource_id\"\u003e\u003c/a\u003e [dev\\_center\\_project\\_resource\\_id](#input\\_dev\\_center\\_project\\_resource\\_id) | (Required) The resource ID of the Dev Center project. | `string` | n/a | yes |\n| \u003ca name=\"input_fabric_profile_data_disks\"\u003e\u003c/a\u003e [fabric\\_profile\\_data\\_disks](#input\\_fabric\\_profile\\_data\\_disks) | A list of objects representing the configuration for fabric profile data disks.\u003cbr/\u003e\u003cbr/\u003e- `caching` - (Optional) The caching setting for the data disk. Valid values are `None`, `ReadOnly`, and `ReadWrite`. Defaults to `ReadWrite`.\u003cbr/\u003e- `disk_size_gigabytes` - (Optional) The size of the data disk in GiB. Defaults to 100GB.\u003cbr/\u003e- `drive_letter` - (Optional) The drive letter for the data disk, If you have any Windows agent images in your pool, choose a drive letter for your disk. If you don't specify a drive letter, `F` is used for VM sizes with a temporary disk; otherwise `E` is used. The drive letter must be a single letter except A, C, D, or E. If you are using a VM size without a temporary disk and want `E` as your drive letter, leave Drive Letter empty to get the default value of `E`.\u003cbr/\u003e- `storage_account_type` - (Optional) The storage account type for the data disk. Defaults to \"Premium\\_ZRS\".\u003cbr/\u003e\u003cbr/\u003eValid values for `storage_account_type` are:\u003cbr/\u003e- `Premium_LRS`\u003cbr/\u003e- `Premium_ZRS`\u003cbr/\u003e- `StandardSSD_LRS`\u003cbr/\u003e- `Standard_LRS` | \u003cpre\u003elist(object({\u003cbr/\u003e    caching              = optional(string, \"ReadWrite\")\u003cbr/\u003e    disk_size_gigabytes  = optional(number, 100)\u003cbr/\u003e    drive_letter         = optional(string, null)\u003cbr/\u003e    storage_account_type = optional(string, \"Premium_ZRS\")\u003cbr/\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_fabric_profile_images\"\u003e\u003c/a\u003e [fabric\\_profile\\_images](#input\\_fabric\\_profile\\_images) | The list of images to use for the fabric profile.\u003cbr/\u003e\u003cbr/\u003eEach object in the list can have the following attributes:\u003cbr/\u003e- `resource_id` - (Optional) The resource ID of the image, this can either be resource ID of a Standard Azure VM Image or a Image that is hosted within Azure Image Gallery.\u003cbr/\u003e- `well_known_image_name` - (Optional) The well-known name of the image, thid is used to reference the well-known images that are available on Microsoft Hosted Agents, supported images are `ubuntu-22.04/latest`, `ubuntu-20.04/latest`, `windows-2022/latest`, and `windows-2019/latest`.\u003cbr/\u003e- `buffer` - (Optional) The buffer associated with the image.\u003cbr/\u003e- `aliases` - (Required) A list of aliases for the image. | \u003cpre\u003elist(object({\u003cbr/\u003e    resource_id           = optional(string)\u003cbr/\u003e    well_known_image_name = optional(string)\u003cbr/\u003e    buffer                = optional(string, \"*\")\u003cbr/\u003e    aliases               = optional(list(string))\u003cbr/\u003e  }))\u003c/pre\u003e | \u003cpre\u003e[\u003cbr/\u003e  {\u003cbr/\u003e    \"aliases\": [\u003cbr/\u003e      \"ubuntu-22.04/latest\"\u003cbr/\u003e    ],\u003cbr/\u003e    \"well_known_image_name\": \"ubuntu-22.04/latest\"\u003cbr/\u003e  }\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_fabric_profile_os_disk_storage_account_type\"\u003e\u003c/a\u003e [fabric\\_profile\\_os\\_disk\\_storage\\_account\\_type](#input\\_fabric\\_profile\\_os\\_disk\\_storage\\_account\\_type) | The storage account type for the OS disk, possible values are 'Standard', 'Premium' and 'StandardSSD', defaults to 'Premium'. | `string` | `\"Premium\"` | no |\n| \u003ca name=\"input_fabric_profile_os_profile_logon_type\"\u003e\u003c/a\u003e [fabric\\_profile\\_os\\_profile\\_logon\\_type](#input\\_fabric\\_profile\\_os\\_profile\\_logon\\_type) | The logon type for the OS profile, possible values are 'Interactive' and 'Service', defaults to 'Service'. | `string` | `\"Service\"` | no |\n| \u003ca name=\"input_fabric_profile_sku_name\"\u003e\u003c/a\u003e [fabric\\_profile\\_sku\\_name](#input\\_fabric\\_profile\\_sku\\_name) | The SKU name of the fabric profile, make sure you have enough quota for the SKU, the CPUs are multiplied by the `maximum_concurrency` value, make sure you request enough quota, defaults to 'Standard\\_D2ads\\_v5' which has 2 vCPU Cores. so if maximum\\_concurrency is 2, you will need quota for 4 vCPU Cores and so on. | `string` | `\"Standard_D2ads_v5\"` | no |\n| \u003ca name=\"input_identity_ids\"\u003e\u003c/a\u003e [identity\\_ids](#input\\_identity\\_ids) | Specifies a list of user managed identity ids to be assigned to the VM. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_identity_type\"\u003e\u003c/a\u003e [identity\\_type](#input\\_identity\\_type) | The Managed Service Identity Type of this Virtual Machine. | `string` | `\"\"` | no |\n| \u003ca name=\"input_location\"\u003e\u003c/a\u003e [location](#input\\_location) | Azure region where the resource should be deployed. | `string` | n/a | yes |\n| \u003ca name=\"input_managed_pool_api_version\"\u003e\u003c/a\u003e [managed\\_pool\\_api\\_version](#input\\_managed\\_pool\\_api\\_version) | The API version to use for the Managed Pool resource. | `string` | `\"Microsoft.DevOpsInfrastructure/pools@2024-10-19\"` | no |\n| \u003ca name=\"input_maximum_concurrency\"\u003e\u003c/a\u003e [maximum\\_concurrency](#input\\_maximum\\_concurrency) | The maximum number of agents that can run concurrently, must be between 1 and 10000, defaults to 1. | `number` | `1` | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | Name of the pool. It needs to be globally unique for each Azure DevOps Organization. | `string` | n/a | yes |\n| \u003ca name=\"input_organization_profile\"\u003e\u003c/a\u003e [organization\\_profile](#input\\_organization\\_profile) | An object representing the configuration for an organization profile, including organizations and permission profiles.\u003cbr/\u003e\u003cbr/\u003eThis is for advanced use cases where you need to specify permissions and multiple organization.\u003cbr/\u003e\u003cbr/\u003eIf not suppled, then `version_control_system_organization_name` and optionally `version_control_system_project_names` must be supplied.\u003cbr/\u003e\u003cbr/\u003e- `organizations` - (Required) A list of objects representing the organizations.\u003cbr/\u003e  - `name` - (Required) The name of the organization, without the `https://dev.azure.com/` prefix.\u003cbr/\u003e  - `projects` - (Optional) A list of project names this agent should run on. If empty, it will run on all projects. Defaults to `[]`.\u003cbr/\u003e  - `parallelism` - (Optional) The parallelism value. If multiple organizations are specified, this value needs to be set and cannot exceed the total value of `maximum_concurrency`; otherwise, it will use the `maximum_concurrency` value as default or the value you define for single Organization.\u003cbr/\u003e- `permission_profile` - (Required) An object representing the permission profile.\u003cbr/\u003e  - `kind` - (Required) The kind of permission profile, possible values are `CreatorOnly`, `Inherit`, and `SpecificAccounts`, if `SpecificAccounts` is chosen, you must provide a list of users and/or groups.\u003cbr/\u003e  - `users` - (Optional) A list of users for the permission profile, supported value is the `ObjectID` or `UserPrincipalName`. Defaults to `null`.\u003cbr/\u003e  - `groups` - (Optional) A list of groups for the permission profile, supported value is the `ObjectID` of the group. Defaults to `null`. | \u003cpre\u003eobject({\u003cbr/\u003e    kind = optional(string, \"AzureDevOps\")\u003cbr/\u003e    organizations = list(object({\u003cbr/\u003e      name        = string\u003cbr/\u003e      projects    = optional(list(string), []) # List of all Projects names this agent should run on, if empty, it will run on all projects.\u003cbr/\u003e      parallelism = optional(number)           # If multiple organizations are specified, this value needs to be set, otherwise it will use the maximum_concurrency value.\u003cbr/\u003e    }))\u003cbr/\u003e    permission_profile = optional(object({\u003cbr/\u003e      kind   = optional(string, \"CreatorOnly\")\u003cbr/\u003e      users  = optional(list(string), null)\u003cbr/\u003e      groups = optional(list(string), null)\u003cbr/\u003e      }), {\u003cbr/\u003e      kind = \"CreatorOnly\"\u003cbr/\u003e    })\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_rg_id\"\u003e\u003c/a\u003e [rg\\_id](#input\\_rg\\_id) | The resource group where the resources will be deployed. | `string` | n/a | yes |\n| \u003ca name=\"input_subnet_id\"\u003e\u003c/a\u003e [subnet\\_id](#input\\_subnet\\_id) | The virtual network subnet resource id to use for private networking. | `string` | `null` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | (Optional) Tags of the resource. | `map(string)` | `null` | no |\n| \u003ca name=\"input_version_control_system_organization_name\"\u003e\u003c/a\u003e [version\\_control\\_system\\_organization\\_name](#input\\_version\\_control\\_system\\_organization\\_name) | The name of the version control system organization. This is required if `organization_profile` is not supplied. | `string` | `null` | no |\n| \u003ca name=\"input_version_control_system_project_names\"\u003e\u003c/a\u003e [version\\_control\\_system\\_project\\_names](#input\\_version\\_control\\_system\\_project\\_names) | The name of the version control system project. This is optional if `organization_profile` is not supplied. | `set(string)` | `[]` | no |\n| \u003ca name=\"input_version_control_system_type\"\u003e\u003c/a\u003e [version\\_control\\_system\\_type](#input\\_version\\_control\\_system\\_type) | The type of version control system. This is shortcut alternative to `organization_profile.kind`. Possible values are 'azuredevops' or 'github'. | `string` | `\"azuredevops\"` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_devops_pool_id\"\u003e\u003c/a\u003e [devops\\_pool\\_id](#output\\_devops\\_pool\\_id) | The resource if of the Managed DevOps Pool. |\n| \u003ca name=\"output_devops_pool_name\"\u003e\u003c/a\u003e [devops\\_pool\\_name](#output\\_devops\\_pool\\_name) | The name of the Managed DevOps Pool. |\n| \u003ca name=\"output_devops_pool_tags\"\u003e\u003c/a\u003e [devops\\_pool\\_tags](#output\\_devops\\_pool\\_tags) | The tags of the Managed DevOps Pool. |\n| \u003ca name=\"output_resource\"\u003e\u003c/a\u003e [resource](#output\\_resource) | This is the full output for the Managed DevOps Pool. |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibre-devops%2Fterraform-azapi-managed-devops-pool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibre-devops%2Fterraform-azapi-managed-devops-pool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibre-devops%2Fterraform-azapi-managed-devops-pool/lists"}