MICROSOFT.SQLVIRTUALMACHINE

AvailabilityGroupListeners_CreateOrUpdate

enum_AgReplicaCommit := [ "Synchronous_Commit", "Asynchronous_Commit" ]
enum_AgReplicaFailover := [ "Automatic", "Manual" ]
enum_AgReplicaReadableSecondary := [ "No", "All", "Read_Only" ]
enum_AgReplicaRole := [ "Primary", "Secondary" ]

valid {
    input.Body.properties.availabilityGroupName == STRING
    input.Body.properties.loadBalancerConfigurations[_].privateIpAddress.ipAddress == STRING
    input.Body.properties.loadBalancerConfigurations[_].privateIpAddress.subnetResourceId == STRING
    input.Body.properties.loadBalancerConfigurations[_].publicIpAddressResourceId == STRING
    input.Body.properties.loadBalancerConfigurations[_].loadBalancerResourceId == STRING
    input.Body.properties.loadBalancerConfigurations[_].probePort == INTEGER
    input.Body.properties.loadBalancerConfigurations[_].sqlVirtualMachineInstances[_] == STRING
    input.Body.properties.multiSubnetIpConfigurations[_].privateIpAddress.ipAddress == STRING
    input.Body.properties.multiSubnetIpConfigurations[_].privateIpAddress.subnetResourceId == STRING
    input.Body.properties.multiSubnetIpConfigurations[_].sqlVirtualMachineInstance == STRING
    input.Body.properties.createDefaultAvailabilityGroupIfNotExist == BOOLEAN
    input.Body.properties.port == INTEGER
    input.Body.properties.availabilityGroupConfiguration.replicas[_].sqlVirtualMachineInstanceId == STRING
    input.Body.properties.availabilityGroupConfiguration.replicas[_].role == enum_AgReplicaRole[_]
    input.Body.properties.availabilityGroupConfiguration.replicas[_].commit == enum_AgReplicaCommit[_]
    input.Body.properties.availabilityGroupConfiguration.replicas[_].failover == enum_AgReplicaFailover[_]
    input.Body.properties.availabilityGroupConfiguration.replicas[_].readableSecondary == enum_AgReplicaReadableSecondary[_]
    input.Body.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.sqlVirtualMachineGroupName == STRING
    input.ReqMap.availabilityGroupListenerName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AvailabilityGroupListeners_Delete

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

AvailabilityGroupListeners_Get

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

AvailabilityGroupListeners_ListByGroup

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

Operations_List

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

SqlVirtualMachineGroups_CreateOrUpdate

enum_SqlVirtualMachineGroupPropertiesSqlImageSku := [ "Developer", "Enterprise" ]
enum_WsfcDomainProfileClusterSubnetType := [ "SingleSubnet", "MultiSubnet" ]

valid {
    input.Body.properties.sqlImageOffer == STRING
    input.Body.properties.sqlImageSku == enum_SqlVirtualMachineGroupPropertiesSqlImageSku[_]
    input.Body.properties.wsfcDomainProfile.domainFqdn == STRING
    input.Body.properties.wsfcDomainProfile.ouPath == STRING
    input.Body.properties.wsfcDomainProfile.clusterBootstrapAccount == STRING
    input.Body.properties.wsfcDomainProfile.clusterOperatorAccount == STRING
    input.Body.properties.wsfcDomainProfile.sqlServiceAccount == STRING
    input.Body.properties.wsfcDomainProfile.isSqlServiceAccountGmsa == BOOLEAN
    input.Body.properties.wsfcDomainProfile.fileShareWitnessPath == STRING
    input.Body.properties.wsfcDomainProfile.storageAccountUrl == STRING
    input.Body.properties.wsfcDomainProfile.storageAccountPrimaryKey == STRING
    input.Body.properties.wsfcDomainProfile.clusterSubnetType == enum_WsfcDomainProfileClusterSubnetType[_]
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.sqlVirtualMachineGroupName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

SqlVirtualMachineGroups_Delete

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

SqlVirtualMachineGroups_Get

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

SqlVirtualMachineGroups_List

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

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

SqlVirtualMachineGroups_Update

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

SqlVirtualMachineTroubleshoot_Troubleshoot

enum_SqlVmTroubleshootingTroubleshootingScenario := [ "UnhealthyReplica" ]

valid {
    input.Body.startTimeUtc == STRING
    input.Body.endTimeUtc == STRING
    input.Body.troubleshootingScenario == enum_SqlVmTroubleshootingTroubleshootingScenario[_]
    input.Body.properties.unhealthyReplicaInfo.availabilityGroupName == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.sqlVirtualMachineName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

SqlVirtualMachines_CreateOrUpdate

enum_AutoBackupSettingsBackupScheduleType := [ "Manual", "Automated" ]
enum_AutoBackupSettingsDaysOfWeek := [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]
enum_AutoBackupSettingsFullBackupFrequency := [ "Daily", "Weekly" ]
enum_AutoPatchingSettingsAdditionalVmPatch := [ "NotSet", "MicrosoftUpdate" ]
enum_AutoPatchingSettingsDayOfWeek := [ "Everyday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]
enum_ResourceIdentityType := [ "None", "SystemAssigned", "UserAssigned", "SystemAssigned,UserAssigned" ]
enum_ScheduleDayOfWeek := [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]
enum_SqlConnectivityUpdateSettingsConnectivityType := [ "LOCAL", "PRIVATE", "PUBLIC" ]
enum_SqlStorageUpdateSettingsDiskConfigurationType := [ "NEW", "EXTEND", "ADD" ]
enum_SqlVirtualMachinePropertiesLeastPrivilegeMode := [ "Enabled", "NotSet" ]
enum_SqlVirtualMachinePropertiesSqlImageSku := [ "Developer", "Express", "Standard", "Enterprise", "Web" ]
enum_SqlVirtualMachinePropertiesSqlManagement := [ "Full", "LightWeight", "NoAgent" ]
enum_SqlVirtualMachinePropertiesSqlServerLicenseType := [ "PAYG", "AHUB", "DR" ]
enum_SqlWorkloadTypeUpdateSettingsSqlWorkloadType := [ "GENERAL", "OLTP", "DW" ]
enum_StorageConfigurationSettingsDiskConfigurationType := [ "NEW", "EXTEND", "ADD" ]
enum_StorageConfigurationSettingsStorageWorkloadType := [ "GENERAL", "OLTP", "DW" ]
enum_VirtualMachineIdentityType := [ "None", "SystemAssigned", "UserAssigned" ]

valid {
    input.Body.identity.type == enum_ResourceIdentityType[_]
    input.Body.properties.virtualMachineResourceId == STRING
    input.Body.properties.sqlImageOffer == STRING
    input.Body.properties.sqlServerLicenseType == enum_SqlVirtualMachinePropertiesSqlServerLicenseType[_]
    input.Body.properties.sqlManagement == enum_SqlVirtualMachinePropertiesSqlManagement[_]
    input.Body.properties.leastPrivilegeMode == enum_SqlVirtualMachinePropertiesLeastPrivilegeMode[_]
    input.Body.properties.sqlImageSku == enum_SqlVirtualMachinePropertiesSqlImageSku[_]
    input.Body.properties.sqlVirtualMachineGroupResourceId == STRING
    input.Body.properties.wsfcDomainCredentials.clusterBootstrapAccountPassword == STRING
    input.Body.properties.wsfcDomainCredentials.clusterOperatorAccountPassword == STRING
    input.Body.properties.wsfcDomainCredentials.sqlServiceAccountPassword == STRING
    input.Body.properties.wsfcStaticIp == STRING
    input.Body.properties.autoPatchingSettings.enable == BOOLEAN
    input.Body.properties.autoPatchingSettings.dayOfWeek == enum_AutoPatchingSettingsDayOfWeek[_]
    input.Body.properties.autoPatchingSettings.maintenanceWindowStartingHour == INTEGER
    input.Body.properties.autoPatchingSettings.maintenanceWindowDuration == INTEGER
    input.Body.properties.autoPatchingSettings.additionalVmPatch == enum_AutoPatchingSettingsAdditionalVmPatch[_]
    input.Body.properties.autoBackupSettings.enable == BOOLEAN
    input.Body.properties.autoBackupSettings.enableEncryption == BOOLEAN
    input.Body.properties.autoBackupSettings.retentionPeriod == INTEGER
    input.Body.properties.autoBackupSettings.storageAccountUrl == STRING
    input.Body.properties.autoBackupSettings.storageContainerName == STRING
    input.Body.properties.autoBackupSettings.storageAccessKey == STRING
    input.Body.properties.autoBackupSettings.password == STRING
    input.Body.properties.autoBackupSettings.backupSystemDbs == BOOLEAN
    input.Body.properties.autoBackupSettings.backupScheduleType == enum_AutoBackupSettingsBackupScheduleType[_]
    input.Body.properties.autoBackupSettings.fullBackupFrequency == enum_AutoBackupSettingsFullBackupFrequency[_]
    input.Body.properties.autoBackupSettings.daysOfWeek[_] == enum_AutoBackupSettingsDaysOfWeek[_]
    input.Body.properties.autoBackupSettings.fullBackupStartTime == INTEGER
    input.Body.properties.autoBackupSettings.fullBackupWindowHours == INTEGER
    input.Body.properties.autoBackupSettings.logBackupFrequency == INTEGER
    input.Body.properties.keyVaultCredentialSettings.enable == BOOLEAN
    input.Body.properties.keyVaultCredentialSettings.credentialName == STRING
    input.Body.properties.keyVaultCredentialSettings.azureKeyVaultUrl == STRING
    input.Body.properties.keyVaultCredentialSettings.servicePrincipalName == STRING
    input.Body.properties.keyVaultCredentialSettings.servicePrincipalSecret == STRING
    input.Body.properties.serverConfigurationsManagementSettings.sqlConnectivityUpdateSettings.connectivityType == enum_SqlConnectivityUpdateSettingsConnectivityType[_]
    input.Body.properties.serverConfigurationsManagementSettings.sqlConnectivityUpdateSettings.port == INTEGER
    input.Body.properties.serverConfigurationsManagementSettings.sqlConnectivityUpdateSettings.sqlAuthUpdateUserName == STRING
    input.Body.properties.serverConfigurationsManagementSettings.sqlConnectivityUpdateSettings.sqlAuthUpdatePassword == STRING
    input.Body.properties.serverConfigurationsManagementSettings.sqlWorkloadTypeUpdateSettings.sqlWorkloadType == enum_SqlWorkloadTypeUpdateSettingsSqlWorkloadType[_]
    input.Body.properties.serverConfigurationsManagementSettings.sqlStorageUpdateSettings.diskCount == INTEGER
    input.Body.properties.serverConfigurationsManagementSettings.sqlStorageUpdateSettings.startingDeviceId == INTEGER
    input.Body.properties.serverConfigurationsManagementSettings.sqlStorageUpdateSettings.diskConfigurationType == enum_SqlStorageUpdateSettingsDiskConfigurationType[_]
    input.Body.properties.serverConfigurationsManagementSettings.additionalFeaturesServerConfigurations.isRServicesEnabled == BOOLEAN
    input.Body.properties.serverConfigurationsManagementSettings.sqlInstanceSettings.collation == STRING
    input.Body.properties.serverConfigurationsManagementSettings.sqlInstanceSettings.maxDop == INTEGER
    input.Body.properties.serverConfigurationsManagementSettings.sqlInstanceSettings.isOptimizeForAdHocWorkloadsEnabled == BOOLEAN
    input.Body.properties.serverConfigurationsManagementSettings.sqlInstanceSettings.minServerMemoryMB == INTEGER
    input.Body.properties.serverConfigurationsManagementSettings.sqlInstanceSettings.maxServerMemoryMB == INTEGER
    input.Body.properties.serverConfigurationsManagementSettings.sqlInstanceSettings.isLpimEnabled == BOOLEAN
    input.Body.properties.serverConfigurationsManagementSettings.sqlInstanceSettings.isIfiEnabled == BOOLEAN
    input.Body.properties.serverConfigurationsManagementSettings.azureAdAuthenticationSettings.clientId == STRING
    input.Body.properties.storageConfigurationSettings.sqlDataSettings.luns[_] == INTEGER
    input.Body.properties.storageConfigurationSettings.sqlDataSettings.defaultFilePath == STRING
    input.Body.properties.storageConfigurationSettings.sqlDataSettings.useStoragePool == BOOLEAN
    input.Body.properties.storageConfigurationSettings.sqlLogSettings.luns[_] == INTEGER
    input.Body.properties.storageConfigurationSettings.sqlLogSettings.defaultFilePath == STRING
    input.Body.properties.storageConfigurationSettings.sqlLogSettings.useStoragePool == BOOLEAN
    input.Body.properties.storageConfigurationSettings.sqlTempDbSettings.dataFileSize == INTEGER
    input.Body.properties.storageConfigurationSettings.sqlTempDbSettings.dataGrowth == INTEGER
    input.Body.properties.storageConfigurationSettings.sqlTempDbSettings.logFileSize == INTEGER
    input.Body.properties.storageConfigurationSettings.sqlTempDbSettings.logGrowth == INTEGER
    input.Body.properties.storageConfigurationSettings.sqlTempDbSettings.dataFileCount == INTEGER
    input.Body.properties.storageConfigurationSettings.sqlTempDbSettings.persistFolder == BOOLEAN
    input.Body.properties.storageConfigurationSettings.sqlTempDbSettings.persistFolderPath == STRING
    input.Body.properties.storageConfigurationSettings.sqlTempDbSettings.luns[_] == INTEGER
    input.Body.properties.storageConfigurationSettings.sqlTempDbSettings.defaultFilePath == STRING
    input.Body.properties.storageConfigurationSettings.sqlTempDbSettings.useStoragePool == BOOLEAN
    input.Body.properties.storageConfigurationSettings.sqlSystemDbOnDataDisk == BOOLEAN
    input.Body.properties.storageConfigurationSettings.diskConfigurationType == enum_StorageConfigurationSettingsDiskConfigurationType[_]
    input.Body.properties.storageConfigurationSettings.storageWorkloadType == enum_StorageConfigurationSettingsStorageWorkloadType[_]
    input.Body.properties.storageConfigurationSettings.enableStorageConfigBlade == BOOLEAN
    input.Body.properties.assessmentSettings.enable == BOOLEAN
    input.Body.properties.assessmentSettings.runImmediately == BOOLEAN
    input.Body.properties.assessmentSettings.schedule.enable == BOOLEAN
    input.Body.properties.assessmentSettings.schedule.weeklyInterval == INTEGER
    input.Body.properties.assessmentSettings.schedule.monthlyOccurrence == INTEGER
    input.Body.properties.assessmentSettings.schedule.dayOfWeek == enum_ScheduleDayOfWeek[_]
    input.Body.properties.assessmentSettings.schedule.startTime == STRING
    input.Body.properties.enableAutomaticUpgrade == BOOLEAN
    input.Body.properties.virtualMachineIdentitySettings.type == enum_VirtualMachineIdentityType[_]
    input.Body.properties.virtualMachineIdentitySettings.resourceId == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.sqlVirtualMachineName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

SqlVirtualMachines_Delete

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

SqlVirtualMachines_FetchDCAssessment

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

SqlVirtualMachines_Get

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

SqlVirtualMachines_List

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

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

SqlVirtualMachines_ListBySqlVmGroup

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

SqlVirtualMachines_Redeploy

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

SqlVirtualMachines_StartAssessment

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

SqlVirtualMachines_Update

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