Azure / terraform-azurerm-avm-res-desktopvirtualization-scalingplan

AVM for Desktop Virtualization Scaling Plans
https://registry.terraform.io/modules/Azure/avm-res-desktopvirtualization-scalingplan/azurerm/latest
MIT License
5 stars 3 forks source link
avd azure-virtual-desktop desktop-virtualization module scaling-plan terraform

terraform-azurerm-avm-res-desktopvirtualization-scalingplans

Average time to resolve an issue Percentage of issues still open

Module to deploy Azure Virtual Desktop Scaling Plan and associated resources.

Features

Requirements

The following requirements are needed by this module:

Resources

The following resources are used by this module:

Required Inputs

The following input variables are required:

virtual_desktop_scaling_plan_location

Description: (Required) The Azure Region where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.

Type: string

virtual_desktop_scaling_plan_name

Description: (Required) The name which should be used for this Virtual Desktop Scaling Plan . Changing this forces a new Virtual Desktop Scaling Plan to be created.

Type: string

virtual_desktop_scaling_plan_resource_group_name

Description: (Required) The name of the Resource Group where the Virtual Desktop Scaling Plan should exist. Changing this forces a new Virtual Desktop Scaling Plan to be created.

Type: string

virtual_desktop_scaling_plan_schedule

Description: - days_of_week - (Required) A list of Days of the Week on which this schedule will be used. Possible values are Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday

Type:

list(object({
    days_of_week                         = set(string)
    name                                 = string
    off_peak_load_balancing_algorithm    = string
    off_peak_start_time                  = string
    peak_load_balancing_algorithm        = string
    peak_start_time                      = string
    ramp_down_capacity_threshold_percent = number
    ramp_down_force_logoff_users         = bool
    ramp_down_load_balancing_algorithm   = string
    ramp_down_minimum_hosts_percent      = number
    ramp_down_notification_message       = string
    ramp_down_start_time                 = string
    ramp_down_stop_hosts_when            = string
    ramp_down_wait_time_minutes          = number
    ramp_up_capacity_threshold_percent   = optional(number)
    ramp_up_load_balancing_algorithm     = string
    ramp_up_minimum_hosts_percent        = optional(number)
    ramp_up_start_time                   = string
  }))

virtual_desktop_scaling_plan_time_zone

Description: (Required) Specifies the Time Zone which should be used by the Scaling Plan for time based events, the possible values are defined here.

Type: string

Optional Inputs

The following input variables are optional (have default values):

diagnostic_settings

Description: A map of diagnostic settings to create on the Key Vault. The map key is deliberately arbitrary to avoid issues where map keys maybe unknown at plan time.

Type:

map(object({
    name                                     = optional(string, null)
    log_categories                           = optional(set(string), [])
    log_groups                               = optional(set(string), ["allLogs"])
    metric_categories                        = optional(set(string), ["AllMetrics"])
    log_analytics_destination_type           = optional(string, "Dedicated")
    workspace_resource_id                    = optional(string, null)
    storage_account_resource_id              = optional(string, null)
    event_hub_authorization_rule_resource_id = optional(string, null)
    event_hub_name                           = optional(string, null)
    marketplace_partner_resource_id          = optional(string, null)
  }))

Default: {}

enable_telemetry

Description: This variable controls whether or not telemetry is enabled for the module.
For more information see https://aka.ms/avm/telemetryinfo.
If it is set to false, then no telemetry will be collected.

Type: bool

Default: true

lock

Description: Controls the Resource Lock configuration for this resource. The following properties can be specified:

Type:

object({
    kind = string
    name = optional(string, null)
  })

Default: null

role_assignments

Description: A map of role assignments to create on the resource. The map key is deliberately arbitrary to avoid issues where map keys maybe unknown at plan time.

Type:

map(object({
    role_definition_id_or_name             = string
    principal_id                           = string
    description                            = optional(string, null)
    skip_service_principal_aad_check       = optional(bool, false)
    condition                              = optional(string, null)
    condition_version                      = optional(string, null)
    delegated_managed_identity_resource_id = optional(string, null)
    principal_type                         = optional(string, null)
  }))

Default: {}

virtual_desktop_scaling_plan_description

Description: (Optional) A description of the Scaling Plan.

Type: string

Default: null

virtual_desktop_scaling_plan_exclusion_tag

Description: (Optional) The name of the tag associated with the VMs you want to exclude from autoscaling.

Type: string

Default: null

virtual_desktop_scaling_plan_friendly_name

Description: (Optional) Friendly name of the Scaling Plan.

Type: string

Default: null

virtual_desktop_scaling_plan_host_pool

Description: - hostpool_id - (Required) The ID of the HostPool to assign the Scaling Plan to.

Type:

list(object({
    hostpool_id          = string
    scaling_plan_enabled = bool
  }))

Default: null

virtual_desktop_scaling_plan_tags

Description: (Optional) A mapping of tags which should be assigned to the Virtual Desktop Scaling Plan .

Type: map(string)

Default: null

virtual_desktop_scaling_plan_timeouts

Description: - create - (Defaults to 1 hour) Used when creating the Virtual Desktop Scaling Plan.

Type:

object({
    create = optional(string)
    delete = optional(string)
    read   = optional(string)
    update = optional(string)
  })

Default: null

Outputs

The following outputs are exported:

resource

Description: This output is the full output for the resource to allow flexibility to reference all possible values for the resource. Example usage: module..resource.id

resource_id

Description: This output is the full output for the resource to allow flexibility to reference all possible values for the resource. Example usage: module..resource.id

Modules

No modules.

Data Collection

The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft’s privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.