Create Desktop Pool

Create Desktop Pool

All the listed privileges are required -

Privileges Description
POOL_MANAGEMENT Caller should have permission to this privilege, on the associated access group of the desktop pool.
Request
URI
POST
https://{api_host}/rest/inventory/v1/desktop-pools
COPY
Request Body
DesktopPoolCreateSpec of type(s) application/json
Required
{
    "access_group_id": "6fd4638a-381f-4518-aed6-042aa3d9f14c",
    "allow_multiple_user_assignments": false,
    "allow_rds_pool_multi_session_per_user": false,
    "automatic_user_assignment": true,
    "category_folder_name": "dir1",
    "cloud_assigned": false,
    "cloud_brokered": false,
    "cloud_managed": false,
    "cs_restriction_tags": [
        "CS1_TAG1"
    ],
    "customization_settings": {
        "ad_container_rdn": "CN=Computers",
        "cloneprep_customization_settings": {
            "post_synchronization_script_name": "cloneprep_postsync_script",
            "post_synchronization_script_parameters": "p1 p2 p3",
            "power_off_script_name": "cloneprep_poweroff_script",
            "power_off_script_parameters": "p1 p2 p3",
            "priming_computer_account": "priming"
        },
        "customization_type": "CLONE_PREP",
        "do_not_power_on_vms_after_creation": false,
        "instant_clone_domain_account_id": "6f85b3a5-e7d0-4ad6-a1e3-37168dd1ed51",
        "reuse_pre_existing_accounts": false,
        "sysprep_customization_spec_id": "a219420d-4799-4517-8f78-39c74c7c4efc"
    },
    "description": "Desktop pool description",
    "display_assigned_machine_name": false,
    "display_machine_alias": false,
    "display_name": "ManualPool",
    "display_protocol_settings": {
        "allow_users_to_choose_protocol": true,
        "default_display_protocol": "PCOIP",
        "grid_vgpus_enabled": false,
        "max_number_of_monitors": 2,
        "max_resolution_of_any_one_monitor": "WUXGA",
        "renderer3d": "DISABLED",
        "session_collaboration_enabled": false,
        "vram_size_mb": 64
    },
    "enable_client_restrictions": false,
    "enable_provisioning": true,
    "enabled": true,
    "farm_id": "855ea6c5-720a-41e1-96f4-958c90e6e424",
    "machines": [
        "string"
    ],
    "name": "ManualPool",
    "naming_method": "SPECIFIED",
    "nics": [
        {
            "network_interface_card_id": "c9896e51-48a2-4d82-ae9e-a0246981b473",
            "network_label_assignment_specs": [
                {
                    "enabled": true,
                    "max_label": 1,
                    "max_label_type": "LIMITED",
                    "network_label_name": "vm-network"
                }
            ]
        }
    ],
    "pattern_naming_settings": {
        "max_number_of_machines": 100,
        "min_number_of_machines": 10,
        "naming_pattern": "vm-{n}-sales",
        "number_of_spare_machines": 10,
        "provisioning_time": "UP_FRONT"
    },
    "provisioning_settings": {
        "add_virtual_tpm": false,
        "base_snapshot_id": "snapshot-1",
        "datacenter_id": "datacenter-1",
        "host_or_cluster_id": "domain-s425",
        "im_stream_id": "6f85b3a5-e7d0-4ad6-a1e3-37168dd1ed51",
        "im_tag_id": "6f85b3a5-e7d0-4ad6-a1e3-37168dd1ed51",
        "parent_vm_id": "vm-2",
        "resource_pool_id": "resgroup-1",
        "vm_folder_id": "group-v1",
        "vm_template_id": "vm-1"
    },
    "session_settings": {
        "allow_multiple_sessions_per_user": false,
        "allow_users_to_reset_machines": false,
        "delete_or_refresh_machine_after_logoff": "NEVER",
        "disconnected_session_timeout_minutes": 5,
        "disconnected_session_timeout_policy": "NEVER",
        "empty_session_timeout_minutes": 5,
        "empty_session_timeout_policy": "AFTER",
        "logoff_after_timeout": false,
        "power_policy": "TAKE_NO_POWER_ACTION",
        "pre_launch_session_timeout_minutes": 10,
        "pre_launch_session_timeout_policy": "AFTER",
        "refresh_os_disk_after_logoff": "NEVER",
        "refresh_period_days_for_replica_os_disk": 20,
        "refresh_threshold_percentage_for_replica_os_disk": 30,
        "session_timeout_policy": "DEFAULT"
    },
    "session_type": "DESKTOP",
    "shortcut_locations_v2": [
        "DESKTOP"
    ],
    "source": "INSTANT_CLONE",
    "specific_naming_settings": {
        "num_unassigned_machines_kept_powered_on": 1,
        "specified_names": [
            {
                "name": "machine1",
                "user_id": "S-1-1-1-3965912346-1012345398-3123456564-123"
            }
        ],
        "start_machines_in_maintenance_mode": false
    },
    "stop_provisioning_on_error": true,
    "storage_settings": {
        "datastores": [
            {
                "datastore_id": "datastore-1",
                "sdrs_cluster": false
            }
        ],
        "reclaim_vm_disk_space": false,
        "reclamation_threshold_mb": 1024,
        "replica_disk_datastore_id": "datastore-1",
        "use_separate_datastores_replica_and_os_disks": false,
        "use_vsan": false
    },
    "transparent_page_sharing_scope": "VM",
    "type": "AUTOMATED",
    "user_assignment": "DEDICATED",
    "vcenter_id": "f148f3e8-db0e-4abb-9c33-7e5205ccd360",
    "view_storage_accelerator_settings": {
        "blackout_times": [
            {
                "days": [
                    "MONDAY",
                    "TUESDAY"
                ],
                "end_time": "22:00",
                "start_time": "10:00"
            }
        ],
        "regenerate_view_storage_accelerator_days": 7,
        "use_view_storage_accelerator": false
    }
}
string
access_group_id
Optional

Access groups can organize the entities such as desktop pools in the organization. They can also be used for delegated administration.
This property is required for all the pools except for RDS desktop pool, which will be inherited from the corresponding Farm.

boolean
allow_multiple_user_assignments
Optional

Applicable To: Dedicated manual and automated desktop pools with manual user assignment with default value as false.
Whether assignment of multiple users to a single machine is allowed.
If this is true then automatic_user_assignment should be false.

boolean
allow_rds_pool_multi_session_per_user
Optional

Applicable To: RDS desktop pools with default value as false.
Indicates whether multiple sessions are allowed per user for this pool.For other desktop pools, allow_multiple_sessions_per_user from session_settings will be applicable.

boolean
automatic_user_assignment
Optional

Automatic assignment of a user the first time they access the machine.
This property is applicable if user_assignment is set to DEDICATED with default value as true.

string As ^(?i:(?!(?:CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])$)(?!(?:CON[\\].*|PRN[\\].*|AUX[\\].*|NUL[\\].*|COM[1-9][\\].*|LPT[1-9][\\].*)$)(?!(?:.*[\\]CON|.*[\\]PRN|.*[\\]AUX|.*[\\]NUL|.*[\\]COM[1-9]|.*[\\]LPT[1-9])$)(?!(?:.*[\\]CON[\\].*|.*[\\]PRN[\\].*|.*[\\]AUX[\\].*|.*[\\]NUL[\\].*|.*[\\]COM[1-9][\\].*|.*[\\]LPT[1-9][\\].*)$))([^\"#$%&'()*+,.\\\/:;<=>?@^`{|}~]{1,64}\\){0,3}([^\"#$%&'()*+,.\\\/:;<=>?@^`{|}~]{1,64})$|^/$
category_folder_name
Optional

Name of the category folder in the user's OS containing a shortcut to the desktop pool.Will be unset if the desktop does not belong to a category.This property defines valid folder names with a max length of 64 characters and up to 4 subdirectory levels.The subdirectories can be specified using a backslash, e.g. (dir1\dir2\dir3\dir4). Folder names can't start orend with a backslash nor can there be 2 or more backslashes together. Combinations such as(\dir1, dir1\dir2, dir1\\dir2, dir1\\\dir2) are invalid. The windows reserved keywords(CON, PRN, NUL, AUX, COM1 - COM9, LPT1 - LPT9 etc.) are not allowed in subdirectory names.

boolean
cloud_assigned
Optional

Indicates whether this desktop is assigned to a workspace in Horizon Cloud Services.
This can be set to true from cloud session only and only when cloud_managed is set to true.
Default value is false.

boolean
cloud_brokered
Optional

Applicable To: RDS Desktop Pools with default value as false.

boolean
cloud_managed
Optional

Indicates whether this desktop is managed by Horizon Cloud Services. This can be set to false only when cloud_assigned is set to false.
Default value is false.
This property cannot be set to true, if any of the conditions are satisfied:
user is provided.
enabled is false.
supported_session_type is not DESKTOP.
global_entitlement is set.
user_assignment is DEDICATED and automatic_user_assignment is false.
Local entitlements are configured.
Any of the machines in the pool have users assigned.
cs_restriction_tags is not set.
Desktop pool type is MANUAL.

array of string
cs_restriction_tags
Optional

List of Connection server restriction tags to which the access to the desktop pool is restricted. If this property is not set it indicates that desktop pool can be accessed from any connection server.

customization_settings
Optional

customization_settings

string
description
Optional

Description of the desktop pool.

boolean
display_assigned_machine_name
Optional

Applicable To: Dedicated desktop pools with default value as false.
Indicates whether users should see the hostname of the machine assigned to them instead of display_name when they connect using Horizon Client. If no machine is assigned to the user then "display_name (No machine assigned)" will be displayed in the client.

boolean
display_machine_alias
Optional

Applicable To: Dedicated desktop pools with default value as false.
If no machine is assigned to the user then "displayName No machine assigned)" will be displayed in the Horizon client. If both display_assigned_machine_name and this property is set to true, machine alias of the assigned machine is displayed if the user has machine alias set. Otherwise hostname will be displayed.

string
display_name
Optional

Display name of the desktop pool. If the display name is left blank, it defaults to name.

display_protocol_settings
Optional

display_protocol_settings

boolean
enable_client_restrictions
Optional

Client restrictions to be applied to the desktop pool.
Default value is false.

boolean
enable_provisioning
Optional

Applicable To: Automated desktop pools with default value as true.
Indicates whether provisioning is enabled.

boolean
enabled
Optional

Indicates whether the desktop pool is enabled for brokering. Default value is true.

string
farm_id
Optional

Applicable To: RDS Desktop pool.
Farm is needed to create RDS desktop pool. This is required for RDS desktop pools.This Farm must not already be associated with another RDS desktop.

array of string
machines
Optional

Applicable To: Manual desktop pools.
List of machines to add to this desktop pool during creation.

string As [a-zA-Z0-9_-]{1,64}
name
Required

Name of the desktop pool. This property must contain only alphanumerics, underscores and dashes.

string
naming_method
Optional

Applicable To: Automated desktop pool.
Naming method for the desktop pool. This is required for Automated desktop pools.

  • SPECIFIED: List of specified names. All provisioning is done up-front.
  • PATTERN: Naming pattern.
Possible values are : SPECIFIED, PATTERN,
nics
Optional

Network interface card settings for machines provisioned for this desktop.

pattern_naming_settings
Optional

pattern_naming_settings

provisioning_settings
Optional

provisioning_settings

session_settings
Optional

session_settings

string
session_type
Optional

Applicable To: Managed desktop pools with default value as DESKTOP.
Supported session types for this desktop pool. If this property is set to APPLICATION then this desktop pool can be used for application pool creation. This will be useful when the machines in the pool support application remoting.

  • APPLICATION: Only application sessions are supported.
  • DESKTOP: Only desktop sessions are supported.
  • DESKTOP_AND_APPLICATION: Both desktop and application sessions are supported.
Possible values are : APPLICATION, DESKTOP, DESKTOP_AND_APPLICATION,
array of string
shortcut_locations_v2
Optional

Locations of the category folder in the user's OS containing a shortcut to the desktop pool. This is required if the category_folder_name is set.

Possible values are : START_MENU, DESKTOP,
string
source
Optional

Applicable To: Manual and Automated desktop pools.
Source of the Machines in this Desktop Pool. This is required for Manual and Automated desktop pools.

  • INSTANT_CLONE: The Desktop Pool uses instant clone technology for provisioning the machines. Applicable for AUTOMATED type desktop pools.
  • LINKED_CLONE: The Desktop Pool uses linked clone technology for provisioning the machines. Applicable for AUTOMATED type desktop pools.
  • RDS: The Desktop Pool is backed by Farm. The Farm used in this Desktop Pool can be of any Source.
  • UNMANAGED: The Desktop Pool holds the non-vCenter source machines that includes physical computers, blade PCs and non-vCenter servers. Applicable for MANUAL type desktop pools.
  • VIRTUAL_CENTER: The Desktop Pool uses Virtual Center as source for provisioning the machines. Applicable for AUTOMATED and MANUAL type desktop pools.
Possible values are : INSTANT_CLONE, LINKED_CLONE, RDS, UNMANAGED, VIRTUAL_CENTER,
specific_naming_settings
Optional

specific_naming_settings

boolean
stop_provisioning_on_error
Optional

Applicable for Automated pools only with default value as true.

storage_settings
Optional

storage_settings

string
transparent_page_sharing_scope
Optional

Applicable To: Managed Manual and Automated desktop pools with default value as VM.
Transparent page sharing scope for this Desktop Pool.

  • DESKTOP_POOL: Inter-VM page sharing among VMs belonging to the same Desktop pool is permitted.
  • GLOBAL: Inter-VM page sharing among all VMs on the same host is permitted.
  • POD: Inter-VM page sharing among VMs belonging to the same Pod is permitted.
  • VM: Inter-VM page sharing is not permitted.
Possible values are : DESKTOP_POOL, GLOBAL, POD, VM,
string
type
Required

Type of the Desktop Pool.

  • AUTOMATED: Automated Desktop Pool.
  • MANUAL: Manual Desktop Pool.
  • RDS: RDS Desktop Pool.
Possible values are : AUTOMATED, MANUAL, RDS,
string
user_assignment
Optional

Applicable To: Automated and Manual Desktop pools. User assignment scheme. This is required for Automated and Manual Desktop Pools.

  • DEDICATED: With dedicated assignment, a user returns to the same machine at each session.
  • FLOATING: With floating assignment, a user may return to one of the available machines for the next session.
Possible values are : DEDICATED, FLOATING,
string
vcenter_id
Optional

ID of the virtual center server.
This is required for all desktop pool except Unmanaged Manual and RDS desktop pool.

view_storage_accelerator_settings
Optional

view_storage_accelerator_settings

Authentication
This operation uses the following authentication methods.
Responses
201

Created

Operation doesn't return any data structure

400

Bad Request

Operation doesn't return any data structure

401

User is not authenticated

Operation doesn't return any data structure

403

Access to the resource is forbidden

Operation doesn't return any data structure

409

Conflict

Operation doesn't return any data structure

Inventory Operations
POST
Add Custom Icon
POST
Add Local Application Pools To GAE
POST
Add Local Desktop Pools To GDE
POST
Add Machines
POST
Add Machines By Name
POST
Add Rds Servers
POST
Application Icon Bulk Associate
POST
Application Icon Bulk Remove Association
POST
Archive Machines
POST
Assign Machine Aliases
POST
Assign Users
POST
Attach Persistent Disk
POST
Cancel Agent Upgrades
POST
Cancel Desktop Pool Task
POST
Cancel Rds Server Agent Upgrades
POST
Cancel Scheduled Maintenance
POST
Cancel Scheduled Push Image
POST
Check Application Pool Name Availability
POST
Check Desktop Pool Name Availability
POST
Check Farm Name Availability
POST
Check Machine Prefix Availability
POST
Check RDS Server Prefix Availability
POST
Create Application Icon
POST
Create Application Pool
POST
Create Application Pool V2
POST
Create Application Pool V3
POST
Create Application Pool V5
POST
Create Desktop Pool
POST
Create Desktop Pool V2
POST
Create Desktop Pool V7
POST
Create Farm
POST
Create Farm V2
POST
Create Farm V3
POST
Create Farm V6
POST
Create Global Application Entitlement
POST
Create Global Application Entitlement V3
POST
Create Global Desktop Entitlement
POST
Create Global Desktop Entitlement V2
POST
Create Global Desktop Entitlement V3
POST
Create Persistent Disk
POST
Create Policy Overrides For Users
DELETE
Delete Application Icon
DELETE
Delete Application Pool
DELETE
Delete Application Pools
DELETE
Delete Application Pools V5
DELETE
Delete Desktop Pool
DELETE
Delete Desktop Pool V7
DELETE
Delete Farm
DELETE
Delete Farm V6
DELETE
Delete Global Application Entitlement
DELETE
Delete Global Application Entitlement V3
DELETE
Delete Global Desktop Entitlement
DELETE
Delete Global Desktop Entitlement V3
DELETE
Delete Machine
DELETE
Delete Machines
DELETE
Delete Persistent Disk
DELETE
Delete Physical Machine
DELETE
Delete Policy Overrides For Users
DELETE
Delete RDS Server
DELETE
Delete RDS Server V2
POST
Desktop Pool Apply Image
POST
Desktop Pool Promote Pending Image
POST
Detach Persistent Disk
POST
Disable Application Pools
POST
Disable Desktop Pools
POST
Disable Provisioning For Desktop Pools
POST
Disconnect Global Sessions
POST
Disconnect Sessions
POST
Enable Application Pools
POST
Enable Desktop Pools
POST
Enable Provisioning For Desktop Pools
POST
Enter Maintenance
POST
Exit Maintenance
POST
Farm Apply Image
POST
Farm Promote Pending Image
GET
Get Agent Installer Package
GET
Get Agent Upgrade Task
GET
Get Agent Upgrade Task V2
GET
Get Application Icon
GET
Get Application Pool
GET
Get Application Pool V2
GET
Get Application Pool V3
GET
Get Application Pool V4
GET
Get Application Pool V5
GET
Get Desktop Pool
GET
Get Desktop Pool Task
GET
Get Desktop Pool V2
GET
Get Desktop Pool V3
GET
Get Desktop Pool V4
GET
Get Desktop Pool V5
GET
Get Desktop Pool V6
GET
Get Desktop Pool V7
GET
Get Farm
GET
Get Farm V2
GET
Get Farm V3
GET
Get Farm V4
GET
Get Farm V5
GET
Get Farm V6
GET
Get Global Application Entitlement
GET
Get Global Application Entitlement V2
GET
Get Global Application Entitlement V3
GET
Get Global Desktop Entitlement
GET
Get Global Desktop Entitlement V2
GET
Get Global Desktop Entitlement V3
GET
Get Machine
GET
Get Machine V2
GET
Get Machine V3
GET
Get Machine V4
GET
Get Machine V5
GET
Get Persistent Disk
GET
Get Physical Machine
GET
Get Physical Machine V2
GET
Get RDS Server
GET
Get Rds Server Agent Upgrade Task
GET
Get RDS Server V2
GET
Get Session Info
GET
List Agent Installer Packages
GET
List Agent Upgrade Tasks
GET
List Agent Upgrade Tasks V2
GET
List Application Icons
GET
List Application Pools
GET
List Application Pools V2
GET
List Application Pools V3
GET
List Application Pools V4
GET
List Application Pools V5
GET
List App Volumes Applications On Farm
GET
List Attachable Machines
GET
List Category Folders
GET
List Compatible Backup GA Es
GET
List Compatible Backup GD Es
GET
List Compatible Local Application Pools
GET
List Compatible Local Desktop Pools
GET
List Custom Application Icons
GET
List Desktop Pools
GET
List Desktop Pools V2
GET
List Desktop Pools V3
GET
List Desktop Pools V4
GET
List Desktop Pools V5
GET
List Desktop Pools V6
GET
List Desktop Pools V7
GET
List Desktop Pool Tasks
GET
List Farms
GET
List Farms V2
GET
List Farms V3
GET
List Farms V4
GET
List Farms V5
GET
List Farms V6
GET
List Global Application Entitlements
GET
List Global Application Entitlements V2
GET
List Global Application Entitlements V3
GET
List Global Desktop Entitlements
GET
List Global Desktop Entitlements V2
GET
List Global Desktop Entitlements V3
GET
List Installed Applications On Desktop Pool
GET
List Installed Applications On Farm
GET
List Local Application Pools
GET
List Local Desktop Pools
GET
List Machines
GET
List Machines V2
GET
List Machines V3
GET
List Machines V4
GET
List Machines V5
GET
List Persistent Disks
GET
List Physical Machines
GET
List Physical Machines V2
GET
List Policies On Desktop Pool
GET
List Rds Server Agent Upgrade Tasks
GET
List RDS Servers
GET
List RDS Servers V2
GET
List Session Info
GET
List Unentitled Machines
GET
List User Policies Overrides
POST
Log Off Global Sessions
POST
Log Off Sessions
POST
Pause Desktop Pool Task
GET
Query Global Sessions
POST
Rebuild Machines
POST
Recover Machines
POST
Recover RDS Servers
POST
Recreate From Persistent Disk
POST
Register Agent Installer Package
POST
Register Physical Machine
POST
Register RDS Server
POST
Remove Custom Icon
DELETE
Remove Local Application Pools From GAE
DELETE
Remove Local Desktop Pools From GDE
POST
Remove Machines
POST
Remove Rds Servers
POST
Reset Global Sessions
POST
Reset Machines
POST
Reset Sessions
POST
Restart Global Sessions
POST
Restart Machines
POST
Restart Sessions
POST
Resume Desktop Pool Task
POST
Schedule Agent For Upgrade
POST
Schedule Agent For Upgrade Rds Server
POST
Schedule Agent For Upgrade V2
POST
Schedule Maintenance
POST
Schedule Maintenance V2
POST
Schedule Push Image
POST
Schedule Push Image V2
POST
Send Message To Global Sessions
POST
Send Message To Sessions
POST
Unassign Machine Aliases
POST
Unassign Users
POST
Unregister Agent Installer Package
PUT
Update Application Pool
PUT
Update Application Pool V2
PUT
Update Application Pool V3
PUT
Update Application Pool V5
PUT
Update Desktop Pool
PUT
Update Desktop Poolv7
PUT
Update Farm
PUT
Update Farm V2
PUT
Update Farm V3
PUT
Update Farm V6
PUT
Update Global Application Entitlement
PUT
Update Global Application Entitlement V3
PUT
Update Global Desktop Entitlement
PUT
Update Global Desktop Entitlement V3
PUT
Update Persistent Disk
PUT
Update Policy Overrides For Users
PUT
Update RDS Server
PUT
Update RDS Server V2
PUT
Updates Policies On Desktop Pool
POST
Validate Installed Applications On Desktop Pool
POST
Validate Installed Applications On Farm
POST
Validate Specified Names