Module: Vcloud::Launcher::Schema

Defined in:
lib/vcloud/launcher/schema/vm.rb,
lib/vcloud/launcher/schema/vapp.rb,
lib/vcloud/launcher/schema/launcher_vapps.rb

Constant Summary collapse

VM =
{
  type: 'hash',
  required: false,
  allowed_empty: false,
  internals: {
    network_connections: {
      type: 'array',
      required: false,
      each_element_is: {
        type: 'hash',
        internals: {
          name: { type: 'string', required: true },
          ip_address: { type: 'ip_address', required: false },
          allocation_mode: { type: 'string', required: false },
          mac_address: { type: 'string', required: false },
        },
      },
    },
    storage_profile: { type: 'string', required: false },
    hardware_config: {
      type: 'hash',
      required: false,
      internals: {
        cpu: { type: 'string_or_number', required: false },
        memory: { type: 'string_or_number', required: false },
      },
    },
    extra_disks: {
      type: 'array',
      required: false,
      allowed_empty: false,
      each_element_is: {
        type: 'hash',
        internals: {
          name: { type: 'string', required: false },
          size: { type: 'string_or_number', required: false },
        },
      },
    },
    independent_disks: {
      type: 'array',
      required: false,
      allowed_empty: true,
      each_element_is: {
        type: 'hash',
        internals: {
          name: { type: 'string', required: true },
        },
      },
    },
    bootstrap:   {
      type: 'hash',
      required: false,
      allowed_empty: false,
      internals: {
        script_path: { type: 'string', required: false },
        script_post_processor: { type: 'string', required: false },
        vars: { type: 'hash', required: false, allowed_empty: true },
      },
    },
    metadata: {
      type: 'hash',
      required: false,
      allowed_empty: true,
    },
  },
}
VAPP =
{
  type: 'hash',
  required: true,
  allowed_empty: false,
  internals: {
    name:               { type: 'string', required: true, allowed_empty: false },
    vdc_name:           { type: 'string', required: true, allowed_empty: false },
    catalog:            { type: 'string', deprecated_by: 'catalog_name', allowed_empty: false },
    catalog_name:       { type: 'string', required: true, allowed_empty: false },
    catalog_item:       { type: 'string', deprecated_by: 'vapp_template_name', allowed_empty: false },
    vapp_template_name: { type: 'string', required: true, allowed_empty: false },
    vm:                 Vcloud::Launcher::Schema::VM,
  },
}
LAUNCHER_VAPPS =
{
  type: 'hash',
  allowed_empty: false,
  permit_unknown_parameters: true,
  internals: {
    vapps: {
      type: 'array',
      required: false,
      allowed_empty: true,
      each_element_is: Vcloud::Launcher::Schema::VAPP,
    },
  },
}