---
- name: Check azure_tenant_id value
  fail:
    msg: "azure_tenant_id is missing"
  when: azure_tenant_id is not defined or not azure_tenant_id

- name: Check azure_subscription_id value
  fail:
    msg: "azure_subscription_id is missing"
  when: azure_subscription_id is not defined or not azure_subscription_id

- name: Check azure_aad_client_id value
  fail:
    msg: "azure_aad_client_id is missing"
  when: azure_aad_client_id is not defined or not azure_aad_client_id

- name: Check azure_aad_client_secret value
  fail:
    msg: "azure_aad_client_secret is missing"
  when: azure_aad_client_secret is not defined or not azure_aad_client_secret

- name: Check azure_resource_group value
  fail:
    msg: "azure_resource_group is missing"
  when: azure_resource_group is not defined or not azure_resource_group

- name: Check azure_location value
  fail:
    msg: "azure_location is missing"
  when: azure_location is not defined or not azure_location

- name: Check azure_subnet_name value
  fail:
    msg: "azure_subnet_name is missing"
  when: azure_subnet_name is not defined or not azure_subnet_name

- name: Check azure_security_group_name value
  fail:
    msg: "azure_security_group_name is missing"
  when: azure_security_group_name is not defined or not azure_security_group_name

- name: Check azure_vnet_name value
  fail:
    msg: "azure_vnet_name is missing"
  when: azure_vnet_name is not defined or not azure_vnet_name

- name: Check azure_vnet_resource_group value
  fail:
    msg: "azure_vnet_resource_group is missing"
  when: azure_vnet_resource_group is not defined or not azure_vnet_resource_group

- name: Check azure_route_table_name value
  fail:
    msg: "azure_route_table_name is missing"
  when: azure_route_table_name is not defined or not azure_route_table_name

- name: Check azure_loadbalancer_sku value
  fail:
    msg: "azure_loadbalancer_sku has an invalid value '{{ azure_loadbalancer_sku }}'. Supported values are 'basic', 'standard'"
  when: azure_loadbalancer_sku not in ["basic", "standard"]

- name: "Check azure_exclude_master_from_standard_lb is a bool"
  assert:
    that: azure_exclude_master_from_standard_lb | type_debug == 'bool'

- name: "Check azure_disable_outbound_snat is a bool"
  assert:
    that: azure_disable_outbound_snat | type_debug == 'bool'

- name: "Check azure_use_instance_metadata is a bool"
  assert:
    that: azure_use_instance_metadata | type_debug == 'bool'

- name: Check azure_vmtype value
  fail:
    msg: "azure_vmtype is missing. Supported values are 'standard' or 'vmss'"
  when: azure_vmtype is not defined or not azure_vmtype

- name: Check azure_cloud value
  fail:
    msg: "azure_cloud has an invalid value '{{ azure_cloud }}'. Supported values are 'AzureChinaCloud', 'AzureGermanCloud', 'AzurePublicCloud', 'AzureUSGovernmentCloud'."
  when: azure_cloud not in ["AzureChinaCloud", "AzureGermanCloud", "AzurePublicCloud", "AzureUSGovernmentCloud"]
