demo_solution/modules/repo_terraform.azurerm.automation_account/variables.tf (164 lines of code) (raw):
variable "automation_account_name" {
description = " Specifies the name of the Automation Account."
type = string
}
variable "resource_group_name" {
description = "The name of the resource group in which the Automation Account is created."
type = string
}
variable "sku" {
description = "The SKU of the account - only Basic is supported at this time."
type = string
default = "Basic"
}
variable "location" {
description = <<EOF
Specifies the supported Azure location where the resource exists.
If the parameter is not specified in the configuration file, the location of the resource group is used.
EOF
type = string
default = null
}
variable "identity_type" {
description = <<EOF
The type of identity used for the automation account. Possible values are `SystemAssigned`,
`UserAssigned` and `SystemAssigned, UserAssigned`
EOF
type = string
default = null
}
variable "identity_ids" {
description = <<EOF
The ID of the User Assigned Identity which should be assigned to this Automation Account.
`identity_ids` is required when type is set to `SystemAssigned`, `UserAssigned` and `SystemAssigned, UserAssigned`
EOF
type = list(string)
default = []
}
variable "runbook" {
description = <<EOF
A list of maps which contains runbook parameters
`runbook_name` - Specifies the name of the Runbook. Changing this forces a new resource to be created.
`log_verbose` - Verbose log option.
`log_progress` - Progress log option.
`runbook_type` - The type of the runbook - can be either "Graph", "GraphPowerShell",
"GraphPowerShellWorkflow", "PowerShellWorkflow", "PowerShell", "Python3", "Python2" or "Script".
`script_file_name` - The name of file with script.
`uri` - The URI of the runbook content.
EOF
type = list(object({
runbook_name = string
log_verbose = bool
log_progress = bool
runbook_type = string
script_file_name = string
uri = string
}))
default = []
}
variable "schedule" {
description = <<EOF
A list of maps which contains schedule parameters
`schedule_name`- Specifies the name of the Schedule. Changing this forces a new resource to be created.
`frequency` - The frequency of the schedule. - can be either "OneTime", "Day", "Hour", "Week", or "Month".
`interval` - The number of frequencys between runs. Only valid when frequency is "Day", "Hour", "Week",
or "Month" and defaults to 1.
`description`- A description for this Schedule.
`start_time` - Start time of the schedule. Must be at least five minutes in the future.
Defaults to seven minutes in the future from the time the resource is created.
`timezone` - The timezone of the start time. Defaults to UTC
`week_days` - List of days of the week that the job should execute on. Only valid when frequency is Week.
`month_days` - List of days of the month that the job should execute on. Must be between 1 and 31. -1 for
last day of the month. Only valid when frequency is Month.
`monthly_occurrence` - List of occurrences of days within a month. Only valid when frequency is Month.
The monthly_occurrence block supports fields documented below.
- `day` - Day of the occurrence. Must be one of Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
- `occurrence` - Occurrence of the week within the month. Must be between 1 and 5. -1 for last
week within the month.
EOF
type = list(object({
schedule_name = string
frequency = string
interval = string
description = string
start_time = string
timezone = string
week_days = list(any)
month_days = list(any)
monthly_occurrence = map(string)
}))
default = []
}
variable "job_schedule" {
description = <<EOF
A list of maps which contains schedule parameters
`runbook_name` - The name of a Runbook to link to a Schedule. It needs to be in the same Automation Account as
the Schedule and Job Schedule. Changing this forces a new resource to be created.
`schedule_name` - The name of the Schedule. Changing this forces a new resource to be created.
`A map of key/value pairs corresponding to the arguments that can be passed to the Runbook.
`parameters` - Changing this forces a new resource to be created.`
EOF
type = list(object({
runbook_name = string
schedule_name = string
parameters = map(any)
}))
default = []
}
variable "module" {
description = <<EOF
A list of maps which contains module parameters
`module_name` - Specifies the name of the Module. Changing this forces a new resource to be created.
`module_link` - The published Module link.
- `uri` - The URI of the module content (zip or nupkg).
EOF
type = list(object({
module_name = string
module_link = map(string)
}))
default = []
}
variable "webhook" {
description = <<EOF
A list of maps which contains webhook parameters
`webhook_name` - Specifies the name of the Webhook. Changing this forces a new resource to be created.
`expiry_time` - Timestamp when the webhook expires. Changing this forces a new resource to be created.
`enabled` - Controls if Webhook is enabled.
`runbook_name` - Name of the Automation Runbook to execute by Webhook.
`run_on_worker_group` - Name of the hybrid worker group the Webhook job will run on.
`parameters` - Map of input parameters passed to runbook.
`uri` - URI to initiate the webhook. Can be generated using Generate URI API. By default, new
URI is generated on each new resource creation. Changing this forces a new resource to be created.
EOF
type = list(object({
webhook_name = string
expiry_time = string
enabled = bool
runbook_name = string
run_on_worker_group = string
uri = string
parameters = list(any)
}))
default = []
}
variable "update_management" {
description = <<EOF
If this parameter is not null, `Update Management` will be created
Parameters for getting Log Analytics ID
`workspace_rg_name` - Specifies the name of the Log Analytics Workspace
`workspace_name` - he name of the resource group in which the Log Analytics workspace is located in
EOF
type = map(string)
default = null
}
variable "diagnostic_setting" {
description = <<EOF
The description of parameters for Diagnostic Setting:
`name` - specifies the name of the Diagnostic Setting;
`log_analytics_workspace_id` - ID of the Log Analytics Workspace;
`eventhub_name` - Specifies the name of the Event Hub where Diagnostics Data should be sent;
`eventhub_authorization_rule_id` - Specifies the ID of an Event Hub Namespace Authorization Rule used to send Diagnostics Data;
`storage_account_id` - the ID of the Storage Account where logs should be sent;
`log_category` - The list of Diagnostic Log Category's names for this Resource. list of available logs: `JobLogs`, `JobStreams`, `DscNodeStatus`, `AuditEvent`;
`log_category_group` - The list of Diagnostic Log Category's Group for this Resource. list of available logs: `audit`, `allLogs`;
`metric` - The list of Diagnostic Metric Category's names for this Resource. List of available Metrics: `AllMetrics`;
EOF
type = object({
name = string
log_analytics_workspace_id = optional(string)
storage_account_id = optional(string)
eventhub_name = optional(string)
eventhub_authorization_rule_id = optional(string)
log_category = optional(list(string))
log_category_group = optional(list(string))
metric = optional(list(string))
})
validation {
condition = try(var.diagnostic_setting.log_category, null) == null || try(var.diagnostic_setting.log_category_group, null) == null
error_message = "Diagnostic setting does not support mix of log category and log category group."
}
default = null
}
variable "tags" {
description = "A mapping of tags to assign to the resource."
type = map(string)
default = {}
}