MICROSOFT.LABSERVICES

EnvironmentSettings_ClaimAny

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

EnvironmentSettings_CreateOrUpdate

enum_EnvironmentSettingPropertiesConfigurationState := [ "NotApplicable", "Completed" ]
enum_ResourceSettingsSize := [ "Basic", "Standard", "Performance" ]

valid {
    input.Body.properties.configurationState == enum_EnvironmentSettingPropertiesConfigurationState[_]
    input.Body.properties.description == STRING
    input.Body.properties.title == STRING
    input.Body.properties.resourceSettings.galleryImageResourceId == STRING
    input.Body.properties.resourceSettings.size == enum_ResourceSettingsSize[_]
    input.Body.properties.resourceSettings.referenceVm.userName == STRING
    input.Body.properties.resourceSettings.referenceVm.password == STRING
    input.Body.properties.provisioningState == STRING
    input.Body.properties.uniqueIdentifier == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

EnvironmentSettings_Delete

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

EnvironmentSettings_Get

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.Qs.$expand == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

EnvironmentSettings_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.Qs.$expand == STRING
    input.Qs.$filter == STRING
    input.Qs.$top == INTEGER
    input.Qs.$orderby == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

EnvironmentSettings_Publish

valid {
    input.Body.useExistingImage == BOOLEAN
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

EnvironmentSettings_Start

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

EnvironmentSettings_Stop

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

EnvironmentSettings_Update

enum_EnvironmentSettingPropertiesFragmentConfigurationState := [ "NotApplicable", "Completed" ]
enum_ResourceSettingsFragmentSize := [ "Basic", "Standard", "Performance" ]

valid {
    input.Body.properties.configurationState == enum_EnvironmentSettingPropertiesFragmentConfigurationState[_]
    input.Body.properties.description == STRING
    input.Body.properties.title == STRING
    input.Body.properties.resourceSettings.galleryImageResourceId == STRING
    input.Body.properties.resourceSettings.size == enum_ResourceSettingsFragmentSize[_]
    input.Body.properties.resourceSettings.referenceVm.userName == STRING
    input.Body.properties.resourceSettings.referenceVm.password == STRING
    input.Body.properties.provisioningState == STRING
    input.Body.properties.uniqueIdentifier == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Environments_Claim

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.ReqMap.environmentName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Environments_CreateOrUpdate

valid {
    input.Body.properties.resourceSets.vmResourceId == STRING
    input.Body.properties.resourceSets.resourceSettingId == STRING
    input.Body.properties.provisioningState == STRING
    input.Body.properties.uniqueIdentifier == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.ReqMap.environmentName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Environments_Delete

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.ReqMap.environmentName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Environments_Get

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.ReqMap.environmentName == STRING
    input.Qs.$expand == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Environments_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.Qs.$expand == STRING
    input.Qs.$filter == STRING
    input.Qs.$top == INTEGER
    input.Qs.$orderby == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Environments_ResetPassword

valid {
    input.Body.environmentId == STRING
    input.Body.username == STRING
    input.Body.password == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.ReqMap.environmentName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Environments_Start

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.ReqMap.environmentName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Environments_Stop

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.ReqMap.environmentName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Environments_Update

valid {
    input.Body.properties.resourceSets.vmResourceId == STRING
    input.Body.properties.resourceSets.resourceSettingId == STRING
    input.Body.properties.provisioningState == STRING
    input.Body.properties.uniqueIdentifier == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.ReqMap.environmentSettingName == STRING
    input.ReqMap.environmentName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryImages_CreateOrUpdate

valid {
    input.Body.properties.isEnabled == BOOLEAN
    input.Body.properties.isOverride == BOOLEAN
    input.Body.properties.isPlanAuthorized == BOOLEAN
    input.Body.properties.provisioningState == STRING
    input.Body.properties.uniqueIdentifier == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.galleryImageName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryImages_Delete

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.galleryImageName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryImages_Get

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.galleryImageName == STRING
    input.Qs.$expand == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryImages_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.Qs.$expand == STRING
    input.Qs.$filter == STRING
    input.Qs.$top == INTEGER
    input.Qs.$orderby == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryImages_Update

valid {
    input.Body.properties.isEnabled == BOOLEAN
    input.Body.properties.isOverride == BOOLEAN
    input.Body.properties.isPlanAuthorized == BOOLEAN
    input.Body.properties.provisioningState == STRING
    input.Body.properties.uniqueIdentifier == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.galleryImageName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GlobalUsers_GetEnvironment

valid {
    input.Body.environmentId == STRING
    input.ReqMap.userName == STRING
    input.Qs.$expand == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GlobalUsers_GetOperationBatchStatus

valid {
    input.Body.urls[_] == STRING
    input.ReqMap.userName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GlobalUsers_GetOperationStatus

valid {
    input.Body.operationUrl == STRING
    input.ReqMap.userName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GlobalUsers_GetPersonalPreferences

enum_PersonalPreferencesOperationsPayloadAddRemove := [ "Add", "Remove" ]

valid {
    input.Body.labAccountResourceId == STRING
    input.Body.addRemove == enum_PersonalPreferencesOperationsPayloadAddRemove[_]
    input.Body.labResourceId == STRING
    input.ReqMap.userName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GlobalUsers_ListEnvironments

valid {
    input.Body.labId == STRING
    input.ReqMap.userName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GlobalUsers_ListLabs

valid {
    input.ReqMap.userName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GlobalUsers_Register

valid {
    input.Body.registrationCode == STRING
    input.ReqMap.userName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GlobalUsers_ResetPassword

valid {
    input.Body.environmentId == STRING
    input.Body.username == STRING
    input.Body.password == STRING
    input.ReqMap.userName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GlobalUsers_StartEnvironment

valid {
    input.Body.environmentId == STRING
    input.ReqMap.userName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GlobalUsers_StopEnvironment

valid {
    input.Body.environmentId == STRING
    input.ReqMap.userName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Images_CreateOrUpdate

enum_enableState := [ "Enabled", "Disabled" ]

valid {
    input.Body.properties.availableRegions[_] == STRING
    input.Body.properties.enabledState == enum_enableState[_]
    input.Body.STRING == STRING
    input.ProviderMetadata.Region == STRING
}

Images_Get

valid {
    input.ProviderMetadata.Region == STRING
}

Images_ListByLabPlan

valid {
    input.ProviderMetadata.Region == STRING
}

Images_Update

enum_enableState := [ "Enabled", "Disabled" ]

valid {
    input.Body.properties.enabledState == enum_enableState[_]
    input.ProviderMetadata.Region == STRING
}

LabAccounts_CreateLab

enum_ResourceSettingCreationParametersSize := [ "Basic", "Standard", "Performance" ]

valid {
    input.Body.environmentSettingCreationParameters.resourceSettingCreationParameters.location == STRING
    input.Body.environmentSettingCreationParameters.resourceSettingCreationParameters.name == STRING
    input.Body.environmentSettingCreationParameters.resourceSettingCreationParameters.galleryImageResourceId == STRING
    input.Body.environmentSettingCreationParameters.resourceSettingCreationParameters.size == enum_ResourceSettingCreationParametersSize[_]
    input.Body.environmentSettingCreationParameters.resourceSettingCreationParameters.referenceVmCreationParameters.userName == STRING
    input.Body.environmentSettingCreationParameters.resourceSettingCreationParameters.referenceVmCreationParameters.password == STRING
    input.Body.labCreationParameters.maxUsersInLab == INTEGER
    input.Body.name == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LabAccounts_CreateOrUpdate

valid {
    input.Body.properties.enabledRegionSelection == BOOLEAN
    input.Body.properties.provisioningState == STRING
    input.Body.properties.uniqueIdentifier == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LabAccounts_Delete

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LabAccounts_Get

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.Qs.$expand == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LabAccounts_GetRegionalAvailability

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LabAccounts_ListByResourceGroup

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.Qs.$expand == STRING
    input.Qs.$filter == STRING
    input.Qs.$top == INTEGER
    input.Qs.$orderby == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LabAccounts_ListBySubscription

valid {
    input.ReqMap.SubscriptionID == STRING
    input.Qs.$expand == STRING
    input.Qs.$filter == STRING
    input.Qs.$top == INTEGER
    input.Qs.$orderby == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

LabAccounts_Update

valid {
    input.Body.properties.enabledRegionSelection == BOOLEAN
    input.Body.properties.provisioningState == STRING
    input.Body.properties.uniqueIdentifier == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LabPlans_CreateOrUpdate

enum_IdentityType := [ "SystemAssigned" ]
enum_connectionType := [ "Public", "Private", "None" ]
enum_enableState := [ "Enabled", "Disabled" ]
enum_shutdownOnIdleMode := [ "None", "UserAbsence", "LowUsage" ]

valid {
    input.Body.properties.defaultConnectionProfile.webSshAccess == enum_connectionType[_]
    input.Body.properties.defaultConnectionProfile.webRdpAccess == enum_connectionType[_]
    input.Body.properties.defaultConnectionProfile.clientSshAccess == enum_connectionType[_]
    input.Body.properties.defaultConnectionProfile.clientRdpAccess == enum_connectionType[_]
    input.Body.properties.defaultAutoShutdownProfile.shutdownOnDisconnect == enum_enableState[_]
    input.Body.properties.defaultAutoShutdownProfile.shutdownWhenNotConnected == enum_enableState[_]
    input.Body.properties.defaultAutoShutdownProfile.shutdownOnIdle == enum_shutdownOnIdleMode[_]
    input.Body.properties.defaultAutoShutdownProfile.disconnectDelay == STRING
    input.Body.properties.defaultAutoShutdownProfile.noConnectDelay == STRING
    input.Body.properties.defaultAutoShutdownProfile.idleDelay == STRING
    input.Body.properties.defaultNetworkProfile.subnetId == STRING
    input.Body.properties.allowedRegions[_] == STRING
    input.Body.properties.sharedGalleryId == STRING
    input.Body.properties.supportInfo.url == STRING
    input.Body.properties.supportInfo.email == STRING
    input.Body.properties.supportInfo.phone == STRING
    input.Body.properties.supportInfo.instructions == STRING
    input.Body.properties.linkedLmsInstance == STRING
    input.Body.identity.type == enum_IdentityType[_]
    input.Body.tags.STRING == STRING
    input.Body.location == STRING
    input.ProviderMetadata.Region == STRING
}

LabPlans_Delete

valid {
    input.ProviderMetadata.Region == STRING
}

LabPlans_Get

valid {
    input.ProviderMetadata.Region == STRING
}

LabPlans_ListByResourceGroup

valid {
    input.ProviderMetadata.Region == STRING
}

LabPlans_ListBySubscription

valid {
    input.ProviderMetadata.Region == STRING
}

LabPlans_SaveImage

valid {
    input.Body.name == STRING
    input.Body.labVirtualMachineId == STRING
    input.ProviderMetadata.Region == STRING
}

LabPlans_Update

enum_IdentityType := [ "SystemAssigned" ]
enum_connectionType := [ "Public", "Private", "None" ]
enum_enableState := [ "Enabled", "Disabled" ]
enum_shutdownOnIdleMode := [ "None", "UserAbsence", "LowUsage" ]

valid {
    input.Body.properties.defaultConnectionProfile.webSshAccess == enum_connectionType[_]
    input.Body.properties.defaultConnectionProfile.webRdpAccess == enum_connectionType[_]
    input.Body.properties.defaultConnectionProfile.clientSshAccess == enum_connectionType[_]
    input.Body.properties.defaultConnectionProfile.clientRdpAccess == enum_connectionType[_]
    input.Body.properties.defaultAutoShutdownProfile.shutdownOnDisconnect == enum_enableState[_]
    input.Body.properties.defaultAutoShutdownProfile.shutdownWhenNotConnected == enum_enableState[_]
    input.Body.properties.defaultAutoShutdownProfile.shutdownOnIdle == enum_shutdownOnIdleMode[_]
    input.Body.properties.defaultAutoShutdownProfile.disconnectDelay == STRING
    input.Body.properties.defaultAutoShutdownProfile.noConnectDelay == STRING
    input.Body.properties.defaultAutoShutdownProfile.idleDelay == STRING
    input.Body.properties.defaultNetworkProfile.subnetId == STRING
    input.Body.properties.allowedRegions[_] == STRING
    input.Body.properties.sharedGalleryId == STRING
    input.Body.properties.supportInfo.url == STRING
    input.Body.properties.supportInfo.email == STRING
    input.Body.properties.supportInfo.phone == STRING
    input.Body.properties.supportInfo.instructions == STRING
    input.Body.properties.linkedLmsInstance == STRING
    input.Body.identity.type == enum_IdentityType[_]
    input.Body.tags[_] == STRING
    input.ProviderMetadata.Region == STRING
}

Labs_AddUsers

valid {
    input.Body.emailAddresses[_] == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Labs_CreateOrUpdate

enum_SkuTier := [ "Free", "Basic", "Standard", "Premium" ]
enum_VirtualMachineProfileCreateOption := [ "Image", "TemplateVM" ]
enum_connectionType := [ "Public", "Private", "None" ]
enum_enableState := [ "Enabled", "Disabled" ]
enum_shutdownOnIdleMode := [ "None", "UserAbsence", "LowUsage" ]

valid {
    input.Body.properties.networkProfile.subnetId == STRING
    input.Body.properties.networkProfile.loadBalancerId == STRING
    input.Body.properties.networkProfile.publicIpId == STRING
    input.Body.properties.autoShutdownProfile.shutdownOnDisconnect == enum_enableState[_]
    input.Body.properties.autoShutdownProfile.shutdownWhenNotConnected == enum_enableState[_]
    input.Body.properties.autoShutdownProfile.shutdownOnIdle == enum_shutdownOnIdleMode[_]
    input.Body.properties.autoShutdownProfile.disconnectDelay == STRING
    input.Body.properties.autoShutdownProfile.noConnectDelay == STRING
    input.Body.properties.autoShutdownProfile.idleDelay == STRING
    input.Body.properties.connectionProfile.webSshAccess == enum_connectionType[_]
    input.Body.properties.connectionProfile.webRdpAccess == enum_connectionType[_]
    input.Body.properties.connectionProfile.clientSshAccess == enum_connectionType[_]
    input.Body.properties.connectionProfile.clientRdpAccess == enum_connectionType[_]
    input.Body.properties.virtualMachineProfile.createOption == enum_VirtualMachineProfileCreateOption[_]
    input.Body.properties.virtualMachineProfile.imageReference.id == STRING
    input.Body.properties.virtualMachineProfile.imageReference.offer == STRING
    input.Body.properties.virtualMachineProfile.imageReference.publisher == STRING
    input.Body.properties.virtualMachineProfile.imageReference.sku == STRING
    input.Body.properties.virtualMachineProfile.imageReference.version == STRING
    input.Body.properties.virtualMachineProfile.sku.name == STRING
    input.Body.properties.virtualMachineProfile.sku.tier == enum_SkuTier[_]
    input.Body.properties.virtualMachineProfile.sku.size == STRING
    input.Body.properties.virtualMachineProfile.sku.family == STRING
    input.Body.properties.virtualMachineProfile.sku.capacity == INTEGER
    input.Body.properties.virtualMachineProfile.additionalCapabilities.installGpuDrivers == enum_enableState[_]
    input.Body.properties.virtualMachineProfile.usageQuota == STRING
    input.Body.properties.virtualMachineProfile.useSharedPassword == enum_enableState[_]
    input.Body.properties.virtualMachineProfile.adminUser.username == STRING
    input.Body.properties.virtualMachineProfile.adminUser.password == STRING
    input.Body.properties.virtualMachineProfile.nonAdminUser.username == STRING
    input.Body.properties.virtualMachineProfile.nonAdminUser.password == STRING
    input.Body.properties.securityProfile.openAccess == enum_enableState[_]
    input.Body.properties.rosterProfile.activeDirectoryGroupId == STRING
    input.Body.properties.rosterProfile.ltiContextId == STRING
    input.Body.properties.rosterProfile.lmsInstance == STRING
    input.Body.properties.rosterProfile.ltiClientId == STRING
    input.Body.properties.rosterProfile.ltiRosterEndpoint == STRING
    input.Body.properties.labPlanId == STRING
    input.Body.properties.title == STRING
    input.Body.properties.description == STRING
    input.Body.tags.STRING == STRING
    input.Body.location == STRING
    input.ProviderMetadata.Region == STRING
}

Labs_Delete

valid {
    input.ProviderMetadata.Region == STRING
}

Labs_Get

valid {
    input.ProviderMetadata.Region == STRING
}

Labs_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.Qs.$expand == STRING
    input.Qs.$filter == STRING
    input.Qs.$top == INTEGER
    input.Qs.$orderby == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Labs_ListByResourceGroup

valid {
    input.ProviderMetadata.Region == STRING
}

Labs_ListBySubscription

valid {
    input.ProviderMetadata.Region == STRING
}

Labs_Publish

valid {
    input.ProviderMetadata.Region == STRING
}

Labs_Register

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Labs_SyncGroup

valid {
    input.ProviderMetadata.Region == STRING
}

Labs_Update

enum_SkuTier := [ "Free", "Basic", "Standard", "Premium" ]
enum_VirtualMachineProfileCreateOption := [ "Image", "TemplateVM" ]
enum_connectionType := [ "Public", "Private", "None" ]
enum_enableState := [ "Enabled", "Disabled" ]
enum_shutdownOnIdleMode := [ "None", "UserAbsence", "LowUsage" ]

valid {
    input.Body.properties.autoShutdownProfile.shutdownOnDisconnect == enum_enableState[_]
    input.Body.properties.autoShutdownProfile.shutdownWhenNotConnected == enum_enableState[_]
    input.Body.properties.autoShutdownProfile.shutdownOnIdle == enum_shutdownOnIdleMode[_]
    input.Body.properties.autoShutdownProfile.disconnectDelay == STRING
    input.Body.properties.autoShutdownProfile.noConnectDelay == STRING
    input.Body.properties.autoShutdownProfile.idleDelay == STRING
    input.Body.properties.connectionProfile.webSshAccess == enum_connectionType[_]
    input.Body.properties.connectionProfile.webRdpAccess == enum_connectionType[_]
    input.Body.properties.connectionProfile.clientSshAccess == enum_connectionType[_]
    input.Body.properties.connectionProfile.clientRdpAccess == enum_connectionType[_]
    input.Body.properties.virtualMachineProfile.createOption == enum_VirtualMachineProfileCreateOption[_]
    input.Body.properties.virtualMachineProfile.imageReference.id == STRING
    input.Body.properties.virtualMachineProfile.imageReference.offer == STRING
    input.Body.properties.virtualMachineProfile.imageReference.publisher == STRING
    input.Body.properties.virtualMachineProfile.imageReference.sku == STRING
    input.Body.properties.virtualMachineProfile.imageReference.version == STRING
    input.Body.properties.virtualMachineProfile.sku.name == STRING
    input.Body.properties.virtualMachineProfile.sku.tier == enum_SkuTier[_]
    input.Body.properties.virtualMachineProfile.sku.size == STRING
    input.Body.properties.virtualMachineProfile.sku.family == STRING
    input.Body.properties.virtualMachineProfile.sku.capacity == INTEGER
    input.Body.properties.virtualMachineProfile.additionalCapabilities.installGpuDrivers == enum_enableState[_]
    input.Body.properties.virtualMachineProfile.usageQuota == STRING
    input.Body.properties.virtualMachineProfile.useSharedPassword == enum_enableState[_]
    input.Body.properties.virtualMachineProfile.adminUser.username == STRING
    input.Body.properties.virtualMachineProfile.adminUser.password == STRING
    input.Body.properties.virtualMachineProfile.nonAdminUser.username == STRING
    input.Body.properties.virtualMachineProfile.nonAdminUser.password == STRING
    input.Body.properties.securityProfile.openAccess == enum_enableState[_]
    input.Body.properties.rosterProfile.activeDirectoryGroupId == STRING
    input.Body.properties.rosterProfile.ltiContextId == STRING
    input.Body.properties.rosterProfile.lmsInstance == STRING
    input.Body.properties.rosterProfile.ltiClientId == STRING
    input.Body.properties.rosterProfile.ltiRosterEndpoint == STRING
    input.Body.properties.labPlanId == STRING
    input.Body.properties.title == STRING
    input.Body.properties.description == STRING
    input.Body.tags[_] == STRING
    input.ProviderMetadata.Region == STRING
}

OperationResults_Get

valid {
    input.ProviderMetadata.Region == STRING
}

Operations_Get

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.locationName == STRING
    input.ReqMap.operationName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Operations_List

valid {
    input.ProviderMetadata.Region == STRING
}

Schedules_CreateOrUpdate

enum_RecurrenceFrequency := [ "Daily", "Weekly" ]
enum_WeekDay := [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]

valid {
    input.Body.properties.startAt == STRING
    input.Body.properties.stopAt == STRING
    input.Body.properties.recurrencePattern.frequency == enum_RecurrenceFrequency[_]
    input.Body.properties.recurrencePattern.weekDays[_] == enum_WeekDay[_]
    input.Body.properties.recurrencePattern.interval == INTEGER
    input.Body.properties.recurrencePattern.expirationDate == STRING
    input.Body.properties.timeZoneId == STRING
    input.Body.properties.notes == STRING
    input.Body.STRING == STRING
    input.ProviderMetadata.Region == STRING
}

Schedules_Delete

valid {
    input.ProviderMetadata.Region == STRING
}

Schedules_Get

valid {
    input.ProviderMetadata.Region == STRING
}

Schedules_ListByLab

valid {
    input.ProviderMetadata.Region == STRING
}

Schedules_Update

enum_RecurrenceFrequency := [ "Daily", "Weekly" ]
enum_WeekDay := [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]

valid {
    input.Body.properties.startAt == STRING
    input.Body.properties.stopAt == STRING
    input.Body.properties.recurrencePattern.frequency == enum_RecurrenceFrequency[_]
    input.Body.properties.recurrencePattern.weekDays[_] == enum_WeekDay[_]
    input.Body.properties.recurrencePattern.interval == INTEGER
    input.Body.properties.recurrencePattern.expirationDate == STRING
    input.Body.properties.timeZoneId == STRING
    input.Body.properties.notes == STRING
    input.ProviderMetadata.Region == STRING
}

Skus_List

valid {
    input.ProviderMetadata.Region == STRING
}

Usages_ListByLocation

valid {
    input.ProviderMetadata.Region == STRING
}

Users_CreateOrUpdate

valid {
    input.Body.properties.email == STRING
    input.Body.properties.additionalUsageQuota == STRING
    input.Body.STRING == STRING
    input.ProviderMetadata.Region == STRING
}

Users_Delete

valid {
    input.ProviderMetadata.Region == STRING
}

Users_Get

valid {
    input.ProviderMetadata.Region == STRING
}

Users_Invite

valid {
    input.Body.text == STRING
    input.ProviderMetadata.Region == STRING
}

Users_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.labAccountName == STRING
    input.ReqMap.labName == STRING
    input.Qs.$expand == STRING
    input.Qs.$filter == STRING
    input.Qs.$top == INTEGER
    input.Qs.$orderby == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Users_ListByLab

valid {
    input.ProviderMetadata.Region == STRING
}

Users_Update

valid {
    input.Body.properties.additionalUsageQuota == STRING
    input.ProviderMetadata.Region == STRING
}

VirtualMachines_Get

valid {
    input.ProviderMetadata.Region == STRING
}

VirtualMachines_ListByLab

valid {
    input.ProviderMetadata.Region == STRING
}

VirtualMachines_Redeploy

valid {
    input.ProviderMetadata.Region == STRING
}

VirtualMachines_Reimage

valid {
    input.ProviderMetadata.Region == STRING
}

VirtualMachines_ResetPassword

valid {
    input.Body.username == STRING
    input.Body.password == STRING
    input.ProviderMetadata.Region == STRING
}

VirtualMachines_Start

valid {
    input.ProviderMetadata.Region == STRING
}

VirtualMachines_Stop

valid {
    input.ProviderMetadata.Region == STRING
}