## Introduction

Provide a general description of your APIs here.

## Administrators

API | Description
--- | ---
GET Administrators | Get App Orchestration administrators.
POST Administrators | Create an administrator.
GET Administrators({id}) | Get a single administrator by ID.
PUT Administrators({id}) | Update an existing administrator.
DELETE Administrators({id}) | Delete an administrator. See Deleting Objects.
PUT Administrators({id})/Validate | Validate the updated details for an administrator, before update. See Validation.
GET Administrators/Count | Get the number of App Orchestration administrators. See Object Counts.
GET Administrators/Current | Get information about the currently logged-in administrator.
POST Administrators/Validate | Validate an administrator before creation. See Validation.

## Agents

API | Description
--- | ---
GET Agents | Get the agents that are registered with App Orchestration.
GET Agents({id}) | Get a single agent by ID.
GET Agents/Count | Get the number of agents that are registered with App Orchestration. See Object Counts.

## Authorization

API | Description
--- | ---
POST Authorization/AllowedOperations | Get allowed scoped authorization operations for the currently logged-in administrator. Note that this API uses a POST verb because it takes an unbounded array as input, and may otherwise exceed the maximum input size for a GET operation.
GET Authorization/Information | Get authorization information for the currently logged-in administrator.
GET Authorization/Roles | Get the authorization roles available in the App Orchestration system.
GET Authorization/Roles/Count | Get the number of authorization roles available in the App Orchestration system.
GET Authorization/Scopes | Get the authorization scopes available in the App Orchestration system.
GET Authorization/Scopes/Count | Get the number of authorization scopes available in the App Orchestration system.

## ComputeResources

API | Description
--- | ---
GET ComputeResources | Get all compute resources.
POST ComputeResources | Create a new compute resource.
GET ComputeResources({id}) | Get a compute resource by ID.
DELETE ComputeResources({id}) | Delete a compute resource. See Deleting Objects.
PUT ComputeResources({id}) | Updates a compute resource.
GET ComputeResources({id})/ClusterTree | Get the tree of available clusters on a compute resource. Note: This API only works for Hyper-V and VSphere compute resources.
GET ComputeResources({id})/DeleteCascade | Get the objects for a compute resource that a potential delete would cascade to. See Deleting Objects.
GET ComputeResources({id})/HypervisorsInPool | Get the hypervisors that exist in a XenServer compute resource hypervisor pool. Note: This API only works for XenServer compute resources.
GET ComputeResources({id})/HypervisorsInPool/Count | Get the number of hypervisors that exist in a XenServer compute resource hypervisor pool. Note: This API only works for XenServer compute resources.
GET ComputeResources({id})/Networks | Get the list of networks available on a compute resource.
GET ComputeResources({id})/Networks/Count | Get the number of networks available on a compute resource.
GET ComputeResources({id})/ServiceOfferings | This API is not used.
GET ComputeResources({id})/ServiceOfferings/Count | This API is not used.
GET ComputeResources({id})/SessionMachineCatalogCompatibility | Get the list of session machine catalogs using auto-provisioning, along with information about whether the template and service offering configured for each catalog exists on the compute resource.
GET ComputeResources({id})/SessionMachineCatalogCompatibility/Count | Get the number of session machine catalogs using auto-provisioning.
GET ComputeResources({id})/SessionMachines | Get the list of session machines which have been provisioned on a compute resource.
GET ComputeResources({id})/SessionMachines/Count | Get the number of session machines which have been provisioned on a compute resource.
GET ComputeResources({id})/SessionMachines/TenantCounts | Get the number of tenants for each session machine that has been provisioned on the compute resource.
GET ComputeResources({id})/SharedNetworkCompatibility | Get information about whether a compute resource has the shared networks available which are required for provisioning.
GET ComputeResources({id})/Storage | Get the storage available on a compute resource.
GET ComputeResources({id})/Storage/Count | Get the number of storage devices available on a compute resource.
GET ComputeResources({id})/Templates | Get the templates (machines that can be used for creating session machine catalogs) on a compute resource.
GET ComputeResources({id})/Templates/Count | Get the number of templates (machines that can be used for creating session machine catalogs) on a compute resource.
GET ComputeResources({id})/TenantNetworkCompatibility | Get the list of tenants that are allowed to use a compute resource for provisioning private delivery groups, along with information about whether the tenant's networks are available on the compute resource.
GET ComputeResources({id})/TenantNetworkCompatibility/Count | Get the number of tenants that are allowed to use a compute resource for provisioning private delivery groups.
GET ComputeResources({id})/Tenants | Get the list of tenants that are associated with a compute resource, either directly or via having provisioned machines that reside on the compute resource.
GET ComputeResources({id})/Tenants/Count | Get the number of tenants that are associated with a compute resource, either directly or via having provisioned machines that reside on the compute resource.
PUT ComputeResources({id})/Validate | Validate the update for a compute resource. See Validation.
GET ComputeResources/Count | Get number of compute resources.
POST ComputeResources/Discover/Clusters | Discover information about a compute resource's clusters prior to adding it to the system. Note: The verb is POST rather than GET so that the credentials are passed securely in the message body rather than in the query string.
POST ComputeResources/Discover/Information | Discover information about a compute resource prior to adding it to the system. Note: The verb is POST rather than GET so that the credentials are passed securely in the message body rather than in the query string.
POST ComputeResources/Validate | Validate the details of a compute resource to create. See Validation.

## DashboardData

API | Description
--- | ---
GET DashboardData | Get dashboard data.
GET DashboardData/GuidedSetupData | Get dashboard guided setup data.
GET DashboardData/Notifications | Get the notifications displayed on the dashboard.

## DataCenters

API | Description
--- | ---
POST DataCenters | Create a new datacenter.
GET DataCenters | Get all datacenters.
PUT DataCenters({id}) | Updates a datacenter.
DELETE DataCenters({id}) | Delete a datacenter. See Deleting Objects.
GET DataCenters({id}) | Get a single datacenter by ID.
GET DataCenters({id})/ComputeResources | Get the compute resources located in a datacenter.
GET DataCenters({id})/ComputeResources/Count | Get the number of compute resources located in a datacenter.
GET DataCenters({id})/DeleteCascade | Get the objects for a datacenter that a potential delete would cascade to. See Deleting Objects.
GET DataCenters({id})/DeliveryGroups | Get the delivery groups located in a datacenter.
GET DataCenters({id})/DeliveryGroups/Count | Get the number of delivery groups located in a datacenter.
GET DataCenters({id})/DeliveryGroups/OfferingCounts | Get the number of offerings for each delivery group the datacenter is associated with
GET DataCenters({id})/DeliveryGroups/SubscriptionCounts | Get the number of subscriptions for each delivery group the datacenter is associated with
GET DataCenters({id})/DeliveryGroups/TenantCounts | Get the number of tenants for each delivery group the datacenter is associated with
GET DataCenters({id})/DeliverySites | Get the delivery sites located in a datacenter.
GET DataCenters({id})/DeliverySites/Count | Get the number of delivery sites located in a datacenter.
GET DataCenters({id})/DeliverySites/TenantCounts | Get the number of tenants for each delivery site the datacenter is associated with
GET DataCenters({id})/RequiredCapacity | Get the capacity required in a datacenter to meet the desired capacity of all delivery groups in that datacenter.
GET DataCenters({id})/SessionMachines | Get the session machines located in a datacenter.
GET DataCenters({id})/SessionMachines/Count | Get the number of session machines located in a datacenter.
GET DataCenters({id})/SessionMachines/TenantCounts | Get the number of tenants for each session machine the datacenter is associated with
GET DataCenters({id})/StoreFrontServerGroups | Get the StoreFront server groups located in a datacenter.
GET DataCenters({id})/StoreFrontServerGroups/Count | Get the number of StoreFront server groups located in a datacenter.
GET DataCenters({id})/StoreFrontServerGroups/TenantCounts | Get the number of tenants for each StoreFront server group the datacenter is associated with
GET DataCenters({id})/Tenants | Get the tenants who have at least one location user group using this datacenter as either primary or backup.
GET DataCenters({id})/Tenants/Backup | Get the tenants who have at least one location user group using this datacenter as backup.
GET DataCenters({id})/Tenants/Backup/Count | Get the number of tenants who have at least one location user group using this datacenter as backup.
GET DataCenters({id})/Tenants/Count | Get the number of tenants who have at least one location user group using this datacenter as either primary or backup.
GET DataCenters({id})/Tenants/Primary | Get the tenants who have at least one location user group using this datacenter as primary.
GET DataCenters({id})/Tenants/Primary/Count | Get the number of tenants who have at least one location user group using this datacenter as primary.
PUT DataCenters({id})/Validate | Validate the update for a datacenter. See Validation.
GET DataCenters/Count | Get number of datacenters.
POST DataCenters/Validate | Validate the details of a datacenter to create. See Validation.

## DeliveryControllers

API | Description
--- | ---
GET DeliveryControllers | Get all delivery controllers.
GET DeliveryControllers({id}) | Get a single delivery controller by ID.
PUT DeliveryControllers({id}) | Updates a delivery controller.
DELETE DeliveryControllers({id}) | Delete a delivery controller. This will not cascade to any other objects.
GET DeliveryControllers/Count | Get number of delivery controllers.

## DeliveryGroups

API | Description
--- | ---
GET DeliveryGroups | Get all delivery groups.
PUT DeliveryGroups | Simultaneously create new delivery groups, edit existing delivery groups, and delete existing delivery groups.
GET DeliveryGroups({id}) | Get a single delivery group by ID.
DELETE DeliveryGroups({id}) | Delete a delivery group. See Deleting Objects.
GET DeliveryGroups({id})/DeleteCascade | Get the objects for a delivery group that a potential delete would cascade to. See Deleting Objects.
GET DeliveryGroups({id})/DeliverySites | Get the delivery sites hosting a delivery group. Note: Multiple delivery sites may be required for a delivery group when its size exceeds the remaining capacity in one delivery group.
GET DeliveryGroups({id})/DeliverySites/Count | Get the number delivery sites hosting a delivery group. Note: Multiple delivery sites may be required for a delivery group when its size exceeds the remaining capacity in one delivery group.
GET DeliveryGroups({id})/OfferingReferences | Get offerings associated with a delivery group. An offering is considered to be associated with a delivery group if the offering IsolationMode is SharedDeliveryGroup, and the delivery group is compatible with the offering. This means that all current and future tenants who subscribe to the offering will have their user sessions hosted on the delivery group.
GET DeliveryGroups({id})/Offerings | Get offerings associated with a delivery group. An offering is considered to be associated with a delivery group if the offering IsolationMode is SharedDeliveryGroup, and the delivery group is compatible with the offering. This means that all current and future tenants who subscribe to the offering will have their user sessions hosted on the delivery group. Note: if all you need are offering references, the GET DeliveryGroups({id})/OfferingReferences API will perform much better.
GET DeliveryGroups({id})/Offerings/Count | Get offerings associated with a delivery group. An offering is considered to be associated with a delivery group if the offering IsolationMode is SharedDeliveryGroup, and the delivery group is compatible with the offering. This means that all current and future tenants who subscribe to the offering will have their user sessions hosted on the delivery group.
GET DeliveryGroups({id})/RequiredCapacity | Get the list of required items to meet the desired capacity of the delivery group.
GET DeliveryGroups({id})/SessionMachines | Get the session machines in a delivery group.
GET DeliveryGroups({id})/SessionMachines/Count | Get the number of session machines in a delivery group.
GET DeliveryGroups({id})/SubscriptionReferences | Get references to subscriptions hosted on a delivery group.
GET DeliveryGroups({id})/Subscriptions | Get subscriptions hosted on a delivery group. Note: if all you need are subscription references, the GET DeliveryGroups({id})/SubscriptionReferences API will perform much better.
GET DeliveryGroups({id})/Subscriptions/Count | Get number of subscriptions hosted on a delivery group.
GET DeliveryGroups({id})/TenantReferences | Get references to all tenants using a delivery group.
GET DeliveryGroups({id})/Tenants | Get the list of all tenants using a delivery group. Note: if all you need are tenant references, the GET DeliveryGroups({id})/TenantReferences API will perform much better.
GET DeliveryGroups({id})/Tenants/Count | Get the number of tenants using a delivery group.
GET DeliveryGroups/Compatible | Get delivery groups compatible with datacenter, catalogs, tenant, and isolation mode.
GET DeliveryGroups/Count | Get number of delivery groups.
GET DeliveryGroups/TenantCounts | Get number of tenants for each delivery group.
PUT DeliveryGroups/Validate | Validate the simultaneous edits for multiple delivery groups. See Validation.

## DeliverySites

API | Description
--- | ---
GET DeliverySites | Get all delivery sites.
POST DeliverySites | Create a new delivery site.
GET DeliverySites({id}) | Get a single delivery site by ID.
PUT DeliverySites({id}) | Updates a delivery site.
DELETE DeliverySites({id}) | Delete a delivery site. See Deleting Objects.
GET DeliverySites({id})/DeleteCascade | Get the objects for a delivery site that a potential delete would cascade to. See Deleting Objects.
GET DeliverySites({id})/DeliveryControllers | Get delivery controllers for a delivery site.
GET DeliverySites({id})/DeliveryControllers/Count | Get the number of delivery controllers for a delivery site.
GET DeliverySites({id})/DeliveryGroups | Get the delivery groups located in a delivery site.
GET DeliverySites({id})/DeliveryGroups/Count | Get the number of delivery groups located in a delivery site.
GET DeliverySites({id})/DeliveryGroups/OfferingCounts | Get the number of offerings associated with each delivery group in the delivery site. An offering is considered to be associated with a delivery group if the offering IsolationMode is SharedDeliveryGroup, and the delivery group is compatible with the offering. This means that all current and future tenants who subscribe to the offering will have their user sessions hosted on the delivery group.
GET DeliverySites({id})/DeliveryGroups/SubscriptionCounts | Get the number of subscriptions associated with each delivery group in the delivery site.
GET DeliverySites({id})/DeliveryGroups/TenantCounts | Get the number of tenants associated with each delivery group in the delivery site.
GET DeliverySites({id})/SessionMachines | Get the session machines in a delivery site.
GET DeliverySites({id})/SessionMachines/Count | Get the number of session machines in a delivery site.
GET DeliverySites({id})/SessionMachines/TenantCounts | Get the number of tenants associated with each session machine in the delivery site.
GET DeliverySites({id})/Subscriptions | Get subscriptions hosted on a delivery site.
GET DeliverySites({id})/Subscriptions/Count | Get number of subscriptions hosted on a delivery site.
GET DeliverySites({id})/TenantReferences | Get references to all tenants using a delivery site.
GET DeliverySites({id})/Tenants | Get the list of all tenants using a delivery site. Note: if all you need are tenant references, the GET DeliverySites({id})/TenantReferences API will perform much better.
GET DeliverySites({id})/Tenants/Count | Get the number of tenants using a delivery site.
PUT DeliverySites({id})/Validate | Validate the update for a delivery site. See Validation.
POST DeliverySites/Aggregate | Aggregate an existing delivery site into StoreFront sites for tenants.
POST DeliverySites/Aggregate/Validate | Validate the details for aggregating an existing delivery site into StoreFront sites for tenants. See Validation.
GET DeliverySites/Count | Get number of delivery sites.
POST DeliverySites/Discover/AggregationData | Discover details of a delivery site that is going to be aggregated into StoreFront sites for tenants.
GET DeliverySites/TenantCounts | Get number of tenants for each delivery site.
POST DeliverySites/Validate | Validate the details of a delivery site to create. See Validation.

## Deployment

API | Description
--- | ---
GET Deployment | Get information about the deployment of App Orchestration.
POST Deployment/UpgradeDatabase | Upgrade the App Orchestration deployment to the latest known version of the database schema.

## Domains

API | Description
--- | ---
GET Domains | Get all domains.
POST Domains | Create a new domain.
GET Domains({id}) | Get a single domain by ID.
PUT Domains({id}) | Updates a domain.
DELETE Domains({id}) | Delete a domain. See Deleting Objects.
GET Domains({id})/DeleteCascade | Get the objects for a domain that a potential delete would cascade to. See Deleting Objects.
GET Domains({id})/TenantReferences | Get references to all tenants using a domain.
GET Domains({id})/Tenants | Get the list of all tenants using a domain. Note: if all you need are tenant references, the GET Domains({id})/TenantReferences API will perform much better.
GET Domains({id})/Tenants/Count | Get number of tenants using a domain.
PUT Domains({id})/Validate | Validate the update for a domain. See Validation.
GET Domains/Count | Get number of domains.
POST Domains/Validate | Validate the details of a domain to create. See Validation.

## EchoAcceptLanguage

API | Description
--- | ---
GET EchoAcceptLanguage | Echoes the client's "Accept-Language" header, in client-preference order. This API is helpful if the client is a Javascript app running in a browser; it allows the app to find the user's language preferences configured within the browser. This API is also useful to "ping" the web service to ensure that it is up and running.

## GlobalSettings

API | Description
--- | ---
PUT GlobalSettings | Update global settings.
GET GlobalSettings | Get global settings.
POST GlobalSettings | Create the initial, first-time-use global settings.
POST GlobalSettings/EnableAutoProvisioning | Enable automatic, integrated provisioning of session machines. This operation must be done one time before using integrated provisioning, but remains in effect for the lifetime of the App Orchestration deployment.
POST GlobalSettings/EnableAutoProvisioning/Validate | Validation of the details for enabling automatic, integrated provisioning of session machines. See Validation.
PUT GlobalSettings/Validate | Validation of an update for global settings. See Validation.
POST GlobalSettings/Validate | Validation of the initial, first-time-use global settings. See Validation.

## Icons

API | Description
--- | ---
GET Icons({id}) | Get icons known by the system.

## Logout

API | Description
--- | ---
POST Logout | Log out of the API, forcing the current session to terminate.

## MachineDetails

API | Description
--- | ---
GET MachineDetails | Get details of all machines (session machines, delivery controllers, and StoreFront servers).
GET MachineDetails({id}) | Get the details of a single machine by ID.
GET MachineDetails/Count | Get number of machines (session machines, delivery controllers, and StoreFront servers).

## Offerings

API | Description
--- | ---
GET Offerings | Get offerings.
POST Offerings | Create one or more new offerings.
GET Offerings({id}) | Get a single offering by ID.
PUT Offerings({id}) | Update an offering.
DELETE Offerings({id}) | Delete an offering. See Deleting Objects.
GET Offerings({id})/CompatibleFileTypes | Get the file types compatible with an offering. A file type is compatible with an offering if: The offering is an application, not a desktop. The file type is available on the machines in the offering's session machine catalog. The file type's "Open" or "Edit" action defines an association with the offering's command line executable.
GET Offerings({id})/CompatibleFileTypes/Count | Get the number of file types compatible with an offering. A file type is compatible with an offering if: The offering is an application, not a desktop. The file type is available on the machines in the offering's session machine catalog. The file type's "Open" or "Edit" action defines an association with the offering's command line executable.
GET Offerings({id})/ConfiguredFileTypes | Get the file types configured for an offering.
GET Offerings({id})/ConfiguredFileTypes/Count | Get the number of file types configured for an offering.
GET Offerings({id})/DeleteCascade | Get the objects for an offering that a potential delete would cascade to. See Deleting Objects.
GET Offerings({id})/DeliveryGroups | Get the delivery groups used by subscriptions to an offering, or which may be used for future subscriptions to the offering.
GET Offerings({id})/DeliveryGroups/Count | Get the number of delivery groups used by subscriptions to an offering, or which may be used for future subscriptions to the offering.
GET Offerings({id})/OfferingsInSameScope | Find other offerings in the same scope as the specified offering. Offerings in the same scope will share delivery groups when users are subscribed. For 'SharedDeliveryGroup' offerings, a scope is defined as: The same session machine catalog. The same isolation level. For 'PrivateDeliveryGroup' and 'PrivateDeliverySite' offerings, a scope is defined as: The same session machine catalog. The same isolation level. Compatible with the tenant (i.e. does not use Advanced Access Control or other settings that are not supported by the tenant's configuration). Note that the offering specified is not included in the results.
GET Offerings({id})/OfferingsInSameScope/Count | Get the number of other offerings in the same scope as the specified offering. Offerings in the same scope will share delivery groups when users are subscribed. For 'SharedDeliveryGroup' offerings, a scope is defined as: The same session machine catalog. The same isolation level. For 'PrivateDeliveryGroup' and 'PrivateDeliverySite' offerings, a scope is defined as: The same session machine catalog. The same isolation level. Compatible with the tenant; see POST Offerings/CompatibleTenants. Note that the offering specified is not included in the results.
GET Offerings({id})/Subscriptions | Get subscriptions to an offering.
GET Offerings({id})/Subscriptions/Count | Get the number of subscriptions to an offering.
GET Offerings({id})/SubscriptionsInSameScope | Get the subscriptions in the same scope as the specified offering. Subscriptions in the same scope share delivery groups. For 'SharedDeliveryGroup' offerings, a scope is defined as: The same session machine catalog. The same isolation level. For 'PrivateDeliveryGroup' and 'PrivateDeliverySite' offerings, a scope is defined as: The same session machine catalog. The same isolation level. The same tenant.
GET Offerings({id})/SubscriptionsInSameScope/Count | Get the number of subscriptions in the same scope as the specified offering. Subscriptions in the same scope share delivery groups. For 'SharedDeliveryGroup' offerings, a scope is defined as: The same session machine catalog. The same isolation level. For 'PrivateDeliveryGroup' and 'PrivateDeliverySite' offerings, a scope is defined as: The same session machine catalog. The same isolation level. The same tenant.
PUT Offerings({id})/Validate | Validate details to update an offering. See Validation.
POST Offerings/CompatibleTenants | Get the list of compatible tenants for an offering; i.e. those tenants which are allowed to subscribe to the offering. Tenants are compatible with an offering if: The offering does not require NetScaler Gateway, or the tenant's users connect via NetScaler Gateway. The offering does not require Advanced Access Control, or the tenant uses Advanced Access Control.
POST Offerings/CompatibleTenants/Count | Get the number of compatible tenants for an offering; i.e. those tenants which are allowed to subscribe to the offering. Tenants are compatible with an offering if: The offering does not require NetScaler Gateway, or the tenant's users connect via NetScaler Gateway. The offering does not require Advanced Access Control, or the tenant uses Advanced Access Control.
GET Offerings/Count | Get number of offerings.
POST Offerings/Validate | Validate details to create one or more new offerings. See Validation.

## SessionMachineCatalogs

API | Description
--- | ---
GET SessionMachineCatalogs | Get session machine catalogs.
POST SessionMachineCatalogs | Create a new session machine catalog.
GET SessionMachineCatalogs({id}) | Get a single session machine catalog by ID.
PUT SessionMachineCatalogs({id}) | Updates a session machine catalog.
DELETE SessionMachineCatalogs({id}) | Delete a session machine catalog. See Deleting Objects.
GET SessionMachineCatalogs({id})/DeleteCascade | Get the objects for a session machine catalog that a potential delete would cascade to. See Deleting Objects.
GET SessionMachineCatalogs({id})/DeliveryGroups | Get the delivery groups associated with a session machine catalog.
GET SessionMachineCatalogs({id})/DeliveryGroups/Count | Get the number of delivery groups associated with a session machine catalog.
GET SessionMachineCatalogs({id})/DeliveryGroups/OfferingCounts | Get the number of offerings for each delivery group associated with the session machine catalog.
GET SessionMachineCatalogs({id})/DeliveryGroups/SubscriptionCounts | Get the number of subscriptions for each delivery group associated with the session machine catalog.
GET SessionMachineCatalogs({id})/DeliveryGroups/TenantCounts | Get the number of tenants for each delivery group associated with the session machine catalog.
GET SessionMachineCatalogs({id})/DiscoveredApplications | Get the discovered applications on the machines in the session machine catalog, which are available for creating offerings.
GET SessionMachineCatalogs({id})/DiscoveredApplications/Count | Get the number of discovered applications on the machines in the session machine catalog, which are available for creating offerings.
POST SessionMachineCatalogs({id})/IncrementVersion | Increment the version of a session machine catalog, which causes the session machines in the catalog to begin an update process.
POST SessionMachineCatalogs({id})/IncrementVersion/Validate | Validate the details for incrementing the version of a session machine catalog. See Validation.
GET SessionMachineCatalogs({id})/Offerings | Get offerings associated with a session machine catalog.
GET SessionMachineCatalogs({id})/Offerings/Count | Get the number of offerings associated with a session machine catalog.
GET SessionMachineCatalogs({id})/RequiredCapacity | Get the list of required items to meet the desired capacity of all delivery groups associated with a session machine catalog.
GET SessionMachineCatalogs({id})/SessionMachines | Get the session machines in a session machine catalog.
POST SessionMachineCatalogs({id})/SessionMachines | Create new session machines within a session machine catalog.
GET SessionMachineCatalogs({id})/SessionMachines/Count | Get the number of session machines in a session machine catalog.
GET SessionMachineCatalogs({id})/SessionMachines/TenantCounts | Get the number of tenants for each session machine contained in the session machine catalog.
POST SessionMachineCatalogs({id})/SessionMachines/Validate | Validate the details for creating new session machines within a session machine catalog. See Validation.
GET SessionMachineCatalogs({id})/Subscriptions | Get subscriptions associated with a session machine catalog.
GET SessionMachineCatalogs({id})/Subscriptions/Count | Get the number of subscriptions associated with a session machine catalog.
PUT SessionMachineCatalogs({id})/Validate | Validate the update for a session machine catalog. See Validation.
GET SessionMachineCatalogs/Count | Get number of session machine catalogs.
POST SessionMachineCatalogs/Validate | Validate the details of a session machine catalog to create. See Validation.

## SessionMachines

API | Description
--- | ---
GET SessionMachines | Get all session machines.
GET SessionMachines({id}) | Get a single session machine by ID.
DELETE SessionMachines({id}) | Delete a session machine. See Deleting Objects. Note: the session machine will attempt to drain user sessions prior to deletion. If the session machine was part of a delivery group, another session machine will be immediately allocated to the delivery group to maintain the desired capacity.
POST SessionMachines({id})/CompleteUpdate | Informs App Orchestration that the administrator has finished manually intervening in the update process for the session machine. The machine will be considered to be fully updated to the latest version of the session machine catalog, and will be returned to fully functional status.
POST SessionMachines({id})/Drain | Drain and delete a session machine. The session machine will first drain all user sessions, then will automatically be deleted. If the session machine was part of a delivery group, another session machine will be immediately allocated to the delivery group to maintain the desired capacity.
GET SessionMachines({id})/Subscriptions | Get subscriptions for which a user session may be launched on a given session machine.
GET SessionMachines({id})/Subscriptions/Count | Get the number of subscriptions for which a user session may be launched on a given session machine.
GET SessionMachines({id})/TenantReferences | Get references to all tenants whose users may use a session machine. Note: if the session machine is statically allocated to a user, this API may not reflect the actual availability of the machine, as only the original user may access the machine regardless of whether the delivery group is shared or private.
GET SessionMachines({id})/Tenants | Get the list of all tenants whose users may use a session machine. Note: if the session machine is statically allocated to a user, this API may not reflect the actual availability of the machine, as only the original user may access the machine regardless of whether the delivery group is shared or private. Note: if all you need are tenant references, the GET SessionMachines({id})/TenantReferences API will perform much better.
GET SessionMachines({id})/Tenants/Count | Get the number of tenants whose users may use a session machine. Note: if the session machine is statically allocated to a user, this API may not reflect the actual availability of the machine, as only the original user may access the machine regardless of whether the delivery group is shared or private.
GET SessionMachines/Count | Get the number of session machines.

## StoreFrontServerGroups

API | Description
--- | ---
GET StoreFrontServerGroups | Get StoreFront server groups.
POST StoreFrontServerGroups | Create a new StoreFront server group.
GET StoreFrontServerGroups({id}) | Get a single StoreFront server group by ID.
PUT StoreFrontServerGroups({id}) | Update a StoreFront server group.
DELETE StoreFrontServerGroups({id}) | Delete a StoreFront server group. See Deleting Objects.
GET StoreFrontServerGroups({id})/DeleteCascade | Get the objects for a StoreFront server group that a potential delete would cascade to. See Deleting Objects.
GET StoreFrontServerGroups({id})/StoreFrontServers | Get the StoreFront servers in a StoreFront server group.
GET StoreFrontServerGroups({id})/StoreFrontServers/Count | Get the number of StoreFront servers in a StoreFront server group.
GET StoreFrontServerGroups({id})/TenantReferences | Get references to all tenants using a StoreFront server group.
GET StoreFrontServerGroups({id})/Tenants | Get the list of all tenants using a StoreFront server group. Note: if all you need are tenant references, the GET StoreFrontServerGroups({id})/TenantReferences API will perform much better.
GET StoreFrontServerGroups({id})/Tenants/Count | Get the number of tenants using a StoreFront server group. Note: if all you need are tenant references, the GET StoreFrontServerGroups({id})/TenantReferences API will perform much better.
PUT StoreFrontServerGroups({id})/Validate | Validate the update for a StoreFront server group. See Validation.
GET StoreFrontServerGroups/Count | Get number of StoreFront server groups.
GET StoreFrontServerGroups/TenantCounts | Get the number of tenants for each StoreFront server group.
POST StoreFrontServerGroups/Validate | Validate the details of a StoreFront server group to create. See Validation.

## StoreFrontServers

API | Description
--- | ---
GET StoreFrontServers | Get all StoreFront servers.
GET StoreFrontServers({id}) | Get a single StoreFront server by ID.
PUT StoreFrontServers({id}) | Update a StoreFront server.
DELETE StoreFrontServers({id}) | Delete a StoreFront server. See Deleting Objects. Note: this delete will not cause any cascaded deletes.
GET StoreFrontServers/Count | Get number of StoreFront servers.

## Subscriptions

API | Description
--- | ---
GET Subscriptions | Get all subscriptions.
POST Subscriptions | Create new subscriptions. Note: A subscription ties a tenant to an offering, with a list of users. When attempting to create a subscription for a tenant and offering where a subscription already exists, the specified list of users is added to the existing subscription.
GET Subscriptions({id}) | Get a single subscription by ID.
PUT Subscriptions({id}) | Update an existing subscription.
DELETE Subscriptions({id}) | Delete a subscription. This deletion will not cascade to any other objects.
PUT Subscriptions({id})/Validate | Validate details for updating an existing subscription. See Validation.
GET Subscriptions/Count | Get number of subscriptions.
POST Subscriptions/Validate | Validate details for subscriptions to be created. See Validation.

## Tasks

API | Description
--- | ---
GET Tasks | Get all task records.
GET Tasks({id}) | Get details of a single task by ID.
POST Tasks({id})/Cancel | Cancel a task. This stops a task from executing, which is similar to an "induced error". Other tasks will be blocked until the task is retried, or the desired state is modified so that the task is no longer needed. See DesiredState.
POST Tasks({id})/Retry | Retry a task. This starts a failed or cancelled task over. Some steps that completed successfully may be performed again, but this will be done in a safe manner to ensure there is no duplicated configuration.
POST Tasks/ClearHistory | Clear all task history.
GET Tasks/Count | Get the number of task records.

## Tenants

API | Description
--- | ---
GET Tenants | Get all tenants.
POST Tenants | Import a new tenant. The tenant must already exist in Active Directory.
GET Tenants({id}) | Get a single tenant by ID.
PUT Tenants({id}) | Update the details of a tenant.
DELETE Tenants({id}) | Delete a tenant. See Deleting Objects.
GET Tenants({id})/AvailableDataCenters | Get the list of all datacenters available for use by a tenant.
GET Tenants({id})/AvailableDataCenters/Count | Get the number of datacenters available for use by a tenant.
GET Tenants({id})/CompatibleOfferings | Get compatible offerings for a tenant; i.e. those offerings which the tenant is allowed to subscribe.
GET Tenants({id})/CompatibleOfferings/Count | Get the number of compatible offerings for a tenant; i.e. those offerings which the tenant is allowed to subscribe.
GET Tenants({id})/DeleteCascade | Get the objects for a tenant that a potential delete would cascade to. See Deleting Objects.
GET Tenants({id})/DeliveryGroups | Get the delivery groups in use by a tenant. This includes shared delivery groups which the tenant's users have access to.
PUT Tenants({id})/DeliveryGroups | Simultaneously create new delivery groups, edit existing delivery groups, and delete existing delivery groups for a tenant.
GET Tenants({id})/DeliveryGroups({deliveryGroupId})/OfferingReferences | Get offerings associated with a delivery group. An offering is considered to be associated with a delivery group if the offering IsolationMode is SharedDeliveryGroup, and the delivery group is compatible with the offering. This means that all current and future tenants who subscribe to the offering will have their user sessions hosted on the delivery group.
GET Tenants({id})/DeliveryGroups({deliveryGroupId})/SubscriptionReferences | Get references to subscriptions hosted on a delivery group.
GET Tenants({id})/DeliveryGroups/Count | Get the number of delivery groups in use by a tenant. This includes shared delivery groups which the tenant's users have access to.
GET Tenants({id})/DeliveryGroups/OfferingCounts | Get the number of offerings available to any tenant, which are associated with each of the delivery groups that are in use by the specified tenant. This includes shared delivery groups which the tenant's users have access to. This differs from GET Tenants({id})/DeliveryGroups/TenantOfferingCounts in that this API returns information about all tenants using the delivery groups, while the other API returns information about only the given tenant.
GET Tenants({id})/DeliveryGroups/SubscriptionCounts | Get the number of subscriptions belonging to any tenant, which are associated with each of the delivery groups that are in use by the specified tenant. This includes shared delivery groups which the tenant's users have access to. This differs from GET Tenants({id})/DeliveryGroups/TenantSubscriptionCounts in that this API returns information about all tenants using the delivery groups, while the other API returns information about only the given tenant.
GET Tenants({id})/DeliveryGroups/TenantCounts | Get the number of tenants using each of the delivery groups that are in use by a tenant. This includes shared delivery groups which the tenant's users have access to.
GET Tenants({id})/DeliveryGroups/TenantOfferingCounts | Get the number of offerings available to the specified tenant, which are associated with each of the delivery groups that are in use by the tenant. This includes shared delivery groups which the tenant's users have access to. This differs from GET Tenants({id})/DeliveryGroups/OfferingCounts in that this API returns only information about the given tenant, while the other API returns information about all tenants using the delivery groups.
GET Tenants({id})/DeliveryGroups/TenantSubscriptionCounts | Get the number of subscriptions belonging to the specified tenant, which are associated with each of the delivery groups that are in use by the tenant. This includes shared delivery groups which the tenant's users have access to. This differs from GET Tenants({id})/DeliveryGroups/SubscriptionCounts in that this API returns only information about the given tenant, while the other API returns information about all tenants using the delivery groups.
PUT Tenants({id})/DeliveryGroups/Validate | Validate the simultaneous edits for multiple delivery groups for a tenant. See Validation.
GET Tenants({id})/DeliverySites | Get the delivery sites in use by a tenant. This includes shared delivery sites that are hosting delivery groups which the tenant's users have access to.
GET Tenants({id})/DeliverySites/Count | Get the number of delivery sites in use by a tenant. This includes shared delivery sites that are hosting delivery groups which the tenant's users have access to.
GET Tenants({id})/GlobalDefaults | Get the subset of global settings that are read-only for tenant administrators.
GET Tenants({id})/LocationUserGroup({lugId})/DeleteCascade | Get the objects for a tenant location user group that a potential delete would cascade to. See Deleting Objects.
GET Tenants({id})/Offering({offeringId})/OfferingsInSameScope | Get offerings in the same scope of a given offering, and available to the given tenant. That is, offerings with the same isolation mode and the same session machine catalog, and compatible with the same tenant.
GET Tenants({id})/Offering({offeringId})/OfferingsInSameScope/Count | Get number of offerings in the same scope of a given offering, and available to the given tenant. That is, offerings with the same isolation mode and the same session machine catalog, and compatible with the same tenant.
GET Tenants({id})/Offering({offeringId})/SubscriptionsInSameScope | Get subscriptions in the same scope of the specific tenant for a given offering. That is, subscriptions with the same isolation mode in the same session machine catalog as the offering, and associated with the same tenant.
GET Tenants({id})/Offering({offeringId})/SubscriptionsInSameScope/Count | Get the number of subscriptions in the same scope of the specific tenant for a given offering. That is, subscriptions with the same isolation mode in the same session machine catalog as the offering, and associated with the same tenant.
GET Tenants({id})/Offerings({offeringId}) | Get a single offering by ID.
GET Tenants({id})/Offerings({offeringId})/DeliveryGroups | Get the delivery groups used by a tenant's subscriptions to an offering, or which may be used for future subscriptions of the tenant to the offering. If a delivery group does not exist in a datacenter used by the tenant, a fake delivery group object will be returned for the datacenter.
GET Tenants({id})/Offerings({offeringId})/DeliveryGroups/Count | Get the number of delivery groups used by a tenant's subscriptions to an offering, or which may be used for future subscriptions of the tenant to the offering. If a delivery group does not exist in a datacenter used by the tenant, a fake delivery group object will be counted for the datacenter.
GET Tenants({id})/SessionMachines | Get the session machines in use by a tenant. This includes shared session machines in delivery groups which the tenant's users have access to.
GET Tenants({id})/SessionMachines/Count | Get the number of session machines in use by a tenant. This includes shared session machines in delivery groups which the tenant's users have access to.
GET Tenants({id})/StoreFrontServerGroups | Get the StoreFront server groups in use by a tenant.
GET Tenants({id})/StoreFrontServerGroups/Count | Get the number of StoreFront server groups in use by a tenant.
GET Tenants({id})/Subscriptions | Get subscriptions for a tenant.
POST Tenants({id})/Subscriptions | Create new subscriptions. Note: A subscription ties a tenant to an offering, with a list of users. When attempting to create a subscription for a tenant and offering where a subscription already exists, the specified list of users is added to the existing subscription.
DELETE Tenants({id})/Subscriptions({subscriptionId}) | Delete a tenant's subscription. This deletion will not cascade to any other objects.
GET Tenants({id})/Subscriptions({subscriptionId}) | Get a single subscription by ID.
PUT Tenants({id})/Subscriptions({subscriptionId})/Validate | Validate details for updating an existing subscription. See Validation.
GET Tenants({id})/Subscriptions/Count | Get number of subscriptions for a tenant.
POST Tenants({id})/Subscriptions/Validate | Validate details for subscriptions to be created. See Validation.
PUT Tenants({id})/Validate | Validate the details for updating a tenant. See Validation.
GET Tenants/Count | Get the number of tenants.
POST Tenants/Validate | Validate the details of a tenant to import. See Validation.