ManageIQ/manageiq-providers-azure

View on GitHub
content/miq_dialogs/miq_provision_azure_dialogs_template.yaml

Summary

Maintainability
Test Coverage
--- 
:name: miq_provision_azure_dialogs_template
:description: Sample Azure Instance Provisioning Dialog
:dialog_type: MiqProvisionWorkflow
:content: 
  :buttons: 
  - :submit
  - :cancel
  :dialogs: 
    :requester: 
      :description: Request
      :fields: 
        :owner_phone: 
          :description: Phone
          :required: false
          :display: :hide
          :data_type: :string
        :owner_country: 
          :description: Country/Region
          :required: false
          :display: :hide
          :data_type: :string
        :owner_phone_mobile: 
          :description: Mobile
          :required: false
          :display: :hide
          :data_type: :string
        :owner_title: 
          :description: Title
          :required: false
          :display: :hide
          :data_type: :string
        :owner_first_name: 
          :description: First Name
          :required: false
          :display: :edit
          :data_type: :string
        :owner_manager: 
          :description: Name
          :required: false
          :display: :edit
          :data_type: :string
        :owner_address: 
          :description: Address
          :required: false
          :display: :hide
          :data_type: :string
        :owner_company: 
          :description: Company
          :required: false
          :display: :hide
          :data_type: :string
        :owner_last_name: 
          :description: Last Name
          :required: false
          :display: :edit
          :data_type: :string
        :owner_manager_mail: 
          :description: E-Mail
          :required: false
          :display: :hide
          :data_type: :string
        :owner_city: 
          :description: City
          :required: false
          :display: :hide
          :data_type: :string
        :owner_department: 
          :description: Department
          :required: false
          :display: :hide
          :data_type: :string
        :owner_load_ldap: 
          :pressed: 
            :method: :retrieve_ldap
          :description: Look Up LDAP Email
          :required: false
          :display: :show
          :data_type: :button
        :owner_manager_phone: 
          :description: Phone
          :required: false
          :display: :hide
          :data_type: :string
        :owner_state: 
          :description: State
          :required: false
          :display: :hide
          :data_type: :string
        :owner_office: 
          :description: Office
          :required: false
          :display: :hide
          :data_type: :string
        :owner_zip: 
          :description: Zip code
          :required: false
          :display: :hide
          :data_type: :string
        :owner_email: 
          :description: E-Mail
          :required: true
          :display: :edit
          :data_type: :string
        :request_notes:
          :description: Notes
          :required: false
          :display: :edit
          :data_type: :string
      :display: :show
      :field_order: 
    :purpose: 
      :description: Purpose
      :fields: 
        :vm_tags: 
          :required_method: :validate_tags
          :description: Tags
          :required: false
          :options: 
            :include: []

            :order: []

            :single_select: []

            :exclude: []

          :display: :edit
          :required_tags: []

          :data_type: :integer
      :display: :show
      :field_order: 
    :environment: 
      :description: Environment
      :fields:
        :placement_auto:
          :values:
            false: 0
            true: 1
          :description: Choose Automatically
          :required: false
          :display: :edit
          :default: false
          :data_type: :boolean
        :resource_group:
          :values_from:
            :method: :allowed_resource_groups
          :description: Resource Groups
          :required: true
          :required_method: :validate_placement
          :display: :edit
          :data_type: :integer
        :cloud_network:
          :values_from:
            :method: :allowed_cloud_networks
          :description: Virtual Private Cloud
          :auto_select_single: false
          :required: true
          :required_method: :validate_placement
          :display: :edit
          :data_type: :integer
        :cloud_subnet:
          :values_from:
            :method: :allowed_cloud_subnets
          :description: Cloud Subnet
          :required: true
          :required_method: :validate_cloud_subnet
          :display: :edit
          :data_type: :integer
        :security_groups:
          :values_from:
            :method: :allowed_security_groups
          :description: Security Groups
          :required: false
          :display: :edit
          :data_type: :array_integer
        :floating_ip_address:
          :values_from:
            :method: :allowed_floating_ip_addresses
          :description: Public IP Address
          :auto_select_single: false
          :default: nil
          :required: false
          :display: :edit
          :data_type: :integer
      :display: :show
    :service:
      :description: Catalog
      :fields:
        :number_of_vms:
          :values_from:
            :options:
              :max: 50
            :method: :allowed_number_of_vms
          :description: Count
          :required: false
          :display: :edit
          :default: 1
          :data_type: :integer
        :vm_description:
          :description: Instance Description
          :required: false
          :display: :hide
          :data_type: :string
          :min_length:
          :max_length: 100
        :vm_prefix:
          :description: Instance Name Prefix/Suffix
          :required_method: :validate_vm_name
          :required: false
          :display: :hide
          :data_type: :string
        :src_vm_id:
          :values_from:
            :options:
              :tag_filters: []

            :method: :allowed_templates
          :description: Name
          :required: true
          :notes: 
          :display: :edit
          :data_type: :integer
          :notes_display: :hide
        :vm_name: 
          :description: Instance Name
          :required_method:
            - :validate_vm_name
            - :validate_regex
          :required_regex: !ruby/regexp /^[^-_](?!\d+$)[a-zA-Z0-9_-]{1,15}(?<![-_])$/
          :required_regex_fail_details: The name must be composed only of 1-15 English alphabet characters (a-z), numbers (0-9), dashes (-) or underscores (_) and cannot contain only numbers. The first and last character must be an English alphanumeric character.
          :required: true
          :notes: 
          :display: :edit
          :data_type: :string
          :notes_display: :show
          :min_length: 1
          :max_length: 15
      :display: :show
    :schedule:
      :description: Schedule
      :fields:
        :schedule_type:
          :values:
            schedule: Schedule
            immediately: Immediately on Approval
          :description: When to Provision
          :required: false
          :display: :edit
          :default: immediately
          :data_type: :string
        :schedule_time:
          :values_from:
            :options:
              :offset: 1.day
            :method: :default_schedule_time
          :description: Provision on
          :required: false
          :display: :edit
          :data_type: :time
        :retirement:
          :values:
            0: Indefinite
            1.month: 1 Month
            3.months: 3 Months
            6.months: 6 Months
          :description: Time until Retirement
          :required: false
          :display: :edit
          :default: 0
          :data_type: :integer
        :retirement_warn:
          :values_from:
            :options:
              :values:
                1.week: 1 Week
                2.weeks: 2 Weeks
                30.days: 30 Days
              :include_equals: false
              :field: :retirement
            :method: :values_less_then
          :description: Retirement Warning
          :required: true
          :display: :edit
          :default: 1.week
          :data_type: :integer
      :display: :show
    :hardware:
      :description: Properties
      :fields:
        :instance_type:
          :values_from:
            :method: :allowed_instance_types
          :description: Instance Type
          :required: true
          :display: :edit
          :data_type: :integer
      :display: :show
    :customize:
      :description: Customize
      :fields:
        :dns_servers:
          :description: DNS Server list
          :required: false
          :display: :edit
          :data_type: :string
        :dns_suffixes:
          :description: DNS Suffix List
          :required: false
          :display: :edit
          :data_type: :string
        :addr_mode:
          :values:
            static: Static
            dhcp: DHCP
          :description: Address Mode
          :required: false
          :display: :edit
          :default: dhcp
          :data_type: :string
        :linux_host_name:
          :description: Computer Name
          :required: false
          :display: :edit
          :data_type: :string
        :gateway:
          :description: Gateway
          :required: false
          :display: :edit
          :data_type: :string
        :linux_domain_name:
          :description: Domain Name
          :required: false
          :display: :edit
          :data_type: :string
        :subnet_mask:
          :description: Subnet Mask
          :required: false
          :display: :edit
          :data_type: :string
        :customization_template_id:
          :values_from:
            :method: :allowed_customization_templates
          :auto_select_single: false
          :description: Script Name
          :required: false
          :display: :edit
          :data_type: :integer
        :customization_template_script:
          :description: Script Text
          :required: false
          :display: :edit
          :data_type: :string
        :root_username:
          :description: Username
          :required: true
          :display: :edit
          :data_type: :string
          :required_method: :validate_blacklist
          :blacklist: [
            '1', '123', 'a', 'actuser', 'adm', 'admin', 'admin1', 'admin2',
            'administrator', 'aspnet', 'backup', 'console', 'david', 'guest',
            'john', 'owner', 'root', 'server', 'sql', 'support', 'support_388945a0',
            'sys', 'test', 'test1', 'test2', 'test3', 'user', 'user1', 'user2',
            'user3', 'user4', 'user5'
          ]
          :max_length: 20
        :root_password:
          :description: Password
          :required_method:
            - :validate_blacklist
            - :validate_regex
          :blacklist: [
            'abc@123', 'P@$$w0rd', 'P@ssw0rd', 'P@ssword123', 'Pa$$word',
            'pass@word1', 'Password!', 'Password1', 'Password22', 'iloveyou!'
          ]
          :required_regex: !ruby/regexp /(?=.{12,72})((?=.*\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\d)(?=.*[a-zA-Z])(?=.*[\W_])|(?=.*[a-z])(?=.*[A-Z])(?=.*[\W_])).*/
          :required_regex_fail_details: The password must be 12-72 characters, and have 3 of the following - one lowercase character, one uppercase character, one number and one special character.
          :required: true
          :display: :edit
          :data_type: :string
          :min_length: 12
          :max_length: 72
        :hostname:
          :description: Host Name
          :required: false
          :display: :edit
          :data_type: :string
      :display: :show
  :dialog_order: 
  - :requester
  - :purpose
  - :service
  - :environment
  - :hardware
  - :customize
  - :schedule