Skip to content

Template API

The Exam Orchestrator deploys a Deployment Template of your choosing during the deployment of an exam. This Deployment Template is an “ARM Template Spec” that is stored in your Azure Tenant.

The Exam Orchestrator passes a specific set of parameters to this template and expects a specific set of outputs back when the deployment finishes. We call this the “Template API”.

Your Deployment Template has to meet this API for the deployment to succeed.

Parameters

The following parameters are passed to your Deployment Template:

NameTypeDescription
userCapacitynumberThe number of students in the exam
startTimestringRFC3339 formatted start time of the exam (compatible with ISO8601)
endTimestringRFC3339 formatted end time of the exam (compatible with ISO8601)
examIdstringthe UUIDv4 ID of the exam
instanceIdstringthe UUIDv4 ID of the Schoolyear AVD add-on installation in your Schoolyear Tenant.
trustedProxySecretsecurestringA token that can be used by the trusted proxy to connect to the Schoolyear API.
userGroupIdstringID of the Entra User Group that was created during for the exam
apiBaseUrlstringThe base URL of the Schoolyear API. E.g. https://api.schoolyear.app
entraAuthoritystringThe OpenID Connect Authority URI of your Azure Tenant.
entraClientIdstringThe Client ID of the OpenID Connect App Registration.

Outputs

The Exam Orchestrator expects the following outputs from a successful deployment:

NameTypeDescriptionExample
publicIps[]stringList of IPs (max 10) from which sessionhosts may connect to the Schoolyear API. This should be the IP addresses of the NAT gateway(s) of your exam.["123.123.123.123", "124.124.124.124"
proxyConfigobjectThe proxy configuration for clients to connect to the trusted proxy. See below for more detailsSee below
resourceUrlsToDelete[]stringA list of Resource URIs that should be deleted in addition to the exam’s Resource Group. The URIs’ host must end with .azure.com.["https://management.azure.com/subscriptions/a0af5066-74bf-4ab3-8ef6-4f114b9c1028/resourceGroups/templates/providers/Microsoft.Network/dnsZones/foreignproxy.example.com/A/89cf3d5a-943e-4194-ae1f-f49424cb635f?api-version=2018-05-01"]
hostpoolNamestringThe name of the AVD hostpool that should be monitored for available sessionhostshostpool-89cf3d5a-943e-4194-ae1f-f49424cb635f
vmNumberOfInstancesnumberMinimum number of sessionhosts that should be “Available” is the hostpool for the deployment to qualify as “succeeded”20

Proxy Configuration

One of the outputs of the Deployment Template must be the proxyConfig. This is an object that describes which hostnames should be routed through which proxy. This config is applied to the Schoolyear Safe Exam Workspace of the student.

{
"domains": [
// route any traffic going to the WVD servers through the trusted proxy
{
"proxy": "89cf3d5a-943e-4194-ae1f-f49424cb635f.foreignproxy.example.com", // the proxy hostname
"matcher": "*-*-*-*-*.*.wvd.microsoft.com" // the wildcard hostname matcher
},
]
}