MICROSOFT.SERVICEFABRIC

ApplicationTypeVersions_CreateOrUpdate

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

ApplicationTypeVersions_Delete

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

ApplicationTypeVersions_Get

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

ApplicationTypeVersions_List

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

ApplicationTypeVersions_ListByApplicationTypes

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

ApplicationTypeVersions_Update

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

ApplicationTypes_CreateOrUpdate

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

ApplicationTypes_Delete

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

ApplicationTypes_Get

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

ApplicationTypes_List

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

ApplicationTypes_Update

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

Applications_CreateOrUpdate

enum_ManagedIdentityType := [ "None", "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned" ]
enum_RollingUpgradeMode := [ "Monitored", "UnmonitoredAuto" ]
enum_RollingUpgradeMonitoringPolicyFailureAction := [ "Rollback", "Manual" ]

valid {
    input.Body.identity.type == enum_ManagedIdentityType[_]
    input.Body.identity.userAssignedIdentities.STRING == {}
    input.Body.properties.version == STRING
    input.Body.properties.parameters.STRING == STRING
    input.Body.properties.upgradePolicy.applicationHealthPolicy.considerWarningAsError == BOOLEAN
    input.Body.properties.upgradePolicy.applicationHealthPolicy.maxPercentUnhealthyDeployedApplications == INTEGER
    input.Body.properties.upgradePolicy.applicationHealthPolicy.defaultServiceTypeHealthPolicy.maxPercentUnhealthyServices == INTEGER
    input.Body.properties.upgradePolicy.applicationHealthPolicy.defaultServiceTypeHealthPolicy.maxPercentUnhealthyPartitionsPerService == INTEGER
    input.Body.properties.upgradePolicy.applicationHealthPolicy.defaultServiceTypeHealthPolicy.maxPercentUnhealthyReplicasPerPartition == INTEGER
    input.Body.properties.upgradePolicy.applicationHealthPolicy.serviceTypeHealthPolicyMap.STRING.maxPercentUnhealthyServices == INTEGER
    input.Body.properties.upgradePolicy.applicationHealthPolicy.serviceTypeHealthPolicyMap.STRING.maxPercentUnhealthyPartitionsPerService == INTEGER
    input.Body.properties.upgradePolicy.applicationHealthPolicy.serviceTypeHealthPolicyMap.STRING.maxPercentUnhealthyReplicasPerPartition == INTEGER
    input.Body.properties.upgradePolicy.forceRestart == BOOLEAN
    input.Body.properties.upgradePolicy.rollingUpgradeMonitoringPolicy.failureAction == enum_RollingUpgradeMonitoringPolicyFailureAction[_]
    input.Body.properties.upgradePolicy.rollingUpgradeMonitoringPolicy.healthCheckWaitDuration == STRING
    input.Body.properties.upgradePolicy.rollingUpgradeMonitoringPolicy.healthCheckStableDuration == STRING
    input.Body.properties.upgradePolicy.rollingUpgradeMonitoringPolicy.healthCheckRetryTimeout == STRING
    input.Body.properties.upgradePolicy.rollingUpgradeMonitoringPolicy.upgradeTimeout == STRING
    input.Body.properties.upgradePolicy.rollingUpgradeMonitoringPolicy.upgradeDomainTimeout == STRING
    input.Body.properties.upgradePolicy.instanceCloseDelayDuration == INTEGER
    input.Body.properties.upgradePolicy.upgradeMode == enum_RollingUpgradeMode[_]
    input.Body.properties.upgradePolicy.upgradeReplicaSetCheckTimeout == INTEGER
    input.Body.properties.upgradePolicy.recreateApplication == BOOLEAN
    input.Body.properties.managedIdentities[_].name == STRING
    input.Body.properties.managedIdentities[_].principalId == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.clusterName == STRING
    input.ReqMap.applicationName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Applications_Delete

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

Applications_Get

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

Applications_List

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

Applications_ReadUpgrade

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

Applications_ResumeUpgrade

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

Applications_StartRollback

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

Applications_Update

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

ClusterVersions_Get

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

ClusterVersions_GetByEnvironment

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

valid {
    input.ReqMap.location == STRING
    input.ReqMap.environment == enum_environment[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.clusterVersion == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

ClusterVersions_List

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

ClusterVersions_ListByEnvironment

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

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

Clusters_CreateOrUpdate

enum_AddOnFeatures := [ "RepairManager", "DnsService", "BackupRestoreService", "ResourceMonitorService" ]
enum_ClusterUpgradeCadence := [ "Wave0", "Wave1", "Wave2" ]
enum_DurabilityLevel := [ "Bronze", "Silver", "Gold" ]
enum_NotificationNotificationCategory := [ "WaveProgress" ]
enum_NotificationNotificationLevel := [ "Critical", "All" ]
enum_NotificationTargetNotificationChannel := [ "EmailUser", "EmailSubscription" ]
enum_ReliabilityLevel := [ "None", "Bronze", "Silver", "Gold", "Platinum" ]
enum_SfZonalUpgradeMode := [ "Parallel", "Hierarchical" ]
enum_StoreName := [ "AddressBook", "AuthRoot", "CertificateAuthority", "Disallowed", "My", "Root", "TrustedPeople", "TrustedPublisher" ]
enum_UpgradeMode := [ "Automatic", "Manual" ]
enum_VmssZonalUpgradeMode := [ "Parallel", "Hierarchical" ]

valid {
    input.Body.properties.addOnFeatures[_] == enum_AddOnFeatures[_]
    input.Body.properties.azureActiveDirectory.tenantId == STRING
    input.Body.properties.azureActiveDirectory.clusterApplication == STRING
    input.Body.properties.azureActiveDirectory.clientApplication == STRING
    input.Body.properties.certificate.thumbprint == STRING
    input.Body.properties.certificate.thumbprintSecondary == STRING
    input.Body.properties.certificate.x509StoreName == enum_StoreName[_]
    input.Body.properties.certificateCommonNames.commonNames[_].certificateCommonName == STRING
    input.Body.properties.certificateCommonNames.commonNames[_].certificateIssuerThumbprint == STRING
    input.Body.properties.certificateCommonNames.x509StoreName == enum_StoreName[_]
    input.Body.properties.clientCertificateCommonNames[_].isAdmin == BOOLEAN
    input.Body.properties.clientCertificateCommonNames[_].certificateCommonName == STRING
    input.Body.properties.clientCertificateCommonNames[_].certificateIssuerThumbprint == STRING
    input.Body.properties.clientCertificateThumbprints[_].isAdmin == BOOLEAN
    input.Body.properties.clientCertificateThumbprints[_].certificateThumbprint == STRING
    input.Body.properties.clusterCodeVersion == STRING
    input.Body.properties.diagnosticsStorageAccountConfig.storageAccountName == STRING
    input.Body.properties.diagnosticsStorageAccountConfig.protectedAccountKeyName == STRING
    input.Body.properties.diagnosticsStorageAccountConfig.protectedAccountKeyName2 == STRING
    input.Body.properties.diagnosticsStorageAccountConfig.blobEndpoint == STRING
    input.Body.properties.diagnosticsStorageAccountConfig.queueEndpoint == STRING
    input.Body.properties.diagnosticsStorageAccountConfig.tableEndpoint == STRING
    input.Body.properties.eventStoreServiceEnabled == BOOLEAN
    input.Body.properties.fabricSettings[_].name == STRING
    input.Body.properties.fabricSettings[_].parameters[_].name == STRING
    input.Body.properties.fabricSettings[_].parameters[_].value == STRING
    input.Body.properties.managementEndpoint == STRING
    input.Body.properties.nodeTypes[_].name == STRING
    input.Body.properties.nodeTypes[_].placementProperties.STRING == STRING
    input.Body.properties.nodeTypes[_].capacities.STRING == STRING
    input.Body.properties.nodeTypes[_].clientConnectionEndpointPort == INTEGER
    input.Body.properties.nodeTypes[_].httpGatewayEndpointPort == INTEGER
    input.Body.properties.nodeTypes[_].durabilityLevel == enum_DurabilityLevel[_]
    input.Body.properties.nodeTypes[_].applicationPorts.startPort == INTEGER
    input.Body.properties.nodeTypes[_].applicationPorts.endPort == INTEGER
    input.Body.properties.nodeTypes[_].ephemeralPorts.startPort == INTEGER
    input.Body.properties.nodeTypes[_].ephemeralPorts.endPort == INTEGER
    input.Body.properties.nodeTypes[_].isPrimary == BOOLEAN
    input.Body.properties.nodeTypes[_].vmInstanceCount == INTEGER
    input.Body.properties.nodeTypes[_].reverseProxyEndpointPort == INTEGER
    input.Body.properties.nodeTypes[_].isStateless == BOOLEAN
    input.Body.properties.nodeTypes[_].multipleAvailabilityZones == BOOLEAN
    input.Body.properties.nodeTypes[_].httpGatewayTokenAuthEndpointPort == INTEGER
    input.Body.properties.reliabilityLevel == enum_ReliabilityLevel[_]
    input.Body.properties.reverseProxyCertificate.thumbprint == STRING
    input.Body.properties.reverseProxyCertificate.thumbprintSecondary == STRING
    input.Body.properties.reverseProxyCertificate.x509StoreName == enum_StoreName[_]
    input.Body.properties.reverseProxyCertificateCommonNames.commonNames[_].certificateCommonName == STRING
    input.Body.properties.reverseProxyCertificateCommonNames.commonNames[_].certificateIssuerThumbprint == STRING
    input.Body.properties.reverseProxyCertificateCommonNames.x509StoreName == enum_StoreName[_]
    input.Body.properties.upgradeDescription.forceRestart == BOOLEAN
    input.Body.properties.upgradeDescription.upgradeReplicaSetCheckTimeout == STRING
    input.Body.properties.upgradeDescription.healthCheckWaitDuration == STRING
    input.Body.properties.upgradeDescription.healthCheckStableDuration == STRING
    input.Body.properties.upgradeDescription.healthCheckRetryTimeout == STRING
    input.Body.properties.upgradeDescription.upgradeTimeout == STRING
    input.Body.properties.upgradeDescription.upgradeDomainTimeout == STRING
    input.Body.properties.upgradeDescription.healthPolicy.maxPercentUnhealthyNodes == INTEGER
    input.Body.properties.upgradeDescription.healthPolicy.maxPercentUnhealthyApplications == INTEGER
    input.Body.properties.upgradeDescription.healthPolicy.applicationHealthPolicies.STRING.defaultServiceTypeHealthPolicy.maxPercentUnhealthyServices == INTEGER
    input.Body.properties.upgradeDescription.healthPolicy.applicationHealthPolicies.STRING.serviceTypeHealthPolicies.STRING.maxPercentUnhealthyServices == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.maxPercentDeltaUnhealthyNodes == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.maxPercentUpgradeDomainDeltaUnhealthyNodes == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.maxPercentDeltaUnhealthyApplications == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.applicationDeltaHealthPolicies.STRING.defaultServiceTypeDeltaHealthPolicy.maxPercentDeltaUnhealthyServices == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.applicationDeltaHealthPolicies.STRING.serviceTypeDeltaHealthPolicies.STRING.maxPercentDeltaUnhealthyServices == INTEGER
    input.Body.properties.upgradeMode == enum_UpgradeMode[_]
    input.Body.properties.applicationTypeVersionsCleanupPolicy.maxUnusedVersionsToKeep == INTEGER
    input.Body.properties.vmImage == STRING
    input.Body.properties.sfZonalUpgradeMode == enum_SfZonalUpgradeMode[_]
    input.Body.properties.vmssZonalUpgradeMode == enum_VmssZonalUpgradeMode[_]
    input.Body.properties.infrastructureServiceManager == BOOLEAN
    input.Body.properties.upgradeWave == enum_ClusterUpgradeCadence[_]
    input.Body.properties.upgradePauseStartTimestampUtc == STRING
    input.Body.properties.upgradePauseEndTimestampUtc == STRING
    input.Body.properties.waveUpgradePaused == BOOLEAN
    input.Body.properties.notifications[_].isEnabled == BOOLEAN
    input.Body.properties.notifications[_].notificationCategory == enum_NotificationNotificationCategory[_]
    input.Body.properties.notifications[_].notificationLevel == enum_NotificationNotificationLevel[_]
    input.Body.properties.notifications[_].notificationTargets[_].notificationChannel == enum_NotificationTargetNotificationChannel[_]
    input.Body.properties.notifications[_].notificationTargets[_].receivers[_] == STRING
    input.Body.properties.enableHttpGatewayExclusiveAuthMode == BOOLEAN
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.Body.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.clusterName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Clusters_Delete

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

Clusters_Get

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

Clusters_List

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

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

Clusters_ListUpgradableVersions

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

Clusters_Update

enum_AddOnFeatures := [ "RepairManager", "DnsService", "BackupRestoreService", "ResourceMonitorService" ]
enum_ClusterUpgradeCadence := [ "Wave0", "Wave1", "Wave2" ]
enum_DurabilityLevel := [ "Bronze", "Silver", "Gold" ]
enum_NotificationNotificationCategory := [ "WaveProgress" ]
enum_NotificationNotificationLevel := [ "Critical", "All" ]
enum_NotificationTargetNotificationChannel := [ "EmailUser", "EmailSubscription" ]
enum_ReliabilityLevel := [ "None", "Bronze", "Silver", "Gold", "Platinum" ]
enum_SfZonalUpgradeMode := [ "Parallel", "Hierarchical" ]
enum_StoreName := [ "AddressBook", "AuthRoot", "CertificateAuthority", "Disallowed", "My", "Root", "TrustedPeople", "TrustedPublisher" ]
enum_UpgradeMode := [ "Automatic", "Manual" ]
enum_VmssZonalUpgradeMode := [ "Parallel", "Hierarchical" ]

valid {
    input.Body.properties.addOnFeatures[_] == enum_AddOnFeatures[_]
    input.Body.properties.certificate.thumbprint == STRING
    input.Body.properties.certificate.thumbprintSecondary == STRING
    input.Body.properties.certificate.x509StoreName == enum_StoreName[_]
    input.Body.properties.certificateCommonNames.commonNames[_].certificateCommonName == STRING
    input.Body.properties.certificateCommonNames.commonNames[_].certificateIssuerThumbprint == STRING
    input.Body.properties.certificateCommonNames.x509StoreName == enum_StoreName[_]
    input.Body.properties.clientCertificateCommonNames[_].isAdmin == BOOLEAN
    input.Body.properties.clientCertificateCommonNames[_].certificateCommonName == STRING
    input.Body.properties.clientCertificateCommonNames[_].certificateIssuerThumbprint == STRING
    input.Body.properties.clientCertificateThumbprints[_].isAdmin == BOOLEAN
    input.Body.properties.clientCertificateThumbprints[_].certificateThumbprint == STRING
    input.Body.properties.clusterCodeVersion == STRING
    input.Body.properties.eventStoreServiceEnabled == BOOLEAN
    input.Body.properties.fabricSettings[_].name == STRING
    input.Body.properties.fabricSettings[_].parameters[_].name == STRING
    input.Body.properties.fabricSettings[_].parameters[_].value == STRING
    input.Body.properties.nodeTypes[_].name == STRING
    input.Body.properties.nodeTypes[_].placementProperties.STRING == STRING
    input.Body.properties.nodeTypes[_].capacities.STRING == STRING
    input.Body.properties.nodeTypes[_].clientConnectionEndpointPort == INTEGER
    input.Body.properties.nodeTypes[_].httpGatewayEndpointPort == INTEGER
    input.Body.properties.nodeTypes[_].durabilityLevel == enum_DurabilityLevel[_]
    input.Body.properties.nodeTypes[_].applicationPorts.startPort == INTEGER
    input.Body.properties.nodeTypes[_].applicationPorts.endPort == INTEGER
    input.Body.properties.nodeTypes[_].ephemeralPorts.startPort == INTEGER
    input.Body.properties.nodeTypes[_].ephemeralPorts.endPort == INTEGER
    input.Body.properties.nodeTypes[_].isPrimary == BOOLEAN
    input.Body.properties.nodeTypes[_].vmInstanceCount == INTEGER
    input.Body.properties.nodeTypes[_].reverseProxyEndpointPort == INTEGER
    input.Body.properties.nodeTypes[_].isStateless == BOOLEAN
    input.Body.properties.nodeTypes[_].multipleAvailabilityZones == BOOLEAN
    input.Body.properties.nodeTypes[_].httpGatewayTokenAuthEndpointPort == INTEGER
    input.Body.properties.reliabilityLevel == enum_ReliabilityLevel[_]
    input.Body.properties.reverseProxyCertificate.thumbprint == STRING
    input.Body.properties.reverseProxyCertificate.thumbprintSecondary == STRING
    input.Body.properties.reverseProxyCertificate.x509StoreName == enum_StoreName[_]
    input.Body.properties.upgradeDescription.forceRestart == BOOLEAN
    input.Body.properties.upgradeDescription.upgradeReplicaSetCheckTimeout == STRING
    input.Body.properties.upgradeDescription.healthCheckWaitDuration == STRING
    input.Body.properties.upgradeDescription.healthCheckStableDuration == STRING
    input.Body.properties.upgradeDescription.healthCheckRetryTimeout == STRING
    input.Body.properties.upgradeDescription.upgradeTimeout == STRING
    input.Body.properties.upgradeDescription.upgradeDomainTimeout == STRING
    input.Body.properties.upgradeDescription.healthPolicy.maxPercentUnhealthyNodes == INTEGER
    input.Body.properties.upgradeDescription.healthPolicy.maxPercentUnhealthyApplications == INTEGER
    input.Body.properties.upgradeDescription.healthPolicy.applicationHealthPolicies.STRING.defaultServiceTypeHealthPolicy.maxPercentUnhealthyServices == INTEGER
    input.Body.properties.upgradeDescription.healthPolicy.applicationHealthPolicies.STRING.serviceTypeHealthPolicies.STRING.maxPercentUnhealthyServices == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.maxPercentDeltaUnhealthyNodes == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.maxPercentUpgradeDomainDeltaUnhealthyNodes == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.maxPercentDeltaUnhealthyApplications == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.applicationDeltaHealthPolicies.STRING.defaultServiceTypeDeltaHealthPolicy.maxPercentDeltaUnhealthyServices == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.applicationDeltaHealthPolicies.STRING.serviceTypeDeltaHealthPolicies.STRING.maxPercentDeltaUnhealthyServices == INTEGER
    input.Body.properties.applicationTypeVersionsCleanupPolicy.maxUnusedVersionsToKeep == INTEGER
    input.Body.properties.upgradeMode == enum_UpgradeMode[_]
    input.Body.properties.sfZonalUpgradeMode == enum_SfZonalUpgradeMode[_]
    input.Body.properties.vmssZonalUpgradeMode == enum_VmssZonalUpgradeMode[_]
    input.Body.properties.infrastructureServiceManager == BOOLEAN
    input.Body.properties.upgradeWave == enum_ClusterUpgradeCadence[_]
    input.Body.properties.upgradePauseStartTimestampUtc == STRING
    input.Body.properties.upgradePauseEndTimestampUtc == STRING
    input.Body.properties.waveUpgradePaused == BOOLEAN
    input.Body.properties.notifications[_].isEnabled == BOOLEAN
    input.Body.properties.notifications[_].notificationCategory == enum_NotificationNotificationCategory[_]
    input.Body.properties.notifications[_].notificationLevel == enum_NotificationNotificationLevel[_]
    input.Body.properties.notifications[_].notificationTargets[_].notificationChannel == enum_NotificationTargetNotificationChannel[_]
    input.Body.properties.notifications[_].notificationTargets[_].receivers[_] == STRING
    input.Body.properties.enableHttpGatewayExclusiveAuthMode == BOOLEAN
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.clusterName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ManagedClusterVersion_Get

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

ManagedClusterVersion_GetByEnvironment

enum_environment := [ "Windows" ]

valid {
    input.ReqMap.location == STRING
    input.ReqMap.environment == enum_environment[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.clusterVersion == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

ManagedClusterVersion_List

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

ManagedClusterVersion_ListByEnvironment

enum_environment := [ "Windows" ]

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

ManagedClusterVersions_ListByOS

enum_api-version := [ "2020-01-01-preview" ]
enum_osType := [ "Windows", "Ubuntu", "RedHat", "Ubuntu18_04" ]

valid {
    input.ReqMap.location == STRING
    input.ReqMap.osType == enum_osType[_]
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == enum_api-version[_]
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

ManagedClusters_CreateOrUpdate

enum_ClusterUpgradeCadence := [ "Wave0", "Wave1", "Wave2" ]
enum_ClusterUpgradeMode := [ "Automatic", "Manual" ]
enum_LoadBalancingRuleProbeProtocol := [ "tcp", "http", "https" ]
enum_LoadBalancingRuleProtocol := [ "tcp", "udp" ]
enum_ManagedClusterAddOnFeature := [ "DnsService", "BackupRestoreService", "ResourceMonitorService" ]
enum_NetworkSecurityRuleAccess := [ "allow", "deny" ]
enum_NetworkSecurityRuleDirection := [ "inbound", "outbound" ]
enum_NetworkSecurityRuleProtocol := [ "http", "https", "tcp", "udp", "icmp", "ah", "esp" ]
enum_SkuName := [ "Basic", "Standard" ]
enum_SubnetPrivateEndpointNetworkPolicies := [ "enabled", "disabled" ]
enum_SubnetPrivateLinkServiceNetworkPolicies := [ "enabled", "disabled" ]
enum_ZonalUpdateMode := [ "Standard", "Fast" ]

valid {
    input.Body.properties.dnsName == STRING
    input.Body.properties.clientConnectionPort == INTEGER
    input.Body.properties.httpGatewayConnectionPort == INTEGER
    input.Body.properties.adminUserName == STRING
    input.Body.properties.adminPassword == STRING
    input.Body.properties.loadBalancingRules[_].frontendPort == INTEGER
    input.Body.properties.loadBalancingRules[_].backendPort == INTEGER
    input.Body.properties.loadBalancingRules[_].protocol == enum_LoadBalancingRuleProtocol[_]
    input.Body.properties.loadBalancingRules[_].probePort == INTEGER
    input.Body.properties.loadBalancingRules[_].probeProtocol == enum_LoadBalancingRuleProbeProtocol[_]
    input.Body.properties.loadBalancingRules[_].probeRequestPath == STRING
    input.Body.properties.loadBalancingRules[_].loadDistribution == STRING
    input.Body.properties.allowRdpAccess == BOOLEAN
    input.Body.properties.networkSecurityRules[_].name == STRING
    input.Body.properties.networkSecurityRules[_].description == STRING
    input.Body.properties.networkSecurityRules[_].protocol == enum_NetworkSecurityRuleProtocol[_]
    input.Body.properties.networkSecurityRules[_].sourceAddressPrefixes[_] == STRING
    input.Body.properties.networkSecurityRules[_].destinationAddressPrefixes[_] == STRING
    input.Body.properties.networkSecurityRules[_].sourcePortRanges[_] == STRING
    input.Body.properties.networkSecurityRules[_].destinationPortRanges[_] == STRING
    input.Body.properties.networkSecurityRules[_].sourceAddressPrefix == STRING
    input.Body.properties.networkSecurityRules[_].destinationAddressPrefix == STRING
    input.Body.properties.networkSecurityRules[_].sourcePortRange == STRING
    input.Body.properties.networkSecurityRules[_].destinationPortRange == STRING
    input.Body.properties.networkSecurityRules[_].access == enum_NetworkSecurityRuleAccess[_]
    input.Body.properties.networkSecurityRules[_].priority == INTEGER
    input.Body.properties.networkSecurityRules[_].direction == enum_NetworkSecurityRuleDirection[_]
    input.Body.properties.clients[_].isAdmin == BOOLEAN
    input.Body.properties.clients[_].thumbprint == STRING
    input.Body.properties.clients[_].commonName == STRING
    input.Body.properties.clients[_].issuerThumbprint == STRING
    input.Body.properties.azureActiveDirectory.tenantId == STRING
    input.Body.properties.azureActiveDirectory.clusterApplication == STRING
    input.Body.properties.azureActiveDirectory.clientApplication == STRING
    input.Body.properties.fabricSettings[_].name == STRING
    input.Body.properties.fabricSettings[_].parameters[_].name == STRING
    input.Body.properties.fabricSettings[_].parameters[_].value == STRING
    input.Body.properties.clusterCodeVersion == STRING
    input.Body.properties.clusterUpgradeMode == enum_ClusterUpgradeMode[_]
    input.Body.properties.clusterUpgradeCadence == enum_ClusterUpgradeCadence[_]
    input.Body.properties.addonFeatures[_] == enum_ManagedClusterAddOnFeature[_]
    input.Body.properties.enableAutoOSUpgrade == BOOLEAN
    input.Body.properties.zonalResiliency == BOOLEAN
    input.Body.properties.applicationTypeVersionsCleanupPolicy.maxUnusedVersionsToKeep == INTEGER
    input.Body.properties.enableIpv6 == BOOLEAN
    input.Body.properties.subnetId == STRING
    input.Body.properties.ipTags[_].ipTagType == STRING
    input.Body.properties.ipTags[_].tag == STRING
    input.Body.properties.enableServicePublicIP == BOOLEAN
    input.Body.properties.auxiliarySubnets[_].name == STRING
    input.Body.properties.auxiliarySubnets[_].enableIpv6 == BOOLEAN
    input.Body.properties.auxiliarySubnets[_].privateEndpointNetworkPolicies == enum_SubnetPrivateEndpointNetworkPolicies[_]
    input.Body.properties.auxiliarySubnets[_].privateLinkServiceNetworkPolicies == enum_SubnetPrivateLinkServiceNetworkPolicies[_]
    input.Body.properties.auxiliarySubnets[_].networkSecurityGroupId == STRING
    input.Body.properties.serviceEndpoints[_].service == STRING
    input.Body.properties.serviceEndpoints[_].locations[_] == STRING
    input.Body.properties.zonalUpdateMode == enum_ZonalUpdateMode[_]
    input.Body.properties.useCustomVnet == BOOLEAN
    input.Body.properties.publicIPPrefixId == STRING
    input.Body.properties.publicIPv6PrefixId == STRING
    input.Body.properties.ddosProtectionPlanId == STRING
    input.Body.properties.upgradeDescription.forceRestart == BOOLEAN
    input.Body.properties.upgradeDescription.healthPolicy.maxPercentUnhealthyNodes == INTEGER
    input.Body.properties.upgradeDescription.healthPolicy.maxPercentUnhealthyApplications == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.maxPercentDeltaUnhealthyNodes == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.maxPercentUpgradeDomainDeltaUnhealthyNodes == INTEGER
    input.Body.properties.upgradeDescription.deltaHealthPolicy.maxPercentDeltaUnhealthyApplications == INTEGER
    input.Body.properties.upgradeDescription.monitoringPolicy.healthCheckWaitDuration == STRING
    input.Body.properties.upgradeDescription.monitoringPolicy.healthCheckStableDuration == STRING
    input.Body.properties.upgradeDescription.monitoringPolicy.healthCheckRetryTimeout == STRING
    input.Body.properties.upgradeDescription.monitoringPolicy.upgradeTimeout == STRING
    input.Body.properties.upgradeDescription.monitoringPolicy.upgradeDomainTimeout == STRING
    input.Body.properties.upgradeDescription.upgradeReplicaSetCheckTimeout == STRING
    input.Body.properties.httpGatewayTokenAuthConnectionPort == INTEGER
    input.Body.properties.enableHttpGatewayExclusiveAuthMode == BOOLEAN
    input.Body.sku.name == enum_SkuName[_]
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.Body.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.clusterName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ManagedClusters_Delete

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

ManagedClusters_Get

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

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

ManagedClusters_ListBySubscription

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

ManagedClusters_Update

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

NodeTypeSkus_List

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

NodeTypes_CreateOrUpdate

enum_DiskType := [ "Standard_LRS", "StandardSSD_LRS", "Premium_LRS" ]
enum_EvictionPolicyType := [ "Delete", "Deallocate" ]
enum_IPAddressType := [ "IPv4", "IPv6" ]
enum_IpConfigurationPrivateIPAddressVersion := [ "IPv4", "IPv6" ]
enum_IpConfigurationPublicIPAddressConfigurationPublicIPAddressVersion := [ "IPv4", "IPv6" ]
enum_NetworkSecurityRuleAccess := [ "allow", "deny" ]
enum_NetworkSecurityRuleDirection := [ "inbound", "outbound" ]
enum_NetworkSecurityRuleProtocol := [ "http", "https", "tcp", "udp", "icmp", "ah", "esp" ]
enum_NodeTypePropertiesSecurityType := [ "TrustedLaunch", "Standard" ]
enum_VmSetupAction := [ "EnableContainers", "EnableHyperV" ]
enum_VmssExtensionSetupOrder := [ "BeforeSFRuntime" ]

valid {
    input.Body.properties.isPrimary == BOOLEAN
    input.Body.properties.vmInstanceCount == INTEGER
    input.Body.properties.dataDiskSizeGB == INTEGER
    input.Body.properties.dataDiskType == enum_DiskType[_]
    input.Body.properties.dataDiskLetter == STRING
    input.Body.properties.placementProperties.STRING == STRING
    input.Body.properties.capacities.STRING == STRING
    input.Body.properties.applicationPorts.startPort == INTEGER
    input.Body.properties.applicationPorts.endPort == INTEGER
    input.Body.properties.ephemeralPorts.startPort == INTEGER
    input.Body.properties.ephemeralPorts.endPort == INTEGER
    input.Body.properties.vmSize == STRING
    input.Body.properties.vmImagePublisher == STRING
    input.Body.properties.vmImageOffer == STRING
    input.Body.properties.vmImageSku == STRING
    input.Body.properties.vmImageVersion == STRING
    input.Body.properties.vmSecrets[_].sourceVault.id == STRING
    input.Body.properties.vmSecrets[_].vaultCertificates[_].certificateUrl == STRING
    input.Body.properties.vmSecrets[_].vaultCertificates[_].certificateStore == STRING
    input.Body.properties.vmExtensions[_].name == STRING
    input.Body.properties.vmExtensions[_].properties.publisher == STRING
    input.Body.properties.vmExtensions[_].properties.type == STRING
    input.Body.properties.vmExtensions[_].properties.typeHandlerVersion == STRING
    input.Body.properties.vmExtensions[_].properties.autoUpgradeMinorVersion == BOOLEAN
    input.Body.properties.vmExtensions[_].properties.settings.STRING == STRING
    input.Body.properties.vmExtensions[_].properties.protectedSettings.STRING == STRING
    input.Body.properties.vmExtensions[_].properties.forceUpdateTag == STRING
    input.Body.properties.vmExtensions[_].properties.provisionAfterExtensions[_] == STRING
    input.Body.properties.vmExtensions[_].properties.enableAutomaticUpgrade == BOOLEAN
    input.Body.properties.vmExtensions[_].properties.setupOrder[_] == enum_VmssExtensionSetupOrder[_]
    input.Body.properties.vmManagedIdentity.userAssignedIdentities[_] == STRING
    input.Body.properties.isStateless == BOOLEAN
    input.Body.properties.multiplePlacementGroups == BOOLEAN
    input.Body.properties.frontendConfigurations[_].ipAddressType == enum_IPAddressType[_]
    input.Body.properties.frontendConfigurations[_].loadBalancerBackendAddressPoolId == STRING
    input.Body.properties.frontendConfigurations[_].loadBalancerInboundNatPoolId == STRING
    input.Body.properties.frontendConfigurations[_].applicationGatewayBackendAddressPoolId == STRING
    input.Body.properties.networkSecurityRules[_].name == STRING
    input.Body.properties.networkSecurityRules[_].description == STRING
    input.Body.properties.networkSecurityRules[_].protocol == enum_NetworkSecurityRuleProtocol[_]
    input.Body.properties.networkSecurityRules[_].sourceAddressPrefixes[_] == STRING
    input.Body.properties.networkSecurityRules[_].destinationAddressPrefixes[_] == STRING
    input.Body.properties.networkSecurityRules[_].sourcePortRanges[_] == STRING
    input.Body.properties.networkSecurityRules[_].destinationPortRanges[_] == STRING
    input.Body.properties.networkSecurityRules[_].sourceAddressPrefix == STRING
    input.Body.properties.networkSecurityRules[_].destinationAddressPrefix == STRING
    input.Body.properties.networkSecurityRules[_].sourcePortRange == STRING
    input.Body.properties.networkSecurityRules[_].destinationPortRange == STRING
    input.Body.properties.networkSecurityRules[_].access == enum_NetworkSecurityRuleAccess[_]
    input.Body.properties.networkSecurityRules[_].priority == INTEGER
    input.Body.properties.networkSecurityRules[_].direction == enum_NetworkSecurityRuleDirection[_]
    input.Body.properties.additionalDataDisks[_].lun == INTEGER
    input.Body.properties.additionalDataDisks[_].diskSizeGB == INTEGER
    input.Body.properties.additionalDataDisks[_].diskType == enum_DiskType[_]
    input.Body.properties.additionalDataDisks[_].diskLetter == STRING
    input.Body.properties.enableEncryptionAtHost == BOOLEAN
    input.Body.properties.enableAcceleratedNetworking == BOOLEAN
    input.Body.properties.useDefaultPublicLoadBalancer == BOOLEAN
    input.Body.properties.useTempDataDisk == BOOLEAN
    input.Body.properties.enableOverProvisioning == BOOLEAN
    input.Body.properties.zones[_] == STRING
    input.Body.properties.isSpotVM == BOOLEAN
    input.Body.properties.hostGroupId == STRING
    input.Body.properties.useEphemeralOSDisk == BOOLEAN
    input.Body.properties.spotRestoreTimeout == STRING
    input.Body.properties.evictionPolicy == enum_EvictionPolicyType[_]
    input.Body.properties.vmImageResourceId == STRING
    input.Body.properties.subnetId == STRING
    input.Body.properties.vmSetupActions[_] == enum_VmSetupAction[_]
    input.Body.properties.securityType == enum_NodeTypePropertiesSecurityType[_]
    input.Body.properties.secureBootEnabled == BOOLEAN
    input.Body.properties.enableNodePublicIP == BOOLEAN
    input.Body.properties.enableNodePublicIPv6 == BOOLEAN
    input.Body.properties.vmSharedGalleryImageId == STRING
    input.Body.properties.natGatewayId == STRING
    input.Body.properties.natConfigurations[_].backendPort == INTEGER
    input.Body.properties.natConfigurations[_].frontendPortRangeStart == INTEGER
    input.Body.properties.natConfigurations[_].frontendPortRangeEnd == INTEGER
    input.Body.properties.vmImagePlan.name == STRING
    input.Body.properties.vmImagePlan.product == STRING
    input.Body.properties.vmImagePlan.promotionCode == STRING
    input.Body.properties.vmImagePlan.publisher == STRING
    input.Body.properties.serviceArtifactReferenceId == STRING
    input.Body.properties.dscpConfigurationId == STRING
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].name == STRING
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].enableAcceleratedNetworking == BOOLEAN
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].dscpConfiguration.id == STRING
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].ipConfigurations[_].name == STRING
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].ipConfigurations[_].applicationGatewayBackendAddressPools[_].id == STRING
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].ipConfigurations[_].loadBalancerBackendAddressPools[_].id == STRING
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].ipConfigurations[_].loadBalancerInboundNatPools[_].id == STRING
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].ipConfigurations[_].subnet.id == STRING
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].ipConfigurations[_].privateIPAddressVersion == enum_IpConfigurationPrivateIPAddressVersion[_]
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].ipConfigurations[_].publicIPAddressConfiguration.name == STRING
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].ipConfigurations[_].publicIPAddressConfiguration.ipTags[_].ipTagType == STRING
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].ipConfigurations[_].publicIPAddressConfiguration.ipTags[_].tag == STRING
    input.Body.properties.additionalNetworkInterfaceConfigurations[_].ipConfigurations[_].publicIPAddressConfiguration.publicIPAddressVersion == enum_IpConfigurationPublicIPAddressConfigurationPublicIPAddressVersion[_]
    input.Body.properties.computerNamePrefix == STRING
    input.Body.sku.name == STRING
    input.Body.sku.tier == STRING
    input.Body.sku.capacity == INTEGER
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.clusterName == STRING
    input.ReqMap.nodeTypeName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

NodeTypes_Delete

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

NodeTypes_DeleteNode

enum_NodeTypeActionParametersUpdateType := [ "Default", "ByUpgradeDomain" ]

valid {
    input.Body.nodes[_] == STRING
    input.Body.force == BOOLEAN
    input.Body.updateType == enum_NodeTypeActionParametersUpdateType[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.clusterName == STRING
    input.ReqMap.nodeTypeName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

NodeTypes_Get

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

NodeTypes_ListByManagedClusters

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

NodeTypes_Reimage

enum_NodeTypeActionParametersUpdateType := [ "Default", "ByUpgradeDomain" ]

valid {
    input.Body.nodes[_] == STRING
    input.Body.force == BOOLEAN
    input.Body.updateType == enum_NodeTypeActionParametersUpdateType[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.clusterName == STRING
    input.ReqMap.nodeTypeName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

NodeTypes_Restart

enum_NodeTypeActionParametersUpdateType := [ "Default", "ByUpgradeDomain" ]

valid {
    input.Body.nodes[_] == STRING
    input.Body.force == BOOLEAN
    input.Body.updateType == enum_NodeTypeActionParametersUpdateType[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.clusterName == STRING
    input.ReqMap.nodeTypeName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

NodeTypes_Update

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

OperationResults_Get

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

OperationStatus_Get

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

Services_CreateOrUpdate

enum_MoveCost := [ "Zero", "Low", "Medium", "High" ]
enum_PartitionScheme := [ "Singleton", "UniformInt64Range", "Named" ]
enum_ServiceCorrelationScheme := [ "AlignedAffinity", "NonAlignedAffinity" ]
enum_ServiceKind := [ "Stateless", "Stateful" ]
enum_ServiceLoadMetricWeight := [ "Zero", "Low", "Medium", "High" ]
enum_ServicePlacementPolicyType := [ "InvalidDomain", "RequiredDomain", "PreferredPrimaryDomain", "RequiredDomainDistribution", "NonPartiallyPlaceService" ]
enum_ServiceResourcePropertiesServicePackageActivationMode := [ "SharedProcess", "ExclusiveProcess" ]
enum_ServiceScalingMechanismKind := [ "ScalePartitionInstanceCount", "AddRemoveIncrementalNamedPartition" ]
enum_ServiceScalingTriggerKind := [ "AveragePartitionLoadTrigger", "AverageServiceLoadTrigger" ]

valid {
    input.Body.properties.serviceKind == enum_ServiceKind[_]
    input.Body.properties.serviceTypeName == STRING
    input.Body.properties.partitionDescription.partitionScheme == enum_PartitionScheme[_]
    input.Body.properties.servicePackageActivationMode == enum_ServiceResourcePropertiesServicePackageActivationMode[_]
    input.Body.properties.serviceDnsName == STRING
    input.Body.properties.placementConstraints == STRING
    input.Body.properties.correlationScheme[_].scheme == enum_ServiceCorrelationScheme[_]
    input.Body.properties.correlationScheme[_].serviceName == STRING
    input.Body.properties.serviceLoadMetrics[_].name == STRING
    input.Body.properties.serviceLoadMetrics[_].weight == enum_ServiceLoadMetricWeight[_]
    input.Body.properties.serviceLoadMetrics[_].primaryDefaultLoad == INTEGER
    input.Body.properties.serviceLoadMetrics[_].secondaryDefaultLoad == INTEGER
    input.Body.properties.serviceLoadMetrics[_].defaultLoad == INTEGER
    input.Body.properties.servicePlacementPolicies[_].type == enum_ServicePlacementPolicyType[_]
    input.Body.properties.defaultMoveCost == enum_MoveCost[_]
    input.Body.properties.scalingPolicies[_].scalingMechanism.kind == enum_ServiceScalingMechanismKind[_]
    input.Body.properties.scalingPolicies[_].scalingTrigger.kind == enum_ServiceScalingTriggerKind[_]
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.clusterName == STRING
    input.ReqMap.applicationName == STRING
    input.ReqMap.serviceName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Services_Delete

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

Services_Get

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

Services_List

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

Services_ListByApplications

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

Services_Update

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

UnsupportedVmSizes_Get

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

UnsupportedVmSizes_List

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

managedApplyMaintenanceWindow_Post

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

managedAzResiliencyStatus_Get

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

managedMaintenanceWindowStatus_Get

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

managedUnsupportedVMSizes_Get

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

managedUnsupportedVMSizes_List

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