MICROSOFT.COMPUTE

AvailabilitySets_CreateOrUpdate

valid {
    input.Body.properties.platformUpdateDomainCount == INTEGER
    input.Body.properties.platformFaultDomainCount == INTEGER
    input.Body.properties.virtualMachines[_].id == STRING
    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.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.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
}

CloudServiceOperatingSystems_GetOSFamily

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

CloudServiceOperatingSystems_GetOSVersion

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

CloudServiceOperatingSystems_ListOSFamilies

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

CloudServiceOperatingSystems_ListOSVersions

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

CloudServiceRoleInstances_Delete

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

CloudServiceRoleInstances_Get

enum_$expandParameter := [ "instanceView", "userData" ]

valid {
    input.ReqMap.roleInstanceName == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.cloudServiceName == 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
}

CloudServiceRoleInstances_GetInstanceView

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

CloudServiceRoleInstances_GetRemoteDesktopFile

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

CloudServiceRoleInstances_List

enum_$expandParameter := [ "instanceView", "userData" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.cloudServiceName == 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
}

CloudServiceRoleInstances_Rebuild

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

CloudServiceRoleInstances_Reimage

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

CloudServiceRoleInstances_Restart

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

CloudServiceRoles_Get

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

CloudServiceRoles_List

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

CloudServicesUpdateDomain_GetUpdateDomain

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

CloudServicesUpdateDomain_ListUpdateDomains

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

CloudServicesUpdateDomain_WalkUpdateDomain

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

CloudServices_CreateOrUpdate

enum_CloudServiceUpgradeMode := [ "Auto", "Manual", "Simultaneous" ]

valid {
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.Body.properties.packageUrl == STRING
    input.Body.properties.configuration == STRING
    input.Body.properties.configurationUrl == STRING
    input.Body.properties.startCloudService == BOOLEAN
    input.Body.properties.allowModelOverride == BOOLEAN
    input.Body.properties.upgradeMode == enum_CloudServiceUpgradeMode[_]
    input.Body.properties.roleProfile.roles[_].name == STRING
    input.Body.properties.roleProfile.roles[_].sku.name == STRING
    input.Body.properties.roleProfile.roles[_].sku.tier == STRING
    input.Body.properties.roleProfile.roles[_].sku.capacity == INTEGER
    input.Body.properties.osProfile.secrets[_].sourceVault.id == STRING
    input.Body.properties.osProfile.secrets[_].vaultCertificates[_].certificateUrl == STRING
    input.Body.properties.networkProfile.loadBalancerConfigurations[_].id == STRING
    input.Body.properties.networkProfile.loadBalancerConfigurations[_].name == STRING
    input.Body.properties.networkProfile.loadBalancerConfigurations[_].properties.frontendIPConfigurations[_].name == STRING
    input.Body.properties.networkProfile.loadBalancerConfigurations[_].properties.frontendIPConfigurations[_].properties.publicIPAddress.id == STRING
    input.Body.properties.networkProfile.loadBalancerConfigurations[_].properties.frontendIPConfigurations[_].properties.subnet.id == STRING
    input.Body.properties.networkProfile.loadBalancerConfigurations[_].properties.frontendIPConfigurations[_].properties.privateIPAddress == STRING
    input.Body.properties.networkProfile.swappableCloudService.id == STRING
    input.Body.properties.extensionProfile.extensions[_].name == STRING
    input.Body.properties.extensionProfile.extensions[_].properties.publisher == STRING
    input.Body.properties.extensionProfile.extensions[_].properties.type == STRING
    input.Body.properties.extensionProfile.extensions[_].properties.typeHandlerVersion == STRING
    input.Body.properties.extensionProfile.extensions[_].properties.autoUpgradeMinorVersion == BOOLEAN
    input.Body.properties.extensionProfile.extensions[_].properties.settings == STRING
    input.Body.properties.extensionProfile.extensions[_].properties.protectedSettings == STRING
    input.Body.properties.extensionProfile.extensions[_].properties.protectedSettingsFromKeyVault.sourceVault.id == STRING
    input.Body.properties.extensionProfile.extensions[_].properties.protectedSettingsFromKeyVault.secretUrl == STRING
    input.Body.properties.extensionProfile.extensions[_].properties.forceUpdateTag == STRING
    input.Body.properties.extensionProfile.extensions[_].properties.rolesAppliedTo[_] == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.cloudServiceName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

CloudServices_Delete

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

CloudServices_DeleteInstances

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

CloudServices_Get

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

CloudServices_GetInstanceView

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

CloudServices_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
}

CloudServices_ListAll

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

CloudServices_PowerOff

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

CloudServices_Rebuild

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

CloudServices_Reimage

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

CloudServices_Restart

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

CloudServices_Start

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

CloudServices_Update

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

CommunityGalleries_Get

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

CommunityGalleryImageVersions_Get

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

CommunityGalleryImageVersions_List

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

CommunityGalleryImages_Get

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

CommunityGalleryImages_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.location == STRING
    input.ReqMap.publicGalleryName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == 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", "userData" ]

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", "userData" ]

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
}

DiagnosticOperations_Read

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.location == STRING
    input.ReqMap.operationId == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Diagnostics_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.location == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

DiskAccesses_CreateOrUpdate

enum_ExtendedLocationType := [ "EdgeZone" ]

valid {
    input.Body.properties == {}
    input.Body.extendedLocation.name == STRING
    input.Body.extendedLocation.type == enum_ExtendedLocationType[_]
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.diskAccessName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

DiskAccesses_Delete

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

DiskAccesses_DeleteAPrivateEndpointConnection

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

DiskAccesses_Get

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

DiskAccesses_GetAPrivateEndpointConnection

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

DiskAccesses_GetPrivateLinkResources

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

DiskAccesses_List

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

DiskAccesses_ListByResourceGroup

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
}

DiskAccesses_ListPrivateEndpointConnections

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

DiskAccesses_Update

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

DiskAccesses_UpdateAPrivateEndpointConnection

enum_PrivateEndpointServiceConnectionStatus := [ "Pending", "Approved", "Rejected" ]

valid {
    input.Body.properties.privateLinkServiceConnectionState.status == enum_PrivateEndpointServiceConnectionStatus[_]
    input.Body.properties.privateLinkServiceConnectionState.description == STRING
    input.Body.properties.privateLinkServiceConnectionState.actionsRequired == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.diskAccessName == STRING
    input.ReqMap.privateEndpointConnectionName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

DiskEncryptionSets_CreateOrUpdate

enum_DiskEncryptionSetType := [ "EncryptionAtRestWithCustomerKey", "EncryptionAtRestWithPlatformAndCustomerKeys", "ConfidentialVmEncryptedWithCustomerKey" ]
enum_EncryptionSetIdentityType := [ "SystemAssigned", "None" ]

valid {
    input.Body.identity.type == enum_EncryptionSetIdentityType[_]
    input.Body.properties.encryptionType == enum_DiskEncryptionSetType[_]
    input.Body.properties.activeKey.sourceVault.id == STRING
    input.Body.properties.activeKey.keyUrl == STRING
    input.Body.properties.rotationToLatestKeyVersionEnabled == BOOLEAN
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.diskEncryptionSetName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

DiskEncryptionSets_Delete

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

DiskEncryptionSets_Get

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

DiskEncryptionSets_List

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

DiskEncryptionSets_ListAssociatedResources

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

DiskEncryptionSets_ListByResourceGroup

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
}

DiskEncryptionSets_Update

enum_DiskEncryptionSetType := [ "EncryptionAtRestWithCustomerKey", "EncryptionAtRestWithPlatformAndCustomerKeys", "ConfidentialVmEncryptedWithCustomerKey" ]
enum_EncryptionSetIdentityType := [ "SystemAssigned", "None" ]

valid {
    input.Body.properties.encryptionType == enum_DiskEncryptionSetType[_]
    input.Body.properties.activeKey.sourceVault.id == STRING
    input.Body.properties.activeKey.keyUrl == STRING
    input.Body.properties.rotationToLatestKeyVersionEnabled == BOOLEAN
    input.Body.tags.STRING == STRING
    input.Body.identity.type == enum_EncryptionSetIdentityType[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.diskEncryptionSetName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

DiskInspectionStorageConfiguration_Register

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

DiskInspectionStorageConfiguration_Validate

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

DiskInspection_Create

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

DiskInspection_Get

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.location == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

DiskRestorePoint_Get

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

DiskRestorePoint_GrantAccess

enum_GrantAccessDataAccess := [ "None", "Read", "Write" ]

valid {
    input.Body.access == enum_GrantAccessDataAccess[_]
    input.Body.durationInSeconds == INTEGER
    input.Body.getSecureVMGuestStateSAS == BOOLEAN
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.restorePointCollectionName == STRING
    input.ReqMap.vmRestorePointName == STRING
    input.ReqMap.diskRestorePointName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

DiskRestorePoint_ListByRestorePoint

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

DiskRestorePoint_RevokeAccess

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

Disks_CreateOrUpdate

enum_CreationDataCreateOption := [ "Empty", "Attach", "FromImage", "Import", "Copy", "Restore", "Upload" ]
enum_DiskPropertiesHyperVGeneration := [ "V1", "V2" ]
enum_DiskPropertiesOsType := [ "Windows", "Linux" ]
enum_DiskSkuName := [ "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS" ]

valid {
    input.Body.sku.name == enum_DiskSkuName[_]
    input.Body.zones[_] == STRING
    input.Body.properties.osType == enum_DiskPropertiesOsType[_]
    input.Body.properties.hyperVGeneration == enum_DiskPropertiesHyperVGeneration[_]
    input.Body.properties.creationData.createOption == enum_CreationDataCreateOption[_]
    input.Body.properties.creationData.storageAccountId == STRING
    input.Body.properties.creationData.imageReference.id == STRING
    input.Body.properties.creationData.imageReference.lun == INTEGER
    input.Body.properties.creationData.sourceUri == STRING
    input.Body.properties.creationData.sourceResourceId == STRING
    input.Body.properties.diskSizeGB == INTEGER
    input.Body.properties.encryptionSettingsCollection.enabled == BOOLEAN
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].diskEncryptionKey.sourceVault.id == STRING
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].diskEncryptionKey.secretUrl == STRING
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].keyEncryptionKey.sourceVault.id == STRING
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].keyEncryptionKey.keyUrl == STRING
    input.Body.properties.diskIOPSReadWrite == INTEGER
    input.Body.properties.diskMBpsReadWrite == INTEGER
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.diskName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Disks_Delete

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

Disks_Get

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

Disks_GrantAccess

enum_GrantAccessDataAccess := [ "None", "Read", "Write" ]

valid {
    input.Body.access == enum_GrantAccessDataAccess[_]
    input.Body.durationInSeconds == INTEGER
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.diskName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Disks_List

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

Disks_ListByResourceGroup

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
}

Disks_RevokeAccess

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

Disks_Update

enum_DiskSkuName := [ "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS" ]
enum_DiskUpdatePropertiesOsType := [ "Windows", "Linux" ]

valid {
    input.Body.properties.osType == enum_DiskUpdatePropertiesOsType[_]
    input.Body.properties.diskSizeGB == INTEGER
    input.Body.properties.encryptionSettingsCollection.enabled == BOOLEAN
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].diskEncryptionKey.sourceVault.id == STRING
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].diskEncryptionKey.secretUrl == STRING
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].keyEncryptionKey.sourceVault.id == STRING
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].keyEncryptionKey.keyUrl == STRING
    input.Body.properties.diskIOPSReadWrite == INTEGER
    input.Body.properties.diskMBpsReadWrite == INTEGER
    input.Body.tags.STRING == STRING
    input.Body.sku.name == enum_DiskSkuName[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.diskName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Galleries_CreateOrUpdate

enum_SharingProfilePermissions := [ "Private", "Groups", "Community" ]

valid {
    input.Body.properties.description == STRING
    input.Body.properties.identifier == {}
    input.Body.properties.sharingProfile.permissions == enum_SharingProfilePermissions[_]
    input.Body.properties.sharingProfile.communityGalleryInfo.publisherUri == STRING
    input.Body.properties.sharingProfile.communityGalleryInfo.publisherContact == STRING
    input.Body.properties.sharingProfile.communityGalleryInfo.eula == STRING
    input.Body.properties.sharingProfile.communityGalleryInfo.publicNamePrefix == STRING
    input.Body.properties.softDeletePolicy.isSoftDeleteEnabled == BOOLEAN
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.galleryName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Galleries_Delete

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

Galleries_Get

enum_$selectParameter := [ "Permissions" ]
enum_GalleryODataExpandQueryParameter := [ "SharingProfile/Groups" ]

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

Galleries_List

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

Galleries_ListByResourceGroup

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
}

Galleries_Update

enum_SharingProfilePermissions := [ "Private", "Groups", "Community" ]

valid {
    input.Body.properties.description == STRING
    input.Body.properties.identifier == {}
    input.Body.properties.sharingProfile.permissions == enum_SharingProfilePermissions[_]
    input.Body.properties.sharingProfile.communityGalleryInfo.publisherUri == STRING
    input.Body.properties.sharingProfile.communityGalleryInfo.publisherContact == STRING
    input.Body.properties.sharingProfile.communityGalleryInfo.eula == STRING
    input.Body.properties.sharingProfile.communityGalleryInfo.publicNamePrefix == STRING
    input.Body.properties.softDeletePolicy.isSoftDeleteEnabled == BOOLEAN
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.galleryName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryApplicationVersions_CreateOrUpdate

enum_GalleryArtifactPublishingProfileBaseReplicationMode := [ "Full", "Shallow" ]
enum_GalleryArtifactPublishingProfileBaseStorageAccountType := [ "Standard_LRS", "Standard_ZRS", "Premium_LRS" ]
enum_GalleryExtendedLocationType := [ "EdgeZone", "Unknown" ]
enum_GalleryTargetExtendedLocationStorageAccountType := [ "Standard_LRS", "Standard_ZRS", "Premium_LRS" ]
enum_OSDiskImageSecurityProfileConfidentialVMEncryptionType := [ "EncryptedVMGuestStateOnlyWithPmk", "EncryptedWithPmk", "EncryptedWithCmk" ]
enum_TargetRegionStorageAccountType := [ "Standard_LRS", "Standard_ZRS", "Premium_LRS" ]

valid {
    input.Body.properties.publishingProfile.source.mediaLink == STRING
    input.Body.properties.publishingProfile.source.defaultConfigurationLink == STRING
    input.Body.properties.publishingProfile.manageActions.install == STRING
    input.Body.properties.publishingProfile.manageActions.remove == STRING
    input.Body.properties.publishingProfile.manageActions.update == STRING
    input.Body.properties.publishingProfile.settings.packageFileName == STRING
    input.Body.properties.publishingProfile.settings.configFileName == STRING
    input.Body.properties.publishingProfile.advancedSettings.STRING == STRING
    input.Body.properties.publishingProfile.enableHealthCheck == BOOLEAN
    input.Body.properties.publishingProfile.targetRegions[_].name == STRING
    input.Body.properties.publishingProfile.targetRegions[_].regionalReplicaCount == INTEGER
    input.Body.properties.publishingProfile.targetRegions[_].storageAccountType == enum_TargetRegionStorageAccountType[_]
    input.Body.properties.publishingProfile.targetRegions[_].encryption.osDiskImage.securityProfile.confidentialVMEncryptionType == enum_OSDiskImageSecurityProfileConfidentialVMEncryptionType[_]
    input.Body.properties.publishingProfile.targetRegions[_].encryption.osDiskImage.securityProfile.secureVMDiskEncryptionSetId == STRING
    input.Body.properties.publishingProfile.targetRegions[_].encryption.dataDiskImages[_].lun == INTEGER
    input.Body.properties.publishingProfile.replicaCount == INTEGER
    input.Body.properties.publishingProfile.excludeFromLatest == BOOLEAN
    input.Body.properties.publishingProfile.endOfLifeDate == STRING
    input.Body.properties.publishingProfile.storageAccountType == enum_GalleryArtifactPublishingProfileBaseStorageAccountType[_]
    input.Body.properties.publishingProfile.replicationMode == enum_GalleryArtifactPublishingProfileBaseReplicationMode[_]
    input.Body.properties.publishingProfile.targetExtendedLocations[_].name == STRING
    input.Body.properties.publishingProfile.targetExtendedLocations[_].extendedLocation.name == STRING
    input.Body.properties.publishingProfile.targetExtendedLocations[_].extendedLocation.type == enum_GalleryExtendedLocationType[_]
    input.Body.properties.publishingProfile.targetExtendedLocations[_].extendedLocationReplicaCount == INTEGER
    input.Body.properties.publishingProfile.targetExtendedLocations[_].storageAccountType == enum_GalleryTargetExtendedLocationStorageAccountType[_]
    input.Body.properties.publishingProfile.targetExtendedLocations[_].encryption.osDiskImage.securityProfile.confidentialVMEncryptionType == enum_OSDiskImageSecurityProfileConfidentialVMEncryptionType[_]
    input.Body.properties.publishingProfile.targetExtendedLocations[_].encryption.osDiskImage.securityProfile.secureVMDiskEncryptionSetId == STRING
    input.Body.properties.publishingProfile.targetExtendedLocations[_].encryption.dataDiskImages[_].lun == INTEGER
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.galleryName == STRING
    input.ReqMap.galleryApplicationName == STRING
    input.ReqMap.galleryApplicationVersionName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryApplicationVersions_Delete

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

GalleryApplicationVersions_Get

enum_$expandParameter := [ "ReplicationStatus" ]

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

GalleryApplicationVersions_ListByGalleryApplication

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

GalleryApplicationVersions_Update

valid {
    input.Body.properties.publishingProfile.source.mediaLink == STRING
    input.Body.properties.publishingProfile.source.defaultConfigurationLink == STRING
    input.Body.properties.publishingProfile.manageActions.install == STRING
    input.Body.properties.publishingProfile.manageActions.remove == STRING
    input.Body.properties.publishingProfile.manageActions.update == STRING
    input.Body.properties.publishingProfile.settings.packageFileName == STRING
    input.Body.properties.publishingProfile.settings.configFileName == STRING
    input.Body.properties.publishingProfile.advancedSettings.STRING == STRING
    input.Body.properties.publishingProfile.enableHealthCheck == BOOLEAN
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.galleryName == STRING
    input.ReqMap.galleryApplicationName == STRING
    input.ReqMap.galleryApplicationVersionName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryApplications_CreateOrUpdate

enum_GalleryApplicationPropertiesSupportedOSType := [ "Windows", "Linux" ]

valid {
    input.Body.properties.description == STRING
    input.Body.properties.eula == STRING
    input.Body.properties.privacyStatementUri == STRING
    input.Body.properties.releaseNoteUri == STRING
    input.Body.properties.endOfLifeDate == STRING
    input.Body.properties.supportedOSType == enum_GalleryApplicationPropertiesSupportedOSType[_]
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.galleryName == STRING
    input.ReqMap.galleryApplicationName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryApplications_Delete

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

GalleryApplications_Get

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

GalleryApplications_ListByGallery

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

GalleryApplications_Update

enum_GalleryApplicationPropertiesSupportedOSType := [ "Windows", "Linux" ]

valid {
    input.Body.properties.description == STRING
    input.Body.properties.eula == STRING
    input.Body.properties.privacyStatementUri == STRING
    input.Body.properties.releaseNoteUri == STRING
    input.Body.properties.endOfLifeDate == STRING
    input.Body.properties.supportedOSType == enum_GalleryApplicationPropertiesSupportedOSType[_]
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.galleryName == STRING
    input.ReqMap.galleryApplicationName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryImageVersions_CreateOrUpdate

enum_GalleryArtifactPublishingProfileBaseReplicationMode := [ "Full", "Shallow" ]
enum_GalleryArtifactPublishingProfileBaseStorageAccountType := [ "Standard_LRS", "Standard_ZRS", "Premium_LRS" ]
enum_GalleryDiskImageHostCaching := [ "None", "ReadOnly", "ReadWrite" ]
enum_GalleryExtendedLocationType := [ "EdgeZone", "Unknown" ]
enum_GalleryTargetExtendedLocationStorageAccountType := [ "Standard_LRS", "Standard_ZRS", "Premium_LRS" ]
enum_OSDiskImageSecurityProfileConfidentialVMEncryptionType := [ "EncryptedVMGuestStateOnlyWithPmk", "EncryptedWithPmk", "EncryptedWithCmk" ]
enum_TargetRegionStorageAccountType := [ "Standard_LRS", "Standard_ZRS", "Premium_LRS" ]

valid {
    input.Body.properties.publishingProfile.targetRegions[_].name == STRING
    input.Body.properties.publishingProfile.targetRegions[_].regionalReplicaCount == INTEGER
    input.Body.properties.publishingProfile.targetRegions[_].storageAccountType == enum_TargetRegionStorageAccountType[_]
    input.Body.properties.publishingProfile.targetRegions[_].encryption.osDiskImage.securityProfile.confidentialVMEncryptionType == enum_OSDiskImageSecurityProfileConfidentialVMEncryptionType[_]
    input.Body.properties.publishingProfile.targetRegions[_].encryption.osDiskImage.securityProfile.secureVMDiskEncryptionSetId == STRING
    input.Body.properties.publishingProfile.targetRegions[_].encryption.osDiskImage.diskEncryptionSetId == STRING
    input.Body.properties.publishingProfile.targetRegions[_].encryption.dataDiskImages[_].lun == INTEGER
    input.Body.properties.publishingProfile.targetRegions[_].encryption.dataDiskImages[_].diskEncryptionSetId == STRING
    input.Body.properties.publishingProfile.replicaCount == INTEGER
    input.Body.properties.publishingProfile.excludeFromLatest == BOOLEAN
    input.Body.properties.publishingProfile.endOfLifeDate == STRING
    input.Body.properties.publishingProfile.storageAccountType == enum_GalleryArtifactPublishingProfileBaseStorageAccountType[_]
    input.Body.properties.publishingProfile.replicationMode == enum_GalleryArtifactPublishingProfileBaseReplicationMode[_]
    input.Body.properties.publishingProfile.targetExtendedLocations[_].name == STRING
    input.Body.properties.publishingProfile.targetExtendedLocations[_].extendedLocation.name == STRING
    input.Body.properties.publishingProfile.targetExtendedLocations[_].extendedLocation.type == enum_GalleryExtendedLocationType[_]
    input.Body.properties.publishingProfile.targetExtendedLocations[_].extendedLocationReplicaCount == INTEGER
    input.Body.properties.publishingProfile.targetExtendedLocations[_].storageAccountType == enum_GalleryTargetExtendedLocationStorageAccountType[_]
    input.Body.properties.publishingProfile.targetExtendedLocations[_].encryption.osDiskImage.securityProfile.confidentialVMEncryptionType == enum_OSDiskImageSecurityProfileConfidentialVMEncryptionType[_]
    input.Body.properties.publishingProfile.targetExtendedLocations[_].encryption.osDiskImage.securityProfile.secureVMDiskEncryptionSetId == STRING
    input.Body.properties.publishingProfile.targetExtendedLocations[_].encryption.dataDiskImages[_].lun == INTEGER
    input.Body.properties.storageProfile.source.id == STRING
    input.Body.properties.storageProfile.source.uri == STRING
    input.Body.properties.storageProfile.osDiskImage.hostCaching == enum_GalleryDiskImageHostCaching[_]
    input.Body.properties.storageProfile.osDiskImage.source.id == STRING
    input.Body.properties.storageProfile.osDiskImage.source.uri == STRING
    input.Body.properties.storageProfile.dataDiskImages[_].lun == INTEGER
    input.Body.properties.storageProfile.dataDiskImages[_].hostCaching == enum_GalleryDiskImageHostCaching[_]
    input.Body.properties.storageProfile.dataDiskImages[_].source.id == STRING
    input.Body.properties.storageProfile.dataDiskImages[_].source.uri == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.galleryName == STRING
    input.ReqMap.galleryImageName == STRING
    input.ReqMap.galleryImageVersionName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryImageVersions_Delete

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

GalleryImageVersions_Get

enum_$expandParameter := [ "ReplicationStatus" ]

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

GalleryImageVersions_ListByGalleryImage

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

GalleryImageVersions_Update

valid {
    input.Body.properties.publishingProfile == {}
    input.Body.properties.storageProfile.source.id == STRING
    input.Body.properties.storageProfile.source.uri == STRING
    input.Body.properties.storageProfile.osDiskImage == {}
    input.Body.properties.storageProfile.dataDiskImages[_].lun == INTEGER
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.galleryName == STRING
    input.ReqMap.galleryImageName == STRING
    input.ReqMap.galleryImageVersionName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryImages_CreateOrUpdate

enum_Architecture := [ "x64", "Arm64" ]
enum_GalleryImagePropertiesHyperVGeneration := [ "V1", "V2" ]
enum_GalleryImagePropertiesOsState := [ "Generalized", "Specialized" ]
enum_GalleryImagePropertiesOsType := [ "Windows", "Linux" ]

valid {
    input.Body.properties.description == STRING
    input.Body.properties.eula == STRING
    input.Body.properties.privacyStatementUri == STRING
    input.Body.properties.releaseNoteUri == STRING
    input.Body.properties.osType == enum_GalleryImagePropertiesOsType[_]
    input.Body.properties.osState == enum_GalleryImagePropertiesOsState[_]
    input.Body.properties.hyperVGeneration == enum_GalleryImagePropertiesHyperVGeneration[_]
    input.Body.properties.endOfLifeDate == STRING
    input.Body.properties.identifier.publisher == STRING
    input.Body.properties.identifier.offer == STRING
    input.Body.properties.identifier.sku == STRING
    input.Body.properties.recommended.vCPUs.min == INTEGER
    input.Body.properties.recommended.vCPUs.max == INTEGER
    input.Body.properties.recommended.memory.min == INTEGER
    input.Body.properties.recommended.memory.max == INTEGER
    input.Body.properties.disallowed.diskTypes[_] == STRING
    input.Body.properties.purchasePlan.name == STRING
    input.Body.properties.purchasePlan.publisher == STRING
    input.Body.properties.purchasePlan.product == STRING
    input.Body.properties.features[_].name == STRING
    input.Body.properties.features[_].value == STRING
    input.Body.properties.architecture == enum_Architecture[_]
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.galleryName == STRING
    input.ReqMap.galleryImageName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GalleryImages_Delete

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

GalleryImages_Get

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

GalleryImages_ListByGallery

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

GalleryImages_Update

enum_Architecture := [ "x64", "Arm64" ]
enum_GalleryImagePropertiesHyperVGeneration := [ "V1", "V2" ]
enum_GalleryImagePropertiesOsState := [ "Generalized", "Specialized" ]
enum_GalleryImagePropertiesOsType := [ "Windows", "Linux" ]

valid {
    input.Body.properties.description == STRING
    input.Body.properties.eula == STRING
    input.Body.properties.privacyStatementUri == STRING
    input.Body.properties.releaseNoteUri == STRING
    input.Body.properties.osType == enum_GalleryImagePropertiesOsType[_]
    input.Body.properties.osState == enum_GalleryImagePropertiesOsState[_]
    input.Body.properties.hyperVGeneration == enum_GalleryImagePropertiesHyperVGeneration[_]
    input.Body.properties.endOfLifeDate == STRING
    input.Body.properties.identifier.publisher == STRING
    input.Body.properties.identifier.offer == STRING
    input.Body.properties.identifier.sku == STRING
    input.Body.properties.recommended.vCPUs.min == INTEGER
    input.Body.properties.recommended.vCPUs.max == INTEGER
    input.Body.properties.recommended.memory.min == INTEGER
    input.Body.properties.recommended.memory.max == INTEGER
    input.Body.properties.disallowed.diskTypes[_] == STRING
    input.Body.properties.purchasePlan.name == STRING
    input.Body.properties.purchasePlan.publisher == STRING
    input.Body.properties.purchasePlan.product == STRING
    input.Body.properties.features[_].name == STRING
    input.Body.properties.features[_].value == STRING
    input.Body.properties.architecture == enum_Architecture[_]
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.galleryName == STRING
    input.ReqMap.galleryImageName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

GallerySharingProfile_Update

enum_SharingProfileGroupType := [ "Subscriptions", "AADTenants" ]
enum_SharingUpdateOperationType := [ "Add", "Remove", "Reset", "EnableCommunity" ]

valid {
    input.Body.operationType == enum_SharingUpdateOperationType[_]
    input.Body.groups[_].type == enum_SharingProfileGroupType[_]
    input.Body.groups[_].ids[_] == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.galleryName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Images_CreateOrUpdate

enum_ImageDataDiskCaching := [ "None", "ReadOnly", "ReadWrite" ]
enum_ImageOSDiskCaching := [ "None", "ReadOnly", "ReadWrite" ]
enum_ImageOSDiskOsState := [ "Generalized", "Specialized" ]
enum_ImageOSDiskOsType := [ "Windows", "Linux" ]
enum_StorageAccountType := [ "Standard_LRS", "Premium_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_ImageOSDiskCaching[_]
    input.Body.properties.storageProfile.osDisk.diskSizeGB == INTEGER
    input.Body.properties.storageProfile.osDisk.storageAccountType == enum_StorageAccountType[_]
    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_ImageDataDiskCaching[_]
    input.Body.properties.storageProfile.dataDisks[_].diskSizeGB == INTEGER
    input.Body.properties.storageProfile.dataDisks[_].storageAccountType == enum_StorageAccountType[_]
    input.Body.properties.storageProfile.zoneResilient == BOOLEAN
    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_ImageDataDiskCaching := [ "None", "ReadOnly", "ReadWrite" ]
enum_ImageOSDiskCaching := [ "None", "ReadOnly", "ReadWrite" ]
enum_ImageOSDiskOsState := [ "Generalized", "Specialized" ]
enum_ImageOSDiskOsType := [ "Windows", "Linux" ]
enum_StorageAccountType := [ "Standard_LRS", "Premium_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_ImageOSDiskCaching[_]
    input.Body.properties.storageProfile.osDisk.diskSizeGB == INTEGER
    input.Body.properties.storageProfile.osDisk.storageAccountType == enum_StorageAccountType[_]
    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_ImageDataDiskCaching[_]
    input.Body.properties.storageProfile.dataDisks[_].diskSizeGB == INTEGER
    input.Body.properties.storageProfile.dataDisks[_].storageAccountType == enum_StorageAccountType[_]
    input.Body.properties.storageProfile.zoneResilient == BOOLEAN
    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.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.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
}

ResourceSkus_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == 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
}

SharedGalleries_Get

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

SharedGalleries_List

enum_SharedToParameter := [ "tenant" ]

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.location == STRING
    input.Qs.api-version == STRING
    input.Qs.sharedTo == enum_SharedToParameter[_]
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

SharedGalleryImageVersions_Get

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

SharedGalleryImageVersions_List

enum_SharedToParameter := [ "tenant" ]

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.location == STRING
    input.ReqMap.galleryUniqueName == STRING
    input.ReqMap.galleryImageName == STRING
    input.Qs.api-version == STRING
    input.Qs.sharedTo == enum_SharedToParameter[_]
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

SharedGalleryImages_Get

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

SharedGalleryImages_List

enum_SharedToParameter := [ "tenant" ]

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.location == STRING
    input.ReqMap.galleryUniqueName == STRING
    input.Qs.api-version == STRING
    input.Qs.sharedTo == enum_SharedToParameter[_]
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Snapshots_CreateOrUpdate

enum_CreationDataCreateOption := [ "Empty", "Attach", "FromImage", "Import", "Copy", "Restore", "Upload" ]
enum_SnapshotPropertiesHyperVGeneration := [ "V1", "V2" ]
enum_SnapshotPropertiesOsType := [ "Windows", "Linux" ]
enum_SnapshotSkuName := [ "Standard_LRS", "Premium_LRS", "Standard_ZRS" ]

valid {
    input.Body.sku.name == enum_SnapshotSkuName[_]
    input.Body.properties.osType == enum_SnapshotPropertiesOsType[_]
    input.Body.properties.hyperVGeneration == enum_SnapshotPropertiesHyperVGeneration[_]
    input.Body.properties.creationData.createOption == enum_CreationDataCreateOption[_]
    input.Body.properties.creationData.storageAccountId == STRING
    input.Body.properties.creationData.imageReference.id == STRING
    input.Body.properties.creationData.imageReference.lun == INTEGER
    input.Body.properties.creationData.sourceUri == STRING
    input.Body.properties.creationData.sourceResourceId == STRING
    input.Body.properties.diskSizeGB == INTEGER
    input.Body.properties.encryptionSettingsCollection.enabled == BOOLEAN
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].diskEncryptionKey.sourceVault.id == STRING
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].diskEncryptionKey.secretUrl == STRING
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].keyEncryptionKey.sourceVault.id == STRING
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].keyEncryptionKey.keyUrl == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.snapshotName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Snapshots_Delete

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

Snapshots_Get

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

Snapshots_GrantAccess

enum_GrantAccessDataAccess := [ "None", "Read", "Write" ]

valid {
    input.Body.access == enum_GrantAccessDataAccess[_]
    input.Body.durationInSeconds == INTEGER
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.snapshotName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Snapshots_List

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

Snapshots_ListByResourceGroup

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
}

Snapshots_RevokeAccess

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

Snapshots_Update

enum_SnapshotSkuName := [ "Standard_LRS", "Premium_LRS", "Standard_ZRS" ]
enum_SnapshotUpdatePropertiesOsType := [ "Windows", "Linux" ]

valid {
    input.Body.properties.osType == enum_SnapshotUpdatePropertiesOsType[_]
    input.Body.properties.diskSizeGB == INTEGER
    input.Body.properties.encryptionSettingsCollection.enabled == BOOLEAN
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].diskEncryptionKey.sourceVault.id == STRING
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].diskEncryptionKey.secretUrl == STRING
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].keyEncryptionKey.sourceVault.id == STRING
    input.Body.properties.encryptionSettingsCollection.encryptionSettings[_].keyEncryptionKey.keyUrl == STRING
    input.Body.tags.STRING == STRING
    input.Body.sku.name == enum_SnapshotSkuName[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.snapshotName == 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.settings.STRING == STRING
    input.Body.properties.protectedSettings.STRING == 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_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_StorageAccountType := [ "Standard_LRS", "Premium_LRS" ]
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.createOption == enum_CreateOption[_]
    input.Body.properties.storageProfile.osDisk.diskSizeGB == INTEGER
    input.Body.properties.storageProfile.osDisk.managedDisk.storageAccountType == enum_StorageAccountType[_]
    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.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.diagnosticsProfile.bootDiagnostics.enabled == BOOLEAN
    input.Body.properties.diagnosticsProfile.bootDiagnostics.storageUri == STRING
    input.Body.properties.availabilitySet.id == STRING
    input.Body.properties.licenseType == STRING
    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_StorageAccountType := [ "Standard_LRS", "Premium_LRS" ]
enum_UpgradePolicyMode := [ "Automatic", "Manual", "Rolling" ]
enum_VirtualMachineScaleSetIPConfigurationPropertiesPrivateIPAddressVersion := [ "IPv4", "IPv6" ]
enum_VirtualMachineScaleSetIdentityType := [ "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned", "None" ]
enum_VirtualMachineScaleSetOSDiskOsType := [ "Windows", "Linux" ]
enum_VirtualMachineScaleSetVMProfileEvictionPolicy := [ "Deallocate", "Delete" ]
enum_VirtualMachineScaleSetVMProfilePriority := [ "Regular", "Low" ]
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.automaticOSUpgrade == BOOLEAN
    input.Body.properties.upgradePolicy.autoOSUpgradePolicy.disableAutoRollback == BOOLEAN
    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.writeAcceleratorEnabled == BOOLEAN
    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.storageProfile.osDisk.managedDisk.storageAccountType == enum_StorageAccountType[_]
    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.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.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_VirtualMachineScaleSetIPConfigurationPropertiesPrivateIPAddressVersion[_]
    input.Body.properties.virtualMachineProfile.networkProfile.networkInterfaceConfigurations[_].properties.ipConfigurations[_].properties.applicationGatewayBackendAddressPools[_].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.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.settings.STRING == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.protectedSettings.STRING == STRING
    input.Body.properties.virtualMachineProfile.licenseType == STRING
    input.Body.properties.virtualMachineProfile.priority == enum_VirtualMachineScaleSetVMProfilePriority[_]
    input.Body.properties.virtualMachineProfile.evictionPolicy == enum_VirtualMachineScaleSetVMProfileEvictionPolicy[_]
    input.Body.properties.overprovision == BOOLEAN
    input.Body.properties.singlePlacementGroup == BOOLEAN
    input.Body.properties.zoneBalance == BOOLEAN
    input.Body.properties.platformFaultDomainCount == INTEGER
    input.Body.identity.type == enum_VirtualMachineScaleSetIdentityType[_]
    input.Body.identity.identityIds[_] == STRING
    input.Body.zones[_] == STRING
    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.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_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_StorageAccountType := [ "Standard_LRS", "Premium_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.automaticOSUpgrade == BOOLEAN
    input.Body.properties.upgradePolicy.autoOSUpgradePolicy.disableAutoRollback == BOOLEAN
    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.caching == enum_Caching[_]
    input.Body.properties.virtualMachineProfile.storageProfile.osDisk.writeAcceleratorEnabled == BOOLEAN
    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.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.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.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.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.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.settings.STRING == STRING
    input.Body.properties.virtualMachineProfile.extensionProfile.extensions[_].properties.protectedSettings.STRING == STRING
    input.Body.properties.virtualMachineProfile.licenseType == STRING
    input.Body.properties.overprovision == BOOLEAN
    input.Body.properties.singlePlacementGroup == BOOLEAN
    input.Body.identity.type == enum_VirtualMachineScaleSetIdentityType[_]
    input.Body.identity.identityIds[_] == 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_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_StorageAccountType := [ "Standard_LRS", "Premium_LRS" ]
enum_VirtualMachineIdentityType := [ "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned", "None" ]
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.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.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.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.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.identity.type == enum_VirtualMachineIdentityType[_]
    input.Body.identity.identityIds[_] == STRING
    input.Body.zones[_] == 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_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_StorageAccountType := [ "Standard_LRS", "Premium_LRS" ]
enum_VirtualMachineIdentityType := [ "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned", "None" ]
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.writeAcceleratorEnabled == BOOLEAN
    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.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.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.diagnosticsProfile.bootDiagnostics.enabled == BOOLEAN
    input.Body.properties.diagnosticsProfile.bootDiagnostics.storageUri == STRING
    input.Body.properties.availabilitySet.id == STRING
    input.Body.properties.licenseType == STRING
    input.Body.identity.type == enum_VirtualMachineIdentityType[_]
    input.Body.identity.identityIds[_] == 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
}