COMPUTERP

AvailabilitySets_CreateOrUpdate

valid {
    input.Body.properties.platformUpdateDomainCount == INTEGER
    input.Body.properties.platformFaultDomainCount == INTEGER
    input.Body.properties.virtualMachines[_].id == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.availabilitySetName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AvailabilitySets_Delete

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

AvailabilitySets_Get

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

AvailabilitySets_List

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

AvailabilitySets_ListAvailableSizes

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

AvailabilitySets_ListBySubscription

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

AvailabilitySets_Update

valid {
    input.Body.properties.platformUpdateDomainCount == INTEGER
    input.Body.properties.platformFaultDomainCount == INTEGER
    input.Body.properties.virtualMachines[_].id == STRING
    input.Body.properties.proximityPlacementGroup.id == STRING
    input.Body.sku.name == STRING
    input.Body.sku.tier == STRING
    input.Body.sku.capacity == INTEGER
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.availabilitySetName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

CapacityReservationGroups_CreateOrUpdate

valid {
    input.Body.properties == {}
    input.Body.zones[_] == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.capacityReservationGroupName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

CapacityReservationGroups_Delete

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

CapacityReservationGroups_Get

enum_$expandParameter := [ "instanceView" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.capacityReservationGroupName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.$expand == enum_$expandParameter[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

CapacityReservationGroups_ListByResourceGroup

enum_$expandParameter := [ "virtualMachineScaleSetVMs/$ref", "virtualMachines/$ref" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$expand == enum_$expandParameter[_]
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

CapacityReservationGroups_ListBySubscription

enum_$expandParameter := [ "virtualMachineScaleSetVMs/$ref", "virtualMachines/$ref" ]

valid {
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$expand == enum_$expandParameter[_]
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

CapacityReservationGroups_Update

valid {
    input.Body.properties == {}
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.capacityReservationGroupName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

CapacityReservations_CreateOrUpdate

valid {
    input.Body.properties == {}
    input.Body.sku.name == STRING
    input.Body.sku.tier == STRING
    input.Body.sku.capacity == INTEGER
    input.Body.zones[_] == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.capacityReservationGroupName == STRING
    input.ReqMap.capacityReservationName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

CapacityReservations_Delete

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

CapacityReservations_Get

enum_$expandParameter := [ "instanceView" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.capacityReservationGroupName == STRING
    input.ReqMap.capacityReservationName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.$expand == enum_$expandParameter[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

CapacityReservations_ListByCapacityReservationGroup

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

CapacityReservations_Update

valid {
    input.Body.properties == {}
    input.Body.sku.name == STRING
    input.Body.sku.tier == STRING
    input.Body.sku.capacity == INTEGER
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.capacityReservationGroupName == STRING
    input.ReqMap.capacityReservationName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

DedicatedHostGroups_CreateOrUpdate

valid {
    input.Body.properties.platformFaultDomainCount == INTEGER
    input.Body.properties.supportAutomaticPlacement == BOOLEAN
    input.Body.zones[_] == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.hostGroupName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

DedicatedHostGroups_Delete

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

DedicatedHostGroups_Get

enum_$expandParameter := [ "instanceView" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.hostGroupName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.$expand == enum_$expandParameter[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

DedicatedHostGroups_ListByResourceGroup

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

DedicatedHostGroups_ListBySubscription

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

DedicatedHostGroups_Update

valid {
    input.Body.properties.platformFaultDomainCount == INTEGER
    input.Body.properties.supportAutomaticPlacement == BOOLEAN
    input.Body.zones[_] == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.hostGroupName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

DedicatedHosts_CreateOrUpdate

enum_DedicatedHostLicenseType := [ "None", "Windows_Server_Hybrid", "Windows_Server_Perpetual" ]

valid {
    input.Body.properties.platformFaultDomain == INTEGER
    input.Body.properties.autoReplaceOnFailure == BOOLEAN
    input.Body.properties.licenseType == enum_DedicatedHostLicenseType[_]
    input.Body.sku.name == STRING
    input.Body.sku.tier == STRING
    input.Body.sku.capacity == INTEGER
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.hostGroupName == STRING
    input.ReqMap.hostName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

DedicatedHosts_Delete

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

DedicatedHosts_Get

enum_$expandParameter := [ "instanceView" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.hostGroupName == STRING
    input.ReqMap.hostName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.$expand == enum_$expandParameter[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

DedicatedHosts_ListByHostGroup

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

DedicatedHosts_Restart

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

DedicatedHosts_Update

enum_DedicatedHostLicenseType := [ "None", "Windows_Server_Hybrid", "Windows_Server_Perpetual" ]

valid {
    input.Body.properties.platformFaultDomain == INTEGER
    input.Body.properties.autoReplaceOnFailure == BOOLEAN
    input.Body.properties.licenseType == enum_DedicatedHostLicenseType[_]
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.hostGroupName == STRING
    input.ReqMap.hostName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Images_CreateOrUpdate

enum_HyperVGenerationType := [ "V1", "V2" ]
enum_ImageDiskCaching := [ "None", "ReadOnly", "ReadWrite" ]
enum_ImageOSDiskOsState := [ "Generalized", "Specialized" ]
enum_ImageOSDiskOsType := [ "Windows", "Linux" ]
enum_StorageAccountType := [ "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS" ]

valid {
    input.Body.properties.sourceVirtualMachine.id == STRING
    input.Body.properties.storageProfile.osDisk.osType == enum_ImageOSDiskOsType[_]
    input.Body.properties.storageProfile.osDisk.osState == enum_ImageOSDiskOsState[_]
    input.Body.properties.storageProfile.osDisk.snapshot.id == STRING
    input.Body.properties.storageProfile.osDisk.managedDisk.id == STRING
    input.Body.properties.storageProfile.osDisk.blobUri == STRING
    input.Body.properties.storageProfile.osDisk.caching == enum_ImageDiskCaching[_]
    input.Body.properties.storageProfile.osDisk.diskSizeGB == INTEGER
    input.Body.properties.storageProfile.osDisk.storageAccountType == enum_StorageAccountType[_]
    input.Body.properties.storageProfile.osDisk.diskEncryptionSet.id == STRING
    input.Body.properties.storageProfile.dataDisks[_].lun == INTEGER
    input.Body.properties.storageProfile.dataDisks[_].snapshot.id == STRING
    input.Body.properties.storageProfile.dataDisks[_].managedDisk.id == STRING
    input.Body.properties.storageProfile.dataDisks[_].blobUri == STRING
    input.Body.properties.storageProfile.dataDisks[_].caching == enum_ImageDiskCaching[_]
    input.Body.properties.storageProfile.dataDisks[_].diskSizeGB == INTEGER
    input.Body.properties.storageProfile.dataDisks[_].storageAccountType == enum_StorageAccountType[_]
    input.Body.properties.storageProfile.dataDisks[_].diskEncryptionSet == {}
    input.Body.properties.storageProfile.zoneResilient == BOOLEAN
    input.Body.properties.hyperVGeneration == enum_HyperVGenerationType[_]
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.imageName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Images_Delete

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

Images_Get

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

Images_List

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

Images_ListByResourceGroup

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

Images_Update

enum_HyperVGenerationType := [ "V1", "V2" ]
enum_ImageOSDiskOsState := [ "Generalized", "Specialized" ]
enum_ImageOSDiskOsType := [ "Windows", "Linux" ]

valid {
    input.Body.properties.sourceVirtualMachine.id == STRING
    input.Body.properties.storageProfile.osDisk.osType == enum_ImageOSDiskOsType[_]
    input.Body.properties.storageProfile.osDisk.osState == enum_ImageOSDiskOsState[_]
    input.Body.properties.storageProfile.dataDisks[_].lun == INTEGER
    input.Body.properties.storageProfile.zoneResilient == BOOLEAN
    input.Body.properties.hyperVGeneration == enum_HyperVGenerationType[_]
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.imageName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LogAnalytics_ExportRequestRateByInterval

enum_RequestRateByIntervalInputIntervalLength := [ "ThreeMins", "FiveMins", "ThirtyMins", "SixtyMins" ]

valid {
    input.Body.intervalLength == enum_RequestRateByIntervalInputIntervalLength[_]
    input.Body.blobContainerSasUri == STRING
    input.Body.fromTime == STRING
    input.Body.toTime == STRING
    input.Body.groupByThrottlePolicy == BOOLEAN
    input.Body.groupByOperationName == BOOLEAN
    input.Body.groupByResourceName == BOOLEAN
    input.Body.groupByClientApplicationId == BOOLEAN
    input.Body.groupByUserAgent == BOOLEAN
    input.ReqMap.location == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

LogAnalytics_ExportThrottledRequests

valid {
    input.Body.blobContainerSasUri == STRING
    input.Body.fromTime == STRING
    input.Body.toTime == STRING
    input.Body.groupByThrottlePolicy == BOOLEAN
    input.Body.groupByOperationName == BOOLEAN
    input.Body.groupByResourceName == BOOLEAN
    input.Body.groupByClientApplicationId == BOOLEAN
    input.Body.groupByUserAgent == BOOLEAN
    input.ReqMap.location == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Operations_List

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

ProximityPlacementGroups_CreateOrUpdate

enum_InstanceViewStatusLevel := [ "Info", "Warning", "Error" ]
enum_ProximityPlacementGroupPropertiesProximityPlacementGroupType := [ "Standard", "Ultra" ]

valid {
    input.Body.properties.proximityPlacementGroupType == enum_ProximityPlacementGroupPropertiesProximityPlacementGroupType[_]
    input.Body.properties.colocationStatus.code == STRING
    input.Body.properties.colocationStatus.level == enum_InstanceViewStatusLevel[_]
    input.Body.properties.colocationStatus.displayStatus == STRING
    input.Body.properties.colocationStatus.message == STRING
    input.Body.properties.colocationStatus.time == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.proximityPlacementGroupName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ProximityPlacementGroups_Delete

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

ProximityPlacementGroups_Get

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

ProximityPlacementGroups_ListByResourceGroup

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

ProximityPlacementGroups_ListBySubscription

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

ProximityPlacementGroups_Update

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

RestorePointCollections_CreateOrUpdate

valid {
    input.Body.properties.source.id == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.restorePointCollectionName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

RestorePointCollections_Delete

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

RestorePointCollections_Get

enum_$expandParameter := [ "restorePoints" ]

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.restorePointCollectionName == STRING
    input.Qs.$expand == enum_$expandParameter[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

RestorePointCollections_List

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

RestorePointCollections_ListAll

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

RestorePointCollections_Update

valid {
    input.Body.properties.source.id == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.restorePointCollectionName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

RestorePoints_Create

valid {
    input.Body.properties.excludeDisks[_].id == STRING
    input.Body.properties.timeCreated == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.restorePointCollectionName == STRING
    input.ReqMap.restorePointName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

RestorePoints_Delete

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

RestorePoints_Get

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

SshPublicKeys_Create

valid {
    input.Body.properties.publicKey == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.sshPublicKeyName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

SshPublicKeys_Delete

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

SshPublicKeys_GenerateKeyPair

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

SshPublicKeys_Get

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

SshPublicKeys_ListByResourceGroup

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

SshPublicKeys_ListBySubscription

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

SshPublicKeys_Update

valid {
    input.Body.properties.publicKey == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.sshPublicKeyName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Usage_List

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

VirtualMachineExtensionImages_Get

valid {
    input.ReqMap.location == STRING
    input.ReqMap.publisherName == STRING
    input.ReqMap.type == STRING
    input.ReqMap.version == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

VirtualMachineExtensionImages_ListTypes

valid {
    input.ReqMap.location == STRING
    input.ReqMap.publisherName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

VirtualMachineExtensionImages_ListVersions

valid {
    input.ReqMap.location == STRING
    input.ReqMap.publisherName == STRING
    input.ReqMap.type == STRING
    input.ReqMap.SubscriptionID == 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
}

VirtualMachineExtensions_CreateOrUpdate

enum_InstanceViewStatusLevel := [ "Info", "Warning", "Error" ]

valid {
    input.Body.properties.forceUpdateTag == STRING
    input.Body.properties.publisher == STRING
    input.Body.properties.type == STRING
    input.Body.properties.typeHandlerVersion == STRING
    input.Body.properties.autoUpgradeMinorVersion == BOOLEAN
    input.Body.properties.settings.STRING == STRING
    input.Body.properties.protectedSettings.STRING == STRING
    input.Body.properties.instanceView.name == STRING
    input.Body.properties.instanceView.type == STRING
    input.Body.properties.instanceView.typeHandlerVersion == STRING
    input.Body.properties.instanceView.substatuses[_].code == STRING
    input.Body.properties.instanceView.substatuses[_].level == enum_InstanceViewStatusLevel[_]
    input.Body.properties.instanceView.substatuses[_].displayStatus == STRING
    input.Body.properties.instanceView.substatuses[_].message == STRING
    input.Body.properties.instanceView.substatuses[_].time == STRING
    input.Body.properties.instanceView.statuses[_].code == STRING
    input.Body.properties.instanceView.statuses[_].level == enum_InstanceViewStatusLevel[_]
    input.Body.properties.instanceView.statuses[_].displayStatus == STRING
    input.Body.properties.instanceView.statuses[_].message == STRING
    input.Body.properties.instanceView.statuses[_].time == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmName == STRING
    input.ReqMap.vmExtensionName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineExtensions_Delete

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

VirtualMachineExtensions_Get

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

VirtualMachineExtensions_List

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

VirtualMachineExtensions_Update

valid {
    input.Body.properties.forceUpdateTag == STRING
    input.Body.properties.publisher == STRING
    input.Body.properties.type == STRING
    input.Body.properties.typeHandlerVersion == STRING
    input.Body.properties.autoUpgradeMinorVersion == BOOLEAN
    input.Body.properties.settings.STRING == STRING
    input.Body.properties.protectedSettings.STRING == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmName == STRING
    input.ReqMap.vmExtensionName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineImagesEdgeZone_Get

valid {
    input.ReqMap.location == STRING
    input.ReqMap.edgeZone == STRING
    input.ReqMap.publisherName == STRING
    input.ReqMap.offer == STRING
    input.ReqMap.skus == STRING
    input.ReqMap.version == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

VirtualMachineImagesEdgeZone_List

valid {
    input.ReqMap.location == STRING
    input.ReqMap.edgeZone == STRING
    input.ReqMap.publisherName == STRING
    input.ReqMap.offer == STRING
    input.ReqMap.skus == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.$expand == STRING
    input.Qs.$top == INTEGER
    input.Qs.$orderby == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

VirtualMachineImagesEdgeZone_ListOffers

valid {
    input.ReqMap.location == STRING
    input.ReqMap.edgeZone == STRING
    input.ReqMap.publisherName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

VirtualMachineImagesEdgeZone_ListPublishers

valid {
    input.ReqMap.location == STRING
    input.ReqMap.edgeZone == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

VirtualMachineImagesEdgeZone_ListSkus

valid {
    input.ReqMap.location == STRING
    input.ReqMap.edgeZone == STRING
    input.ReqMap.publisherName == STRING
    input.ReqMap.offer == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

VirtualMachineImages_Get

valid {
    input.ReqMap.location == STRING
    input.ReqMap.publisherName == STRING
    input.ReqMap.offer == STRING
    input.ReqMap.skus == STRING
    input.ReqMap.version == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

VirtualMachineImages_List

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

VirtualMachineImages_ListByEdgeZone

valid {
    input.ReqMap.location == STRING
    input.ReqMap.edgeZone == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

VirtualMachineImages_ListOffers

valid {
    input.ReqMap.location == STRING
    input.ReqMap.publisherName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

VirtualMachineImages_ListPublishers

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

VirtualMachineImages_ListSkus

valid {
    input.ReqMap.location == STRING
    input.ReqMap.publisherName == STRING
    input.ReqMap.offer == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

VirtualMachineRunCommands_CreateOrUpdate

valid {
    input.Body.properties.source.script == STRING
    input.Body.properties.source.scriptUri == STRING
    input.Body.properties.source.commandId == STRING
    input.Body.properties.parameters[_].name == STRING
    input.Body.properties.parameters[_].value == STRING
    input.Body.properties.protectedParameters[_].name == STRING
    input.Body.properties.protectedParameters[_].value == STRING
    input.Body.properties.asyncExecution == BOOLEAN
    input.Body.properties.runAsUser == STRING
    input.Body.properties.runAsPassword == STRING
    input.Body.properties.timeoutInSeconds == INTEGER
    input.Body.properties.outputBlobUri == STRING
    input.Body.properties.errorBlobUri == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmName == STRING
    input.ReqMap.runCommandName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineRunCommands_Delete

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

VirtualMachineRunCommands_Get

valid {
    input.ReqMap.location == STRING
    input.ReqMap.commandId == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

VirtualMachineRunCommands_GetByVirtualMachine

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

VirtualMachineRunCommands_List

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

VirtualMachineRunCommands_ListByVirtualMachine

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

VirtualMachineRunCommands_Update

valid {
    input.Body.properties.source.script == STRING
    input.Body.properties.source.scriptUri == STRING
    input.Body.properties.source.commandId == STRING
    input.Body.properties.parameters[_].name == STRING
    input.Body.properties.parameters[_].value == STRING
    input.Body.properties.protectedParameters[_].name == STRING
    input.Body.properties.protectedParameters[_].value == STRING
    input.Body.properties.asyncExecution == BOOLEAN
    input.Body.properties.runAsUser == STRING
    input.Body.properties.runAsPassword == STRING
    input.Body.properties.timeoutInSeconds == INTEGER
    input.Body.properties.outputBlobUri == STRING
    input.Body.properties.errorBlobUri == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmName == STRING
    input.ReqMap.runCommandName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSetExtensions_CreateOrUpdate

valid {
    input.Body.name == STRING
    input.Body.properties.forceUpdateTag == STRING
    input.Body.properties.publisher == STRING
    input.Body.properties.type == STRING
    input.Body.properties.typeHandlerVersion == STRING
    input.Body.properties.autoUpgradeMinorVersion == BOOLEAN
    input.Body.properties.enableAutomaticUpgrade == BOOLEAN
    input.Body.properties.settings.STRING == STRING
    input.Body.properties.protectedSettings.STRING == STRING
    input.Body.properties.provisionAfterExtensions[_] == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmScaleSetName == STRING
    input.ReqMap.vmssExtensionName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSetExtensions_Delete

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

VirtualMachineScaleSetExtensions_Get

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

VirtualMachineScaleSetExtensions_List

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

VirtualMachineScaleSetExtensions_Update

valid {
    input.Body.properties.forceUpdateTag == STRING
    input.Body.properties.publisher == STRING
    input.Body.properties.type == STRING
    input.Body.properties.typeHandlerVersion == STRING
    input.Body.properties.autoUpgradeMinorVersion == BOOLEAN
    input.Body.properties.enableAutomaticUpgrade == BOOLEAN
    input.Body.properties.settings.STRING == STRING
    input.Body.properties.protectedSettings.STRING == STRING
    input.Body.properties.provisionAfterExtensions[_] == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmScaleSetName == STRING
    input.ReqMap.vmssExtensionName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSetRollingUpgrades_Cancel

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

VirtualMachineScaleSetRollingUpgrades_GetLatest

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

VirtualMachineScaleSetRollingUpgrades_StartExtensionUpgrade

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

VirtualMachineScaleSetRollingUpgrades_StartOSUpgrade

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

VirtualMachineScaleSetVMExtensions_CreateOrUpdate

enum_InstanceViewStatusLevel := [ "Info", "Warning", "Error" ]

valid {
    input.Body.properties.forceUpdateTag == STRING
    input.Body.properties.publisher == STRING
    input.Body.properties.type == STRING
    input.Body.properties.typeHandlerVersion == STRING
    input.Body.properties.autoUpgradeMinorVersion == BOOLEAN
    input.Body.properties.enableAutomaticUpgrade == BOOLEAN
    input.Body.properties.settings.STRING == STRING
    input.Body.properties.protectedSettings.STRING == STRING
    input.Body.properties.instanceView.name == STRING
    input.Body.properties.instanceView.type == STRING
    input.Body.properties.instanceView.typeHandlerVersion == STRING
    input.Body.properties.instanceView.substatuses[_].code == STRING
    input.Body.properties.instanceView.substatuses[_].level == enum_InstanceViewStatusLevel[_]
    input.Body.properties.instanceView.substatuses[_].displayStatus == STRING
    input.Body.properties.instanceView.substatuses[_].message == STRING
    input.Body.properties.instanceView.substatuses[_].time == STRING
    input.Body.properties.instanceView.statuses[_].code == STRING
    input.Body.properties.instanceView.statuses[_].level == enum_InstanceViewStatusLevel[_]
    input.Body.properties.instanceView.statuses[_].displayStatus == STRING
    input.Body.properties.instanceView.statuses[_].message == STRING
    input.Body.properties.instanceView.statuses[_].time == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmScaleSetName == STRING
    input.ReqMap.instanceId == STRING
    input.ReqMap.vmExtensionName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSetVMExtensions_Delete

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

VirtualMachineScaleSetVMExtensions_Get

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

VirtualMachineScaleSetVMExtensions_List

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

VirtualMachineScaleSetVMExtensions_Update

valid {
    input.Body.properties.forceUpdateTag == STRING
    input.Body.properties.publisher == STRING
    input.Body.properties.type == STRING
    input.Body.properties.typeHandlerVersion == STRING
    input.Body.properties.autoUpgradeMinorVersion == BOOLEAN
    input.Body.properties.enableAutomaticUpgrade == BOOLEAN
    input.Body.properties.settings.STRING == STRING
    input.Body.properties.protectedSettings.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmScaleSetName == STRING
    input.ReqMap.instanceId == STRING
    input.ReqMap.vmExtensionName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSetVMRunCommands_CreateOrUpdate

valid {
    input.Body.properties.source.script == STRING
    input.Body.properties.source.scriptUri == STRING
    input.Body.properties.source.commandId == STRING
    input.Body.properties.parameters[_].name == STRING
    input.Body.properties.parameters[_].value == STRING
    input.Body.properties.protectedParameters[_].name == STRING
    input.Body.properties.protectedParameters[_].value == STRING
    input.Body.properties.asyncExecution == BOOLEAN
    input.Body.properties.runAsUser == STRING
    input.Body.properties.runAsPassword == STRING
    input.Body.properties.timeoutInSeconds == INTEGER
    input.Body.properties.outputBlobUri == STRING
    input.Body.properties.errorBlobUri == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmScaleSetName == STRING
    input.ReqMap.instanceId == STRING
    input.ReqMap.runCommandName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSetVMRunCommands_Delete

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

VirtualMachineScaleSetVMRunCommands_Get

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

VirtualMachineScaleSetVMRunCommands_List

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

VirtualMachineScaleSetVMRunCommands_Update

valid {
    input.Body.properties.source.script == STRING
    input.Body.properties.source.scriptUri == STRING
    input.Body.properties.source.commandId == STRING
    input.Body.properties.parameters[_].name == STRING
    input.Body.properties.parameters[_].value == STRING
    input.Body.properties.protectedParameters[_].name == STRING
    input.Body.properties.protectedParameters[_].value == STRING
    input.Body.properties.asyncExecution == BOOLEAN
    input.Body.properties.runAsUser == STRING
    input.Body.properties.runAsPassword == STRING
    input.Body.properties.timeoutInSeconds == INTEGER
    input.Body.properties.outputBlobUri == STRING
    input.Body.properties.errorBlobUri == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmScaleSetName == STRING
    input.ReqMap.instanceId == STRING
    input.ReqMap.runCommandName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSetVMs_Deallocate

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

VirtualMachineScaleSetVMs_Delete

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

VirtualMachineScaleSetVMs_Get

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

VirtualMachineScaleSetVMs_GetInstanceView

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

VirtualMachineScaleSetVMs_List

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

VirtualMachineScaleSetVMs_PerformMaintenance

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

VirtualMachineScaleSetVMs_PowerOff

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

VirtualMachineScaleSetVMs_Redeploy

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

VirtualMachineScaleSetVMs_Reimage

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

VirtualMachineScaleSetVMs_ReimageAll

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

VirtualMachineScaleSetVMs_Restart

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

VirtualMachineScaleSetVMs_RetrieveBootDiagnosticsData

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmScaleSetName == STRING
    input.ReqMap.instanceId == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.sasUriExpirationTimeInMinutes == INTEGER
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSetVMs_RunCommand

valid {
    input.Body.commandId == STRING
    input.Body.script[_] == STRING
    input.Body.parameters[_].name == STRING
    input.Body.parameters[_].value == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmScaleSetName == STRING
    input.ReqMap.instanceId == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSetVMs_SimulateEviction

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

VirtualMachineScaleSetVMs_Start

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

VirtualMachineScaleSetVMs_Update

enum_AdditionalUnattendContentComponentName := [ "Microsoft-Windows-Shell-Setup" ]
enum_AdditionalUnattendContentPassName := [ "OobeSystem" ]
enum_AdditionalUnattendContentSettingName := [ "AutoLogon", "FirstLogonCommands" ]
enum_Caching := [ "None", "ReadOnly", "ReadWrite" ]
enum_CreateOption := [ "FromImage", "Empty", "Attach" ]
enum_DiffDiskOption := [ "Local" ]
enum_DiffDiskPlacement := [ "CacheDisk", "ResourceDisk" ]
enum_HardwareProfileVmSize := [ "Basic_A0", "Basic_A1", "Basic_A2", "Basic_A3", "Basic_A4", "Standard_A0", "Standard_A1", "Standard_A2", "Standard_A3", "Standard_A4", "Standard_A5", "Standard_A6", "Standard_A7", "Standard_A8", "Standard_A9", "Standard_A10", "Standard_A11", "Standard_A1_v2", "Standard_A2_v2", "Standard_A4_v2", "Standard_A8_v2", "Standard_A2m_v2", "Standard_A4m_v2", "Standard_A8m_v2", "Standard_B1s", "Standard_B1ms", "Standard_B2s", "Standard_B2ms", "Standard_B4ms", "Standard_B8ms", "Standard_D1", "Standard_D2", "Standard_D3", "Standard_D4", "Standard_D11", "Standard_D12", "Standard_D13", "Standard_D14", "Standard_D1_v2", "Standard_D2_v2", "Standard_D3_v2", "Standard_D4_v2", "Standard_D5_v2", "Standard_D2_v3", "Standard_D4_v3", "Standard_D8_v3", "Standard_D16_v3", "Standard_D32_v3", "Standard_D64_v3", "Standard_D2s_v3", "Standard_D4s_v3", "Standard_D8s_v3", "Standard_D16s_v3", "Standard_D32s_v3", "Standard_D64s_v3", "Standard_D11_v2", "Standard_D12_v2", "Standard_D13_v2", "Standard_D14_v2", "Standard_D15_v2", "Standard_DS1", "Standard_DS2", "Standard_DS3", "Standard_DS4", "Standard_DS11", "Standard_DS12", "Standard_DS13", "Standard_DS14", "Standard_DS1_v2", "Standard_DS2_v2", "Standard_DS3_v2", "Standard_DS4_v2", "Standard_DS5_v2", "Standard_DS11_v2", "Standard_DS12_v2", "Standard_DS13_v2", "Standard_DS14_v2", "Standard_DS15_v2", "Standard_DS13-4_v2", "Standard_DS13-2_v2", "Standard_DS14-8_v2", "Standard_DS14-4_v2", "Standard_E2_v3", "Standard_E4_v3", "Standard_E8_v3", "Standard_E16_v3", "Standard_E32_v3", "Standard_E64_v3", "Standard_E2s_v3", "Standard_E4s_v3", "Standard_E8s_v3", "Standard_E16s_v3", "Standard_E32s_v3", "Standard_E64s_v3", "Standard_E32-16_v3", "Standard_E32-8s_v3", "Standard_E64-32s_v3", "Standard_E64-16s_v3", "Standard_F1", "Standard_F2", "Standard_F4", "Standard_F8", "Standard_F16", "Standard_F1s", "Standard_F2s", "Standard_F4s", "Standard_F8s", "Standard_F16s", "Standard_F2s_v2", "Standard_F4s_v2", "Standard_F8s_v2", "Standard_F16s_v2", "Standard_F32s_v2", "Standard_F64s_v2", "Standard_F72s_v2", "Standard_G1", "Standard_G2", "Standard_G3", "Standard_G4", "Standard_G5", "Standard_GS1", "Standard_GS2", "Standard_GS3", "Standard_GS4", "Standard_GS5", "Standard_GS4-8", "Standard_GS4-4", "Standard_GS5-16", "Standard_GS5-8", "Standard_H8", "Standard_H16", "Standard_H8m", "Standard_H16m", "Standard_H16r", "Standard_H16mr", "Standard_L4s", "Standard_L8s", "Standard_L16s", "Standard_L32s", "Standard_M64s", "Standard_M64ms", "Standard_M128s", "Standard_M128ms", "Standard_M64-32ms", "Standard_M64-16ms", "Standard_M128-64ms", "Standard_M128-32ms", "Standard_NC6", "Standard_NC12", "Standard_NC24", "Standard_NC24r", "Standard_NC6s_v2", "Standard_NC12s_v2", "Standard_NC24s_v2", "Standard_NC24rs_v2", "Standard_NC6s_v3", "Standard_NC12s_v3", "Standard_NC24s_v3", "Standard_NC24rs_v3", "Standard_ND6s", "Standard_ND12s", "Standard_ND24s", "Standard_ND24rs", "Standard_NV6", "Standard_NV12", "Standard_NV24" ]
enum_OSDiskOsType := [ "Windows", "Linux" ]
enum_PatchSettingsPatchMode := [ "Manual", "AutomaticByOS", "AutomaticByPlatform" ]
enum_StorageAccountType := [ "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS" ]
enum_VirtualMachineScaleSetIPConfigurationPropertiesPrivateIPAddressVersion := [ "IPv4", "IPv6" ]
enum_VirtualMachineScaleSetPublicIPAddressConfigurationPropertiesPublicIPAddressVersion := [ "IPv4", "IPv6" ]
enum_WinRMListenerProtocol := [ "Http", "Https" ]

valid {
    input.Body.properties.hardwareProfile.vmSize == enum_HardwareProfileVmSize[_]
    input.Body.properties.storageProfile.imageReference.publisher == STRING
    input.Body.properties.storageProfile.imageReference.offer == STRING
    input.Body.properties.storageProfile.imageReference.sku == STRING
    input.Body.properties.storageProfile.imageReference.version == STRING
    input.Body.properties.storageProfile.osDisk.osType == enum_OSDiskOsType[_]
    input.Body.properties.storageProfile.osDisk.encryptionSettings.diskEncryptionKey.secretUrl == STRING
    input.Body.properties.storageProfile.osDisk.encryptionSettings.diskEncryptionKey.sourceVault.id == STRING
    input.Body.properties.storageProfile.osDisk.encryptionSettings.keyEncryptionKey.keyUrl == STRING
    input.Body.properties.storageProfile.osDisk.encryptionSettings.keyEncryptionKey.sourceVault.id == STRING
    input.Body.properties.storageProfile.osDisk.encryptionSettings.enabled == BOOLEAN
    input.Body.properties.storageProfile.osDisk.name == STRING
    input.Body.properties.storageProfile.osDisk.vhd.uri == STRING
    input.Body.properties.storageProfile.osDisk.image.uri == STRING
    input.Body.properties.storageProfile.osDisk.caching == enum_Caching[_]
    input.Body.properties.storageProfile.osDisk.writeAcceleratorEnabled == BOOLEAN
    input.Body.properties.storageProfile.osDisk.diffDiskSettings.option == enum_DiffDiskOption[_]
    input.Body.properties.storageProfile.osDisk.diffDiskSettings.placement == enum_DiffDiskPlacement[_]
    input.Body.properties.storageProfile.osDisk.createOption == enum_CreateOption[_]
    input.Body.properties.storageProfile.osDisk.diskSizeGB == INTEGER
    input.Body.properties.storageProfile.osDisk.managedDisk.storageAccountType == enum_StorageAccountType[_]
    input.Body.properties.storageProfile.osDisk.managedDisk.diskEncryptionSet == {}
    input.Body.properties.storageProfile.dataDisks[_].lun == INTEGER
    input.Body.properties.storageProfile.dataDisks[_].name == STRING
    input.Body.properties.storageProfile.dataDisks[_].vhd.uri == STRING
    input.Body.properties.storageProfile.dataDisks[_].image.uri == STRING
    input.Body.properties.storageProfile.dataDisks[_].caching == enum_Caching[_]
    input.Body.properties.storageProfile.dataDisks[_].writeAcceleratorEnabled == BOOLEAN
    input.Body.properties.storageProfile.dataDisks[_].createOption == enum_CreateOption[_]
    input.Body.properties.storageProfile.dataDisks[_].diskSizeGB == INTEGER
    input.Body.properties.storageProfile.dataDisks[_].managedDisk.storageAccountType == enum_StorageAccountType[_]
    input.Body.properties.storageProfile.dataDisks[_].managedDisk.diskEncryptionSet == {}
    input.Body.properties.storageProfile.dataDisks[_].toBeDetached == BOOLEAN
    input.Body.properties.additionalCapabilities.ultraSSDEnabled == BOOLEAN
    input.Body.properties.osProfile.computerName == STRING
    input.Body.properties.osProfile.adminUsername == STRING
    input.Body.properties.osProfile.adminPassword == STRING
    input.Body.properties.osProfile.customData == STRING
    input.Body.properties.osProfile.windowsConfiguration.provisionVMAgent == BOOLEAN
    input.Body.properties.osProfile.windowsConfiguration.enableAutomaticUpdates == BOOLEAN
    input.Body.properties.osProfile.windowsConfiguration.timeZone == STRING
    input.Body.properties.osProfile.windowsConfiguration.additionalUnattendContent[_].passName == enum_AdditionalUnattendContentPassName[_]
    input.Body.properties.osProfile.windowsConfiguration.additionalUnattendContent[_].componentName == enum_AdditionalUnattendContentComponentName[_]
    input.Body.properties.osProfile.windowsConfiguration.additionalUnattendContent[_].settingName == enum_AdditionalUnattendContentSettingName[_]
    input.Body.properties.osProfile.windowsConfiguration.additionalUnattendContent[_].content == STRING
    input.Body.properties.osProfile.windowsConfiguration.patchSettings.patchMode == enum_PatchSettingsPatchMode[_]
    input.Body.properties.osProfile.windowsConfiguration.winRM.listeners[_].protocol == enum_WinRMListenerProtocol[_]
    input.Body.properties.osProfile.windowsConfiguration.winRM.listeners[_].certificateUrl == STRING
    input.Body.properties.osProfile.linuxConfiguration.disablePasswordAuthentication == BOOLEAN
    input.Body.properties.osProfile.linuxConfiguration.ssh.publicKeys[_].path == STRING
    input.Body.properties.osProfile.linuxConfiguration.ssh.publicKeys[_].keyData == STRING
    input.Body.properties.osProfile.linuxConfiguration.provisionVMAgent == BOOLEAN
    input.Body.properties.osProfile.secrets[_].sourceVault.id == STRING
    input.Body.properties.osProfile.secrets[_].vaultCertificates[_].certificateUrl == STRING
    input.Body.properties.osProfile.secrets[_].vaultCertificates[_].certificateStore == STRING
    input.Body.properties.osProfile.allowExtensionOperations == BOOLEAN
    input.Body.properties.osProfile.requireGuestProvisionSignal == BOOLEAN
    input.Body.properties.securityProfile.encryptionAtHost == BOOLEAN
    input.Body.properties.networkProfile.networkInterfaces[_].properties.primary == BOOLEAN
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].name == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.primary == BOOLEAN
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.enableAcceleratedNetworking == BOOLEAN
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.enableFpga == BOOLEAN
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.networkSecurityGroup.id == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.dnsSettings.dnsServers[_] == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].name == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.subnet.id == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.primary == BOOLEAN
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.publicIPAddressConfiguration.name == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.publicIPAddressConfiguration.properties.idleTimeoutInMinutes == INTEGER
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.publicIPAddressConfiguration.properties.dnsSettings.domainNameLabel == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.publicIPAddressConfiguration.properties.ipTags[_].ipTagType == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.publicIPAddressConfiguration.properties.ipTags[_].tag == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.publicIPAddressConfiguration.properties.publicIPPrefix.id == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.publicIPAddressConfiguration.properties.publicIPAddressVersion == enum_VirtualMachineScaleSetPublicIPAddressConfigurationPropertiesPublicIPAddressVersion[_]
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.privateIPAddressVersion == enum_VirtualMachineScaleSetIPConfigurationPropertiesPrivateIPAddressVersion[_]
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.applicationGatewayBackendAddressPools[_].id == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.applicationSecurityGroups[_].id == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.loadBalancerBackendAddressPools[_].id == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.loadBalancerInboundNatPools[_].id == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.ipConfigurations[_].id == STRING
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].properties.enableIPForwarding == BOOLEAN
    input.Body.properties.networkProfileConfiguration.networkInterfaceConfigurations[_].id == STRING
    input.Body.properties.diagnosticsProfile.bootDiagnostics.enabled == BOOLEAN
    input.Body.properties.diagnosticsProfile.bootDiagnostics.storageUri == STRING
    input.Body.properties.availabilitySet.id == STRING
    input.Body.properties.licenseType == STRING
    input.Body.properties.protectionPolicy.protectFromScaleIn == BOOLEAN
    input.Body.properties.protectionPolicy.protectFromScaleSetActions == BOOLEAN
    input.Body.plan.name == STRING
    input.Body.plan.publisher == STRING
    input.Body.plan.product == STRING
    input.Body.plan.promotionCode == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmScaleSetName == STRING
    input.ReqMap.instanceId == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSets_ConvertToSinglePlacementGroup

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

VirtualMachineScaleSets_CreateOrUpdate

enum_AdditionalUnattendContentComponentName := [ "Microsoft-Windows-Shell-Setup" ]
enum_AdditionalUnattendContentPassName := [ "OobeSystem" ]
enum_AdditionalUnattendContentSettingName := [ "AutoLogon", "FirstLogonCommands" ]
enum_Caching := [ "None", "ReadOnly", "ReadWrite" ]
enum_CreateOption := [ "FromImage", "Empty", "Attach" ]
enum_UpgradePolicyMode := [ "Automatic", "Manual" ]
enum_VirtualMachineScaleSetOSDiskOsType := [ "Windows", "Linux" ]
enum_WinRMListenerProtocol := [ "Http", "Https" ]

valid {
    input.Body.sku.name == STRING
    input.Body.sku.tier == STRING
    input.Body.sku.capacity == INTEGER
    input.Body.properties.upgradePolicy.mode == enum_UpgradePolicyMode[_]
    input.Body.properties.virtualMachineProfile.osProfile.computerNamePrefix == STRING
    input.Body.properties.virtualMachineProfile.osProfile.adminUsername == STRING
    input.Body.properties.virtualMachineProfile.osProfile.adminPassword == STRING
    input.Body.properties.virtualMachineProfile.osProfile.customData == STRING
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.provisionVMAgent == BOOLEAN
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.enableAutomaticUpdates == BOOLEAN
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.timeZone == STRING
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.additionalUnattendContent[_].passName == enum_AdditionalUnattendContentPassName[_]
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.additionalUnattendContent[_].componentName == enum_AdditionalUnattendContentComponentName[_]
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.additionalUnattendContent[_].settingName == enum_AdditionalUnattendContentSettingName[_]
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.additionalUnattendContent[_].content == STRING
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.winRM.listeners[_].protocol == enum_WinRMListenerProtocol[_]
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.winRM.listeners[_].certificateUrl == STRING
    input.Body.properties.virtualMachineProfile.osProfile.linuxConfiguration.disablePasswordAuthentication == BOOLEAN
    input.Body.properties.virtualMachineProfile.osProfile.linuxConfiguration.ssh.publicKeys[_].path == STRING
    input.Body.properties.virtualMachineProfile.osProfile.linuxConfiguration.ssh.publicKeys[_].keyData == STRING
    input.Body.properties.virtualMachineProfile.osProfile.secrets[_].sourceVault.id == STRING
    input.Body.properties.virtualMachineProfile.osProfile.secrets[_].vaultCertificates[_].certificateUrl == STRING
    input.Body.properties.virtualMachineProfile.osProfile.secrets[_].vaultCertificates[_].certificateStore == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.imageReference.publisher == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.imageReference.offer == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.imageReference.sku == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.imageReference.version == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.name == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.caching == enum_Caching[_]
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.createOption == enum_CreateOption[_]
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.osType == enum_VirtualMachineScaleSetOSDiskOsType[_]
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.image.uri == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.vhdContainers[_] == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].name == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.primary == BOOLEAN
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].name == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.subnet.id == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.loadBalancerBackendAddressPools[_].id == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.loadBalancerInboundNatPools[_].id == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].id == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].id == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].name == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.publisher == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.type == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.typeHandlerVersion == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.autoUpgradeMinorVersion == BOOLEAN
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.settings.STRING == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.protectedSettings.STRING == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].id == STRING
    input.Body.properties.provisioningState == STRING
    input.Body.properties.overProvision == BOOLEAN
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmScaleSetName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSets_Deallocate

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

VirtualMachineScaleSets_Delete

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

VirtualMachineScaleSets_DeleteInstances

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

VirtualMachineScaleSets_ForceRecoveryServiceFabricPlatformUpdateDomainWalk

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

VirtualMachineScaleSets_Get

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

VirtualMachineScaleSets_GetInstanceView

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

VirtualMachineScaleSets_GetOSUpgradeHistory

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

VirtualMachineScaleSets_List

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

VirtualMachineScaleSets_ListAll

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

VirtualMachineScaleSets_ListByLocation

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

VirtualMachineScaleSets_ListSkus

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

VirtualMachineScaleSets_PerformMaintenance

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

VirtualMachineScaleSets_PowerOff

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

VirtualMachineScaleSets_Redeploy

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

VirtualMachineScaleSets_Reimage

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

VirtualMachineScaleSets_ReimageAll

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

VirtualMachineScaleSets_Restart

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

VirtualMachineScaleSets_SetOrchestrationServiceState

enum_OrchestrationServiceStateInputAction := [ "Resume", "Suspend" ]
enum_OrchestrationServiceStateInputServiceName := [ "AutomaticRepairs" ]

valid {
    input.Body.serviceName == enum_OrchestrationServiceStateInputServiceName[_]
    input.Body.action == enum_OrchestrationServiceStateInputAction[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmScaleSetName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSets_Start

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

VirtualMachineScaleSets_Update

enum_AdditionalUnattendContentComponentName := [ "Microsoft-Windows-Shell-Setup" ]
enum_AdditionalUnattendContentPassName := [ "OobeSystem" ]
enum_AdditionalUnattendContentSettingName := [ "AutoLogon", "FirstLogonCommands" ]
enum_Caching := [ "None", "ReadOnly", "ReadWrite" ]
enum_CreateOption := [ "FromImage", "Empty", "Attach" ]
enum_PatchSettingsPatchMode := [ "Manual", "AutomaticByOS", "AutomaticByPlatform" ]
enum_ScaleInPolicyRules := [ "Default", "OldestVM", "NewestVM" ]
enum_StorageAccountType := [ "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS" ]
enum_UpgradePolicyMode := [ "Automatic", "Manual", "Rolling" ]
enum_VirtualMachineScaleSetIdentityType := [ "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned", "None" ]
enum_VirtualMachineScaleSetUpdateIPConfigurationPropertiesPrivateIPAddressVersion := [ "IPv4", "IPv6" ]
enum_WinRMListenerProtocol := [ "Http", "Https" ]

valid {
    input.Body.sku.name == STRING
    input.Body.sku.tier == STRING
    input.Body.sku.capacity == INTEGER
    input.Body.plan.name == STRING
    input.Body.plan.publisher == STRING
    input.Body.plan.product == STRING
    input.Body.plan.promotionCode == STRING
    input.Body.properties.upgradePolicy.mode == enum_UpgradePolicyMode[_]
    input.Body.properties.upgradePolicy.rollingUpgradePolicy.maxBatchInstancePercent == INTEGER
    input.Body.properties.upgradePolicy.rollingUpgradePolicy.maxUnhealthyInstancePercent == INTEGER
    input.Body.properties.upgradePolicy.rollingUpgradePolicy.maxUnhealthyUpgradedInstancePercent == INTEGER
    input.Body.properties.upgradePolicy.rollingUpgradePolicy.pauseTimeBetweenBatches == STRING
    input.Body.properties.upgradePolicy.automaticOSUpgradePolicy.enableAutomaticOSUpgrade == BOOLEAN
    input.Body.properties.upgradePolicy.automaticOSUpgradePolicy.disableAutomaticRollback == BOOLEAN
    input.Body.properties.automaticRepairsPolicy.enabled == BOOLEAN
    input.Body.properties.automaticRepairsPolicy.gracePeriod == STRING
    input.Body.properties.virtualMachineProfile.osProfile.customData == STRING
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.provisionVMAgent == BOOLEAN
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.enableAutomaticUpdates == BOOLEAN
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.timeZone == STRING
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.additionalUnattendContent[_].passName == enum_AdditionalUnattendContentPassName[_]
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.additionalUnattendContent[_].componentName == enum_AdditionalUnattendContentComponentName[_]
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.additionalUnattendContent[_].settingName == enum_AdditionalUnattendContentSettingName[_]
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.additionalUnattendContent[_].content == STRING
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.patchSettings.patchMode == enum_PatchSettingsPatchMode[_]
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.winRM.listeners[_].protocol == enum_WinRMListenerProtocol[_]
    input.Body.properties.virtualMachineProfile.osProfile.windowsConfiguration.winRM.listeners[_].certificateUrl == STRING
    input.Body.properties.virtualMachineProfile.osProfile.linuxConfiguration.disablePasswordAuthentication == BOOLEAN
    input.Body.properties.virtualMachineProfile.osProfile.linuxConfiguration.ssh.publicKeys[_].path == STRING
    input.Body.properties.virtualMachineProfile.osProfile.linuxConfiguration.ssh.publicKeys[_].keyData == STRING
    input.Body.properties.virtualMachineProfile.osProfile.linuxConfiguration.provisionVMAgent == BOOLEAN
    input.Body.properties.virtualMachineProfile.osProfile.secrets[_].sourceVault.id == STRING
    input.Body.properties.virtualMachineProfile.osProfile.secrets[_].vaultCertificates[_].certificateUrl == STRING
    input.Body.properties.virtualMachineProfile.osProfile.secrets[_].vaultCertificates[_].certificateStore == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.imageReference.publisher == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.imageReference.offer == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.imageReference.sku == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.imageReference.version == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.caching == enum_Caching[_]
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.writeAcceleratorEnabled == BOOLEAN
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.diskSizeGB == INTEGER
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.image.uri == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.vhdContainers[_] == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.managedDisk.storageAccountType == enum_StorageAccountType[_]
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.managedDisk.diskEncryptionSet == {}
    input.Body.properties.virtualMachineProfile.storageProfile.dataDisks[_].name == STRING
    input.Body.properties.virtualMachineProfile.storageProfile.dataDisks[_].lun == INTEGER
    input.Body.properties.virtualMachineProfile.storageProfile.dataDisks[_].caching == enum_Caching[_]
    input.Body.properties.virtualMachineProfile.storageProfile.dataDisks[_].writeAcceleratorEnabled == BOOLEAN
    input.Body.properties.virtualMachineProfile.storageProfile.dataDisks[_].createOption == enum_CreateOption[_]
    input.Body.properties.virtualMachineProfile.storageProfile.dataDisks[_].diskSizeGB == INTEGER
    input.Body.properties.virtualMachineProfile.storageProfile.dataDisks[_].managedDisk.storageAccountType == enum_StorageAccountType[_]
    input.Body.properties.virtualMachineProfile.storageProfile.dataDisks[_].managedDisk.diskEncryptionSet == {}
    input.Body.properties.virtualMachineProfile.storageProfile.dataDisks[_].diskIOPSReadWrite == INTEGER
    input.Body.properties.virtualMachineProfile.storageProfile.dataDisks[_].diskMBpsReadWrite == INTEGER
    input.Body.properties.virtualMachineProfile.networkProfile.healthProbe.id == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].name == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.primary == BOOLEAN
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.enableAcceleratedNetworking == BOOLEAN
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.enableFpga == BOOLEAN
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.networkSecurityGroup.id == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.dnsSettings.dnsServers[_] == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].name == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.subnet.id == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.primary == BOOLEAN
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.publicIPAddressConfiguration.name == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.publicIPAddressConfiguration.properties.idleTimeoutInMinutes == INTEGER
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.publicIPAddressConfiguration.properties.dnsSettings.domainNameLabel == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.privateIPAddressVersion == enum_VirtualMachineScaleSetUpdateIPConfigurationPropertiesPrivateIPAddressVersion[_]
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.applicationGatewayBackendAddressPools[_].id == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.applicationSecurityGroups[_].id == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.loadBalancerBackendAddressPools[_].id == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.loadBalancerInboundNatPools[_].id == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].id == STRING
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.enableIPForwarding == BOOLEAN
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].id == STRING
    input.Body.properties.virtualMachineProfile.securityProfile.encryptionAtHost == BOOLEAN
    input.Body.properties.virtualMachineProfile.diagnosticsProfile.bootDiagnostics.enabled == BOOLEAN
    input.Body.properties.virtualMachineProfile.diagnosticsProfile.bootDiagnostics.storageUri == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].name == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.forceUpdateTag == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.publisher == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.type == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.typeHandlerVersion == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.autoUpgradeMinorVersion == BOOLEAN
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.enableAutomaticUpgrade == BOOLEAN
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.settings.STRING == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.protectedSettings.STRING == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.provisionAfterExtensions[_] == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensionsTimeBudget == STRING
    input.Body.properties.virtualMachineProfile.licenseType == STRING
    input.Body.properties.virtualMachineProfile.billingProfile.maxPrice == NUMBER
    input.Body.properties.virtualMachineProfile.scheduledEventsProfile.terminateNotificationProfile.notBeforeTimeout == STRING
    input.Body.properties.virtualMachineProfile.scheduledEventsProfile.terminateNotificationProfile.enable == BOOLEAN
    input.Body.properties.overprovision == BOOLEAN
    input.Body.properties.doNotRunExtensionsOnOverprovisionedVMs == BOOLEAN
    input.Body.properties.singlePlacementGroup == BOOLEAN
    input.Body.properties.additionalCapabilities.ultraSSDEnabled == BOOLEAN
    input.Body.properties.scaleInPolicy.rules[_] == enum_ScaleInPolicyRules[_]
    input.Body.properties.proximityPlacementGroup.id == STRING
    input.Body.identity.type == enum_VirtualMachineScaleSetIdentityType[_]
    input.Body.identity.userAssignedIdentities.STRING == {}
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmScaleSetName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachineScaleSets_UpdateInstances

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

VirtualMachineSizes_List

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

VirtualMachines_AssessPatches

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

VirtualMachines_Capture

valid {
    input.Body.vhdPrefix == STRING
    input.Body.destinationContainerName == STRING
    input.Body.overwriteVhds == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachines_ConvertToManagedDisks

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

VirtualMachines_CreateOrUpdate

enum_AdditionalUnattendContentComponentName := [ "Microsoft-Windows-Shell-Setup" ]
enum_AdditionalUnattendContentPassName := [ "OobeSystem" ]
enum_AdditionalUnattendContentSettingName := [ "AutoLogon", "FirstLogonCommands" ]
enum_Caching := [ "None", "ReadOnly", "ReadWrite" ]
enum_CreateOption := [ "FromImage", "Empty", "Attach" ]
enum_HardwareProfileVmSize := [ "Basic_A0", "Basic_A1", "Basic_A2", "Basic_A3", "Basic_A4", "Standard_A0", "Standard_A1", "Standard_A2", "Standard_A3", "Standard_A4", "Standard_A5", "Standard_A6", "Standard_A7", "Standard_A8", "Standard_A9", "Standard_A10", "Standard_A11", "Standard_D1", "Standard_D2", "Standard_D3", "Standard_D4", "Standard_D11", "Standard_D12", "Standard_D13", "Standard_D14", "Standard_D1_v2", "Standard_D2_v2", "Standard_D3_v2", "Standard_D4_v2", "Standard_D5_v2", "Standard_D11_v2", "Standard_D12_v2", "Standard_D13_v2", "Standard_D14_v2", "Standard_DS1", "Standard_DS2", "Standard_DS3", "Standard_DS4", "Standard_DS11", "Standard_DS12", "Standard_DS13", "Standard_DS14", "Standard_G1", "Standard_G2", "Standard_G3", "Standard_G4", "Standard_G5", "Standard_GS1", "Standard_GS2", "Standard_GS3", "Standard_GS4", "Standard_GS5" ]
enum_OSDiskOsType := [ "Windows", "Linux" ]
enum_WinRMListenerProtocol := [ "Http", "Https" ]

valid {
    input.Body.plan.name == STRING
    input.Body.plan.publisher == STRING
    input.Body.plan.product == STRING
    input.Body.plan.promotionCode == STRING
    input.Body.properties.hardwareProfile.vmSize == enum_HardwareProfileVmSize[_]
    input.Body.properties.storageProfile.imageReference.publisher == STRING
    input.Body.properties.storageProfile.imageReference.offer == STRING
    input.Body.properties.storageProfile.imageReference.sku == STRING
    input.Body.properties.storageProfile.imageReference.version == STRING
    input.Body.properties.storageProfile.osDisk.osType == enum_OSDiskOsType[_]
    input.Body.properties.storageProfile.osDisk.encryptionSettings.diskEncryptionKey.secretUrl == STRING
    input.Body.properties.storageProfile.osDisk.encryptionSettings.diskEncryptionKey.sourceVault.id == STRING
    input.Body.properties.storageProfile.osDisk.encryptionSettings.keyEncryptionKey.keyUrl == STRING
    input.Body.properties.storageProfile.osDisk.encryptionSettings.keyEncryptionKey.sourceVault.id == STRING
    input.Body.properties.storageProfile.osDisk.encryptionSettings.enabled == BOOLEAN
    input.Body.properties.storageProfile.osDisk.name == STRING
    input.Body.properties.storageProfile.osDisk.vhd.uri == STRING
    input.Body.properties.storageProfile.osDisk.image.uri == STRING
    input.Body.properties.storageProfile.osDisk.caching == enum_Caching[_]
    input.Body.properties.storageProfile.osDisk.createOption == enum_CreateOption[_]
    input.Body.properties.storageProfile.osDisk.diskSizeGB == INTEGER
    input.Body.properties.storageProfile.dataDisks[_].lun == INTEGER
    input.Body.properties.storageProfile.dataDisks[_].name == STRING
    input.Body.properties.storageProfile.dataDisks[_].vhd.uri == STRING
    input.Body.properties.storageProfile.dataDisks[_].image.uri == STRING
    input.Body.properties.storageProfile.dataDisks[_].caching == enum_Caching[_]
    input.Body.properties.storageProfile.dataDisks[_].createOption == enum_CreateOption[_]
    input.Body.properties.storageProfile.dataDisks[_].diskSizeGB == INTEGER
    input.Body.properties.osProfile.computerName == STRING
    input.Body.properties.osProfile.adminUsername == STRING
    input.Body.properties.osProfile.adminPassword == STRING
    input.Body.properties.osProfile.customData == STRING
    input.Body.properties.osProfile.windowsConfiguration.provisionVMAgent == BOOLEAN
    input.Body.properties.osProfile.windowsConfiguration.enableAutomaticUpdates == BOOLEAN
    input.Body.properties.osProfile.windowsConfiguration.timeZone == STRING
    input.Body.properties.osProfile.windowsConfiguration.additionalUnattendContent[_].passName == enum_AdditionalUnattendContentPassName[_]
    input.Body.properties.osProfile.windowsConfiguration.additionalUnattendContent[_].componentName == enum_AdditionalUnattendContentComponentName[_]
    input.Body.properties.osProfile.windowsConfiguration.additionalUnattendContent[_].settingName == enum_AdditionalUnattendContentSettingName[_]
    input.Body.properties.osProfile.windowsConfiguration.additionalUnattendContent[_].content == STRING
    input.Body.properties.osProfile.windowsConfiguration.winRM.listeners[_].protocol == enum_WinRMListenerProtocol[_]
    input.Body.properties.osProfile.windowsConfiguration.winRM.listeners[_].certificateUrl == STRING
    input.Body.properties.osProfile.linuxConfiguration.disablePasswordAuthentication == BOOLEAN
    input.Body.properties.osProfile.linuxConfiguration.ssh.publicKeys[_].path == STRING
    input.Body.properties.osProfile.linuxConfiguration.ssh.publicKeys[_].keyData == STRING
    input.Body.properties.osProfile.secrets[_].sourceVault.id == STRING
    input.Body.properties.osProfile.secrets[_].vaultCertificates[_].certificateUrl == STRING
    input.Body.properties.osProfile.secrets[_].vaultCertificates[_].certificateStore == STRING
    input.Body.properties.networkProfile.networkInterfaces[_].properties.primary == BOOLEAN
    input.Body.properties.networkProfile.networkInterfaces[_].id == STRING
    input.Body.properties.diagnosticsProfile.bootDiagnostics.enabled == BOOLEAN
    input.Body.properties.diagnosticsProfile.bootDiagnostics.storageUri == STRING
    input.Body.properties.availabilitySet.id == STRING
    input.Body.properties.licenseType == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachines_Deallocate

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

VirtualMachines_Delete

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

VirtualMachines_Generalize

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

VirtualMachines_Get

enum_$expandParameter := [ "instanceView" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.$expand == enum_$expandParameter[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachines_InstallPatches

enum_LinuxParametersClassificationsToInclude := [ "Critical", "Security", "Other" ]
enum_VirtualMachineInstallPatchesParametersRebootSetting := [ "IfRequired", "Never", "Always" ]
enum_WindowsParametersClassificationsToInclude := [ "Critical", "Security", "UpdateRollUp", "FeaturePack", "ServicePack", "Definition", "Tools", "Updates" ]

valid {
    input.Body.maximumDuration == STRING
    input.Body.rebootSetting == enum_VirtualMachineInstallPatchesParametersRebootSetting[_]
    input.Body.windowsParameters.classificationsToInclude[_] == enum_WindowsParametersClassificationsToInclude[_]
    input.Body.windowsParameters.kbNumbersToInclude[_] == STRING
    input.Body.windowsParameters.kbNumbersToExclude[_] == STRING
    input.Body.windowsParameters.excludeKbsRequiringReboot == BOOLEAN
    input.Body.windowsParameters.maxPatchPublishDate == STRING
    input.Body.linuxParameters.classificationsToInclude[_] == enum_LinuxParametersClassificationsToInclude[_]
    input.Body.linuxParameters.packageNameMasksToInclude[_] == STRING
    input.Body.linuxParameters.packageNameMasksToExclude[_] == STRING
    input.Body.linuxParameters.maintenanceRunId == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachines_InstanceView

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

VirtualMachines_List

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

VirtualMachines_ListAll

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

VirtualMachines_ListAvailableSizes

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

VirtualMachines_ListByLocation

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

VirtualMachines_PerformMaintenance

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

VirtualMachines_PowerOff

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

VirtualMachines_Reapply

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

VirtualMachines_Redeploy

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

VirtualMachines_Reimage

valid {
    input.Body.tempDisk == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachines_Restart

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

VirtualMachines_RetrieveBootDiagnosticsData

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

VirtualMachines_RunCommand

valid {
    input.Body.commandId == STRING
    input.Body.script[_] == STRING
    input.Body.parameters[_].name == STRING
    input.Body.parameters[_].value == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

VirtualMachines_SimulateEviction

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

VirtualMachines_Start

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

VirtualMachines_Update

enum_AdditionalUnattendContentComponentName := [ "Microsoft-Windows-Shell-Setup" ]
enum_AdditionalUnattendContentPassName := [ "OobeSystem" ]
enum_AdditionalUnattendContentSettingName := [ "AutoLogon", "FirstLogonCommands" ]
enum_Caching := [ "None", "ReadOnly", "ReadWrite" ]
enum_CreateOption := [ "FromImage", "Empty", "Attach" ]
enum_DiffDiskOption := [ "Local" ]
enum_DiffDiskPlacement := [ "CacheDisk", "ResourceDisk" ]
enum_HardwareProfileVmSize := [ "Basic_A0", "Basic_A1", "Basic_A2", "Basic_A3", "Basic_A4", "Standard_A0", "Standard_A1", "Standard_A2", "Standard_A3", "Standard_A4", "Standard_A5", "Standard_A6", "Standard_A7", "Standard_A8", "Standard_A9", "Standard_A10", "Standard_A11", "Standard_A1_v2", "Standard_A2_v2", "Standard_A4_v2", "Standard_A8_v2", "Standard_A2m_v2", "Standard_A4m_v2", "Standard_A8m_v2", "Standard_B1s", "Standard_B1ms", "Standard_B2s", "Standard_B2ms", "Standard_B4ms", "Standard_B8ms", "Standard_D1", "Standard_D2", "Standard_D3", "Standard_D4", "Standard_D11", "Standard_D12", "Standard_D13", "Standard_D14", "Standard_D1_v2", "Standard_D2_v2", "Standard_D3_v2", "Standard_D4_v2", "Standard_D5_v2", "Standard_D2_v3", "Standard_D4_v3", "Standard_D8_v3", "Standard_D16_v3", "Standard_D32_v3", "Standard_D64_v3", "Standard_D2s_v3", "Standard_D4s_v3", "Standard_D8s_v3", "Standard_D16s_v3", "Standard_D32s_v3", "Standard_D64s_v3", "Standard_D11_v2", "Standard_D12_v2", "Standard_D13_v2", "Standard_D14_v2", "Standard_D15_v2", "Standard_DS1", "Standard_DS2", "Standard_DS3", "Standard_DS4", "Standard_DS11", "Standard_DS12", "Standard_DS13", "Standard_DS14", "Standard_DS1_v2", "Standard_DS2_v2", "Standard_DS3_v2", "Standard_DS4_v2", "Standard_DS5_v2", "Standard_DS11_v2", "Standard_DS12_v2", "Standard_DS13_v2", "Standard_DS14_v2", "Standard_DS15_v2", "Standard_DS13-4_v2", "Standard_DS13-2_v2", "Standard_DS14-8_v2", "Standard_DS14-4_v2", "Standard_E2_v3", "Standard_E4_v3", "Standard_E8_v3", "Standard_E16_v3", "Standard_E32_v3", "Standard_E64_v3", "Standard_E2s_v3", "Standard_E4s_v3", "Standard_E8s_v3", "Standard_E16s_v3", "Standard_E32s_v3", "Standard_E64s_v3", "Standard_E32-16_v3", "Standard_E32-8s_v3", "Standard_E64-32s_v3", "Standard_E64-16s_v3", "Standard_F1", "Standard_F2", "Standard_F4", "Standard_F8", "Standard_F16", "Standard_F1s", "Standard_F2s", "Standard_F4s", "Standard_F8s", "Standard_F16s", "Standard_F2s_v2", "Standard_F4s_v2", "Standard_F8s_v2", "Standard_F16s_v2", "Standard_F32s_v2", "Standard_F64s_v2", "Standard_F72s_v2", "Standard_G1", "Standard_G2", "Standard_G3", "Standard_G4", "Standard_G5", "Standard_GS1", "Standard_GS2", "Standard_GS3", "Standard_GS4", "Standard_GS5", "Standard_GS4-8", "Standard_GS4-4", "Standard_GS5-16", "Standard_GS5-8", "Standard_H8", "Standard_H16", "Standard_H8m", "Standard_H16m", "Standard_H16r", "Standard_H16mr", "Standard_L4s", "Standard_L8s", "Standard_L16s", "Standard_L32s", "Standard_M64s", "Standard_M64ms", "Standard_M128s", "Standard_M128ms", "Standard_M64-32ms", "Standard_M64-16ms", "Standard_M128-64ms", "Standard_M128-32ms", "Standard_NC6", "Standard_NC12", "Standard_NC24", "Standard_NC24r", "Standard_NC6s_v2", "Standard_NC12s_v2", "Standard_NC24s_v2", "Standard_NC24rs_v2", "Standard_NC6s_v3", "Standard_NC12s_v3", "Standard_NC24s_v3", "Standard_NC24rs_v3", "Standard_ND6s", "Standard_ND12s", "Standard_ND24s", "Standard_ND24rs", "Standard_NV6", "Standard_NV12", "Standard_NV24" ]
enum_OSDiskOsType := [ "Windows", "Linux" ]
enum_PatchSettingsPatchMode := [ "Manual", "AutomaticByOS", "AutomaticByPlatform" ]
enum_StorageAccountType := [ "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS" ]
enum_VirtualMachineIdentityType := [ "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned", "None" ]
enum_WinRMListenerProtocol := [ "Http", "Https" ]
enum_evictionPolicy := [ "Deallocate", "Delete" ]
enum_priority := [ "Regular", "Low", "Spot" ]

valid {
    input.Body.plan.name == STRING
    input.Body.plan.publisher == STRING
    input.Body.plan.product == STRING
    input.Body.plan.promotionCode == STRING
    input.Body.properties.hardwareProfile.vmSize == enum_HardwareProfileVmSize[_]
    input.Body.properties.storageProfile.imageReference.publisher == STRING
    input.Body.properties.storageProfile.imageReference.offer == STRING
    input.Body.properties.storageProfile.imageReference.sku == STRING
    input.Body.properties.storageProfile.imageReference.version == STRING
    input.Body.properties.storageProfile.imageReference.id == STRING
    input.Body.properties.storageProfile.osDisk.osType == enum_OSDiskOsType[_]
    input.Body.properties.storageProfile.osDisk.encryptionSettings.diskEncryptionKey.secretUrl == STRING
    input.Body.properties.storageProfile.osDisk.encryptionSettings.diskEncryptionKey.sourceVault.id == STRING
    input.Body.properties.storageProfile.osDisk.encryptionSettings.keyEncryptionKey.keyUrl == STRING
    input.Body.properties.storageProfile.osDisk.encryptionSettings.keyEncryptionKey.sourceVault.id == STRING
    input.Body.properties.storageProfile.osDisk.encryptionSettings.enabled == BOOLEAN
    input.Body.properties.storageProfile.osDisk.name == STRING
    input.Body.properties.storageProfile.osDisk.vhd.uri == STRING
    input.Body.properties.storageProfile.osDisk.image.uri == STRING
    input.Body.properties.storageProfile.osDisk.caching == enum_Caching[_]
    input.Body.properties.storageProfile.osDisk.writeAcceleratorEnabled == BOOLEAN
    input.Body.properties.storageProfile.osDisk.diffDiskSettings.option == enum_DiffDiskOption[_]
    input.Body.properties.storageProfile.osDisk.diffDiskSettings.placement == enum_DiffDiskPlacement[_]
    input.Body.properties.storageProfile.osDisk.createOption == enum_CreateOption[_]
    input.Body.properties.storageProfile.osDisk.diskSizeGB == INTEGER
    input.Body.properties.storageProfile.osDisk.managedDisk.storageAccountType == enum_StorageAccountType[_]
    input.Body.properties.storageProfile.osDisk.managedDisk.diskEncryptionSet == {}
    input.Body.properties.storageProfile.osDisk.managedDisk.id == STRING
    input.Body.properties.storageProfile.dataDisks[_].lun == INTEGER
    input.Body.properties.storageProfile.dataDisks[_].name == STRING
    input.Body.properties.storageProfile.dataDisks[_].vhd.uri == STRING
    input.Body.properties.storageProfile.dataDisks[_].image.uri == STRING
    input.Body.properties.storageProfile.dataDisks[_].caching == enum_Caching[_]
    input.Body.properties.storageProfile.dataDisks[_].writeAcceleratorEnabled == BOOLEAN
    input.Body.properties.storageProfile.dataDisks[_].createOption == enum_CreateOption[_]
    input.Body.properties.storageProfile.dataDisks[_].diskSizeGB == INTEGER
    input.Body.properties.storageProfile.dataDisks[_].managedDisk.storageAccountType == enum_StorageAccountType[_]
    input.Body.properties.storageProfile.dataDisks[_].managedDisk.diskEncryptionSet == {}
    input.Body.properties.storageProfile.dataDisks[_].toBeDetached == BOOLEAN
    input.Body.properties.additionalCapabilities.ultraSSDEnabled == BOOLEAN
    input.Body.properties.osProfile.computerName == STRING
    input.Body.properties.osProfile.adminUsername == STRING
    input.Body.properties.osProfile.adminPassword == STRING
    input.Body.properties.osProfile.customData == STRING
    input.Body.properties.osProfile.windowsConfiguration.provisionVMAgent == BOOLEAN
    input.Body.properties.osProfile.windowsConfiguration.enableAutomaticUpdates == BOOLEAN
    input.Body.properties.osProfile.windowsConfiguration.timeZone == STRING
    input.Body.properties.osProfile.windowsConfiguration.additionalUnattendContent[_].passName == enum_AdditionalUnattendContentPassName[_]
    input.Body.properties.osProfile.windowsConfiguration.additionalUnattendContent[_].componentName == enum_AdditionalUnattendContentComponentName[_]
    input.Body.properties.osProfile.windowsConfiguration.additionalUnattendContent[_].settingName == enum_AdditionalUnattendContentSettingName[_]
    input.Body.properties.osProfile.windowsConfiguration.additionalUnattendContent[_].content == STRING
    input.Body.properties.osProfile.windowsConfiguration.patchSettings.patchMode == enum_PatchSettingsPatchMode[_]
    input.Body.properties.osProfile.windowsConfiguration.winRM.listeners[_].protocol == enum_WinRMListenerProtocol[_]
    input.Body.properties.osProfile.windowsConfiguration.winRM.listeners[_].certificateUrl == STRING
    input.Body.properties.osProfile.linuxConfiguration.disablePasswordAuthentication == BOOLEAN
    input.Body.properties.osProfile.linuxConfiguration.ssh.publicKeys[_].path == STRING
    input.Body.properties.osProfile.linuxConfiguration.ssh.publicKeys[_].keyData == STRING
    input.Body.properties.osProfile.linuxConfiguration.provisionVMAgent == BOOLEAN
    input.Body.properties.osProfile.secrets[_].sourceVault.id == STRING
    input.Body.properties.osProfile.secrets[_].vaultCertificates[_].certificateUrl == STRING
    input.Body.properties.osProfile.secrets[_].vaultCertificates[_].certificateStore == STRING
    input.Body.properties.osProfile.allowExtensionOperations == BOOLEAN
    input.Body.properties.osProfile.requireGuestProvisionSignal == BOOLEAN
    input.Body.properties.networkProfile.networkInterfaces[_].properties.primary == BOOLEAN
    input.Body.properties.networkProfile.networkInterfaces[_].id == STRING
    input.Body.properties.securityProfile.encryptionAtHost == BOOLEAN
    input.Body.properties.diagnosticsProfile.bootDiagnostics.enabled == BOOLEAN
    input.Body.properties.diagnosticsProfile.bootDiagnostics.storageUri == STRING
    input.Body.properties.availabilitySet.id == STRING
    input.Body.properties.virtualMachineScaleSet.id == STRING
    input.Body.properties.proximityPlacementGroup.id == STRING
    input.Body.properties.priority == enum_priority[_]
    input.Body.properties.evictionPolicy == enum_evictionPolicy[_]
    input.Body.properties.billingProfile.maxPrice == NUMBER
    input.Body.properties.host.id == STRING
    input.Body.properties.hostGroup.id == STRING
    input.Body.properties.licenseType == STRING
    input.Body.properties.extensionsTimeBudget == STRING
    input.Body.identity.type == enum_VirtualMachineIdentityType[_]
    input.Body.identity.userAssignedIdentities.STRING == {}
    input.Body.zones[_] == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.vmName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}