// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.
cloudStack.docs = {

  //Dedicate Resource

   helpDedicateResource:{

    desc:'Check this box to dedicate the resources to specific domain/account',
    externalLink:''

  },

   helpAccountForDedication:{

   desc:'Please enter an account name which belongs to the above selected domain in order to dedicate this resource to this account',
   externalLink:''

  },


 //Delete/archive events
  helpEventsDeleteType:{

   desc:'Delete all the events by specifying its TYPE eg . USER.LOGIN',
   externalLink:''

  },

  helpEventsDeleteDate:{

  desc:'Delete all the events which have been created after this date ',
  externalLink:''
  },

  helpEventsArchiveType:{

    desc:'Archive all the events by specifying its TYPE (integer number)',
    externalLink:''
  },

  helpEventsArchiveDate:{

   desc:'Archive all the events which have been created after this date',
   externalLink:''
  },

  //Delete/archive Alerts
  helpAlertsDeleteType:{

   desc:'Delete all the alerts by specifying its TYPE eg . USER.LOGIN',
   externalLink:''

  },

  helpAlertsDeleteDate:{

  desc:'Delete all the alerts which have been created after this date ',
  externalLink:''
  },

  helpAlertsArchiveType:{

    desc:'Archive all the alerts by specifying its TYPE (integer number)',
    externalLink:''
  },

  helpAlertsArchiveDate:{

   desc:'Archive all the alerts which have been created after this date',
   externalLink:''
  },


 //Ldap
  helpLdapQueryFilter: {

  desc:'Query filter is used to find a mapped user in the external LDAP server.Cloudstack provides some wildchars to represent the unique attributes in its database . Example - If Cloudstack account-name is same as the LDAP uid, then following will be a valid filter: Queryfilter :  (&(uid=%u) ,  Queryfilter: .incase of Active Directory , Email _ID :(&(mail=%e)) , displayName :(&(displayName=%u)',

  externalLink:''
 },


  //IP Reservation tooltips
   helpIPReservationCidr: {
     desc:'Edit CIDR when you want to configure IP Reservation in isolated guest Network',
     externalLink:''

   },

  helpIPReservationNetworkCidr:{
   desc:'The CIDR of the entire network when IP reservation is configured',
   externalLink:' '

   },

  helpReservedIPRange:{
     desc:'The IP Range which is not used by CloudStack to allocate to Guest VMs.Can be used for Non Cloudstack purposes.',
     externalLink:''
   },

  // Add account
  helpAccountUsername: {
  desc: 'Any desired login ID. Must be unique in the current domain. The same username can exist in other domains, including sub-domains.',
    externalLink: ''
  },

   helpOverridePublicNetwork:{
   desc:'Choose to override zone wide traffic label for guest traffic for this cluster',
   externalLink:''

  },

  helpOverrideGuestNetwork:{

  desc:'Choose to override zone wide traffic label for guest traffic for this cluster',
  externalLink:''

 },

  helpAccountPassword: {
  desc: 'Any desired password',
  externalLink: ''
  },
  helpAccountConfirmPassword: {
  desc: 'Type the same password again',
  externalLink: ''
  },
  helpAccountEmail: {
  desc: 'The account\'s email address',
  externalLink: ''
  },
  helpAccountFirstName: {
  desc: 'The first name, also known as the given name, of a person; or the first part of the entity represented by the account, such as a customer or department',
  externalLink: ''
  },
  helpAccountLastName: {
  desc: 'The last name, also known as the family name, of a person; or the second part of the name of a customer or department',
  externalLink: ''
  },
  helpAccountDomain: {
  desc: 'Domain in which the account is to be created',
  externalLink: ''
  },
  helpAccountAccount: {
  desc: 'Multiple users can exist in an account. Set the parent account name here.',
  externalLink: ''
  },
  helpAccountType: {
  desc: 'Root admin can access all resources. Domain admin can access the domain\'s users, but not physical servers. User sees only their own resources, such as VMs.',
  externalLink: ''
  },
  helpAccountTimezone: {
  desc: 'Set the time zone that corresponds to the account\'s locale',
  externalLink: ''
  },
  helpAccountNetworkDomain: {
  desc: 'If you want to assign a special domain name to the account\'s guest VM network, specify the DNS suffix',
  externalLink: ''
  },
  // Add cluster
  helpClusterZone: {
  desc: 'The zone in which you want to create the cluster',
  externalLink: ''
  },
  helpClusterHypervisor: {
  desc: 'The type of hypervisor software that runs on the hosts in this cluster. All hosts in a cluster run the same hypervisor.',
  externalLink: ''
  },
  helpClusterPod: {
  desc: 'The pod in which you want to create the cluster',
  externalLink: ''
  },
  helpClusterName: {
  desc: 'Any desired cluster name. Used for display only.',
  externalLink: ''
  },
  helpClustervCenterHost: {
	  desc: 'The hostname or IP address of the vCenter server',
	  externalLink: ''
  },
  helpClustervCenterUsername: {
	  desc: 'ID of a user with all administrative privileges on vCenter',
	  externalLink: ''
  },
  helpClustervCenterPassword: {
	  desc: 'Password of the user in Username',
	  externalLink: ''
  },
  helpClustervCenterDatacenter: {
	  desc: 'The vCenter datacenter that the cluster is in. For example, cloud.dc.VM',
	  externalLink: ''
  },
  // Add compute offering
  helpComputeOfferingName: {
  desc: 'Any desired name for the offering',
  externalLink: ''
  },
  helpComputeOfferingDescription: {
  desc: 'A short description of the offering that can be displayed to users',
  externalLink: ''
  },
  helpComputeOfferingStorageType: {
  desc: 'Type of disk for the VM. Local storage is attached to the hypervisor host where the VM is running. Shared storage is accessible via NFS.',
  externalLink: ''
  },
  helpComputeOfferingCPUCores: {
  desc: 'The number of cores which should be allocated to a VM with this offering',
  externalLink: ''
  },
  helpComputeOfferingCPUMHz: {
  desc: 'The CPU speed of the cores that the VM is allocated. For example, 2000 provides a 2 GHz clock.',
  externalLink: ''
  },
  helpComputeOfferingMemory: {
  desc: 'The amount of memory in megabytes to allocate for the system VM. For example, 2048 provides 2 GB RAM.',
  externalLink: ''
  },
  helpComputeOfferingNetworkRate: {
  desc: 'Allowed data transfer rate in megabits(Mb) per second',
  externalLink: ''
  },
  helpComputeOfferingHA: {
  desc: 'If yes, the administrator can choose to have the VM be monitored and as highly available as possible',
  externalLink: ''
  },
  helpComputeOfferingStorageTags: {
  desc: 'Comma-separated list of attributes that should be associated with the primary storage used by the VM. For example "ssd,blue".',
  externalLink: ''
  },
  helpComputeOfferingHostTags: {
  desc: 'Any tags that you use to organize your hosts',
  externalLink: ''
  },
  helpComputeOfferingCPUCap: {
  desc: 'If yes, the system will limit the level of CPU usage even if spare capacity is available',
  externalLink: ''
  },
  helpComputeOfferingPublic: {
  desc: 'Yes makes the offering available to all domains. No limits the scope to a subdomain; you will be prompted for the subdomain\'s name.',
  externalLink: ''
  },
  helpComputeOfferingDomain: {
    desc: 'The domain to associate this compute offering with'
  },
  // Add disk offering
  helpDiskOfferingName: {
  desc: 'Any desired name for the offering',
  externalLink: ''
  },
  helpDiskOfferingDescription: {
  desc: 'A short description of the offering that can be displayed to users',
  externalLink: ''
  },
  helpDiskOfferingStorageType: {
  desc: 'Type of disk for the VM. Local is attached to the hypervisor host where the VM is running. Shared is storage accessible via NFS.',
  externalLink: ''
  },
  helpDiskOfferingQoSType: {
  desc: 'Type of Quality of Service desired, if any.',
  externalLink: ''
  },
  helpDiskOfferingCustomDiskSize: {
  desc: 'If checked, the user can set their own disk size. If not checked, the root administrator must define a value in Disk Size.',
  externalLink: ''
  },
  helpDiskOfferingDiskSize: {
  desc: 'Appears only if Custom Disk Size is not selected. Define the volume size in GB.',
  externalLink: ''
  },
  helpDiskOfferingCustomDiskIops: {
  desc: 'If checked, the user can set Min and Max IOPS. If not checked, the root administrator can define such values.',
  externalLink: ''
  },
  helpDiskOfferingDiskIopsMin: {
  desc: 'Appears only if Custom IOPS is not selected. Define the minimum volume IOPS.',
  externalLink: ''
  },
  helpDiskOfferingDiskIopsMax: {
  desc: 'Appears only if Custom IOPS is not selected. Define the maximum volume IOPS.',
  externalLink: ''
  },
  helpDiskOfferingStorageTags: {
  desc: 'Comma-separated list of attributes that should be associated with the primary storage for this disk. For example "ssd,blue".',
  externalLink: ''
  },
  helpDiskOfferingPublic: {
  desc: 'Yes makes the offering available to all domains. No limits the scope to a subdomain; you will be prompted for the subdomain\'s name.',
  externalLink: ''
  },
  helpDiskOfferingDomain: {
  desc: 'Select the subdomain in which this offering is available',
  externalLink: ''
  },
  // Add domain
  helpDomainName: {
  desc: 'Any desired name for the new sub-domain. Must be unique within the current domain.',
  externalLink: ''
  },
  helpDomainNetworkDomain: {
  desc: 'If you want to assign a special domain name to this domain\'s guest VM network, specify the DNS suffix',
  externalLink: ''
  },
  // Add F5
  helpF5IPAddress: {
  desc: 'The IP address of the device',
  externalLink: ''
  },
  helpF5Username: {
  desc: 'A user ID with valid authentication credentials that provide to access the device',
  externalLink: ''
  },
  helpF5Password: {
  desc: 'The password for the user ID provided in Username',
  externalLink: ''
  },
  helpF5Type: {
  desc: 'The type of device that is being added',
  externalLink: ''
  },
  helpF5PublicInterface: {
  desc: 'Interface of device that is configured to be part of the public network',
  externalLink: ''
  },
  helpF5PrivateInterface: {
  desc: 'Interface of device that is configured to be part of the private network',
  externalLink: ''
  },
  helpF5Retries: {
  desc: 'Number of times to attempt a command on the device before considering the operation failed. Default is 2.',
  externalLink: ''
  },
  helpF5Mode: {
  desc: 'Side by side mode is supported for the F5.',
  externalLink: ''
  },
  helpF5Dedicated: {
  desc: 'Check this box to dedicate the device to a single account. The value in the Capacity field will be ignored.',
  externalLink: ''
  },
  helpF5Capacity: {
  desc: 'Number of guest networks/accounts that will share this device',
  externalLink: ''
  },
  // Add guest network
  helpGuestNetworkName: {
  desc: 'The name of the network. This will be user-visible.',
  externalLink: ''
  },
  helpGuestNetworkDisplayText: {
  desc: 'The description of the network. This will be user-visible.',
  externalLink: ''
  },
  helpGuestNetworkZone: {
  desc: 'The name of the zone this network applies to. The administrator must configure the IP range for the guest networks in each zone.',
  externalLink: ''
  },
  helpGuestNetworkNetworkOffering: {
  desc: 'If the administrator has configured multiple network offerings, select the one you want to use for this network',
  externalLink: ''
  },
  helpGuestNetworkGateway: {
  desc: 'The gateway that the guests should use.',
  externalLink: ''
  },
  helpGuestNetworkNetmask: {
  desc: 'The netmask in use on the subnet the guests will use.',
  externalLink: ''
  },
  // Add guest network from zone
  helpGuestNetworkZoneName: {
  desc: 'The name of the network. This will be user-visible.',
  externalLink: ''
  },
  helpGuestNetworkZoneDescription: {
  desc: 'The description of the network. This will be user-visible.',
  externalLink: ''
  },
  helpGuestNetworkZoneVLANID: {
  desc: 'The VLAN tag for this network',
  externalLink: ''
  },
  helpGuestNetworkZoneScope: {
  desc: 'Scope',
  externalLink: ''
  },
  helpGuestNetworkZoneNetworkOffering: {
  desc: 'If the administrator has configured multiple network offerings, select the one you want to use for this network',
  externalLink: ''
  },
  helpGuestNetworkZoneGateway: {
  desc: 'The gateway that the guests should use.',
  externalLink: ''
  },
  helpGuestNetworkZoneNetmask: {
  desc: 'The netmask in use on the subnet the guests will use.',
  externalLink: ''
  },
  helpGuestNetworkZoneStartIP: {
  desc: 'The first IP address to define a range that can be assigned to guests. We strongly recommend the use of multiple NICs.',
  externalLink: ''
  },
  helpGuestNetworkZoneEndIP: {
  desc: 'The final IP address to define a range that can be assigned to guests. We strongly recommend the use of multiple NICs.',
  externalLink: ''
  },
  helpGuestNetworkZoneNetworkDomain: {
  desc: 'If you want to assign a special domain name to this guest VM network, specify the DNS suffix',
  externalLink: ''
  },
  // Add host
  helpHostZone: {
  desc: 'The zone where you want to add the host',
  externalLink: ''
  },
  helpHostPod: {
  desc: 'The pod where you want to add the host',
  externalLink: ''
  },
  helpHostCluster: {
  desc: 'The cluster where you want to add the host',
  externalLink: ''
  },
  helpHostName: {
  desc: 'The DNS name or IP address of the host',
  externalLink: ''
  },
  helpHostUsername: {
  desc: 'Usually root',
  externalLink: ''
  },
  helpHostPassword: {
  desc: 'The password for the user named in Username. The password was set during hypervisor installation on the host.',
  externalLink: ''
  },
  helpHostTags: {
  desc: 'Any labels that you use to categorize hosts for ease of maintenance or to enable HA.',
  externalLink: ''
  },
  // Add Netscaler
  helpNetScalerIPAddress: {
  desc: 'The IP address of the device',
  externalLink: ''
  },
  helpNetScalerUsername: {
  desc: 'A user ID with valid authentication credentials that provide to access the device',
  externalLink: ''
  },
  helpNetScalerPassword: {
  desc: 'The password for the user ID provided in Username',
  externalLink: ''
  },
  helpNetScalerType: {
  desc: 'The type of device that is being added',
  externalLink: ''
  },
  helpNetScalerPublicInterface: {
  desc: 'Interface of device that is configured to be part of the public network',
  externalLink: ''
  },
  helpNetScalerPrivateInterface: {
  desc: 'Interface of device that is configured to be part of the private network',
  externalLink: ''
  },
  helpNetScalerRetries: {
  desc: 'Number of times to attempt a command on the device before considering the operation failed. Default is 2.',
  externalLink: ''
  },
  helpNetScalerDedicated: {
  desc: 'Check this box to dedicate the device to a single account. The value in the Capacity field will be ignored.',
  externalLink: ''
  },
  helpNetScalerCapacity: {
  desc: 'Number of guest networks/accounts that will share this device',
  externalLink: ''
  },
  // Add network offering
  helpNetworkOfferingName: {
  desc: 'Any desired name for the network offering',
  externalLink: ''
  },
  helpNetworkOfferingDescription: {
  desc: 'A short description of the offering that can be displayed to users',
  externalLink: ''
  },
  helpNetworkOfferingNetworkRate: {
  desc: 'Allowed data transfer rate in megabits(Mb) per second',
  externalLink: ''
  },
  helpNetworkOfferingTrafficType: {
  desc: 'The type of network traffic that will be carried on the network',
  externalLink: ''
  },
  helpNetworkOfferingGuestType: {
  desc: 'Choose whether the guest network is isolated or shared.',
  externalLink: ''
  },
  helpNetworkOfferingSpecifyVLAN: {
  desc: '(Isolated guest networks only) Indicate whether a VLAN should be specified when this offering is used',
  externalLink: ''
  },
  helpNetworkOfferingVPC: {
  desc: 'Specify whether this offering is for a virtual private cloud',
  externalLink: ''
  },
  helpNetworkOfferingSystemOffering: {
  desc: 'Choose the system service offering that you want the virtual routers to use in this network',
  externalLink: ''
  },
  helpNetworkOfferingLBIsolation: {
  desc: 'Specify what type of load balancer isolation you want for the network: Shared or Dedicated',
  externalLink: ''
  },
  helpNetworkOfferingMode: {
  desc: 'Choose Inline or Side by Side to specify whether a firewall is placed in front of the load balancing device (inline) or in parallel with it (side-by-side)',
  externalLink: ''
  },
  helpNetworkOfferingAssociatePublicIP: {
  desc: 'Select this option if you want to assign a public IP address to the VMs deployed in the guest network',
  externalLink: ''
  },
  helpNetworkOfferingRedundantRouterCapability: {
  desc: 'Select this option if you want to use two virtual routers in the network for uninterrupted connection: one operating as the master virtual router and the other as the backup',
  externalLink: ''
  },
  helpNetworkOfferingConserveMode: {
  desc: 'Check this box to use conserve mode, where network resources are allocated only when the first VM starts. You can define more than one service on the same public IP only when conserve mode is on.',
  externalLink: ''
  },
  helpNetworkOfferingTags: {
  desc: 'Network tag to specify which physical network to use',
  externalLink: ''
  },
  // Add pod
  helpPodZone: {
  desc: 'The zone where you want to add the pod',
  externalLink: ''
  },
  helpPodName: {
  desc: 'Set a name for the pod',
  externalLink: ''
  },
  helpPodGateway: {
  desc: 'The gateway for the hosts in the pod',
  externalLink: ''
  },
  helpPodNetmask: {
  desc: 'The network prefix that defines the pod\'s subnet. Use CIDR notation.',
  externalLink: ''
  },
  helpPodStartIP: {
  desc: 'The first IP address to define a range in the management network that is used to manage various system VMs',
  externalLink: ''
  },
  helpPodEndIP: {
  desc: 'The last IP address to define a range in the management network that is used to manage various system VMs',
  externalLink: ''
  },
  // Add primary storage
  helpPrimaryStorageZone: {
  desc: 'The zone in which you want to create the primary storage',
  externalLink: ''
  },
  helpPrimaryStoragePod: {
  desc: 'The pod in which you want to create the primary storage',
  externalLink: ''
  },
  helpPrimaryStorageCluster: {
  desc: 'The cluster in which you want to create the primary storage',
  externalLink: ''
  },
  helpPrimaryStorageName: {
  desc: 'The name of the storage device',
  externalLink: ''
  },
  helpPrimaryStorageProtocol: {
  desc: 'For XenServer, choose NFS, iSCSI, or PreSetup. For KVM, choose NFS or SharedMountPoint. For vSphere, choose VMFS (iSCSI or FiberChannel) or NFS.',
  externalLink: ''
  },
  helpPrimaryStorageServer: {
  desc: 'NFS, iSCSI, or PreSetup: IP address or DNS name of the storage device. VMFS: IP address or DNS name of the vCenter server.',
  externalLink: ''
  },
  helpPrimaryStoragePath: {
  desc: 'NFS: exported path from the server. VMFS: /datacenter name/datastore name. SharedMountPoint: path where primary storage is mounted, such as "/mnt/primary"',
  externalLink: ''
  },
  helpPrimaryStorageSRNameLabel: {
  desc: 'The name-label of the SR that has been set up independently of the cloud management system',
  externalLink: ''
  },
  helpPrimaryStorageTargetIQN: {
  desc: 'In iSCSI, this is the IQN of the target. For example, iqn.1986-03.com.sun:02:01ec9bb549-1271378984',
  externalLink: ''
  },
  helpPrimaryStorageLun: {
  desc: 'In iSCSI, this is the LUN number. For example, 3.',
  externalLink: ''
  },
  helpPrimaryStorageTags: {
  desc: 'Comma-separated list of tags for this storage device. Must be the same set or a superset of the tags on your disk offerings.',
  externalLink: ''
  },
  // Add secondary storage
  helpSecondaryStorageZone: {
  desc: 'The zone in which you want to create the secondary storage',
  externalLink: ''
  },
  helpSecondaryStorageNFSServer: {
  desc: 'The IP address of the server',
  externalLink: ''
  },
  helpSecondaryStoragePath: {
  desc: 'The exported path from the server',
  externalLink: ''
  },
  // Add SRX
  helpSRXIPAddress: {
  desc: 'The IP address of the device',
  externalLink: ''
  },
  helpSRXUsername: {
  desc: 'A user ID with valid authentication credentials that provide to access the device',
  externalLink: ''
  },
  helpSRXPassword: {
  desc: 'The password for the user ID provided in Username',
  externalLink: ''
  },
  helpSRXType: {
  desc: 'The type of device that is being added',
  externalLink: ''
  },
  helpSRXPublicInterface: {
  desc: 'Interface of device that is configured to be part of the public network. For example, ge-0/0/2',
  externalLink: ''
  },
  helpSRXPrivateInterface: {
  desc: 'Interface of device that is configured to be part of the private network. For example, ge-0/0/1',
  externalLink: ''
  },
  helpSRXUsageInterface: {
  desc: 'Interface used to meter traffic. If you don\'t want to use the public interface, specify a different interface name here.',
  externalLink: ''
  },
  helpSRXRetries: {
  desc: 'Number of times to attempt a command on the device before considering the operation failed. Default is 2.',
  externalLink: ''
  },
  helpSRXTimeout: {
  desc: 'The time to wait for a command on the SRX before considering it failed. Default is 300 seconds.',
  externalLink: ''
  },
  helpSRXMode: {
  desc: 'Side by side mode is supported for the SRX.',
  externalLink: ''
  },
  helpSRXPublicNetwork: {
  desc: 'The name of the public network on the SRX. For example, trust.',
  externalLink: ''
  },
  helpSRXPrivateNetwork: {
  desc: 'The name of the private network on the SRX. For example, untrust.',
  externalLink: ''
  },
  helpSRXDedicated: {
  desc: 'Check this box to dedicate the device to a single account. The value in the Capacity field will be ignored.',
  externalLink: ''
  },
  helpSRXCapacity: {
  desc: 'Number of guest networks/accounts that will share this device',
  externalLink: ''
  },
  // Add system service offering
  helpSystemOfferingName: {
  desc: 'Any desired name for the offering',
  externalLink: ''
  },
  helpSystemOfferingDescription: {
  desc: 'A short description of the offering that can be displayed to the root administrator',
  externalLink: ''
  },
  helpSystemOfferingVMType: {
  desc: 'The type of system VM that is being offered',
  externalLink: ''
  },
  helpSystemOfferingStorageType: {
  desc: 'Type of disk for the system VM. Local storage is attached to the host where the system VM is running. Shared storage is accessible via NFS.',
  externalLink: ''
  },
  helpSystemOfferingCPUCores: {
  desc: 'The number of cores which should be allocated to a system VM with this offering',
  externalLink: ''
  },
  helpSystemOfferingCPUMHz: {
  desc: 'The CPU speed of the cores that the system VM is allocated. For example, 2000 would provide for a 2 GHz clock.',
  externalLink: ''
  },
  helpSystemOfferingMemory: {
  desc: 'The amount of memory in megabytes to allocate for the system VM. For example, 2048 provides 2 GB RAM.',
  externalLink: ''
  },
  helpSystemOfferingNetworkRate: {
  desc: 'Allowed data transfer rate in megabits(Mb) per second',
  externalLink: ''
  },
  helpSystemOfferingHA: {
  desc: 'If yes, the administrator can choose to have the system VM be monitored and as highly available as possible',
  externalLink: ''
  },
  helpSystemOfferingStorageTags: {
  desc: 'Comma-separated list of attributes that should be associated with the primary storage used by the system VM. For example "ssd,blue".',
  externalLink: ''
  },
  helpSystemOfferingHostTags: {
  desc: 'Any tags that you use to organize your hosts',
  externalLink: ''
  },
  helpSystemOfferingCPUCap: {
  desc: 'If yes, the system will limit the level of CPU usage even if spare capacity is available',
  externalLink: ''
  },
  helpSystemOfferingPublic: {
  desc: 'Yes makes the offering available to all domains. No limits the scope to a subdomain; you will be prompted for the subdomain\'s name.',
  externalLink: ''
  },
  helpSystemOfferingDomain: {
  desc: 'Select the subdomain in which this offering is available',
  externalLink: ''
  },
  // Add tier
  helpTierName: {
  desc: 'A unique name for the tier',
  externalLink: ''
  },
  helpTierNetworkOffering: {
  desc: 'If the administrator has configured multiple network offerings, select the one you want to use for this tier',
  externalLink: ''
  },
  helpTierGateway: {
  desc: 'The gateway for the tier. Must be in the Super CIDR range of the VPC and not overlapping the CIDR of any other tier in this VPC.',
  externalLink: ''
  },
  helpTierNetmask: {
  desc: 'Netmask for the tier. For example, with VPC CIDR of 10.0.0.0/16 and network tier CIDR of 10.0.1.0/24, gateway is 10.0.1.1 and netmask is 255.255.255.0',
  externalLink: ''
  },
  // Add user
  helpUserUsername: {
  desc: 'Any desired user ID. Must be unique in the current domain. The same username can exist in other domains, including sub-domains.',
  externalLink: ''
  },
  helpUserPassword: {
  desc: 'Any desired user password',
  externalLink: ''
  },
  helpUserConfirmPassword: {
  desc: 'Type the same password again',
  externalLink: ''
  },
  helpUserEmail: {
  desc: 'The user\'s email address',
  externalLink: ''
  },
  helpUserFirstName: {
  desc: 'The user\'s first name, also known as the given name',
  externalLink: ''
  },
  helpUserLastName: {
  desc: 'The user\'s last name, also known as the family name',
  externalLink: ''
  },
  helpUserTimezone: {
  desc: 'Set the time zone that corresponds to the user\'s locale',
  externalLink: ''
  },
  // Add volume
  helpVolumeName: {
    desc: 'Give the volume a unique name so you can find it later.',
    externalLink: ''
  },
  helpVolumeAvailabilityZone: {
    desc: 'Where do you want the storage to reside? This should be close to the VM that will use the volume.',
    externalLink: ''
  },
  helpVolumeDiskOffering: {
    desc: 'Choose the characteristics of the storage.',
    externalLink: ''
  },
  // Add VPC
  helpVPCName: {
  desc: 'A name for the new VPC',
  externalLink: ''
  },
  helpVPCDescription: {
  desc: 'Display text about the VPC',
  externalLink: ''
  },
  helpVPCZone: {
  desc: 'Zone where you want the VPC to be available',
  externalLink: ''
  },
  helpVPCSuperCIDR: {
  desc: 'CIDR range for all the tiers within a VPC. Each tier\'s CIDR must be within the Super CIDR.',
  externalLink: ''
  },
  helpVPCDomain: {
  desc: 'If you want to assign a special domain name to this VPC\'s guest VM network, specify the DNS suffix',
  externalLink: ''
  },
  // Add VPC gateway
  helpVPCGatewayPhysicalNetwork: {
  desc: 'Name of a physical network that has been created in the zone',
  externalLink: ''
  },
  helpVPCGatewayVLAN: {
  desc: 'The VLAN associated with the VPC gateway',
  externalLink: ''
  },
  helpVPCGatewayIP: {
  desc: 'The IP address associated with the VPC gateway',
  externalLink: ''
  },
  helpVPCGatewayGateway: {
  desc: 'The gateway through which the traffic is routed to and from the VPC',
  externalLink: ''
  },
  helpVPCGatewayNetmask: {
  desc: 'The netmask associated with the VPC gateway',
  externalLink: ''
  },
  // Add VPN customer gateway
  helpVPNGatewayName: {
  desc: 'A unique name for the VPN customer gateway',
  externalLink: ''
  },
  helpVPNGatewayGateway: {
  desc: 'The IP address for the remote gateway',
  externalLink: ''
  },
  helpVPNGatewayCIDRList: {
  desc: 'The guest CIDR list of the remote subnets. Enter a CIDR or a comma-separated list. Do not overlap the VPC\'s CIDR or another guest CIDR.',
  externalLink: ''
  },
  helpVPNGatewayIPsecPresharedKey: {
  desc: 'Enter a secret key value. The endpoints of the VPN share a secret key. This is used to authenticate the customer gateway and the VPC VPN gateway to each other.',
  externalLink: ''
  },
  helpVPNGatewayIKEEncryption: {
  desc: 'Enter AES128, AES192, AES256, or 3DES to specify the Internet Key Exchange (IKE) policy for phase-1. Authentication is accomplished with Preshared Keys.',
  externalLink: ''
  },
  helpVPNGatewayIKEHash: {
  desc: 'Enter SHA1 or MD5 to specify the IKE hash algorithm for phase-1',
  externalLink: ''
  },
  helpVPNGatewayIKEDH: {
  desc: 'Enter Group-5 (1536-bit), Group-2 (1024-bit), or None to specify the public-key cryptography protocol to use. The 1536-bit Diffie-Hellman group is used within IKE to establish session keys.',
  externalLink: ''
  },
  helpVPNGatewayESPEncryption: {
  desc: 'Enter AES128, AES192, AES256, or 3DES to specify the Encapsulating Security Payload (ESP) algorithm within phase-2',
  externalLink: ''
  },
  helpVPNGatewayESPHash: {
  desc: 'Enter SHA1 or MD5 to specify the Encapsulating Security Payload (ESP) hash for phase-2',
  externalLink: ''
  },
  helpVPNGatewayPerfectForwardSecrecy: {
  desc: 'Choose Group-5 (1536-bit), Group-2 (1024-bit), or None to specify whether to enforce a new Diffie-Hellman key exchange and, if so, what size of DH group to use',
  externalLink: ''	  
  },
  helpVPNGatewayIKELifetime: {
  desc: 'The phase-1 lifetime of the security association in seconds. Whenever the time expires, a new phase-1 exchange is performed.',
  externalLink: ''  
  },
  helpVPNGatewayESPLifetime: {
  desc: 'The phase-2 lifetime of the security association in seconds. Whenever the time expires, a re-key is initiated to provide a new IPsec encryption and authentication session keys.',
  externalLink: ''  
  },
  helpVPNGatewayDeadPeerDetection: {
  desc: 'Check this to make the virtual router query its IKE peer at regular intervals to ensure continued availability. It is recommended to have the same DPD setting on both sides of the VPN connection.',
  externalLink: ''  
  },
  // Copy template
  helpCopyTemplateDestination: {
  desc: 'The zone to which you want to copy the template',
  externalLink: ''
  },
  // Enter token
  helpEnterTokenProjectID: {
  desc: 'Unique identifying number for the project. Use the number you received in the invitation email',
  externalLink: ''
  },
  helpEnterTokenToken: {
  desc: 'Unique security code that authorizes you to accept the project invitation. Use the token you received in the invitation email',
  externalLink: ''
  },
  // Register template
  helpRegisterTemplate: {
  desc: '',
  externalLink: ''
  },
  // Register template
  helpRegisterTemplate: {
  desc: '',
  externalLink: ''
  },
  // Register ISO
  helpRegisterISOName: {
  desc: 'A unique name for the ISO. This will be visible to users, so choose something descriptive.',
  externalLink: ''
  },
  helpRegisterISODescription: {
  desc: 'Display text describing the ISO. This will be visible to users, so choose something descriptive.',
  externalLink: ''
  },
  helpRegisterISOURL: {
  desc: 'The Management Server will download the file from the specified URL, such as http://my.web.server/filename.iso',
  externalLink: ''
  },
  helpRegisterISOZone: {
  desc: 'Choose the zone where you want the ISO to be available, or All Zones to make it available throughout the cloud',
  externalLink: ''
  },
  helpRegisterISOBootable: {
  desc: 'Indicate whether the machine can be booted using this ISO',
  externalLink: ''
  },
  helpRegisterISOOSType: {
  desc: 'Operating system of the VM represented by the ISO. If the OS type of the ISO is not listed, choose Other.',
  externalLink: ''
  },
  helpRegisterISOExtractable: {
  desc: 'Whether the ISO is extractable or not',
  externalLink: ''
  },
  helpRegisterISOPublic: {
  desc: 'Check this to make the ISO accessible to all users. The ISO will appear in the Community ISOs list.',
  externalLink: ''
  },
  helpRegisterISOFeatured: {
  desc: 'Check this to make the ISO more prominent for users. The ISO will appear in the Featured ISOs list.',
  externalLink: ''
  },
  // Register template
  helpRegisterTemplateName: {
  desc: 'A unique name for the template. This will be visible to users, so choose something descriptive.',
  externalLink: ''
  },
  helpRegisterTemplateDescription: {
  desc: 'Display text describing the template. This will be visible to users, so choose something descriptive.',
  externalLink: ''
  },
  helpRegisterTemplateURL: {
  desc: 'The Management Server will download the file from the specified URL, such as http://my.web.server/filename.vhd.gz',
  externalLink: ''
  },
  helpRegisterTemplateZone: {
  desc: 'Choose the zone where you want the template to be available, or All Zones to make it available throughout the cloud',
  externalLink: ''
  },
  helpRegisterTemplateHypervisor: {
  desc: 'The hypervisor software from which this template is being imported; this determines the value of Format',
  externalLink: ''
  },
  helpRegisterTemplateFormat: {
  desc: 'The data format of the template upload file',
  externalLink: ''
  },
  helpRegisterTemplateOSType: {
  desc: 'Operating system of the VM represented by the template. If the OS type of the template is not listed, choose Other.',
  externalLink: ''
  },
  helpRegisterTemplateExtractable: {
  desc: 'Whether the template is extractable or not',
  externalLink: ''
  },
  helpRegisterTemplatePasswordEnabled: {
  desc: 'Check this if the template has the password change script installed.',
  externalLink: ''
  },
  helpRegisterTemplatePublic: {
  desc: 'Check this to make the template accessible to all users. The template will appear in the Community Templates list.',
  externalLink: ''
  },
  helpRegisterTemplateFeatured: {
  desc: 'Check this to make the template more prominent for users. The template will appear in the Featured Templates list.',
  externalLink: ''
  },
  // Upload volume
  helpUploadVolumeName: {
  desc: 'A unique name for the volume. This will be visible to users, so choose something descriptive.',
  externalLink: ''
  },
  helpUploadVolumeZone: {
  desc: 'Choose the zone where you want to store the volume. VMs running on hosts in this zone can attach the volume.',
  externalLink: ''
  },
  helpUploadVolumeFormat: {
  desc: 'The disk image format of the volume. XenServer is VHD, VMware is OVA, and KVM is QCOW2.',
  externalLink: ''
  },
  helpUploadVolumeURL: {
  desc: 'Secure HTTP or HTTPS URL that can be used to get the disk. File type must match Format. For example, if Format is VHD, http://yourFileServerIP/userdata/myDataDisk.vhd',
  externalLink: ''
  },
  helpUploadVolumeChecksum: {
  desc: 'Use the hash that you created at the start of the volume upload procedure',
  externalLink: ''
  }
};
