Download OpenAPI specification:Download
Anyware Manager offers a RESTful API as an alternative to using the Anyware Manager Admin Console. It allows for programmatic management and automation of resources in Anyware Manager deployments. The API can be used to create, configure, and manage Anyware Manager resources including deployments, connectors, and workstations (with a PCoIP agent installed). In addition it enables the entitlement of users to machines and power management on supported platforms. Currently Anyware Manager supports resource management on private (on-premises) clouds, Microsoft Azure, Amazon Web Services (AWS), and Google Cloud (GCP).
To better understand how Anyware Manager deploys and manages resources on clouds, please refer to Anyware Manager architecture documents.
All operations accept either query parameters or JSON request bodies and are authorized (excluding initial authentication) using JWTs (JSON Web Tokens). Operations return JSON responses following the JSend specification.
Dates and timestamps follow the ISO 8601 standard.
An example:
If a date is updated using '2019-11-15', Anyware Manager will record it as '2019-11-15T00:00:00.000Z'.
If a date is updated using '2019-11', Anyware Manager will record it as '2019-11-01T00:00:00.000Z'.
Anyware Manager API usage is limited on a per-IP basis, and this rate limiting is calculated across all Anyware Manager APIs.
Current rate limiting:
Requests exceeding any of the above limitations will return an HTTP 429 error:
{"code":429, "status":"retry", "data":{"reason":"429 - Rate Limit Exceeded - Review Policy Here: https://cas.teradici.com/api/docs#section/Getting-Started/API-Rate-Limiting"}}
Clients should account for the specified rate limits and be able to gracefully handle 429 errors by delaying further requests.
Anyware Manager provides the following methods for API requests:
Note: Anyware Manager API uses URL-path and request body to receive query parameters. GET methods generally use URL query strings to send parameters and an example is presented in Add a remote workstation. Other methods may require parameters to be sent in the request body, and an example is shown in Create a connector. Please refer to instructions under each API.
A list of common status codes in Anyware Manager API v1:
To access and use the Anyware Manager APIs, you must be a member of Teradici Advantage Partner Program or have been pre-approved by Teradici. Contact Teradici for more information.
An Anyware Manager Service Account allows you to create a deployment and at most ONE Deployment Key for each deployment it creates. This key can then be used to create more Deployment Keys and interact with the deployment and the resources under that deployment.
You can create an Anyware Manager service account from within the Anyware Manager Admin Console by following these steps:
Prior to using the Anyware Manager APIs, a Deployment and associated Deployment Service Account must be created. If you already have an existing Deployment and a Deployment Service Account, proceed to the examples section.
Go to the Anyware Manager Admin Console and sign in.
If you have never signed in to the Anyware Manager Admin Console before, you will be prompted to create a default deployment and enter your registration code and click unlock.
Once you have unlocked the console or if you have already created a deployment, in the top bar Deployments kebab menu select edit Deployment to create a Deployment Service Account.
Click on the menu icon on the side of the deployment you want to generate a Deployment Service Account key for and click edit. At the bottom of the page, there is a section for Deployment Service Accounts. To add a new Deployment Service Account Key, click the Add icon next to the text.
Once the Deployment Service Account key has been generated, a modal will inform you to copy out the credentials. These are the credentials used to sign in and use the Anyware Manager API. Make sure you save these somewhere as they cannot be recovered once the window is closed.
Note: Every Deployment Service Account is associated to one deployment.
The response contains the credentials for the service account. These credentials should be saved and used to sign in to Anyware Manager and obtain a token to authorize further requests.
The examples use Python and the requests library. Execute the cells in order for each example to test common operations using the Anyware Manager API.
import requests
import pprint
api_url = "https://cam.teradici.com/api/v1"
Use the credentials you obtained from the Anyware Manager Admin Console in the prerequisites section to sign in and authenticate, which provides an authorization token scoped to the associated deployment. This token will be used for all API operations and is valid for one hour, after which it will expire and a new token can be generated by signing in again.
# Paste your credentials into the variable below
credentials = {"username":"-----","apiKey":"-----","deploymentId":"-----","tenantId":"-----"}
request_body = dict(username=credentials.get('username'),
password=credentials.get('apiKey'),
tenantId=credentials.get('tenantId'))
response = requests.post("{}/auth/signin".format(api_url),
json=request_body)
if not response.status_code == 200:
raise Exception(response.text)
response_body = response.json()
auth_token = response_body.get('data').get('token')
"""
There are two options to get a valid token:
(1) Generate a token programmatically, just like in the example above. This token was created using
a service account, and only works for the deployment associated with that service account.
(2) Get a token from Anyware Manager Admin Console. This token has a tenant scope, which means it works
for all deployments.
"""
# Create session object; all subsequent requests using the session
# will have the authorization header set
session = requests.Session()
session.headers.update({"Authorization": auth_token})
pprint.pprint(auth_token)
Once you have signed in, you have access to the Deployment associated with the Service Account. It can be retrieved from /deployments
and the deploymentId can be passed in to other API operations.
# A valid deploymentId is required to generate this token
# The deploymentId can be fetched by listing all deployments
response = session.get("{}/deployments".format(api_url))
if not response.status_code == 200:
raise Exception(response.text)
response_body = response.json()
# The service account only has access to its one associated
# deployment, so we get element 0
deployment = response_body.get('data')[0]
deployment_id = deployment['deploymentId']
pprint.pprint(deployment_id)
Prior to adding machines and entitlements, an Anyware Connector is required to handle brokering. Setting up an Anyware Connector requires two steps: first, generate a connector token, then install the connector.
In order to deploy an Anyware Connector you need to have a connector token, which associates an installed connector to a deployment. Once generated, the token will expire after one hour. If it expires, a new one can be generated by again calling the following API.
body = dict(
deploymentId=deployment_id,
connectorName='connector0', # <- Enter your desired connector name here
)
response = session.post("{}/auth/tokens/connector".format(api_url), json=body)
if not response.status_code == 200:
raise Exception(response.text)
response_body = response.json()
connector_token = response_body.get('data').get('token')
pprint.pprint(connector_token)
Once you have generated a connector token, you can install a connector by following the installation guide. Alternatively, you can install the connector using these example Terraform scripts or pass the token to existing automation you may have.
Once it's installed, you can query the API for the connector's health status.
response = session.get("{}/deployments/connectors".format(api_url))
if not response.status_code == 200:
raise Exception(response.text)
response_body = response.json()
connectors = response_body.get('data')
pprint.pprint(connectors)
If you have an existing Remote Workstation joined to a domain controller and reachable by the connector you created previously, you can add it to Anyware Manager using these APIs.
The connector syncs computer records from Active Directory to Anyware Manager. All machines that are currently joined to the configured AD domain controller can be retrieved using the /adcomputers
API.
# Set the limit to retrieve more machines and the offset to shift the page
# If you add computerName to the query params you can query a specific
# machine ('computerName': {name})
params = {'limit': 1, 'offset': 0, 'deploymentId': deployment_id}
response = session.get("{}/machines/entitlements/adcomputers".format(api_url), params=params)
"""
The above code is equivalent to
response = session.get("{}/machine/entitlements/adcomputers?limit=1&offset=0&deploymentId={}".format(api_url, deployment_id))
"""
if not response.status_code == 200:
raise Exception(response.text)
response_body = response.json()
ad_computers = response_body.get('data')
pprint.pprint("Total Computers: {}".format(response_body.get('total')))
pprint.pprint(ad_computers)
if ad_computers:
machine_name = ad_computers[0]['computerName']
else:
raise Exception('No computers!')
Once you have identified the machine you want to use, you can use the API to add a machine resource to Anyware Manager. When adding existing remote workstations (machines that have been deployed and joined to the domain), use the managed=False
and provider="onprem"
body parameters. This will ensure that Anyware Manager does not try to power manage the machine.
body = dict(
machineName= machine_name,
deploymentId=deployment_id,
provider='onprem',
managed=False,
)
response = session.post("{}/machines".format(api_url), json=body)
if not response.status_code == 201:
raise Exception(response.text)
response_body = response.json()
machine = response_body.get('data')
pprint.pprint(machine)
machine_id = machine['machineId']
User entitlements associate a Directory User to a Remote Workstation, and are required for brokering. The userGuid from the directory service is used to associate the actual user to the remote workstation.
First we need to retrieve the list of "Active Directory Users (adusers)" in order to extract the userGuid for the user we are looking for, which can be done through the /adusers
API.
# Set the limit to retrieve more machines and the offset to shift the page
# If you add name to the query params you can query a specific user by name
# ('name': {name})
params = {'limit': 1, 'offset': 0, 'deploymentId': deployment_id}
response = session.get("{}/machines/entitlements/adusers?enabled=true".format(api_url), params=params)
if not response.status_code == 200:
raise Exception(response.text)
response_body = response.json()
ad_users = response_body.get('data')
pprint.pprint("Total Users: {}".format(response_body.get('total')))
pprint.pprint(ad_users)
if ad_users:
user_guid = ad_users[0]['userGuid']
else:
raise Exception('No users!')
This is done through the /entitlements
API and requires a Remote Workstation ID, userGuid, and deploymentId.
First we will list the Remote Workstations and extract the Remote Workstation ID and deployment ID from the response. Then we will use the response from /adusers
above to assign the first user to the Remote Workstations.
body = dict(
deploymentId=deployment_id,
machineId=machine_id,
userGuid=user_guid,
)
response = session.post("{}/machines/entitlements".format(api_url),
json=body)
if not response.status_code == 201:
raise Exception(response.text)
response_body = response.json()
entitlement = response_body.get('data')
pprint.pprint(entitlement)
An Anyware Manager Service Account can be used to create a deployment and a Deployment service account for the deployment.
If you have an Anyware Manager Service Account or a Deployment Service Account you can use the function below to sign in and get a token.
def signin_with_service_account(account):
# sign in using the account
resp = requests.post(
'{}/auth/signin'.format(api_url),
json=account,
verify=True,
).json()
token = resp.get('data').get('token')
return token
The code below uses an Anyware Manager Service Account to create a deployment
# this is the Anyware Manager service account that can be downloaded Anyware Manager Admin Console
awm_service_account = {
"keyId": "key-id",
"username": "the-username",
"apiKey": "the secret",
"keyName": "awm-service-account-1"
}
token = signin_with_service_account(awm_service_account)
# now, you use the token to create a deployment
deployment = {
'deploymentName' : 'my new deployment',
'registrationCode': 'your-registration-code',
}
resp = requests.post(
'{}/deployments'.format(api_url),
headers=dict(authorization=token),
verify=True,
json=deployment
).json()
Now it uses the deployment ID and the same token to create a Deployment Service Account for the deployment.
deployment_id = resp.get('data').get('deploymentId')
resp = requests.post(
'{}/auth/keys'.format(api_url),
json={'deploymentId': deployment_id},
verify=True,
headers=dict(authorization=token),
).json()
# get the Deployment Service Account from this response
# YOU MUST SAVE IT, AS IT IS ONLY RETURNED NOW!
deployment_service_account = resp.get('data')
After having your Deployment Service Account you can use it to sign in and get a token.
deployment_token = signin_with_service_account(deployment_service_account)
Using this token you can now interact with your deployment.
The code below uses the deployment token to change the deployment name.
resp = requests.put(
'{}/deployments/{}'.format(api_url, deployment_id),
json={ 'deploymentName': 'my deployment renamed' },
verify=True,
headers=dict(authorization=deployment_token),
).json()
Now that you have an entitled workstation running a PCoIP agent, you can connect to it and establish a session using a PCoIP client. The connection will be brokered by the connector you configured above.
If you do not already have a PCoIP software client or zero client, you can download a software client from Teradici here.
In the client, enter the FQDN or IP address of the connector you set up above:
Enter the credentials for the user you entitled, then select the machine and connect.
Programmatic access to perform operations on Anyware Manager resources
At this time these keys have two scopes, create:deployment_tenant and create:keys:tenant. This allows them to create a deployment and at most one Deployment Key for each deployment it creates. This key can then be used to create more Deployment Keys and interact with the deployment and the resources under that deployment.
required scopes: read:keys_tenant
Allows authenticated clients to return a list of the user's Anyware Manager Service Account Keys.
limit | number [ 1 .. 100 ] Default: 25 Query the given number of resources. |
offset | number Default: 0 Query resources starting from offset. |
{- "code": 200,
- "data": [
- {
- "createdOn": "2018-01-05T00:06:29.180Z",
- "keyId": "507f1f77bcf86cd799439011",
- "keyName": "sa-key-1"
}
], - "status": "success"
}
required scopes: create:keys_tenant
Allows authenticated clients to create a new Anyware Manager Service Account Key.
keyName | string [ 1 .. 64 ] characters Name to identify the service account key |
{- "keyName": "sa-key-1"
}
{- "code": 201,
- "data": [
- {
- "apiKey": "JWT",
- "keyId": "507f1f77bcf86cd799439011",
- "keyName": "sa-key-1",
- "username": "507f1f77bcf86cd799439011"
}
], - "status": "success"
}
required scopes: delete:keys_tenant
Allows authenticated clients to remove an Anyware Manager Service Account Key by keyId
.
id required | string Key ID |
{- "code": 200,
- "status": "success"
}
Programmatic Access to perform operations on Anyware Manager resources within a deployment
required scopes: read:keys read:keys_tenant
Allows authenticated clients to return a list of the user's Deployment Service Account Keys.
If using a tenant token deploymentId is required
deploymentId | string Query resources based on the deploymentId. |
limit | number [ 1 .. 100 ] Default: 25 Query the given number of resources. |
offset | number Default: 0 Query resources starting from offset. |
{- "code": 200,
- "data": [
- {
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "59499477544e6f46d1df4942",
- "keyId": "ffead5dds4f07s10d0",
- "keyName": "deployment-key-1"
}
], - "status": "success"
}
required scopes: create:keys_tenant
Allows authenticated clients to create a new Deployment API key.
If using a token with the create:keys_tenant scope deploymentId
is required
If using a service account token only ONE key can be created per deployment and the deployment must have been originally created by that service account
deploymentId required | string Deployment ID |
keyName | string [ 1 .. 64 ] characters Name to identify the key |
{- "deploymentId": "59499477544e6f46d1df4942",
- "keyName": "deployment-key-1"
}
{- "code": 201,
- "data": [
- {
- "apiKey": "JWT",
- "keyId": "ffead5dds4f07s10d0",
- "keyName": "deployment-key-1",
- "tenantId": "005c7afb-027y-4b6e-9a90-dc123a",
- "username": "ffead5dds4f07s10d0"
}
], - "status": "success"
}
required scopes: delete:keys, delete:keys_tenant
Allows authenticated clients to remove a single Deployment Service Account Key based on keyId.
If using a tenant token deploymentId is required
id required | string Key ID |
{- "code": 200,
- "status": "success"
}
Allows authenticated clients to validate provider service account credentials before performing other operations.
Azure Service Principal accounts, and Google Service accounts are supported. AWS Roles are only supported on Anyware Manager as a service. AWS service accounts are only supported on the installable Anyware Manager.
required | object (AwsServiceAccountCredentials) |
provider required | string Value: "aws" |
{- "credential": {
- "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
- "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}, - "provider": "aws"
}
{- "code": 200,
- "status": "success"
}
required scopes: read:user, read:users_tenant
Allows authenticated clients to retrieve a list of all of their providers service accounts.
An example API call: GET https://cam.teradici.com/api/v1/deployments/5d321400e62258001254ac26/cloudServiceAccounts
Azure Service Principal accounts, and Google Service accounts are supported. AWS Roles are only supported on Anyware Manager as a service. AWS service accounts are only supported on the installable Anyware Manager.
Previous endpoint https://cam.teradici.com/api/v1/auth/users/cloudServiceAccount
is being deprecated and may not be supported in future
deploymentId required | string Deployment ID |
{- "code": 200,
- "data": [
- {
- "clientEmail": "email@google.com",
- "createdBy": "test",
- "deploymentId": "xoiklqaeyucASD",
- "id": "1",
- "projectId": "KAka2do@;a",
- "provider": "gcp"
}, - {
- "clientId": "email@google.com",
- "createdBy": "test",
- "deploymentId": "xoiklqaeyucASD",
- "id": "2",
- "provider": "azure",
- "tenantId": "KAka2do@;a"
}
], - "status": "success"
}
required scopes: create:user, create:users_tenant
Allows authenticated clients to register provider service accounts that can be used to manage their infrastructure.
An example API call: POST https://cam.teradici.com/api/v1/deployments/5d321400e62258001254ac26/cloudServiceAccounts
Azure Service Principal accounts, and Google Service accounts are supported. AWS Roles are only supported on Anyware Manager as a service. AWS service accounts are only supported on the installable Anyware Manager.
Anyware Manager currently supports only one service account for each provider
deploymentId required | string Deployment ID |
required | object (AwsServiceAccountCredentials) |
provider required | string Value: "aws" |
{- "credential": {
- "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
- "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}, - "provider": "aws"
}
{- "code": 201,
- "status": "success",
- "data": {
- "id": "0d6e18ec-a729-11e9-a2a3-2a2ae2dbcce4"
}
}
required scopes: update:user, update:users_tenant
Allows authenticated clients to remove a provider service account.
An example API call: DELETE https://cam.teradici.com/api/v1/deployments/5d321400e62258001254ac26/cloudServiceAccounts/123456
Azure Service Principal accounts, and Google Service accounts are supported. AWS Roles are only supported on Anyware Manager as a service. AWS service accounts are only supported on the installable Anyware Manager.
deploymentId required | string Deployment ID |
id required | string Provider service account ID |
{- "code": 200,
- "status": "success"
}
required scopes: read:user, read:users_tenant
Allows authenticated clients to get the information needed to create an AWS Role that Anyware Manager can assume.
This API is only available on Anyware Manager as a service and is not available on the installable Anyware Manager
deploymentId required | string Deployment ID |
{- "code": 200,
- "data": {
- "camAccountId": "1234567",
- "externalId": "5e4ec994d1285b001362483f",
- "role": {
- "Statement": [
- {
- "Action": "sts:AssumeRole",
- "Condition": {
- "StringEquals": {
- "sts:ExternalId": "5e4ec994d1285b001362483f"
}
}, - "Effect": "Allow",
- "Principal": {
- "AWS": "1234567"
}
}
], - "Version": "2012-10-17"
}
}, - "status": "success"
}
Allows authenticated clients to check the expiration date for client secrets used in provider service accounts. Requires an Azure provider service account with an applicationObjectId field or Application.Read.All permissions in Microsoft Graph API.
Only Azure Service Principal accounts are supported
deploymentId required | string Deployment ID |
{- "code": 200,
- "data": [
- {
- "endDate": "2021-01-16T18:34:44.797Z",
- "keyId": "1"
}, - {
- "endDate": "2021-01-19T18:34:44.797Z",
- "keyId": "2"
}
], - "status": "success"
}
Provides the ability to retrieve an API key via an Azure Active Directory credential.
In order to use this method, API clients must have already acquired a Microsoft Access Token
{- "code": 200,
- "data": {
- "token": "JWT"
}, - "status": "success"
}
Provides the ability to retrieve an API key via a Google credential.
In order to use this method, API clients must have already acquired a Google Access Token
{- "code": 200,
- "data": {
- "token": "JWT"
}, - "status": "success"
}
Issue a programmatic authentication request with a service account.
Either the apiKey
or the password
field must be populated with the SA apiKey
credential
apiKey required | string Service Account apiKey |
username required | string Service Account username |
{- "apiKey": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJvaWQ...",
- "username": "507f1f77bcf86cd799439011"
}
{- "code": 200,
- "data": {
- "token": "JWT"
}, - "status": "success"
}
required scope: read:users_tenant
Retrieve user account objects in our system.
An example API call: https://cam.teradici.com/api/v1/auth/users/?tenantId=666999777888
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
offset | number Default: 0 Query resources starting from offset. |
tenantId | string Query users based on a tenant ID |
username | string Query users by username |
{- "code": 200,
- "data": [
- {
- "createdOn": "2017-06-20T21:32:39.344Z",
- "dataExportAcceptedOn": "2019-02-08T21:32:39.344Z",
- "eulaAcceptedOn": "2019-02-08T21:32:39.344Z",
- "monitorEulaAcceptedOn": "2019-02-08T21:32:39.344Z",
- "privatePolicyAcceptedOn": "2019-02-08T21:32:39.344Z",
- "scopes": {
- "deployment": [
- "read"
]
}, - "tenantId": "44241356",
- "userId": "4213414",
- "username": "user1341"
}
], - "limit": 15,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scope: read:user or read:users_tenant
Allows authorized client to retrieve user account object based on userId.
An example API call: https://cam.teradici.com/api/v1/auth/users/111666999777888
id required | string User ID |
{- "code": 200,
- "data": {
- "createdOn": "2017-06-20T21:32:39.344Z",
- "dataExportAcceptedOn": "2019-02-08T21:32:39.344Z",
- "eulaAcceptedOn": "2019-02-08T21:32:39.344Z",
- "monitorEulaAcceptedOn": "2019-02-08T21:32:39.344Z",
- "privatePolicyAcceptedOn": "2019-02-08T21:32:39.344Z",
- "scopes": {
- "deployment": [
- "read"
]
}, - "tenantId": "44241356",
- "userId": "4213414",
- "username": "user1341"
}, - "status": "success"
}
required scope: update:users_tenant
Updates privacy policy, eula and/or data export accepted properties when respective flag is set in the message body
id required | string User ID |
dataExportAccepted | boolean Flag indicating whether data export consent was provided or not |
eulaAccepted | boolean Flag indicating whether EULA was accepted or not |
monitorEulaAccepted | boolean Flag indicating whether Anyware Monitor EULA was accepted or not |
privacyPolicyAccepted | boolean Flag indicating whether privacy policy was accepted or not |
{- "dataExportAccepted": true,
- "eulaAccepted": true,
- "monitorEulaAccepted": true,
- "privacyPolicyAccepted": true
}
{- "code": 200,
- "status": "success"
}
required scope: read:signin_config
You should receive a 403 if the idp of your API token is 'saml' as users logged in via SAML can not read or change SAML configurations.
Retrieve the SAML configuration for Anyware Manager
An example API call: https://cam.teradici.com/api/v1/auth/saml
{- "code": 200,
- "status": "success",
- "data": [
- {
- "createdOn": "2020-05-23T00:31:56.032Z",
- "domain": "cam.teradici.com",
- "enabled": true,
- "id": "5ec86efcf26f04445d18ec12",
- "idpCertificate": "xxxxxx-multi-line-yyyyy",
- "issuer": "cam.teradici.com",
- "name": "SAML",
- "ownerIdp": "azure",
- "ownerOid": "b081c5b6-98e4-438d-b3e4-212d82996cde",
- "ownerTenantId": "716c4afb-127a-3b6e-4a60-dc385a62cd23",
- "ownerUpn": "user@example.com",
}
]
}
required scopes: create:signin_config
Create the SAML configuration
domain required | string |
idpCertificate | string |
name | string |
signInUrl | string^https:\/\/.* |
{- "domain": "cam.teradici.com",
- "idpCertificate": "xxxxxx",
- "name": "SAML config",
}
{- "code": 201,
- "data": {
- "createdOn": "2020-05-23T00:31:56.032Z",
- "domain": "cam.teradici.com",
- "enabled": false,
- "id": "5ec86efcf26f04445d18ec12",
- "idpCertificate": "xxxxxx-multi-line-yyyyy",
- "issuer": "cam.teradici.com",
- "name": "SAML",
- "ownerIdp": "azure",
- "ownerOid": "b081c5b6-98e4-438d-b3e4-212d82996cde",
- "ownerTenantId": "716c4afb-127a-3b6e-4a60-dc385a62cd23",
- "ownerUpn": "user@example.com",
}, - "status": "success"
}
required scope: delete:signin_config
Deletes the specified SAML configuration.
configurationId required | string SAML Configuration ID |
{- "code": 200,
- "status": "success"
}
required scopes: update:signin_config
Update the existing SAML configuration
configurationId required | string SAML Configuration ID |
enabled | boolean Whether the configuration is enabled or not |
idpCertificate | string |
name | string |
signInUrl | string^https:\/\/.* |
{- "domain": "cam.teradici.com",
- "enabled": true,
- "idpCertificate": "xxxxxx",
- "name": "SAML Config",
}
{- "code": 200,
- "data": {
- "createdOn": "2020-05-23T00:31:56.032Z",
- "domain": "cam.teradici.com",
- "enabled": true,
- "id": "5ec86efcf26f04445d18ec12",
- "idpCertificate": "xxxxxx-multi-line-yyyyy",
- "issuer": "cam.teradici.com",
- "name": "SAML",
- "ownerIdp": "azure",
- "ownerOid": "b081c5b6-98e4-438d-b3e4-212d82996cde",
- "ownerTenantId": "716c4afb-127a-3b6e-4a60-dc385a62cd23",
- "ownerUpn": "user@example.com",
}, - "status": "success"
}
Manage Users allowed to login via the identity provider from the SAML configuration.
required scope: read:signin_config
You should receive a 403 if the idp of your API token is 'saml' as users logged in via SAML can not read or change SAML configurations.
Retrieve the list of users allowed to login via the identity provider added to the SAML configuration.
An example API call: https://cam.teradici.com/api/v1/auth/saml/5ec86efcf26f04445d18ec12/allowedUsers
configurationId required | string SAML configuration id |
{- "code": 200,
- "status": "success",
- "data": [
- {
- "configurationId": "5ec86efcf26f04445d18ec12",
- "createdOn": "2020-05-23T00:31:56.032Z",
- "id": "7dc56efcf26f02332d18ec34",
- "upn": "user@example.com"
}
]
}
required scopes: create:signin_config
Creates a new user allowed to login using the identity provider added to the SAML configuration
configurationId required | string SAML configuration id |
upn required | string |
{- "upn": "user@example.com"
}
{- "code": 201,
- "data": {
- "configurationId": "5ec86efcf26f04445d18ec12",
- "createdOn": "2020-05-23T00:31:56.032Z",
- "id": "7dc56efcf26f02332d18ec34",
- "upn": "user@example.com"
}, - "status": "success"
}
required scope: update:signin_config
Deletes the user from the list of users allowed to login via SAML identity provider.
configurationId required | string SAML configuration id |
userId required | string SAML allowed user id |
{- "code": 200,
- "status": "success"
}
Manage User Groups allowed to login via the identity provider from the SAML configuration.
required scope: read:signin_config
You should receive a 403 if the idp of your API token is 'saml' as users logged in via SAML can not read or change SAML configurations.
Retrieve the list of user groups allowed to login via the identity provider added to the SAML configuration.
An example API call: https://cam.teradici.com/api/v1/auth/saml/5ec86efcf26f04445d18ec12/allowedUsers
configurationId required | string SAML configuration id |
{- "code": 200,
- "status": "success",
- "data": [
- {
- "configurationId": "5ec86efcf26f04445d18ec12",
- "createdOn": "2020-05-23T00:31:56.032Z",
- "groupName": "CAS Manager Admins",
- "id": "7dc56efcf26f02332d18ec34"
}
]
}
required scopes: create:signin_config
Creates a new group allowed to login using the identity provider added to the SAML configuration
configurationId required | string SAML configuration id |
groupName required | string |
{- "groupName": "CAS Manager Admins"
}
{- "code": 201,
- "data": {
- "configurationId": "5ec86efcf26f04445d18ec12",
- "createdOn": "2020-05-23T00:31:56.032Z",
- "groupName": "CAS Manager Admins",
- "id": "7dc56efcf26f02332d18ec34"
}, - "status": "success"
}
required scope: update:signin_config
Deletes the group from the list of groups allowed to login via SAML identity provider.
configurationId required | string SAML configuration id |
groupId required | string SAML allowed group id |
{- "code": 200,
- "status": "success"
}
required scopes: read:keys_tenant or read:keys
Allows authenticated clients to get a Cloudsmith download token for a given Anyware Manager repository.
deploymentId required | string Deployment ID |
repoName required | string Enum: "anyware-manager" "anyware-manager-beta" "anyware-manager-dev" Example: anyware-manager Name of the Anyware Manager repository to get the Cloudsmith download token for |
{- "code": 200,
- "data": {
- "downloadToken": "theCloudsmithDownloadToken"
}, - "status": "success"
}
required scopes: read:deployment or read:deployment_tenant
Allows authenticated clients to retrieve their corresponding deployments.
The current query max limit is 200. API Clients can filter requests with the parameters below.
An example API call: https://cam.teradici.com/api/v1/deployments?deploymentName=gcpproject&showactive=true
deploymentName | string Query resources by deploymentName. |
deploymentNameFilter | string Modifies deploymentName queries. If deploymentNameFilter=includes, then deploymentName={term} becomes a search for all deployments with a deploymentName that includes that term. |
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
offset | number Default: 0 Query resources starting from offset. |
showactive | boolean Default: true Query resources that have the status "active". |
showdeleted | boolean Default: false Query resources that have the status "deleted". |
showdeleting | boolean Default: false Query resources that have the status "deleting". |
{- "code": 200,
- "data": [
- {
- "active": true,
- "createdBy": "12341",
- "createdOn": "2017-06-20T21:32:39.344Z",
- "deploymentId": "59499477544e6f46d1df4942",
- "deploymentName": "dep1",
- "registrationCode": "12341",
- "scannedOn": "2017-06-21T21:32:39.344Z",
- "status": "active",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}, - {
- "active": true,
- "createdBy": "12341",
- "createdOn": "2017-06-20T21:32:39.433Z",
- "deploymentId": "59499477544e6f46d1df4943",
- "deploymentName": "dep2",
- "registrationCode": "12341412",
- "scannedOn": "2017-06-20T21:32:39.433Z",
- "status": "active",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}
], - "limit": 15,
- "offset": 0,
- "status": "success",
- "total": 2
}
required scopes: create:deployment or create:deployment_tenant
Register a new deployment to the system.
deploymentName | string Name of the new deployment |
registrationCode required | string Teradici registration code |
{- "deploymentName": "dep1",
- "registrationCode": "1234-1234-1234"
}
{- "code": 201,
- "data": {
- "active": true,
- "createdBy": "12341",
- "createdOn": "2017-06-20T21:32:39.433Z",
- "deploymentId": "59499477544e6f46d1df4943",
- "deploymentName": "dep1",
- "registrationCode": "12341412",
- "scannedOn": "2017-06-20T21:32:39.433Z",
- "status": "active",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}, - "status": "success"
}
required scopes: delete:deployment or delete:deployment_tenant
Allows authenticated clients to remove a single deployment based on deploymentId.
An example API call: https://cam.teradici.com/api/v1/deployments/5d9e3739106cee0011de4a29
id required | string Deployment ID |
deleteFromProvider | boolean Default: false If true, the machines in the deployment will also be deleted from the public cloud. The deployment must have valid credentials for the providers where machines are located. |
{- "deleteFromProvider": true
}
{- "code": 200,
- "status": "success"
}
required scopes: read:deployment or read:deployment_tenant
Retrieve detailed deployment information.
An example API call: https://cam.teradici.com/api/v1/deployments/5d321400e62258001254ac26
id required | string Deployment ID |
{- "code": 200,
- "data": {
- "active": true,
- "createdBy": "12341",
- "createdOn": "2017-06-20T21:32:39.433Z",
- "deploymentId": "59499477544e6f46d1df4943",
- "deploymentName": "dep1",
- "registrationCode": "12341412",
- "scannedOn": "2017-06-20T21:32:39.433Z",
- "status": "active",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}, - "status": "success"
}
required scopes: update:deployment or update:deployment_tenant
Allows authenticated clients to update deployment information.
id required | string Deployment ID |
deploymentName required | string New name of the deployment |
registrationCode | string Teradici registration code |
scannedOn | string A timestamp indicating when the deployment was last scanned |
null
{- "code": 200,
- "data": {
- "active": true,
- "createdBy": "12341",
- "createdOn": "2017-06-20T21:32:39.433Z",
- "deploymentId": "59499477544e6f46d1df4943",
- "deploymentName": "dep1",
- "registrationCode": "12341412",
- "scannedOn": "2017-06-20T21:32:39.433Z",
- "status": "active",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}, - "status": "success"
}
required scopes: delete:deployment_settings or delete:deployment_settings_tenant
Delete a deployment setting with the given name.
You may not delete the following deployment settings. Attempts to do so will result in a 400 class error.
Reserved Setting Name | Description |
---|---|
reserved | Reserved for future Use |
logconfig | Key for logging platform used by Anyware Connectors |
id required | string Deployment ID |
name required | string Deployment setting name |
{- "code": 200,
- "status": "success"
}
required scopes: read:deployment_settings or read:deployment_settings_tenant
A deployment setting is stored as a pair name-value. Use this API to read a deployment setting with the setting name.
An example API call: https://cam.teradici.com/api/v1/deployments/123456789/settings/gcpsettingname
id required | string Deployment ID |
name required | string Deployment setting name |
{- "code": 200,
- "data": "setting-value",
- "status": "success"
}
required scopes: update:deployment_settings or update:deployment_settings_tenant
Update a deployment setting with the setting name.
If the setting does not exist, it will be created
You may not update the following deployment settings. Attempts to do so will result in a 400 class error.
Reserved Setting Name | Description |
---|---|
reserved | Reserved for future Use |
logconfig | Key for logging platform used by Anyware Connectors |
id required | string Deployment ID |
name required | string Deployment setting name |
value required | string The content of the setting |
{- "value": "setting-value"
}
{- "code": 200,
- "status": "success"
}
required scope: read:entitlements or read:entitlements_tenant
Allows authenticated clients to retrieve their corresponding entitlements.
When querying using the userGuid
, machineId
, poolId
or groupGuid
query parameters,
API clients can search using a single or multiple comma separated
parameters.
The response will contain all entitlements that match any one of these parameters. The userGuid, machineId, poolId and groupGuid parameters are limited to 100 parameters, the max length is 4096 characters.
deploymentId required | string Deployment ID |
entitlementType | string Enum: "user" "group" Query resources by entitlement types |
groupGuid | Array of strings Query entitlements by using single or multiple comma separated groupGuids. |
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
machineId | Array of strings Query resources by using single or multiple comma separated machineIds. |
offset | number Default: 0 Query resources starting from offset. |
poolId | Array of strings Query by using single or multiple comma separated poolIds. |
showactive | boolean Default: true Query resources that have the status "active". |
showdeleted | boolean Default: false Query resources that have the status "deleted". |
showdeleting | boolean Default: false Query resources that have the status "deleting". |
upn | Array of strings Query resources by using single or multiple comma separated UPNs. UPN is case insensitive. |
userGuid | Array of strings Query resources by using single or multiple comma separated userGuids. |
{- "code": 200,
- "data": [
- {
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "5a4ead5e79f06d001d1a2ef5",
- "entitlementId": "5a4ec1856b1092001d164b2b",
- "resource": {
- "active": true,
- "connectorId": "54234",
- "createdBy": "2312313",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "123123",
- "location": "useast",
- "machineId": "m14134",
- "machineName": "my-vm",
- "managed": true,
- "osInfo": {
- "offer": "unknown",
- "publisher": "unknown",
- "sku": "unknown",
- "version": "unknown"
}, - "powerState": "running",
- "powerStateLastChangedOn": "2021-08-10T23:08:30.489Z",
- "provisioningStatus": {
- "attributes": { },
- "deployment": { },
- "message": "msg",
- "state": "succeeded"
}, - "resourceGroup": "RG",
- "subscriptionId": "s13213",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "vmSize": "lg"
}, - "resourceId": "5a4eae5c162ce8001d001e76",
- "resourceName": "name",
- "resourceType": "machine",
- "status": "active",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "userGuid": "12341123412"
}
], - "limit": 1,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scopes: create:entitlements or create:entitlements_tenant
Allows authenticated clients to create an entitlement. This call allows you to
associate either a userGuid
or groupGuid
from synced directory data,
or a upn
(which can be from any source) with a registered machineId
or poolId
in our application.
By leveraging your synced directory data, you can entitle users or groups.
Alternatively, you can also use a upn regardless of whether it is from synced data or not.
If the machine is not registered, an HTTP 400 error response will be returned.
deploymentId required | string Deployment ID |
poolId required | string Pool ID |
userGuid required | string UserGuid from domain controller |
{- "poolId": "of34161234712345",
- "userGuid": "12341-12341-41123412"
}
{- "code": 201,
- "data": {
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "5a4ead5e79f06d001d1a2ef5",
- "entitlementId": "5a4ec1856b1092001d164b2b",
- "machineId": "5a4eae5c162ce8001d001e76",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "userGuid": "12341123412"
}, - "status": "success"
}
required scope: delete:entitlements or delete:entitlements_tenant
Allows authenticated clients to remove a single entitlement object based on entitlementId.
deploymentId required | string Deployment ID |
entitlementId required | string Entitlement ID |
{- "code": 200,
- "status": "success"
}
required scopes: read:entitlements or read:entitlements_tenant
Allows authenticated clients to retrieve a single entitlement object based on entitlementId.
deploymentId required | string Deployment ID |
entitlementId required | string Entitlement ID |
{- "code": 200,
- "data": {
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "5a4ead5e79f06d001d1a2ef5",
- "entitlementId": "5a4ec1856b1092001d164b2b",
- "machineId": "5a4eae5c162ce8001d001e76",
- "status": "active",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "userGuid": "12341123412"
}, - "status": "success"
}
required scopes: read:entitlements or read:entitlements_tenant
Allows authenticated clients to allocate a machine for an entitlement. This call will resolve the machine associated with the entitlement to an actual machine resource.
deploymentId required | string Deployment ID |
entitlementId required | string Entitlement ID |
userGuid required | string UserGuid from domain controller |
{- "userGuid": "12341-12341-41123412"
}
{- "code": 200,
- "data": {
- "active": true,
- "connectorId": "54234",
- "createdBy": "2312313",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "123123",
- "hostName": "myvmhostname",
- "location": "useast",
- "machineId": "m14134",
- "machineName": "my-vm",
- "managed": true,
- "osInfo": {
- "offer": "unknown",
- "publisher": "unknown",
- "sku": "unknown",
- "version": "unknown"
}, - "powerState": "running",
- "protocol": [
- "PCOIP"
], - "provider": "gcp",
- "provisioningStatus": {
- "state": "succeeded"
}, - "resourceGroup": "RG",
- "status": "active",
- "subscriptionId": "s13213",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "vmSize": "lg"
}, - "status": "success"
}
Manage AD Users. POST/POST/DELETE APIs under this section are used to synchronize user data between customers' Active Directory and Anyware Manager service. These APIs only manipulate AD User data in Anyware Manager service and Anyware Manager itself cannot create or delete users in customers' Active Directory. APIs under this section are generally used by Anyware Connector (provide data synchronization) and Anyware Manager Admin Console (allow customers to see human readable information from their domains). Anyware Manager only maintains the latest AD User data from customers' Domain Controllers. Any AD User data, if not present in the subsequent Anyware Connector's synchronization, will be deleted from Anyware Manager service.
required scope: delete:entitlements
Allows authenticated clients to delete Active Directory Users based on userGuid from Anyware Manager.
The request body can contain either base64-encoded content or a JSON array.
Note: This API only deletes AD User data from Anyware Manager and has no effect on the Domain Controller.
This operation is restricted to 1 request per second per authenticated token
deploymentId | string Deployment ID |
userGuid required | string UserGuid from domain controller |
[- {
- "deploymentId": "59499477544e6f46d1df4943",
- "userGuid": "2341-12341-4112341"
}
]
{- "code": 200,
- "status": "success"
}
required scope: read:entitlements or read:entitlements_tenant
Allows authenticated clients to retrieve their registered AD Users from Anyware Manager service. AD User data is synchronized between Anyware Manager and customers' Active Directory by Anyware Connectors.
This operation is restricted to 1 request per second per authenticated token
deploymentId | string Query resources based on the deploymentId. |
enabled | boolean Query resources that have the flag enabled. |
entitlementResourceType | string Enum: "machine" "pool" Specify the type of the entitlement resource to consider when withEntitlements=true. If withEntitlements=true and entitlementResourceType=machine, it will only return users entitled to machines. This option has no effect if withEntitlements=false or is not present. |
fields | string Comma seperated list of exclusive fields to return. Valid fields are 'name', 'userName', 'upn', 'userGuid', 'enabled', and 'createdOn'. |
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
name | string Query adUsers by name. |
nameFilter | string Modifies name queries. If nameFilter=includes, then name={term} becomes a search for all adUsers with a name that includes that term. |
offset | number Default: 0 Query resources starting from offset. |
sortKey | string The field upon which adUsers are sorted on. By default, we return adUsers sorted by name in ascending alphabetical order. Sorting is only supported on name, userName, userGuid, enabled, and createdOn. |
upn | string Query resources by UPN. UPN is case insensitive. |
userGuid | string Query entitlements by using either a single userGuid or multiple comma separated userGuids. |
userName | string Username of the user in Active Directory |
userNameFilter | string Modifies userName queries. If userNameFilter=includes, then userName={term} becomes a search for all adUsers with a userName that includes that term. |
withEntitlements | boolean Only return users that have at least one entitlement to a remote workstation or pool. If false, returns users that are not entitled to any machines or pools. |
{- "code": 200,
- "data": [
- {
- "_id": "5cfffc009acc2966b48f07b0",
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "123456234241",
- "enabled": true,
- "groups": [
- "Users"
], - "name": "testUser",
- "userGuid": "12341123412",
- "userName": "testUser",
- "usnChanged": "no"
}
], - "limit": 1,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scope: create:entitlements
Allows authenticated clients to create or update Active Directory (AD) User information in Anyware Manager.
The request body can contain either base64-encoded content or a JSON array The total body size for this request cannot exceed 5 MB, otherwise an HTTP 413 error will be returned.
Note: This API only creates/updates AD User data in Anyware Manager and has no effect on the Domain Controller.
This operation is restricted to 1 request per second per authenticated token
createdBy required | string ID of the user in Anyware Manager |
createdOn required | string Creation timestamp |
deploymentId required | string Deployment ID |
enabled required | boolean Whether the user is enabled or not |
groups required | Array of strings Groups that the user belongs to in Active Directory |
name required | string Full name of the user in Active Directory |
upn | string or null Upn of the user in Active Directory |
userGuid required | string UserGuid from domain controller |
userName required | string Username of the user in Active Directory |
usnChanged required | string USN-Changed attribute in Active Directory |
{- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "123456234241",
- "enabled": true,
- "groups": [
- "Users"
], - "name": "testUser",
- "upn": "testUser@example.com",
- "userGuid": "12341123412",
- "userName": "testUser",
- "usnChanged": "no"
}
{- "code": 201,
- "status": "success"
}
Manage AD Computers. POST/POST/DELETE APIs under this section are used to synchronize computer data between customers' Active Directory and Anyware Manager service. These APIs only manipulate AD Computer data in Anyware Manager service and Anyware Manager itself cannot create or delete computers in customers' Active Directory. APIs under this section are generally used by Anyware Connector (provide data synchronization) and Anyware Manager Admin Console (allow customers to see human readable information from their domains). Anyware Manager only maintains the latest AD Computer data from customers' Domain Controllers. Any AD Computer data, if not present in the subsequent Anyware Connector's synchronization, will be deleted from Anyware Manager service.
required scope: delete:entitlements
Allows authenticated clients to delete Active Directory Computers based on a computerHostname and deploymentId.
The request body can contain either base64-encoded content or a JSON array.
Note: This API only deletes AD Computer data from Anyware Manager and has no effect on the Domain Controller.
This operation is restricted to 1 request per second per authenticated token
computerHostname required | string Host name of the computer in Active Directory |
deploymentId required | string Deployment ID |
[- {
- "computerHostname": "sal-lab1.autolab.local",
- "deploymentId": "123456234241"
}
]
{- "code": 200,
- "status": "success"
}
required scope: read:entitlements or read:entitlements_tenant
Allows authenticated clients to retrieve their registered Active Directory (AD) Computers. AD Computer data is synchronized between Anyware Manager and customers' Active Directory by Anyware Connectors.
This operation is restricted to 1 request per second per authenticated token
computerName | string Query adComputers by computerName. |
deploymentId | string Query resources based on the deploymentId. |
filterAdded | boolean Default: false Filter computers that have already been added to Anyware Manager. |
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
offset | number Default: 0 Query resources starting from offset. |
{- "code": 200,
- "data": [
- {
- "computerHostname": "sal-lab1.autolab.local",
- "computerName": "sal-lab1",
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "123456234241",
- "operatingSystem": "Ubuntu",
- "operatingSystemVersion": "12.04"
}
], - "status": "success"
}
required scope: create:entitlements
Create or update Active Directory (AD) Computer Objects by ID.
The request body can contain either base64-encoded content or a JSON array. The total body size for this request cannot exceed 5 MB, otherwise an HTTP 413 error will be returned.
Note: This API only creates/updates AD Computer data in Anyware Manager and has no effect on the Domain Controller.
This operation is restricted to 1 request per second per authenticated token
computerHostname required | string Host name of the computer in Active Directory. |
computerName required | string Name of the computer in Active Directory |
createdBy required | string ID of the user in Anyware Manager |
createdOn | string <date-time> Creation timestamp |
deploymentId required | string Deployment ID |
operatingSystem required | string Operating system of the computer |
operatingSystemVersion required | string Operating system version of the computer |
[ ]
{- "code": 201,
- "status": "success"
}
required scopes: create:connectors_tenant, create:connectors
The connector token is used to add a new Anyware Connector to an existing
deployment. As such, while using this API, you must provide a deploymentId
that the provided authorization token has access to. Once the connector
token is generated, it can be passed to the Anyware Connector
Installer. You can also get a connector token from Anyware Manager Admin Console.
connectorId | string ID of another connector to copy settings from |
connectorName required | string Name of the connector |
createdBy | string The ID of the user that created the resource |
deploymentId required | string Deployment ID |
{- "connectorName": "my_connector",
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "deploymentId": "59499477544e6f46d1df4942"
}
{- "code": 200,
- "data": {
- "token": "JWT"
}, - "status": "success"
}
required scopes: read:connectors or read:connectors_tenant
Allows authenticated clients to retrieve their corresponding connectors.
API Clients can filter requests with the parameters below.
Connectors are ordered by createdOn
, showing most recent first.
An example API call: https://cam.teradici.com/api/v1/deployments/connectors?deploymentId=5d9e3739106cee0011de4a256
connectorId | string Query connectors by using single or multiple comma separated connectorIds |
connectorName | string Query resources by connectorName. |
connectorNameFilter | string Modifies connectorName queries. If connectorNameFilter=includes, then connectorName={term} becomes a search for all connectors with a connectorName that includes that term. |
deploymentId | string Query resources based on the deploymentId. |
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
offset | number Default: 0 Query resources starting from offset. |
showactive | boolean Default: true Query resources that have the status "active". |
showdeleted | boolean Default: false Query resources that have the status "deleted". |
showdeleting | boolean Default: false Query resources that have the status "deleting". |
showpending | boolean Default: true Query resources that have the status "pending". |
sortAsc | boolean Default: true Determines whether or not connectors are returned in ascending order. |
sortKey | string The field upon which connectors are sorted on. By default, we return connectors from most recent createdOn to least recent. Sorting is only supported on connectorName, createdOn, and updatedOn. |
{- "code": 200,
- "data": [
- {
- "components": {
- "dcIp": [
- "127.0.0.2",
- "127.0.0.3"
], - "internalIp": "127.0.0.1"
}, - "connectorId": "59499477544e6f46d1df4942",
- "connectorName": "Connector1",
- "createdBy": "12341",
- "createdOn": "2017-06-20T21:32:39.344Z",
- "deploymentId": "59499477544e6f46d1df4942",
- "healthStatus": "Healthy",
- "status": "active",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}
], - "limit": 1,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scopes: create:connectors, create_connectors_tenant
Allows authenticated clients to register new Cloud Access connectors.
Connector names must be unique
The connector name is contained within the connector token
Array of objects Capabilities of the connector | |
connectorName | string Name of the new connector |
connectorToken | string Connector Token is created by a Anyware Manager API |
dcIp | Array of strings IP address of domain controllers |
internalIp | string Internal IP address |
status | string Enum: "active" "pending" State to set connector to |
{- "capabilities": [
- {
- "capabilityName": "capability1",
- "displayName": "Display Name 1",
- "enabled": true,
- "enterpriseReadiness": false,
- "recommendedActions": [
- "action1",
- "action2"
]
}
], - "connectorToken": "JWT",
- "dcIp": [
- "127.0.0.2",
- "127.0.0.3"
], - "internalIp": "127.0.0.1"
}
{- "code": 201,
- "data": {
- "components": {
- "dcIp": [
- "127.0.0.2",
- "127.0.0.3"
], - "internalIp": "127.0.0.1"
}, - "connectorId": "59499477544e6f46d1df4942",
- "connectorName": "Connector1",
- "createdBy": "12341",
- "createdOn": "2017-06-20T21:32:39.344Z",
- "deploymentId": "59499477544e6f46d1df4942",
- "healthStatus": "Healthy",
- "status": "active",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}, - "status": "success"
}
required scopes: delete:connectors, delete:connectors_tenant
Allows authenticated clients to remove a single connector object based on connectorId.
An example API call: https://cam.teradici.com/api/v1/deployments/connectors/5d9e3739106cee0018de4a256
id required | string Connector ID |
{- "code": 200,
- "status": "success"
}
required scopes: read:connectors or read:connectors_tenant
Allows authenticated clients to retrieve a single connector object based on connectorId.
An example API call: https://cam.teradici.com/api/v1/deployments/connectors/5d9e3739106cee0018de4a256
id required | string Connector ID |
{- "code": 200,
- "data": {
- "capabilities": [
- {
- "capabilityName": "capability1",
- "createdAt": "2017-06-20T21:32:39.344Z",
- "displayName": "Display Name 1",
- "enabled": true,
- "enterpriseReadiness": false,
- "recommendedActions": [
- "action1",
- "action2"
]
}
], - "components": {
- "dcIp": [
- "127.0.0.2",
- "127.0.0.3"
], - "internalIp": "127.0.0.1"
}, - "connectorId": "59499477544e6f46d1df4942",
- "connectorName": "Connector1",
- "createdBy": "12341",
- "createdOn": "2017-06-20T21:32:39.344Z",
- "deploymentId": "59499477544e6f46d1df4942",
- "enterpriseReadiness": true,
- "healthStatus": "Healthy",
- "status": "active",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}, - "status": "success"
}
required scopes: update:connectors or update:connectors_tenant
Allows authenticated clients to update a single connector object based on connectorId. Currently only support connectorName update.
id required | string Connector ID |
object Capabilities of the connector | |
connectorName | string New name for the connector |
enterpriseReadiness | boolean Overall enterprise readiness of the connector |
{- "capabilities": {
- "capabilityName": "capability1",
- "displayName": "Display Name 1",
- "enabled": true,
- "enterpriseReadiness": false,
- "recommendedActions": [
- "action1",
- "action2"
]
}, - "connectorName": "New connector name",
- "enterpriseReadiness": true
}
{- "code": 200,
- "data": {
- "components": {
- "dcIp": [
- "127.0.0.2",
- "127.0.0.3"
], - "internalIp": "127.0.0.1"
}, - "connectorId": "59499477544e6f46d1df4942",
- "connectorName": "Connector1",
- "createdBy": "12341",
- "createdOn": "2017-06-20T21:32:39.344Z",
- "deploymentId": "59499477544e6f46d1df4942",
- "healthStatus": "Healthy",
- "status": "active",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}, - "status": "success"
}
required scopes: update:connectors update:connectors_tenant
Allows connectors to update health status by passing their components. This API is only applicable to connectors.
id required | string Connector ID |
required | object Components of connectors |
connectorId required | string Connector ID |
{- "components": {
- "externalIp": "255.0.0.1"
}, - "connectorId": "1"
}
{- "code": 200,
- "data": {
- "capabilities": [
- {
- "capabilityName": "capability1",
- "createdAt": "2017-06-20T21:32:39.344Z",
- "displayName": "Display Name 1",
- "enabled": true,
- "enterpriseReadiness": false,
- "recommendedActions": [
- "action1",
- "action2"
]
}
], - "components": {
- "dcIp": [
- "127.0.0.2",
- "127.0.0.3"
], - "internalIp": "127.0.0.1"
}, - "connectorId": "59499477544e6f46d1df4942",
- "connectorName": "Connector1",
- "createdBy": "12341",
- "createdOn": "2017-06-20T21:32:39.344Z",
- "deploymentId": "59499477544e6f46d1df4942",
- "enterpriseReadiness": true,
- "healthStatus": "Healthy",
- "status": "active",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}, - "status": "success"
}
required scopes: read:connectors or read:connectors_tenant
Allows authenticated clients to retrieve their corresponding Connector events. Connector events are sent from the Connector upon a command execution.
API Clients can filter requests with the parameters below.
An example API call: https://cam.teradici.com/api/v1/deployments/connectors/events?commandId=5d9e3739106cee0011de4a256
connectorId required | string Connector ID |
commandId | string The commandID of the associated events to query for. |
eventType | string Enum: "event" "commandStatusUpdate" The type of event to query for. |
level | string Enum: "debug" "info" "warn" "error" The event level of the events to query for. |
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
offset | number Default: 0 Query resources starting from offset. |
sortAsc | boolean Default: false Determines whether or not events are returned in ascending order. |
sortKey | string Enum: "timestamp" "commandId" The field upon which Connector events are sorted on. |
{- "code": 200,
- "data": [
- {
- "commandId": "849ca565-a117-42a0-bd5a-63c304601199",
- "connectorId": "645d678f9c3c05fa20773c75",
- "createdOn": "2023-05-11T22:09:30.869Z",
- "eventId": "645d679a9c3c05fa20773c7a",
- "eventType": "commandStatusUpdate",
- "level": "info",
- "summary": "Starting validation",
- "timestamp": "2023-05-11T22:09:30.812Z"
}
], - "limit": 20,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scopes: create:connectors, create:connectors_tenant, create:events
Allows authenticated clients create one or more Connector events.
connectorId required | string Connector ID |
action | string The action a user should take to resolve the problem described in the event. |
commandId required | string The ID of the command associated with the event. |
data | object Additional data associated with the event. |
eventType required | string Enum: "event" "commandStatusUpdate" The type of the event. |
level required | string Enum: "warn" "info" "error" "debug" The level of severity of the event. |
summary required | string A summary of the event. |
timestamp required | string <date-time> The timestamp when the event occurred. |
{- "action": "string",
- "commandId": "string",
- "data": { },
- "eventType": "event",
- "level": "warn",
- "summary": "string",
- "timestamp": "2019-08-24T14:15:22Z"
}
{- "code": 201,
- "data": {
- "commandId": "849ca565-a117-42a0-bd5a-63c304601199",
- "eventId": "645d679a9c3c05fa20773c7a",
- "eventType": "commandStatusUpdate",
- "level": "info",
- "summary": "Starting validation",
- "timestamp": "2023-05-11T22:09:30.812Z"
}, - "status": "success"
}
required scopes: read:connectors or read:connectors_tenant
Allows authenticated clients to retrieve a single Connector event, based on the event ID.
An example API call: https://cam.teradici.com/api/v1/deployments/connectors/5d9e3739106cee0018de4a256/events/625b7263a172fa926172ce31
connectorId required | string Connector ID |
eventId required | string Event ID |
{- "code": 200,
- "data": [
- {
- "commandId": "849ca565-a117-42a0-bd5a-63c304601199",
- "connectorId": "645d678f9c3c05fa20773c75",
- "createdOn": "2023-05-11T22:09:30.869Z",
- "eventId": "645d679a9c3c05fa20773c7a",
- "eventType": "commandStatusUpdate",
- "level": "info",
- "summary": "Starting validation",
- "timestamp": "2023-05-11T22:09:30.812Z"
}
], - "status": "success"
}
required scopes: read:connectors or read:connectors_tenant
Allows authenticated clients to retrieve the events associated with the latest Connector command execution.
An example API call: https://cam.teradici.com/api/v1/deployments/connectors/5d9e3739106cee0011de4a256/events/latest
connectorId required | string Connector ID |
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
offset | number Default: 0 Query resources starting from offset. |
sortAsc | boolean Default: false Determines whether or not events are returned in ascending order. |
{- "code": 200,
- "data": [
- {
- "commandId": "849ca565-a117-42a0-bd5a-63c304601199",
- "connectorId": "645d678f9c3c05fa20773c75",
- "createdOn": "2023-05-11T22:09:30.869Z",
- "eventId": "645d679a9c3c05fa20773c7a",
- "eventType": "commandStatusUpdate",
- "level": "info",
- "summary": "Starting validation",
- "timestamp": "2023-05-11T22:09:30.812Z"
}
], - "status": "success"
}
required scopes: read:pools or read:pools_tenant
Allows authenticated clients to retrieve their pools.
deploymentId required | string Deployment ID |
assignmentPolicy | string Default: "" Enum: "floating" "persistent" Query pools on assignment policy. "floating", "persistent", or either if left empty. |
limit | number [ 1 .. 200 ] Default: 25 Query the given number of resources. |
offset | number Default: 0 Query resources starting from offset. |
{- "code": 200,
- "data": [
- {
- "createdOn": "2017-06-20T21:32:39.433Z",
- "deploymentId": "507f191e810c19729de860ea",
- "policies": {
- "assignment": {
- "policyType": "persistent"
}
}, - "poolId": "507f1f77bcf86cd799439011",
- "poolName": "pool-0",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}, - {
- "createdOn": "2017-06-20T21:32:39.433Z",
- "deploymentId": "507f191e810c19729de860ea",
- "policies": {
- "assignment": {
- "holdingTime": 20,
- "policyType": "floating"
}
}, - "poolId": "507f1f77bcf86cdc99439021",
- "poolName": "pool-1",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}
], - "limit": 25,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scopes: create:pools or create:pools_tenant
Create a pool
deploymentId required | string Deployment ID |
assignmentHoldingTime | integer [ 20 .. 1576800 ] Default: 20 Holding time in minutes |
assignmentPolicy | string Default: "persistent" Enum: "persistent" "floating" |
poolName required | string [ 1 .. 64 ] characters Name of the pool |
{- "assignmentHoldingTime": 20,
- "assignmentPolicy": "floating",
- "poolName": "floating-pool-2"
}
{- "code": 201,
- "data": {
- "createdOn": "2017-06-20T21:32:39.433Z",
- "deploymentId": "507f191e810c19729de860ea",
- "insights": "TELEMETRY_ACTIVE",
- "policies": {
- "assignment": {
- "holdingTime": 20,
- "policyType": "floating"
}
}, - "poolId": "507f1f77bcf86cd799439011",
- "poolName": "pool-0",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}, - "status": "success"
}
required scopes: delete:pools or delete:pools_tenant
Delete an existing pool.
deploymentId required | string Deployment ID |
poolId required | string Pool ID |
deleteFromProvider | boolean Default: false If true, remote workstations in the pool will also be deleted from the provider. This only occurs if deleteMachines is also set to true. |
deleteMachines | boolean Default: false If true, remote workstations in the pool will be deleted. |
{- "deleteFromProvider": false,
- "deleteMachines": false
}
{- "code": 200,
- "status": "success"
}
required scopes: read:pools or read:pools_tenant
Allows authenticated clients to retrieve details about a pool.
deploymentId required | string Deployment ID |
poolId required | string Pool ID |
{- "code": 200,
- "data": {
- "createdOn": "2017-06-20T21:32:39.433Z",
- "deploymentId": "507f191e810c19729de860ea",
- "insights": "TELEMETRY_ACTIVE",
- "policies": {
- "assignment": {
- "holdingTime": 20,
- "policyType": "floating"
}
}, - "poolId": "507f1f77bcf86cd799439011",
- "poolName": "pool-0",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}, - "status": "success"
}
required scopes: update:pools or update:pools_tenant
Update the attributes of a pool.
deploymentId required | string Deployment ID |
poolId required | string Pool ID |
assignmentHoldingTime | integer [ 20 .. 1576800 ] Holding time in minutes |
poolName | string [ 1 .. 64 ] characters Name of the pool |
{- "assignmentHoldingTime": 20,
- "poolName": "pool-0"
}
{- "code": 200,
- "data": {
- "createdOn": "2017-06-20T21:32:39.433Z",
- "deploymentId": "507f191e810c19729de860ea",
- "insights": "TELEMETRY_ACTIVE",
- "policies": {
- "assignment": {
- "holdingTime": 20,
- "policyType": "floating"
}
}, - "poolId": "507f1f77bcf86cd799439011",
- "poolName": "pool-0",
- "updatedOn": "2017-06-20T21:32:39.344Z"
}, - "status": "success"
}
required scopes: delete:pools or delete:pools_tenant
Remove a machine that has been assigned to a pool
deploymentId required | string Deployment ID |
poolId required | string Pool ID |
object (PoolMachinesCreateEntitlement) | |
machineId required | string Machine Id |
{- "entitlement": {
- "userGuid": "testUser"
}, - "machineId": "507f1f77bcf86cd799420591"
}
{- "code": 200,
- "status": "success"
}
required scopes: read:pools or read:pools_tenant
Allows authenticated clients to retrieve machines assigned to a pool.
deploymentId required | string Deployment ID |
poolId required | string Pool ID |
assigned | boolean Query assigned machines if the value is |
assignedTo | string Query pool machines by the userGuid assigned to them |
limit | number [ 1 .. 200 ] Default: 25 Query the given number of machines. |
machineName | string Query pool machines based on machineName. machineName is the name of the machine that is assigned to a specific pool |
offset | number Default: 0 Query resources starting from offset. |
{- "code": 200,
- "data": [
- {
- "active": true,
- "assignedTo": "775a78bb-fc8b-4949-beaa-7274e85a8a12",
- "connectorId": "54234",
- "createdBy": "2312313",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "123123",
- "hostName": "myvmhostname",
- "location": "useast",
- "machineId": "m14134",
- "machineName": "my-vm",
- "managed": true,
- "msgLastReceivedOn": "2018-01-05T00:06:29.180Z",
- "osInfo": {
- "offer": "unknown",
- "publisher": "unknown",
- "sku": "unknown",
- "version": "unknown"
}, - "pcoipSessionState": "In-Session",
- "pcoipSessionStateLastChangedOn": "2018-01-05T00:06:29.180Z",
- "poolId": "5a4ead5dd4f0710029b02b9a",
- "powerState": "running",
- "powerStateLastChangedOn": "2018-01-05T00:06:29.180Z",
- "provider": "azure",
- "provisioned": false,
- "provisioningStatus": {
- "attributes": { },
- "deployment": { },
- "message": "",
- "state": "succeeded"
}, - "reason": "still in session",
- "resourceGroup": "RG",
- "status": "active",
- "subscriptionId": "s13213",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "vmSize": "lg"
}
], - "limit": 25,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scopes: update:pools or update:pools_tenant
Add a machine within Anyware Manager to a pool. There are two scenarios based on whether a machine has already been entitled to individual users before adding this machine to a pool:
Scenario 1: If the machine has not been entitled to any individual user, request body does not need the entitlement option. Only set up machineId in the request body and the machine will be added to the pool.
Scenario 2: If the machine has already been entitled to individual users, entitlement option is required in the request body to indicate entitlement migration. If you do not want to migrate entitlement, just set up {entitlement: {userGuid: null}} in the request body and Anyware Manager will ignore entitlement migration.
One example: machine-1 has already been entitled to userGuid-1. When add machine-1 to pool-1, we can set up {entitlement: {userGuid: userGuid-1}} in the API request body to migrate existing entitlement (userGuid-1 -> machine-1). Then userGuid-1 can access machine-1 through pool-1 (userGuid-1 -> pool-1 -> machine-1). Users need to be entitled to pools before entitlement migration. In this example, Anyware Manager will return 404 error if userGuid-1 has not been entitled to pool-1. Existing entitlement (userGuid-1 -> machine-1) will be still valid after this entitlement migration.
Note: Anyware Manager can migrate at most one entitlement for each machine. If a machine has been directly entitled to multiple users, you may have to choose one of them for entitlement migration.
deploymentId required | string Deployment ID |
poolId required | string Pool ID |
object (PoolMachinesCreateEntitlement) | |
machineId required | string Machine Id |
{- "entitlement": {
- "userGuid": "testUser"
}, - "machineId": "507f1f77bcf86cd799420591"
}
{- "code": 201,
- "data": {
- "active": true,
- "connectorId": "",
- "createdBy": "6127f842sefhy53153cec68",
- "createdOn": "2021-08-27T22:28:50.100Z",
- "deploymentId": "6127f842b46a6afaasdf42fgh",
- "hostName": "10.0.4.4",
- "location": "westus2",
- "machineId": "124rsdfrg57u8kh2",
- "machineName": "scent-0",
- "managed": true,
- "osInfo": {
- "offer": "CentOS",
- "publisher": "OpenLogic",
- "sku": "7_8",
- "version": "latest"
}, - "powerState": "deallocated",
- "powerStateLastChangedOn": "2021-08-27T22:28:50.105Z",
- "provider": "azure",
- "provisioned": false,
- "provisioningStatus": {
- "attributes": { },
- "deployment": { },
- "message": "",
- "state": "succeeded"
}, - "resourceGroup": "azure-deployment",
- "status": "active",
- "subscriptionId": "awd46yd-dfdssa3-awd3ts",
- "updatedOn": "2021-09-01T19:07:35.595Z",
- "vmSize": "unknown"
}, - "status": "success"
}
required scopes: update:pools or update:pools_tenant
Update the assignment of a machine within a pool. Each machine in a pool can be assigned to a single user.
The assignedTo
property can be passed as a directory userGuid
to set the assigned user or setting it to null
or empty string to unassign the machine.
deploymentId required | string Deployment ID |
poolId required | string Pool ID |
assignedTo | string or null Assigned user ID. Set null or '' to unassign user |
machineId required | string Machine Id |
{- "assignedTo": "507f191e810c14832de860xz",
- "machineId": "507f1f77bcf86cd799420591"
}
{- "code": 200,
- "data": {
- "assignedTo": "507f191e810c14832de860xz"
}, - "status": "success"
}
required scopes: read:pools or read:pools_tenant
Allows authenticated clients to retrieve configuration details of machines assigned to pools within a deployment.
deploymentId required | string Deployment ID |
limit | number [ 1 .. 200 ] Default: 25 Query the given number of machines. |
machineId | string Query machines by using single or multiple comma separated machineIds. |
offset | number Default: 0 Query resources starting from offset. |
{- "code": 200,
- "data": [
- {
- "assignedTo": "12341-12341-41123412",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "machineId": "5a4eae5c162ce8001d001e76",
- "msgLastReceivedOn": "2018-01-05T00:06:29.180Z",
- "poolId": "5a4ead5dd4f0710029b02b9a",
- "status": "active",
- "updatedOn": "2018-01-05T00:06:29.180Z"
}
], - "limit": 25,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scope: read:machine or read:machine_tenant
Allows authenticated clients to retrieve their corresponding machines.
API clients can search for a single machine by providing its ID in the machineId
parameter.
To search for multiple machines, provide a list of comma-separated machine IDs in the machineId parameter,
up to a maximum of 100 machine IDs. Keep in mind that the overall URL length is limited to 4,096 characters,
so you may not be able to provide all 100 machine IDs.
An example API call: https://cam.teradici.com/api/v1/machines?machineId=12345,67891,3421&deploymentId=666999777
agentMonitored | boolean Boolean indicating if the Anyware Monitor should be enabled in the workstation |
connectorId | string Query connectors by using single or multiple comma separated connectorIds |
deploymentId | string Query resources based on the deploymentId. |
filterPoolMachines | boolean Default: false Query machines that have not been added to any pools. |
forceRefresh | boolean A parameter that determines the source of the workstations details. If set to |
hostName | string Query machines based on hostName, which is either the name of the machine in Active Directory or a private IP address accessible by an Anyware Connector. It can be different from the machineName. |
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
machineId | string Query machines by using single or multiple comma separated machineIds. |
machineName | string Query machines based on machineName. machineName is the name of the machine (instance) within a provider, and may match the hostname in Active Directory. Multiple machineNames can be queried if ?machineName is a comma-separated list of machineNames. |
machineNameFilter | string Modifies machineName queries. If machineNameFilter=includes, then machineName={term} becomes a search for all machines with a machineName that includes that term. If a machineNameFilter is specified, a comma-separated list of machineNames is treated as a single machineName. |
managed | boolean Query only managed machines. |
offset | number Default: 0 Query resources starting from offset. |
provider | string Enum: "aws" "azure" "gcp" "onprem" Name of the provider used to access the remote workstation and enable power management. |
refreshMachineState | boolean Retrieve the updated machine state from the workstation provider. Defaults to |
resourceGroup | string Query based on the resourceGroup. |
showactive | boolean Default: true Query resources that have the status "active". |
showdeleted | boolean Default: false Query resources that have the status "deleted". |
showdeleting | boolean Default: false Query resources that have the status "deleting". |
sortAsc | boolean Default: true Determines whether or not machines are returned in ascending order. |
sortKey | string The field upon which machines are sorted on. By default, we return machines from most recent createdOn to least recent. Sorting is only supported on machineName, managed, provider, powerState, createdOn, and updatedOn. |
subscriptionId | string Query based on the subscriptionId. |
withEntitlements | boolean Only return machines with entitlements. If false, returns machines with and without entitlements. |
withRecentMonitorTelemetry | boolean Specify |
{- "code": 200,
- "data": [
- {
- "active": true,
- "connectorId": "54234",
- "createdBy": "2312313",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "123123",
- "hostName": "myvmhostname",
- "instanceId": "i-008b3d8138df7441f1",
- "location": "useast",
- "machineId": "m14134",
- "machineName": "my-vm",
- "managed": true,
- "osInfo": {
- "offer": "unknown",
- "publisher": "unknown",
- "sku": "unknown",
- "version": "unknown"
}, - "powerState": "running",
- "protocol": [
- "PCOIP"
], - "provider": "gcp",
- "provisioningStatus": {
- "state": "succeeded"
}, - "region": "us-east-2",
- "resourceGroup": "RG",
- "status": "active",
- "subscriptionId": "s13213",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "vmSize": "lg"
}
], - "limit": 1,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scopes: create:machine or create:machine_tenant
Add an existing machine to a deployment.
verifyExistsInProvider | boolean Default: false If true, Anyware Manager will verify that the workstation exists in the specified provider before completing the operation. If the workstation could not be found, then Anyware Manager will return a 400 response. |
agentMonitored | boolean If the Anyware Monitor is enabled or not |
connectorId | string Connector ID |
deploymentId | string Deployment ID |
hostName | string Name of the machine in Active Directory or a private IP address accessible by an Anyware Connector. hostName should be unique under one deployment. (If this field is not provided, it will be automatically copied from the machineName. If the machineName is longer than 15 characters, hostName will be truncated to 15 characters) |
instanceId required | string Instance ID of the machine in AWS |
machineName required | string Name of the machine (instance) from the workstation provider. |
managed | boolean Default: true |
poolId | string Specifies the ID of the pool the machine will be added to. |
protocol | Array of strings Default: ["PCOIP"] Items Enum: "PCOIP" "RDP" "ICA" "WEBRTC_RDP" "WEBRTC" A list of supported protocols |
provider required | string Value: "aws" |
region required | string Region where the machine is located in AWS |
{- "connectorId": "dffefde34235u405890efeidpsf",
- "deploymentId": "5a4ead5e79f06d001d1a2ef5",
- "hostName": "awsvmhostname",
- "instanceId": "i-0dd652476b7b3c4d1",
- "machineName": "awsmachine",
- "managed": true,
- "provider": "aws",
- "region": "us-east-2"
}
{- "code": 200,
- "data": {
- "active": true,
- "connectorId": "54234",
- "createdBy": "2312313",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "123123",
- "hostName": "myvmhostname",
- "instanceId": "i-008b3d8138df7441f1",
- "location": "useast",
- "machineId": "m14134",
- "machineName": "my-vm",
- "managed": true,
- "osInfo": {
- "offer": "unknown",
- "publisher": "unknown",
- "sku": "unknown",
- "version": "unknown"
}, - "powerState": "running",
- "protocol": [
- "PCOIP"
], - "provider": "gcp",
- "provisioningStatus": null,
- "region": "us-east-2",
- "resourceGroup": "RG",
- "state": "running",
- "subscriptionId": "s13213",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "vmSize": "lg"
}, - "status": "success"
}
required scopes: delete:machine or delete:machine_tenant
Delete the machine based on machineId.
If the user has read and delete entitlements permission, it will also delete the entitlements associated with this machine.
An example API call: https://cam.teradici.com/api/v1/machines/666999777
id required | string Machine ID |
deleteFromProvider | boolean Default: false If true, the actual machine will also be deleted from the provider. |
{- "deleteFromProvider": true
}
{- "code": 200,
- "status": "success"
}
required scope: read:machine or read:machine_tenant
Retrieve the information for the given machine based on machineId.
If the machine is registered in the system but can not be verified with the provider, the machine will be set to inactive and powerState to unknown.
An example API call: https://cam.teradici.com/api/v1/machines/666999777
id required | string Machine ID |
forceRefresh | boolean A parameter that determines the source of the workstations details. If set to |
{- "code": 200,
- "data": {
- "active": true,
- "connectorId": "54234",
- "createdBy": "2312313",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "123123",
- "hostName": "myvmhostname",
- "location": "useast",
- "machineId": "m14134",
- "machineName": "my-vm",
- "managed": true,
- "osInfo": {
- "offer": "unknown",
- "publisher": "unknown",
- "sku": "unknown",
- "version": "unknown"
}, - "powerState": "running",
- "protocol": [
- "PCOIP"
], - "provider": "gcp",
- "provisioningStatus": {
- "state": "succeeded"
}, - "resourceGroup": "RG",
- "status": "active",
- "subscriptionId": "s13213",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "vmSize": "lg"
}, - "status": "success"
}
required scopes: update:machine or update:machine_tenant
Allows authenticated clients to update a machine information based on machineId by providing the field name and value as part of the request body.
id required | string Machine ID |
verifyExistsInProvider | boolean Default: false If true, Anyware Manager will verify that the workstation exists in the specified provider before completing the operation. If the workstation could not be found, then Anyware Manager will return a 400 response. |
active | boolean If the workstation is active or not |
agentMonitored | boolean If the Anyware Monitor is enabled or not |
hostName | string Name of the machine in Active Directory. The length of hostName must be at most 15 characters. hostName should be unique under one deployment. |
machineName | string Name of the machine. The length of machine name must be at most 15 characters. |
managed | boolean Managed or not |
protocol | Array of strings Items Enum: "PCOIP" "RDP" "ICA" "WEBRTC_RDP" "WEBRTC" A list of supported protocols |
providerAlternateHostName | string The alternate hostname used by the provider. If not set, the provider will default to the hostName property. |
{- "active": true,
- "agentMonitored": true,
- "hostName": "string",
- "machineName": "string",
- "managed": true,
- "protocol": [
- "PCOIP"
], - "providerAlternateHostName": "string"
}
{- "code": 200,
- "data": {
- "active": true,
- "connectorId": "54234",
- "createdBy": "2312313",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "123123",
- "hostName": "myvmhostname",
- "location": "useast",
- "machineId": "m14134",
- "machineName": "my-vm",
- "managed": true,
- "osInfo": {
- "offer": "unknown",
- "publisher": "unknown",
- "sku": "unknown",
- "version": "unknown"
}, - "powerState": "running",
- "protocol": [
- "PCOIP"
], - "provider": "gcp",
- "provisioningStatus": {
- "state": "succeeded"
}, - "resourceGroup": "RG",
- "status": "active",
- "subscriptionId": "s13213",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "vmSize": "lg"
}, - "status": "success"
}
required scopes: create:machine or create:machine_tenant
Allows authenticated clients to restart a machine.
The machine must be managed
id required | string Machine ID |
{- "code": 200,
- "status": "success"
}
required scopes: create:machine or create:machine_tenant
Allows authenticated clients to start a machine.
The machine must be managed
id required | string Machine ID |
{- "code": 200,
- "status": "success"
}
required scopes: create:machine or create:machine_tenant
Allows authenticated clients to stop a machine.
The machine must be managed
id required | string Machine ID |
{- "code": 200,
- "status": "success"
}
required scopes: read:deployments or read:deployments_tenant
Allows authenticated clients to get a list of AWS EC2 instances
An example API call:
https://cam.teradici.com/api/v1/machines/cloudproviders/aws/instances?deploymentId=5e26eef7f0®ion=us-east-2
deploymentId required | string Query resources based on the deploymentId. |
filterAdded | boolean Default: false Filter computers that have already been added to Anyware Manager. |
region required | string Name of the region in the cloud |
{- "code": 200,
- "data": [
- {
- "instanceId": "i-00010002'",
- "instanceName": "instance-a",
- "privateIP": "192.168.1.110"
}
], - "status": "success"
}
required scopes: read:deployments or read:deployments_tenant
Allows authenticated clients to get a list of Azure VM instances
An example API call:
https://cam.teradici.com/api/v1/machines/cloudproviders/azure/instances?deploymentId=5e26eef7f0
deploymentId required | string Query resources based on the deploymentId. |
filterAdded | boolean Default: false Filter computers that have already been added to Anyware Manager. |
resourceGroup | string Query based on the resourceGroup. |
{- "code": 200,
- "data": {
- "location": "northamerica-northeast1-a",
- "name": "vm-name",
- "privateIP": "10.128.0.27",
- "resourceGroup": "awm-rg",
- "subscriptionId": "s13213"
}, - "status": "success"
}
required scopes: read:deployments or read:deployments_tenant
Allows authenticated clients to list available locations from Azure
An example API call:
https://cam.teradici.com/api/v1/machines/cloudproviders/azure/locations?deploymentId=5e2635f367aa2f0021eef7f0
deploymentId required | string Query resources based on the deploymentId. |
{- "code": 200,
- "data": [
- {
- "displayName": "East Asia",
- "id": "eastasia"
}, - {
- "displayName": "East US",
- "id": "eastus"
}
], - "status": "success"
}
required scopes: read:deployments or read:deployments_tenant
Allows authenticated clients to get the resource groups list from Azure
An example API call:
https://cam.teradici.com/api/v1/machines/cloudproviders/azure/resourceGroups?deploymentId=5e2635f367aa2f0021eef7f0&subscriptionId=779dc830-3fd1-5dcf-a53e-06dec45cd781
deploymentId required | string Query resources based on the deploymentId. |
subscriptionId required | string Query based on the subscriptionId. |
{- "code": 200,
- "data": [
- {
- "id": "/subscriptions/999-99-999/resourceGroups/storage1-sc'",
- "location": "southcentralus",
- "name": "storage1-sc",
- "properties": {
- "provisioningState": "Succeeded"
}
}
], - "status": "success"
}
required scopes: read:deployments or read:deployments_tenant
Allows authenticated clients to list available subnets from Azure for a given resource group
An example API call:
https://cam.teradici.com/api/v1/machines/cloudproviders/azure/subnets?deploymentId=5e2635f367aa2f0021eef7f0&resourceGroup=example-resource-group
deploymentId required | string Query resources based on the deploymentId. |
resourceGroup required | string Name of the azure resource group |
{- "code": 200,
- "data": [
- {
- "id": "/subscriptions/example-subscription/resourceGroups/example-resource-group/providers/Microsoft.Network/virtualNetworks/vnet-1",
- "ipCidr": [
- "10.0.0.0/16"
], - "name": "vnet-1",
- "subnets": [
- {
- "id": "/subscriptions/example-subscription/resourceGroups/example-resource-group/providers/Microsoft.Network/virtualNetworks/vnet-1/subnets/subnet-1",
- "ipCidr": "10.0.1.0/24",
- "name": "subnet-1"
}, - {
- "id": "/subscriptions/example-subscription/resourceGroups/example-resource-group/providers/Microsoft.Network/virtualNetworks/vnet-1/subnets/subnet-2",
- "ipCidr": "10.0.2.0/24",
- "name": "subnet-2"
}
]
}
], - "status": "success"
}
required scopes: read:deployments or read:deployments_tenant
Allows authenticated clients to list available VM sizes from Azure for a given location
An example API call:
https://cam.teradici.com/api/v1/machines/cloudproviders/azure/vmsizes?deploymentId=5e2635f367aa2f0021eef7f0&location=eastus2
deploymentId required | string Query resources based on the deploymentId. |
location required | string Name of the azure location in the cloud |
{- "code": 200,
- "data": [
- {
- "bootDiskSize": 1047552,
- "name": "Standard_B1ls",
- "ram": 512,
- "vCpus": 1
}, - {
- "bootDiskSize": 1047552,
- "name": "Standard_B1ms",
- "ram": 2048,
- "vCpus": 1
}
], - "status": "success"
}
required scopes: read:deployments or read:deployment_tenant
Allows authenticated clients to get GCP information.
An example API call: https://cam.teradici.com/api/v1/machines/cloudproviders/gcp?deploymentId=5cfee4cbddb3990011d61ea9
deploymentId | string Query resources based on the deploymentId. |
{- "code": 200,
- "data": {
- "Subnetworks": [
- {
- "ipCidrRange": "10.10.1.19/49",
- "name": "project1",
- "network": "team",
- "region": "us-central1"
}
], - "acceleratorTypes": [
- {
- "description": "NVIDIA Tesla P100",
- "kind": "compute#acceleratorType",
- "namaximumCardsPerInstanceme": "4",
- "name": "nvidia-tesla-p100",
- "zone": "us-west1-a"
}
], - "zones": [
- {
- "name": "us-east1-c",
- "region": "us-east1"
}
]
}, - "status": "success"
}
required scopes: read:deployments or read:deployments_tenant
Allows authenticated clients to get a list of GCP VM instances
An example API call:
https://cam.teradici.com/api/v1/machines/cloudproviders/gcp/instances?deploymentId=5e26eef7f0
deploymentId required | string Query resources based on the deploymentId. |
filterAdded | boolean Default: false Filter computers that have already been added to Anyware Manager. |
zone | string Name of the zone in the cloud |
{- "code": 200,
- "data": {
- "machineType": "e2-standard-2",
- "name": "vm-name",
- "privateIP": "10.128.0.27",
- "projectId": "awm-project",
- "zone": "us-central1-a"
}, - "status": "success"
}
required scopes: read:deployments or read:deployment_tenant
Allows authenticated clients to get network information from GCP.
An example API call: https://cam.teradici.com/api/v1/machines/cloudproviders/gcp/networks?deploymentId=5cfee4cbddb3990011d61ea0
deploymentId | string Query resources based on the deploymentId. |
{- "code": 200,
- "data": {
- "networks": [
- {
- "description": "Default network for the project",
- "name": "newteam"
}
]
}, - "status": "success"
}
required scopes: read:deployments or read:deployment_tenant
Allows authenticated clients to get region information from GCP.
An example API call: https://cam.teradici.com/api/v1/machines/cloudproviders/gcp/regions?deploymentId=5cfee4cbddb3990011d61ea0
deploymentId | string Query resources based on the deploymentId. |
{- "code": 200,
- "data": {
- "regions": [
- {
- "name": "asia-east1",
- "zones": [
- "asia-east1-a",
- "asia-east1-b",
- "asia-east1-c"
]
}
]
}, - "status": "success"
}
required scopes: read:deployments or read:deployment_tenant
Allows authenticated clients to get subnetwork information in a region from GCP.
An example API call: https://cam.teradici.com/api/v1/machines/cloudproviders/gcp/regions/asia-east1/Subnetworks?deploymentId=5d9e3739106cee0011de4a28
region required | string Region in the cloud |
deploymentId | string Query resources based on the deploymentId. |
network | string Name of the network in the cloud |
{- "code": 200,
- "data": {
- "Subnetworks": [
- {
- "ipCidrRange": "10.10.1.19/49",
- "name": "project1",
- "network": "team",
- "region": "us-central1"
}
]
}, - "status": "success"
}
required scopes: read:deployments or read:deployment_tenant
Allows authenticated clients to get zone information from regions from GCP.
An example API call: https://cam.teradici.com/api/v1/machines/cloudproviders/gcp/regions/asia-east1/zones?deploymentId=5d9e3739106cee0011de4a29
region required | string Region in the cloud |
deploymentId | string Query resources based on the deploymentId. |
{- "code": 200,
- "data": {
- "zones": [
- "us-central1-c",
- "us-central1-a",
- "us-central1-f",
- "us-central1-b"
]
}, - "status": "success"
}
required scopes: read:deployments or read:deployment_tenant
Allows authenticated clients to get accelerator types from GCP.
An example API call: https://cam.teradici.com/api/v1/machines/cloudproviders/gcp/zones/us-central1-c/acceleratorTypes?deploymentId=5d9e3739106cee0011de4a21
zone required | string Name of the zone in the cloud |
deploymentId | string Query resources based on the deploymentId. |
{- "code": 200,
- "data": {
- "acceleratorTypes": [
- {
- "description": "NVIDIA Tesla P100",
- "kind": "compute#acceleratorType",
- "namaximumCardsPerInstanceme": "4",
- "name": "nvidia-tesla-p100",
- "zone": "us-west1-a"
}
]
}, - "status": "success"
}
required scopes: read:deployments or read:deployment_tenant
Allows authenticated clients to get types of boot disks from GCP.
An example API call: https://cam.teradici.com/api/v1/machines/cloudproviders/gcp/zones/us-central1-c/bootableDiskTypes?deploymentId=5d9e3739106cee0011de4a22
zone required | string Name of the zone in the cloud |
deploymentId | string Query resources based on the deploymentId. |
{- "code": 200,
- "data": {
- "diskTypes": [
- {
- "description": "SSD Persistent Disk",
- "maxSize": "65536GB",
- "minSize": "10GB",
- "name": "pd-ssd"
}
]
}, - "status": "success"
}
required scopes: read:deployments or read:deployment_tenant
Allows authenticated clients to get machine types from GCP.
An example API call: https://cam.teradici.com//api/v1/machines/cloudproviders/gcp/zones/us-central1-c/machineTypes?deploymentId=5d9e3739106cee0011de4a25
zone required | string Name of the zone in the cloud |
deploymentId required | string Query resources based on the deploymentId. |
minimumCpu | integer Query resources with at least the specified number of CPUs. |
minimumRamGb | number Query resources with at least the specified amount of RAM measured in GB. |
{- "code": 200,
- "data": {
- "machineTypes": [
- {
- "description": "1 vCPU (shared physical core) and 0.6 GB RAM",
- "guestCpus": "1",
- "memoryMb": 614,
- "name": "f1-micro",
- "zone": "us-central1-a"
}
]
}, - "status": "success"
}
required scopes: read:logs, read:logs_tenant
Allows authenticated clients to return a list of logs from actions performed in Anyware Manager.
connectorId | string Query connectors by using single or multiple comma separated connectorIds |
deploymentId | string Query resources based on the deploymentId. |
from | string Query for activity logs made on and after the specified date-time. Accepts ISO date strings. Cannot be a date-time that is ahead of the "to" parameter. |
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
offset | number Default: 0 Query resources starting from offset. |
operation | string The operation which occurred in your Anyware Manager environment (e.g. UpdateMachine, CreateDeployment). |
sortAsc | boolean Default: false Determines whether or not logs are returned in ascending order. |
sortKey | string Default: "createdOn" The field upon which logs are sorted on. By default, we return logs from most recent createdOn to least recent. Sorting is only supported on createdOn and upn. |
to | string Query for activity logs made until the specified date-time. Accepts ISO date strings. |
{- "code": 200,
- "data": [
- {
- "createdBy": "123456789",
- "createdOn": "2020-07-15T17:20:49.668Z",
- "data": {
- "machineId": "5f0f39a90caab70012bcf3a6"
}, - "logId": "5f0f3af1a5a32f0012dfaa8a",
- "operation": "UpdateMachine",
- "source": "machinemgmt",
- "upn": "testUser@example.com"
}
], - "status": "success"
}
required scopes: read:logs, read:logs_tenant
Allows authenticated clients to download a csv file of logs from actions performed in Anyware Manager.
connectorId | string Query connectors by using single or multiple comma separated connectorIds |
deploymentId | string Query resources based on the deploymentId. |
from | string Query for activity logs made on and after the specified date-time. Accepts ISO date strings. Cannot be a date-time that is ahead of the "to" parameter. |
limit | number [ 1 .. 100000 ] Default: 100000 Query the given number of resources. |
offset | number Default: 0 Query resources starting from offset. |
operation | string The operation which occurred in your Anyware Manager environment (e.g. UpdateMachine, CreateDeployment). |
to | string Query for activity logs made until the specified date-time. Accepts ISO date strings. |
{- "code": 400,
- "data": {
- "reason": "Invalid parameters"
}, - "status": "fail"
}
required scopes: create:machine or create:machine_tenant
Allows authenticated API clients to logout users from a workstation that is running the AWM Monitor. This process is async and a successful result from this API implicate that the logout request was queued to be forwarded to the workstation.
The workstation must have the AWM Monitor installed and running. The monitor must be shown as healthy in the workstation properties on the Anyware Manger in order to have the command delivered to the workstation. It is required that the property agentMonitored is set to true in the machine object. This will happen automatically when the AWM Monitor is installed in the user workstation.
id required | string Machine ID |
secondsBeforeSend | integer Default: 0 The minimum number of seconds to wait before actually execute the action. The number of seconds value is not precisely respected. The action can occur up to 20 seconds after the specified number of seconds. |
userName required | string The username of of the user who should be logged out from the workstation. |
{- "secondsBeforeSend": 300,
- "userName": "john"
}
{- "code": 200,
- "status": "success"
}
required scopes: create:machine or create:machine_tenant
Allows authenticated API clients to send a notification message to the user logged in to the workstation where the AWM Monitor is running. This process is async and a successful result from this API does not implicate that the user received the notification, but only that the notification was queued to be forwarded to the AWM Monitor on the workstation.
The workstation must have the AWM Monitor installed and running. The monitor must be shown as healthy in the workstation properties on the Anyware Manger in order to have the command delivered to the workstation. It is required that the property agentMonitored is set to true in the machine object. This will happen automatically when the AWM Monitor is installed in the user workstation.
id required | string Machine ID |
body required | string The main text of the notification that will be displayed to the user on the workstation. |
secondsBeforeSend | integer Default: 0 The minimum number of seconds to wait before actually execute the action. The number of seconds value is not precisely respected. The action can occur up to 20 seconds after the specified number of seconds. |
title required | string The title of the notification that will be displayed to the user on the workstation. |
{- "body": "This is body of the notification. A multi-line message that the user will see.",
- "secondsBeforeSend": 300,
- "title": "This is the title of the notification"
}
{- "code": 200,
- "status": "success"
}
required scopes: create:machine or create:machine_tenant
Allows authenticated clients to request an update from the Anyware monitor running on the workstation. This process is async and a successful result from this API implicate that update request was queued to be forwarded to the workstation.
The workstation must have the AWM Monitor installed and running. The monitor must be shown as healthy in the workstation properties on the Anyware Manger in order to have the command delivered to the workstation. It is required that the property agentMonitored is set to true in the machine object. This will happen automatically when the AWM Monitor is installed in the user workstation.
id required | string Machine ID |
secondsBeforeSend | integer Default: 0 The minimum number of seconds to wait before actually execute the action. The number of seconds value is not precisely respected. The action can occur up to 20 seconds after the specified number of seconds. |
{- "secondsBeforeSend": 0
}
{- "code": 200,
- "status": "success"
}
required scopes: read:enrollment_keys, read:deployment_tenant, read:deployment
Allows authenticated clients to return a list of the user's Enrollment Keys.
deploymentId | string Query resources based on the deploymentId. |
includePendingApprovals | boolean Default: false Determines whether or not the number of pending approval enrollments using that key will returned. |
keyName | string Query enrollment keys based on their name. |
keyNameFilter | string Modifies keyName queries. If keyNameFilter=includes, then keyName={term} becomes a search for all enrollments keys with a keyName that includes that term. |
limit | number [ 1 .. 100 ] Default: 25 Query the given number of resources. |
offset | number Default: 0 Query resources starting from offset. |
sortAsc | boolean Default: true Determines whether or not enrollments keys are returned in ascending order. |
sortKey | string The field upon which enrollments keys are sorted on. By default, enrollments are returned from most recent createdOn to least recent. |
{- "code": 200,
- "status": "success",
- "data": [
- {
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "59499477544e6f46d1df4942",
- "enrollmentKeyId": "ffead5dds4f07s10d0",
- "expiresOn": "2021-01-05T00:06:29.180Z",
- "key": "dGhpcyBpcyBhIGJhc2U2NCBzdHJpbmc=",
- "keyName": "deployment-key-1",
- "lastUsed": "2018-01-05T00:06:29.180Z",
- "usageCount": 1,
- "validateCertificate": true
}
]
}
required scopes: create:enrollment_keys, create:deployment_tenant, create:deployment
Allows authenticated clients to create a new Enrollment key.
deploymentId required | string Deployment ID |
keyName required | string [ 1 .. 64 ] characters A name to allow easily identify the enrollment key |
{- "deploymentId": "59499477544e6f46d1df4942",
- "keyName": "Ubuntu Golden Image 2023_03"
}
{- "code": 201,
- "status": "success",
- "data": {
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "59499477544e6f46d1df4942",
- "enrollmentKeyId": "ffead5dds4f07s10d0",
- "expiresOn": "2021-01-05T00:06:29.180Z",
- "key": "dGhpcyBpcyBhIGJhc2U2NCBzdHJpbmc=",
- "keyName": "deployment-key-1",
- "lastUsed": "2018-01-05T00:06:29.180Z",
- "usageCount": 1,
- "validateCertificate": true
}
}
required scopes: delete:enrollment_keys, delete:deployment_tenant, delete:deployment
Allows authenticated clients to delete an Enrollment key.
enrollmentKeyId required | string The id of the enrollment key |
{- "code": 200,
- "status": "success"
}
required scopes: read:enrollment_keys, read:deployment_tenant, read:deployment
Allows authenticated clients to return a specific Enrollment key.
enrollmentKeyId required | string The id of the enrollment key |
enrollmentKeyId | string Query resources based on the enrollmentKeyId. |
limit | number [ 1 .. 100 ] Default: 25 Query the given number of resources. |
offset | number Default: 0 Query resources starting from offset. |
{- "code": 200,
- "status": "success",
- "data": {
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "59499477544e6f46d1df4942",
- "enrollmentKeyId": "ffead5dds4f07s10d0",
- "expiresOn": "2021-01-05T00:06:29.180Z",
- "key": "dGhpcyBpcyBhIGJhc2U2NCBzdHJpbmc=",
- "keyName": "deployment-key-1",
- "lastUsed": "2018-01-05T00:06:29.180Z",
- "usageCount": 1,
- "validateCertificate": true
}
}
required scopes: read:enrollment_keys, read:deployment_tenant, read:deployment
Allows authenticated clients to update a specific Enrollment key.
enrollmentKeyId required | string The id of the enrollment key |
validateCertificate | boolean Whether to validate or not the TLS certificate while generating the enrollment command. |
{- "validateCertificate": true
}
{- "code": 200,
- "status": "success",
- "data": {
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "59499477544e6f46d1df4942",
- "enrollmentKeyId": "ffead5dds4f07s10d0",
- "expiresOn": "2021-01-05T00:06:29.180Z",
- "key": "dGhpcyBpcyBhIGJhc2U2NCBzdHJpbmc=",
- "keyName": "deployment-key-1",
- "lastUsed": "2018-01-05T00:06:29.180Z",
- "usageCount": 1,
- "validateCertificate": true
}
}
required scopes: (read:enrollment_tenant or read:enrollment) + (delete:deployment or delete:deployment_tenant)
Returns a list of all existing enrollments for a given deployment.
The current query max limit is 200. API Clients can filter requests using the query parameters below.
deploymentId required | string Deployment ID |
hostName | string Query enrollments based on hostName, which is the name of the workstation where the monitor that created the enrollment is installed to. |
hostNameFilter | string Modifies hostName queries. If hostNameFilter=includes, then hostName={term} becomes a search for all enrollments with a hostName that includes that term. |
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
offset | number Default: 0 Query resources starting from offset. |
sortAsc | boolean Default: true Determines whether or not enrollments are returned in ascending order. |
sortKey | string The field upon which enrollments are sorted on. By default, enrollments are returned from most recent createdOn to least recent. |
{- "code": 200,
- "limit": 15,
- "offset": 0,
- "status": "success",
- "total": 2,
- "data": [
- {
- "createdBy": "5f973de9fd2c09ec1bb3c45b",
- "createdOn": "2022-10-28T09:34:56.112Z",
- "deploymentId": "5f973de9fd2c09ec1beb3c3f",
- "enrollmentDetails": {
- "hostName": "server02",
- "networkInterfaces": [
- {
- "gateway": "10.0.1.1",
- "ipv4": "10.0.1.1",
- "ipv6": "2001:db8:0:1234:0:5678:9abc:def2",
- "mac": "00:11:22:33:44:56",
- "name": "eth0"
}, - {
- "gateway": "192.168.1.1",
- "ipv4": "192.168.1.1",
- "ipv6": "2001:db8:0:1234:0:5678:9abc:def3",
- "mac": "aa:bb:cc:dd:ee:f0",
- "name": "eth1"
}
], - "provider": {
- "name": "aws"
}
}, - "enrollmentId": "5f973de9fd2c09ec1beb3c3e",
- "enrollmentKeyId": "5f973de9fd2c09ec1beb3c3h",
- "matchedMachineId": "5f973de9fd2c09ec1beb3c3g",
- "matchedMachineName": "machine02",
- "matchedMachineProvider": "aws",
- "updatedOn": "2022-10-28T09:34:56.112Z"
}, - {
- "createdBy": "5f973de9fd2c09ec1bb3c45c",
- "createdOn": "2022-10-28T10:45:21.112Z",
- "deploymentId": "5f973de9fd2c09ec1beb3c3j",
- "enrollmentDetails": {
- "hostName": "server03",
- "networkInterfaces": [
- {
- "gateway": "10.0.2.1",
- "ipv4": "10.0.2.1",
- "ipv6": "2001:db8:0:1234:0:5678:9abc:def4",
- "mac": "00:11:22:33:44:57",
- "name": "eth0"
}, - {
- "name": "eth1"
}
], - "provider": {
- "name": "aws"
}
}, - "enrollmentId": "5f973de9fd2c09ec1beb3c3i",
- "enrollmentKeyId": "5f973de9fd2c09ec1beb3c3l",
- "matchedMachineId": "5f973de9fd2c09ec1beb3c3k",
- "matchedMachineName": "machine03",
- "matchedMachineProvider": "aws",
- "updatedOn": "2022-10-28T10:45:21.112Z"
}
]
}
required scope: create:enrollment
Create an enrollment for a given monitor installation. An enrollment must be accepted so that the AWM monitor can communicate with the AWM Manager from the remote workstation.
The request body contain information about the workstation where the monitor is running on
deploymentId required | string Deployment ID |
hostName required | string non-empty The host name of the workstation where the monitor is installed. |
Array of objects The list network interfaces of the workstation where the monitor is installed. | |
object The provider where the workstation is running. If it is not part of the known cloud providers listed above, it must be set as onprem. |
{- "hostName": "server01",
- "networkInterfaces": [
- {
- "gateway": "10.0.0.1",
- "ipv4": "10.0.0.1",
- "ipv6": "2001:db8:0:1234:0:5678:9abc:def0",
- "mac": "00:11:22:33:44:55",
- "name": "eth0"
}, - {
- "gateway": "192.168.0.1",
- "ipv4": "192.168.0.1",
- "ipv6": "2001:db8:0:1234:0:5678:9abc:def1",
- "mac": "aa:bb:cc:dd:ee:ff",
- "name": "eth1"
}
], - "provider": {
- "name": "aws"
}
}
{- "code": 201,
- "status": "success",
- "data": {
- "createdBy": "5f973de9fd2c09ec1bb3c45b",
- "createdOn": "2022-10-28T09:34:56.112Z",
- "deploymentId": "5f973de9fd2c09ec1beb3c3f",
- "enrollmentDetails": {
- "hostName": "server02",
- "networkInterfaces": [
- {
- "gateway": "10.0.1.1",
- "ipv4": "10.0.1.1",
- "ipv6": "2001:db8:0:1234:0:5678:9abc:def2",
- "mac": "00:11:22:33:44:56",
- "name": "eth0"
}, - {
- "gateway": "192.168.1.1",
- "ipv4": "192.168.1.1",
- "ipv6": "2001:db8:0:1234:0:5678:9abc:def3",
- "mac": "aa:bb:cc:dd:ee:f0",
- "name": "eth1"
}
], - "provider": {
- "name": "aws"
}
}, - "enrollmentId": "5f973de9fd2c09ec1beb3c3e",
- "enrollmentKeyId": "5f973de9fd2c09ec1beb3c3h",
- "matchedMachineId": "5f973de9fd2c09ec1beb3c3g",
- "matchedMachineName": "machine02",
- "matchedMachineProvider": "aws",
- "updatedOn": "2022-10-28T09:34:56.112Z"
}
}
required scope: delete:enrollment_tenant or delete:enrollment
Accepts an enrolment. This must be be called when the enrolment is identified as a valid monitor installation. Calling this API will add the workstation referenced in the monitor as a AWM Workstation. After this the monitor will be able to communicate with AWM Manager and exchange information about the workstation where it is installed.
deploymentId required | string Deployment ID |
enrollmentId required | string Enrollment ID |
{- "code": 200,
- "status": "success"
}
required scopes: (delete:enrollment_tenant or delete:enrollment) + (delete:deployment or delete:deployment_tenant)
Rejects an enrolment. This must be be called when the enrolment is not recognized as a valid monitor installation. Calling this API will delete the enrollment and the monitor installation that created the enrollment will be invalidated. The monitor will NOT be able to communicate with Anyware Manager anymore.
deploymentId required | string Deployment ID |
enrollmentId required | string Enrollment ID |
{- "code": 200,
- "status": "success"
}
required scopes: delete:machine, delete:machine_tenant
Allows authenticated clients to delete registration keys
machineIds | Array of strings A comma-separated list of machine ids to have their monitor service accounts deleted. |
{- "machineIds": [
- "123456234241",
- "456789012345",
- "789012345678"
]
}
{- "code": 200,
- "status": "success"
}
required scopes: read:machine_tenant, read:machine
The registration token is used to install the Anyware Monitor in a single remote workstation. One registration token is needed for each workstation.
deploymentId required | string ID of the deployment |
machineId required | string ID of the machine |
{- "deploymentId": "59499477544e6f46d1df4942",
- "machineId": "5a4ead5dd4f0710029b02b9a"
}
{- "code": 200,
- "data": {
- "token": "JWT"
}, - "status": "success"
}
required scope: read:telemetry
Allows authenticated clients to retrieve the latest Anyware Monitor telemetry.
deploymentId required | string Deployment ID |
from | string Oldest creation date for the given resources |
machineId | Array of strings Query resources by using single or multiple comma separated machineIds. |
{- "code": 200,
- "status": "success",
- "data": [
- {
- "agentVersion": "23.01.0-0",
- "createdBy": "639cd5d3183b55c861e5dcd0",
- "deploymentId": "639cd5d37def4e072dbdbffe",
- "loggedInUsers": [
- "user1"
], - "machineId": "63bc73417a8c51b12ecd0591",
- "msgReceivedOn": "2023-01-19T15:50:48.457Z",
- "sentOn": "2023-01-19T15:50:48.000Z"
}
]
}
required scope: read:telemetry
Allows authenticated clients to retrieve the session history.
deploymentId required | string Deployment ID |
fetchRelatedFields | boolean Default: false If it should include related fields in the response such as connectorName. |
from | string Oldest creation date for the given resources |
limit | number [ 1 .. 200 ] Default: 25 Query the given number of resources. |
machineId | string Query machines by using single or multiple comma separated machineIds. |
machineName | string Query machines based on machineName. machineName is the name of the machine (instance) within a provider, and may match the hostname in Active Directory. Multiple machineNames can be queried if ?machineName is a comma-separated list of machineNames. |
machineNameFilter | string Modifies machineName queries. If machineNameFilter=includes, then machineName={term} becomes a search for all machines with a machineName that includes that term. If a machineNameFilter is specified, a comma-separated list of machineNames is treated as a single machineName. |
offset | number Default: 0 Query resources starting from offset. |
pcoipSessionId | string Query resources based on the pcoipSessionId. |
sortAsc | boolean Default: true Determines whether or not resources are returned in ascending order. |
sortKey | string The field upon which sessions are sorted on. By default, we return sessions from most recent startedOn to least recent. Sorting is only supported on startedOn field. |
to | string Newest creation date for the given resources |
userName | string Username of the user in Active Directory |
userNameFilter | string Modifies userName queries. If userNameFilter=includes, then userName={term} becomes a search for all adUsers with a userName that includes that term. |
{- "code": 200,
- "data": [
- {
- "approximateDurationInMs": 965207,
- "createdOn": "2023-11-24T18:59:34.904Z",
- "deploymentId": "6290cee5e82f8f9d8be13e40",
- "lastUpdatedOn": "2023-05-12T15:01:39.207Z",
- "machineId": "645e4f934d2c8adf565d5874",
- "machineName": "CookMachine",
- "pcoipSessionId": "ef31164f-265f-48dc-864c-20bf96eada12",
- "sessionEvents": [
- {
- "source": "Anyware Manager",
- "state": "Session-Attempted",
- "time": "2023-11-24T18:59:34.904Z"
}, - {
- "source": "Security Gateway",
- "state": "In-Session",
- "time": "2023-11-24T18:59:49.677Z"
}, - {
- "source": "No updates for 20 minutes",
- "state": "Unknown",
- "time": "2023-11-24T19:19:50.677Z"
}, - {
- "source": "Superceded by newer session",
- "sourceInfo": "Session ended by pcoipSessionId: 0ad6afcf-9b99-4f43-b9fb-1b3be9059671",
- "state": "Session-Ended",
- "time": "2023-11-24T19:29:23.877Z"
}
], - "sessionState": "Session-Ended",
- "startedOn": "2023-11-24T18:57:34.904Z",
- "updatedOn": "2023-11-24T19:29:23.877Z",
- "userGuid": "001f9344-42ba-4264-b53e-df262120c581",
- "userName": "Flatley"
}, - {
- "approximateDurationInMs": 0,
- "createdOn": "2023-11-24T18:59:36.076Z",
- "deploymentId": "6290cee5e82f8f9d8be13e40",
- "endedOn": "2023-11-24T19:29:23.877Z",
- "loggedInUsers": [
- "Flatley"
], - "machineId": "645e4f934d2c8adf565d5874",
- "machineName": "CookMachine",
- "pcoipSessionId": "ef31164f-265f-48dc-864c-20bf96eada48",
- "sessionEvents": [
- {
- "source": "Anyware Manager",
- "state": "Session-Attempted",
- "time": "2023-11-24T18:59:34.904Z"
}, - {
- "source": "Security Gateway",
- "state": "In-Session",
- "time": "2023-11-24T18:59:49.677Z"
}, - {
- "source": "Anyware Monitor",
- "state": "Session-Ended",
- "time": "2023-11-24T19:29:23.877Z"
}
], - "sessionState": "Session-Ended",
- "startedOn": "2023-11-24T18:59:34.904Z",
- "updatedOn": "2023-11-24T18:59:49.677Z",
- "userGuid": "001f9344-42ba-4264-b53e-df262120c581",
- "userName": "Flatley"
}, - {
- "approximateDurationInMs": 15000,
- "createdOn": "2023-11-24T18:59:36.076Z",
- "deploymentId": "6290cee5e82f8f9d8be13e40",
- "lastUpdatedOn": "2023-11-24T18:59:49.677Z",
- "loggedInUsers": [
- "Flatley"
], - "machineId": "645e4f934d2c8adf565d5874",
- "machineName": "CookMachine",
- "pcoipSessionId": "ef31164f-265f-48dc-864c-20bf96eada54",
- "sessionEvents": [
- {
- "source": "Anyware Manager",
- "state": "Session-Attempted",
- "time": "2023-11-24T18:59:34.904Z"
}, - {
- "source": "Security Gateway",
- "state": "In-Session",
- "time": "2023-11-24T18:59:49.677Z"
}
], - "sessionState": "In-Session",
- "startedOn": "2023-11-24T18:59:34.904Z",
- "updatedOn": "2023-11-24T18:59:49.677Z",
- "userGuid": "001f9344-42ba-4264-b53e-df262120c581",
- "userName": "Flatley"
}
], - "status": "success"
}
All routes listed here are beta features only. They may be new, experimental or partially completed. These features are subject to change.
required scopes: read:keys_tenant, read:keys
Allows authenticated clients to return a list of the user's owned User Service Account Keys or Deployment Service Account Keys.
The type of retrievable key depends on the authorization token and the type specified in the query.
limit | number [ 1 .. 100 ] Default: 25 Query the given number of resources. |
offset | number Default: 0 Query resources starting from offset. |
type | string Default: "user" Enum: "user" "deployment" "all" Query keys of this type. user: Query all User Service Account Keys. deployment: Query all Deployment Service Account Keys. all: Query both User Service Account and Deployment Service Account Keys. |
{- "code": 200,
- "data": [
- {
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "64c044c0c9e6a02a262fe397",
- "expiresOn": "2026-12-13T16:44:09.380Z",
- "keyId": "507f1f77bcf86cd799439011",
- "keyName": "sa-key-1",
- "lastSignedIn": "2023-12-13T16:44:09.380Z",
- "roleId": "641cbe24f77be42e4180d8ec",
- "roleName": "Deployment Administrator"
}
], - "status": "success"
}
required scopes: create:keys_tenant, create:keys
Allows authenticated clients to create a new Service Account Keys.
Type of keys:
deploymentId | string = 24 characters Deployment ID. Only required if roleId is provided. |
expiresOn | string The expiration date of the service account in ISO 8601 format, default is 3 years from the current date. |
keyName required | string [ 1 .. 64 ] characters Name to identify the service account key. |
roleId | string = 24 characters Role ID. Only required if deploymentId is provided. |
{- "deploymentId": "59499477544e6f46d1df4943",
- "expiresOn": "2026-12-13T16:44:09.380Z",
- "keyName": "sa-key-1",
- "roleId": "5a4ead5e79f06d001d1a2ef5"
}
{- "code": 201,
- "data": [
- {
- "apiKey": "JWT",
- "expiresOn": "2026-12-13T16:44:09.380Z",
- "keyId": "507f1f77bcf86cd799439011",
- "keyName": "sa-key-1",
- "username": "507f1f77bcf86cd799439011"
}
], - "status": "success"
}
required scopes: delete:keys_tenant, delete:keys
Allows authenticated clients to remove a Service Account Key by keyId
.
The type of deletable key depends on the authorization token.
id required | string Key ID |
{- "code": 200,
- "status": "success"
}
required scope: create:telemetry
Ingest one or more component based statistics records.
The request body can contain one or more statistics records in a JSON array. See Example.
An example API call: POST https://cam.teradici.com/api/v1/deployments/5d321400e62258001254ac26/stats
deploymentId required | string Deployment ID |
clientAudioBytes | integer Number of PCoIP audio bytes that the Security Gateway has received from the PCoIP client |
clientAudioCount | integer Number of PCoIP audio packets that the Security Gateway has received from the PCoIP client |
clientImagingBytes | integer Number of PCoIP imaging bytes that the Security Gateway has received from the PCoIP client |
clientImagingCount | integer Number of PCoIP imaging packets that the Security Gateway has received from the PCoIP client |
clientOutOfOrder | integer Number of PCoIP packets that the Security Gateway has received out of order from the PCoIP client |
clientPacketBytes | integer Total number of PCoIP bytes that the Security Gateway has received from the PCoIP client |
clientPacketCount | integer Total number of PCoIP packets that the Security Gateway has received from the PCoIP client |
clientSessionTime required | integer Client session time in seconds |
componentType required | string Value: "securityGateway" Component type |
componentVersion | string Value: "20.04.12341" Component version |
connectorId | string Anyware Connector ID |
pcoipSessionId required | string [ 1 .. 64 ] characters PCoIP session ID |
serverAudioBytes | integer Number of PCoIP audio bytes that the Security Gateway has received from the PCoIP server |
serverAudioCount | integer Number of PCoIP audio packets that the Security Gateway has received from the PCoIP server |
serverImagingBytes | integer Number of PCoIP imaging bytes that the Security Gateway has received from the PCoIP server |
serverImagingCount | integer Number of PCoIP imaging packets that the Security Gateway has received from the PCoIP server |
serverOutOfOrder | integer Number of PCoIP packets that the Security Gateway has received out of order from the PCoIP server |
serverPacketBytes | integer Total number of PCoIP bytes that the Security Gateway has received from the PCoIP server |
serverPacketCount | integer Total number of PCoIP packets that the Security Gateway has received from the PCoIP server |
timestamp required | string <date-time> A timestamp indicating when the data was collected |
[ ]
{- "code": 202,
- "status": "success"
}
required scope: read:telemetry
Allows authenticated clients to retrieve active sessions statistics. A PCoIP Session is considered active if a remote workstation has been allocated in the system and Security Gateway statistics have been reported within 20 minutes.
deploymentId required | string Deployment ID |
limit | number [ 1 .. 200 ] Default: 25 Query the given number of resources. |
machineId | Array of strings Query resources by using single or multiple comma separated machineIds. |
offset | number Default: 0 Query resources starting from offset. |
userGuid | Array of strings Query resources by using single or multiple comma separated userGuids. |
{- "code": 200,
- "data": [
- {
- "clientSessionTime": 0,
- "connectorId": "",
- "deploymentId": "5f4eaf20dbece400128c6dd3",
- "machineId": "5fcd84e60e057500130d67bf",
- "pcoipSessionId": "1fe04c07-b0ec-4796-9d2d-ca59c3e987c8",
- "sessionAttemptedOn": "2020-09-18T00:06:29.180Z",
- "sessionLastUpdatedOn": "2020-09-18T00:06:29.180Z",
- "userGuid": "4a8ad53e-c005-42c7-a83e-0f9b6fd55b80"
}, - {
- "clientSessionTime": 0,
- "connectorId": "",
- "deploymentId": "5f4eaf20dbece400128c6dd3",
- "machineId": "5fcd84e60e057500130d67bf",
- "pcoipSessionId": "1fe04c07-b0ec-4796-9d2d-ca59c3e987c8",
- "sessionAttemptedOn": "2020-09-18T00:06:29.180Z",
- "sessionLastUpdatedOn": "2020-09-18T00:06:29.180Z",
- "userGuid": "017bc3a2-a8c0-4950-800e-9afe149bbb9a"
}
], - "limit": 1,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scope: read:telemetry
Allows authenticated clients to retrieve PCoIP Session attempts associated to a single remote workstation.
The response will contain the last 25 session attempts unless limit is provided as a query parameter.
deploymentId required | string Deployment ID |
machineId required | string Machine ID |
{- "code": 200,
- "data": [
- {
- "clientSessionTime": 0,
- "connectorId": "",
- "deploymentId": "5f4eaf20dbece400128c6dd3",
- "machineId": "5fcd84e60e057500130d67bf",
- "pcoipSessionId": "1fe04c07-b0ec-4796-9d2d-ca59c3e987c8",
- "sessionAttemptedOn": "2020-09-18T00:06:29.180Z",
- "sessionLastUpdatedOn": "2020-09-18T00:06:29.180Z",
- "userGuid": "4a8ad53e-c005-42c7-a83e-0f9b6fd55b80"
}, - {
- "clientSessionTime": 0,
- "connectorId": "",
- "deploymentId": "5f4eaf20dbece400128c6dd3",
- "machineId": "5fcd84e60e057500130d67bf",
- "pcoipSessionId": "1fe04c07-b0ec-4796-9d2d-ca59c3e987c8",
- "sessionAttemptedOn": "2020-09-18T00:06:29.180Z",
- "sessionLastUpdatedOn": "2020-09-18T00:06:29.180Z",
- "userGuid": "017bc3a2-a8c0-4950-800e-9afe149bbb9a"
}
], - "limit": 1,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scope: read:telemetry
Allows authenticated clients to retrieve their Security Gateway statistics.
When querying using the pcoipSessionId
or connectorId
query parameters,
API clients can search using a single parameter.
The response will contain all Security Gateway statistics that match any of these parameters.
An example API call: GET https://cam.teradici.com/api/v1/deployments/5d321400e62258001254ac26/stats/pcoip/security-gateway
deploymentId required | string Deployment ID |
connectorId | string Query connectors by using single or multiple comma separated connectorIds |
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
offset | number Default: 0 Query resources starting from offset. |
pcoipSessionId | string Query resources based on the pcoipSessionId. |
{- "code": 200,
- "data": [
- {
- "clientSessionTime": 1234,
- "connectorId": "5a4ec1856b1092001d164b2b",
- "deploymentId": "5a4ead5e79f06d001d1a2ef5",
- "pcoipSessionId": "1fe04c07-b0ec-4796-9d2d-ca59c3e987c8",
- "timestamp": "2020-09-18T00:06:29.180Z"
}
], - "limit": 1,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scope: read:telemetry
Allows authenticated clients to retrieve session states. A PCoIP Session is considered active if a remote workstation has been allocated in the system and Security Gateway statistics have been reported within 20 minutes. If a machine has been allocated over 24 hours and Anyware Manager did not receive Security Gateway statistics in the last 20 minutes, it has Not-In-Session state. Otherwise, it has Unknown session state.
This endpoint allows the ability to query for one or more remote workstation ids using the machineId query parameter providing a single or comma separated machineId's.
The response will contain session state for each machine in the API query. The machineId parameter is limited to 100 coma separated values, the max length is 4096 characters.
An example API call:
GET https://cam.teradici.com/api/v1/deployments/5d321400e62258001254ac26/stats/pcoip/sessions?machineId=5a4ead5e79f06d001d1a2ef5
deploymentId required | string Deployment ID |
machineId | Array of strings Query resources by using single or multiple comma separated machineIds. |
userGuid | Array of strings Query resources by using single or multiple comma separated userGuids. |
{- "code": 200,
- "data": [
- {
- "clientSessionTime": 10000,
- "machineId": "5f88e2c40ec92d001f82fab4",
- "pcoipSessionState": "In-Session",
- "sessionAttemptedOn": "2020-10-19T17:22:19.373Z",
- "userGuid": "user22"
}, - {
- "clientSessionTime": null,
- "machineId": "5f88e2c40ec92d001f82fab5",
- "pcoipSessionState": "Unknown",
- "sessionAttemptedOn": "2020-10-19T17:22:19.373Z",
- "userGuid": "user22"
}, - {
- "clientSessionTime": null,
- "machineId": "5f88e2c40ec92d001f82fab2",
- "pcoipSessionState": "Not-In-Session",
- "sessionAttemptedOn": null,
- "userGuid": "user22"
}
], - "status": "success"
}
required scopes: read:roles_tenant, read:roles
Allows authenticated clients to return a list of the roles that can be specified while creating SAs.
limit | number [ 1 .. 100 ] Default: 25 Query the given number of resources. |
offset | number Default: 0 Query resources starting from offset. |
{- "code": 200,
- "data": [
- {
- "permissions": "{...}",
- "roleId": "641cbe24f77be42e4180d8ec",
- "roleName": "deployment-admin",
- "type": "built-in"
}
], - "status": "success"
}
required scopes: read:license_tenant
Allows authenticated clients to return a list of licenses associated to the tenant.
ownerOid | string Query licenses based on an owner Oid |
{- "code": 200,
- "data": [
- {
- "data": "{ ... }",
- "id": "60d7c5f5e0f1d9a7c9b4f7c3",
- "ownerOid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "registrationCode": "ABC123"
}
], - "status": "success"
}
required scopes: create:license_tenant
Allows authenticated clients to create a license associated to the tenant.
The license to create.
registrationCode required | string Registration code |
{- "registrationCode": "1234-1234-1234"
}
{- "code": 200,
- "data": {
- "id": "60d7c5f5e0f1d9a7c9b4f7c3",
- "ownerOid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "registrationCode": "ABC123"
}, - "status": "success"
}
required scopes: delete:license_tenant
Allows authenticated clients to remove a specific license associated to the tenant.
id required | string License ID |
{- "code": 200,
- "status": "success"
}
required scopes: read:license_tenant
Allows authenticated clients to return a specific license associated to the tenant.
id required | string License ID |
{- "code": 200,
- "data": {
- "data": "{ ... }",
- "id": "60d7c5f5e0f1d9a7c9b4f7c3",
- "ownerOid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "registrationCode": "ABC123"
}, - "status": "success"
}
required scopes: read:deployment_settings or read:deployment_settings_tenant
Allows authenticated clients to retrieve all Webhook configuration settings for a specific deployment.
deploymentId required | string Deployment ID |
eventType | string Enum: "authenticate" "get-resource-list" "allocate-resource" "session-start" "session-end" Query webhook setting based on the Event Type. |
limit | number [ 1 .. 200 ] Default: 25 Query the given number of webhook config settings. |
name | string Query webhook setting based on the Name. The name refers to webhook setting name. |
offset | number Default: 0 Query resources starting from offset. |
resourceId | string Query Webhook setting based on the ResourceId. The resourceId refers to the associated resource in the config. Currently, it's a poolId |
{- "code": 200,
- "data": [
- {
- "additionalData": "additional data 1",
- "associatedResources": [
- {
- "resourceId": "5d289f2923ced9001f8db921",
- "resourceName": "poolname1"
}, - {
- "resourceId": "5d289f2923ced9001f8db922",
- "resourcelName": "poolname2"
}
], - "createdOn": "2020-01-01T00:00:00Z",
- "deploymentId": "5d289f2923ced9001f8db920",
- "eventType": "allocate-resource",
- "id": "65a56bddea1fa1727d4af442",
- "method": "POST",
- "name": "webhook1",
- "updatedOn": "2020-01-01T00:00:00Z"
}, - {
- "additionalData": "additional data 2",
- "associatedResources": [
- {
- "resourceId": "5d289f2923ced9001f8db923",
- "resourceName": "poolname3"
}, - {
- "resourceId": "5d289f2923ced9001f8db924",
- "resourceName": "poolname4"
}
], - "createdOn": "2020-01-01T00:00:00Z",
- "deploymentId": "5d289f2923ced9001f8db920",
- "eventType": "allocate-resource",
- "id": "65a56bddea1fa1727d4af441",
- "method": "POST",
- "name": "webhook2",
- "updatedOn": "2020-01-01T00:00:00Z"
}
], - "limit": 25,
- "offset": 0,
- "status": "success",
- "total": 2
}
required scopes: read, create:deployment_settings or read, create:deployment_settings_tenant
Allows authenticated clients to create an AWC configuration
deploymentId required | string Deployment ID |
additionalData | string Maximum length is 4096 characters |
associatedResources | Array of strings Refers to pool ID, having value as '*' represents all pools |
description | string Maximum length is 1024 characters |
endpoint required | string |
eventType required | string Enum: "authenticate" "get-resource-list" "allocate-resource" "session-start" "session-end" |
name required | string Maximum length is 512 characters |
{- "additionalData": "AdditionalData1",
- "associatedResources": [
- "AssociatedResources1",
- "AssociatedResources2"
], - "description": "This webhook is used for testing",
- "eventType": "authenticate",
- "name": "Name123"
}
{- "code": 201,
- "data": {
- "additionalData": "Additional data",
- "associatedResources": [
- {
- "resourceId": "5d289f2923ced9001f8db921",
- "resourceName": "poolname1"
}, - {
- "resourceId": "*",
- "resourceName": "All"
}
], - "description": "This webhook is used for testing",
- "endpoint": "https:example.com",
- "eventType": "allocate-resource",
- "id": "65a56bddea1fa1727d4af442",
- "method": "POST",
- "name": "Name123"
}, - "status": "success"
}
required scopes: read, delete:deployment_settings or read, delete:deployment_settings_tenant
Allows authenticated clients to delete a saved Webhook configuration.
deploymentId required | string Deployment ID |
Id required | string Webhook Setting ID |
{- "code": 200,
- "status": "success"
}
required scopes: read:deployment_settings or read:deployment_settings_tenant
Allows authenticated clients to retrieve a saved Webhook configuration.
deploymentId required | string Deployment ID |
Id required | string Webhook Setting ID |
{- "code": 200,
- "data": {
- "additionalData": "Additional data for webhook",
- "associatedResources": [
- {
- "resourceId": "5d289f2923ced9001f8db921",
- "resourceName": "poolname1"
}, - {
- "resourceId": "5d289f2923ced9001f8db922",
- "resourceName": "poolname2"
}
], - "createdOn": "2020-01-01T00:00:00Z",
- "deploymentId": "5d289f2923ced9001f8db920",
- "eventType": "allocate-resource",
- "id": "65a56bddea1fa1727d4af442",
- "method": "POST",
- "name": "Webhook1"
}, - "status": "success"
}
required scopes: read, update:deployment_settings or read,update:deployment_settings_tenant
Allows authenticated clients to update a saved Webhook configuration
deploymentId required | string Deployment ID |
Id required | string Webhook Setting ID |
additionalData | string Maximum length is 4096 characters |
associatedResources | Array of strings Refers to pool ID, having value as "*" represents all pools |
description | string Maximum length is 1024 characters |
endpoint | string |
eventType | string Enum: "authenticate" "get-resource-list" "allocate-resource" "session-start" "session-end" |
name | string Maximum length is 512 characters |
{- "additionalData": "AdditionalData1",
- "associatedResources": [
- "AssociatedResources1",
- "AssociatedResources2"
], - "description": "This webhook is used for testing",
- "eventType": "authenticate",
- "name": "Name123"
}
{- "code": 200,
- "data": {
- "additionalData": "Additional data",
- "associatedResources": [
- {
- "resourceId": "5d289f2923ced9001f8db921",
- "resourceName": "poolname1"
}, - {
- "resourceId": "5d289f2923ced9001f8db922",
- "resourceName": "poolname2"
}
], - "description": "This webhook is used for testing",
- "endpoint": "https:example.com",
- "eventType": "allocate-resource",
- "id": "65a56bddea1fa1727d4af442",
- "method": "POST",
- "name": "Name123"
}, - "status": "success"
}
required scope: read:entitlements or read:entitlements_tenant
Allows authenticated clients to retrieve their corresponding entitlements.
When querying using the userGuid
or machineId
query parameters,
API clients can search using a single or multiple comma separated
parameters.
The response will contain all entitlements that match any one of these parameters. The userGuid or machineId parameters are limited to 100 parameters, the max length is 4096 characters.
An example API call: https://cam.teradici.com/api/v1/machines/entitlements?userGuid=GUID1,GUID2,GUID3,GUID4&machineId=123456
deploymentId | string Query resources based on the deploymentId. |
limit | number Default: 15 Query the given number of resources. If not provided, defaults to 15. |
machineId | Array of strings Query resources by using single or multiple comma separated machineIds. |
offset | number Default: 0 Query resources starting from offset. |
showactive | boolean Default: true Query resources that have the status "active". |
showdeleted | boolean Default: false Query resources that have the status "deleted". |
showdeleting | boolean Default: false Query resources that have the status "deleting". |
userGuid | Array of strings Query resources by using single or multiple comma separated userGuids. |
{- "code": 200,
- "data": [
- {
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "5a4ead5e79f06d001d1a2ef5",
- "entitlementId": "5a4ec1856b1092001d164b2b",
- "resource": {
- "active": true,
- "connectorId": "54234",
- "createdBy": "2312313",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "123123",
- "location": "useast",
- "machineId": "m14134",
- "machineName": "my-vm",
- "managed": true,
- "osInfo": {
- "offer": "unknown",
- "publisher": "unknown",
- "sku": "unknown",
- "version": "unknown"
}, - "powerState": "running",
- "powerStateLastChangedOn": "2021-08-10T23:08:30.489Z",
- "provisioningStatus": {
- "attributes": { },
- "deployment": { },
- "message": "msg",
- "state": "succeeded"
}, - "resourceGroup": "RG",
- "subscriptionId": "s13213",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "vmSize": "lg"
}, - "resourceId": "5a4eae5c162ce8001d001e76",
- "resourceName": "name",
- "resourceType": "machine",
- "status": "active",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "userGuid": "12341123412"
}
], - "limit": 1,
- "offset": 0,
- "status": "success",
- "total": 1
}
required scopes: create:entitlements or create:entitlements_tenant
Allows authenticated clients to create an entitlement. This call will
associate a userGuid
(from domain controller)
to a machineId
that has been registered in our application. If the machine
is not registered, an HTTP 400 error response will be returned.
deploymentId required | string Deployment ID |
machineId required | string Machine ID |
userGuid required | string UserGuid from domain controller |
{- "deploymentId": "1",
- "machineId": "of3416123471234",
- "userGuid": "12341-12341-41123412"
}
{- "code": 201,
- "data": {
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "5a4ead5e79f06d001d1a2ef5",
- "entitlementId": "5a4ec1856b1092001d164b2b",
- "machineId": "5a4eae5c162ce8001d001e76",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "userGuid": "12341123412"
}, - "status": "success"
}
required scope: delete:entitlements or delete:entitlements_tenant
Allows authenticated clients to remove a single entitlement object based on entitlementId.
An example API call: https://cam.teradici.com/api/v1/machines/entitlements/1234560000
id required | string Entitlement ID |
{- "code": 200,
- "status": "success"
}
required scopes: read:entitlements or read:entitlements_tenant
Allows authenticated clients to retrieve a single entitlement object based on entitlementId.
An example API call: https://cam.teradici.com/api/v1/machines/entitlements/1234560000
id required | string Entitlement ID |
{- "code": 200,
- "data": {
- "createdBy": "5a4ead5dd4f0710029b02b9a",
- "createdOn": "2018-01-05T00:06:29.180Z",
- "deploymentId": "5a4ead5e79f06d001d1a2ef5",
- "entitlementId": "5a4ec1856b1092001d164b2b",
- "machineId": "5a4eae5c162ce8001d001e76",
- "status": "active",
- "updatedOn": "2018-01-05T00:06:29.180Z",
- "userGuid": "12341123412"
}, - "status": "success"
}