dependency/azapi_examples/Microsoft.DesktopVirtualization_scalingPlans_personalSchedules@2023-11-01-preview/main.tf (132 lines of code) (raw):
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
}
}
provider "azapi" {
skip_provider_registration = false
}
provider "azurerm" {
features {
}
}
variable "resource_name" {
type = string
default = "acctest0001"
}
variable "location" {
type = string
default = "westeurope"
}
resource "azapi_resource" "resourceGroup" {
type = "Microsoft.Resources/resourceGroups@2020-06-01"
name = var.resource_name
location = var.location
}
data "azuread_service_principal" "test" {
display_name = "Windows Virtual Desktop"
}
resource "azurerm_role_assignment" "test" {
name = "4a23d649-5bf7-41b8-9701-c17f811f68da"
scope = azapi_resource.resourceGroup.id
role_definition_name = "Desktop Virtualization Power On Off Contributor"
principal_id = data.azuread_service_principal.test.object_id
skip_service_principal_aad_check = true
}
resource "azapi_resource" "hostPool" {
type = "Microsoft.DesktopVirtualization/hostPools@2023-09-05"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
body = {
properties = {
hostPoolType = "Personal"
loadBalancerType = "Persistent"
maxSessionLimit = 999999
preferredAppGroupType = "Desktop"
publicNetworkAccess = "Enabled"
startVMOnConnect = true
validationEnvironment = false
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "scalingPlan" {
depends_on = [azurerm_role_assignment.test]
type = "Microsoft.DesktopVirtualization/scalingPlans@2023-11-01-preview"
name = var.resource_name
location = var.location
parent_id = azapi_resource.resourceGroup.id
body = {
properties = {
timeZone = "W. Europe Standard Time"
hostPoolType = "Personal"
exclusionTag = "no-schedule"
schedules = []
hostPoolReferences = [
{
hostPoolArmPath = azapi_resource.hostPool.id,
scalingPlanEnabled = true
}
]
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
resource "azapi_resource" "personalSchedule" {
type = "Microsoft.DesktopVirtualization/scalingPlans/personalSchedules@2023-11-01-preview"
name = "Weekdays"
parent_id = azapi_resource.scalingPlan.id
body = {
properties = {
daysOfWeek = [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
rampUpStartTime = {
hour = 7
minute = 0
}
rampUpAutoStartHosts = "None"
rampUpStartVMOnConnect = "Enable"
rampUpMinutesToWaitOnDisconnect = 45
rampUpActionOnDisconnect = "Hibernate"
rampUpMinutesToWaitOnLogoff = 30
rampUpActionOnLogoff = "Hibernate"
peakStartTime = {
hour = 8
minute = 0
}
peakStartVMOnConnect = "Enable"
peakMinutesToWaitOnDisconnect = 60
peakActionOnDisconnect = "Hibernate"
peakMinutesToWaitOnLogoff = 60
peakActionOnLogoff = "Hibernate"
rampDownStartTime = {
hour = 16
minute = 30
}
rampDownStartVMOnConnect = "Enable"
rampDownMinutesToWaitOnDisconnect = 45
rampDownActionOnDisconnect = "Hibernate"
rampDownMinutesToWaitOnLogoff = 30
rampDownActionOnLogoff = "Hibernate"
offPeakStartTime = {
hour = 17
minute = 30
}
offPeakStartVMOnConnect = "Enable"
offPeakMinutesToWaitOnDisconnect = 20
offPeakActionOnDisconnect = "Hibernate"
offPeakMinutesToWaitOnLogoff = 15
offPeakActionOnLogoff = "Hibernate"
}
}
}