MICROSOFT.CDN

AFDCustomDomains_Create

enum_AFDDomainHttpsParametersCertificateType := [ "CustomerCertificate", "ManagedCertificate", "AzureFirstPartyManagedCertificate" ]
enum_AFDDomainHttpsParametersMinimumTlsVersion := [ "TLS10", "TLS12" ]

valid {
    input.Body.properties.hostName == STRING
    input.Body.properties.extendedProperties.STRING == STRING
    input.Body.properties.tlsSettings.certificateType == enum_AFDDomainHttpsParametersCertificateType[_]
    input.Body.properties.tlsSettings.minimumTlsVersion == enum_AFDDomainHttpsParametersMinimumTlsVersion[_]
    input.Body.properties.tlsSettings.secret.id == STRING
    input.Body.properties.azureDnsZone.id == STRING
    input.Body.properties.preValidatedCustomDomainResourceId.id == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.customDomainName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AFDCustomDomains_Delete

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

AFDCustomDomains_Get

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

AFDCustomDomains_ListByProfile

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

AFDCustomDomains_RefreshValidationToken

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

AFDCustomDomains_Update

enum_AFDDomainHttpsParametersCertificateType := [ "CustomerCertificate", "ManagedCertificate", "AzureFirstPartyManagedCertificate" ]
enum_AFDDomainHttpsParametersMinimumTlsVersion := [ "TLS10", "TLS12" ]

valid {
    input.Body.properties.tlsSettings.certificateType == enum_AFDDomainHttpsParametersCertificateType[_]
    input.Body.properties.tlsSettings.minimumTlsVersion == enum_AFDDomainHttpsParametersMinimumTlsVersion[_]
    input.Body.properties.tlsSettings.secret.id == STRING
    input.Body.properties.azureDnsZone.id == STRING
    input.Body.properties.preValidatedCustomDomainResourceId.id == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.customDomainName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AFDEndpoints_Create

enum_AFDEndpointPropertiesUpdateParametersEnabledState := [ "Enabled", "Disabled" ]
enum_AutoGeneratedDomainNameLabelScope := [ "TenantReuse", "SubscriptionReuse", "ResourceGroupReuse", "NoReuse" ]

valid {
    input.Body.properties.autoGeneratedDomainNameLabelScope == enum_AutoGeneratedDomainNameLabelScope[_]
    input.Body.properties.enabledState == enum_AFDEndpointPropertiesUpdateParametersEnabledState[_]
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AFDEndpoints_Delete

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

AFDEndpoints_Get

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

AFDEndpoints_ListByProfile

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

AFDEndpoints_ListResourceUsage

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

AFDEndpoints_PurgeContent

valid {
    input.Body.contentPaths[_] == STRING
    input.Body.domains[_] == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AFDEndpoints_Update

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

valid {
    input.Body.tags.STRING == STRING
    input.Body.properties.enabledState == enum_AFDEndpointPropertiesUpdateParametersEnabledState[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AFDEndpoints_ValidateCustomDomain

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

AFDOriginGroups_Create

enum_AFDOriginGroupUpdatePropertiesParametersSessionAffinityState := [ "Enabled", "Disabled" ]
enum_HealthProbeParametersProbeProtocol := [ "NotSet", "Http", "Https" ]
enum_HealthProbeParametersProbeRequestType := [ "NotSet", "GET", "HEAD" ]

valid {
    input.Body.properties.STRING == STRING
    input.Body.properties.loadBalancingSettings.sampleSize == INTEGER
    input.Body.properties.loadBalancingSettings.successfulSamplesRequired == INTEGER
    input.Body.properties.loadBalancingSettings.additionalLatencyInMilliseconds == INTEGER
    input.Body.properties.healthProbeSettings.probePath == STRING
    input.Body.properties.healthProbeSettings.probeRequestType == enum_HealthProbeParametersProbeRequestType[_]
    input.Body.properties.healthProbeSettings.probeProtocol == enum_HealthProbeParametersProbeProtocol[_]
    input.Body.properties.healthProbeSettings.probeIntervalInSeconds == INTEGER
    input.Body.properties.trafficRestorationTimeToHealedOrNewEndpointsInMinutes == INTEGER
    input.Body.properties.sessionAffinityState == enum_AFDOriginGroupUpdatePropertiesParametersSessionAffinityState[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.originGroupName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AFDOriginGroups_Delete

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

AFDOriginGroups_Get

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

AFDOriginGroups_ListByProfile

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

AFDOriginGroups_ListResourceUsage

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

AFDOriginGroups_Update

enum_AFDOriginGroupUpdatePropertiesParametersSessionAffinityState := [ "Enabled", "Disabled" ]
enum_HealthProbeParametersProbeProtocol := [ "NotSet", "Http", "Https" ]
enum_HealthProbeParametersProbeRequestType := [ "NotSet", "GET", "HEAD" ]

valid {
    input.Body.properties.loadBalancingSettings.sampleSize == INTEGER
    input.Body.properties.loadBalancingSettings.successfulSamplesRequired == INTEGER
    input.Body.properties.loadBalancingSettings.additionalLatencyInMilliseconds == INTEGER
    input.Body.properties.healthProbeSettings.probePath == STRING
    input.Body.properties.healthProbeSettings.probeRequestType == enum_HealthProbeParametersProbeRequestType[_]
    input.Body.properties.healthProbeSettings.probeProtocol == enum_HealthProbeParametersProbeProtocol[_]
    input.Body.properties.healthProbeSettings.probeIntervalInSeconds == INTEGER
    input.Body.properties.trafficRestorationTimeToHealedOrNewEndpointsInMinutes == INTEGER
    input.Body.properties.sessionAffinityState == enum_AFDOriginGroupUpdatePropertiesParametersSessionAffinityState[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.originGroupName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AFDOrigins_Create

enum_AFDOriginUpdatePropertiesParametersEnabledState := [ "Enabled", "Disabled" ]
enum_SharedPrivateLinkResourcePropertiesStatus := [ "Pending", "Approved", "Rejected", "Disconnected", "Timeout" ]

valid {
    input.Body.properties.azureOrigin.id == STRING
    input.Body.properties.hostName == STRING
    input.Body.properties.httpPort == INTEGER
    input.Body.properties.httpsPort == INTEGER
    input.Body.properties.originHostHeader == STRING
    input.Body.properties.priority == INTEGER
    input.Body.properties.weight == INTEGER
    input.Body.properties.sharedPrivateLinkResource.privateLink.id == STRING
    input.Body.properties.sharedPrivateLinkResource.privateLinkLocation == STRING
    input.Body.properties.sharedPrivateLinkResource.groupId == STRING
    input.Body.properties.sharedPrivateLinkResource.requestMessage == STRING
    input.Body.properties.sharedPrivateLinkResource.status == enum_SharedPrivateLinkResourcePropertiesStatus[_]
    input.Body.properties.enabledState == enum_AFDOriginUpdatePropertiesParametersEnabledState[_]
    input.Body.properties.enforceCertificateNameCheck == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.originGroupName == STRING
    input.ReqMap.originName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AFDOrigins_Delete

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

AFDOrigins_Get

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

AFDOrigins_ListByOriginGroup

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

AFDOrigins_Update

enum_AFDOriginUpdatePropertiesParametersEnabledState := [ "Enabled", "Disabled" ]
enum_SharedPrivateLinkResourcePropertiesStatus := [ "Pending", "Approved", "Rejected", "Disconnected", "Timeout" ]

valid {
    input.Body.properties.azureOrigin.id == STRING
    input.Body.properties.hostName == STRING
    input.Body.properties.httpPort == INTEGER
    input.Body.properties.httpsPort == INTEGER
    input.Body.properties.originHostHeader == STRING
    input.Body.properties.priority == INTEGER
    input.Body.properties.weight == INTEGER
    input.Body.properties.sharedPrivateLinkResource.privateLink.id == STRING
    input.Body.properties.sharedPrivateLinkResource.privateLinkLocation == STRING
    input.Body.properties.sharedPrivateLinkResource.groupId == STRING
    input.Body.properties.sharedPrivateLinkResource.requestMessage == STRING
    input.Body.properties.sharedPrivateLinkResource.status == enum_SharedPrivateLinkResourcePropertiesStatus[_]
    input.Body.properties.enabledState == enum_AFDOriginUpdatePropertiesParametersEnabledState[_]
    input.Body.properties.enforceCertificateNameCheck == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.originGroupName == STRING
    input.ReqMap.originName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AFDProfiles_CheckEndpointNameAvailability

enum_AutoGeneratedDomainNameLabelScope := [ "TenantReuse", "SubscriptionReuse", "ResourceGroupReuse", "NoReuse" ]
enum_ResourceType := [ "Microsoft.Cdn/Profiles/Endpoints", "Microsoft.Cdn/Profiles/AfdEndpoints" ]

valid {
    input.Body.name == STRING
    input.Body.type == enum_ResourceType[_]
    input.Body.autoGeneratedDomainNameLabelScope == enum_AutoGeneratedDomainNameLabelScope[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AFDProfiles_CheckHostNameAvailability

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

AFDProfiles_ListResourceUsage

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

AFDProfiles_Upgrade

valid {
    input.Body.wafMappingList[_].securityPolicyName == STRING
    input.Body.wafMappingList[_].changeToWafPolicy.id == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

AFDProfiles_ValidateSecret

enum_SecretType := [ "UrlSigningKey", "CustomerCertificate", "ManagedCertificate", "AzureFirstPartyManagedCertificate" ]

valid {
    input.Body.secretType == enum_SecretType[_]
    input.Body.secretSource.id == STRING
    input.Body.secretVersion == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

CheckEndpointNameAvailability

enum_AutoGeneratedDomainNameLabelScope := [ "TenantReuse", "SubscriptionReuse", "ResourceGroupReuse", "NoReuse" ]
enum_ResourceType := [ "Microsoft.Cdn/Profiles/Endpoints", "Microsoft.Cdn/Profiles/AfdEndpoints" ]

valid {
    input.Body.name == STRING
    input.Body.type == enum_ResourceType[_]
    input.Body.autoGeneratedDomainNameLabelScope == enum_AutoGeneratedDomainNameLabelScope[_]
    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
}

CheckNameAvailability

enum_ResourceType := [ "Microsoft.Cdn/Profiles/Endpoints", "Microsoft.Cdn/Profiles/AfdEndpoints" ]

valid {
    input.Body.name == STRING
    input.Body.type == enum_ResourceType[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

CheckNameAvailabilityWithSubscription

enum_ResourceType := [ "Microsoft.Cdn/Profiles/Endpoints", "Microsoft.Cdn/Profiles/AfdEndpoints" ]

valid {
    input.Body.name == STRING
    input.Body.type == enum_ResourceType[_]
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

CustomDomains_Create

valid {
    input.Body.properties.hostName == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.customDomainName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

CustomDomains_Delete

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

CustomDomains_DisableCustomHttps

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

CustomDomains_EnableCustomHttps

enum_CustomDomainHttpsParametersCertificateSource := [ "AzureKeyVault", "Cdn" ]
enum_CustomDomainHttpsParametersMinimumTlsVersion := [ "None", "TLS10", "TLS12" ]
enum_CustomDomainHttpsParametersProtocolType := [ "ServerNameIndication", "IPBased" ]

valid {
    input.Body.certificateSource == enum_CustomDomainHttpsParametersCertificateSource[_]
    input.Body.protocolType == enum_CustomDomainHttpsParametersProtocolType[_]
    input.Body.minimumTlsVersion == enum_CustomDomainHttpsParametersMinimumTlsVersion[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.customDomainName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

CustomDomains_Get

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

CustomDomains_ListByEndpoint

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

CustomDomains_Update

valid {
    input.Body.properties.hostName == STRING
    input.ReqMap.customDomainName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.profileName == STRING
    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
}

EdgeNodes_List

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

Endpoints_Create

enum_DeliveryRuleActionName := [ "CacheExpiration", "CacheKeyQueryString", "ModifyRequestHeader", "ModifyResponseHeader", "UrlRedirect", "UrlRewrite", "UrlSigning", "OriginGroupOverride", "RouteConfigurationOverride" ]
enum_DeliveryRuleConditionName := [ "RemoteAddress", "RequestMethod", "QueryString", "PostArgs", "RequestUri", "RequestHeader", "RequestBody", "RequestScheme", "UrlPath", "UrlFileExtension", "UrlFileName", "HttpVersion", "Cookies", "IsDevice", "SocketAddr", "ClientPort", "ServerPort", "HostName", "SslProtocol" ]
enum_GeoFilterAction := [ "Block", "Allow" ]
enum_HealthProbeParametersProbeProtocol := [ "NotSet", "Http", "Https" ]
enum_HealthProbeParametersProbeRequestType := [ "NotSet", "GET", "HEAD" ]
enum_KeyVaultSigningKeyParametersTypeName := [ "KeyVaultSigningKeyParameters" ]
enum_OptimizationType := [ "GeneralWebDelivery", "GeneralMediaStreaming", "VideoOnDemandMediaStreaming", "LargeFileDownload", "DynamicSiteAcceleration" ]
enum_QueryStringCachingBehavior := [ "IgnoreQueryString", "BypassCaching", "UseQueryString", "NotSet" ]
enum_ResponseBasedOriginErrorDetectionParametersResponseBasedDetectedErrorTypes := [ "None", "TcpErrorsOnly", "TcpAndHttpErrors" ]

valid {
    input.Body.properties.origins[_].name == STRING
    input.Body.properties.origins[_].properties.hostName == STRING
    input.Body.properties.origins[_].properties.httpPort == INTEGER
    input.Body.properties.origins[_].properties.httpsPort == INTEGER
    input.Body.properties.origins[_].properties.originHostHeader == STRING
    input.Body.properties.origins[_].properties.priority == INTEGER
    input.Body.properties.origins[_].properties.weight == INTEGER
    input.Body.properties.origins[_].properties.enabled == BOOLEAN
    input.Body.properties.origins[_].properties.privateLinkAlias == STRING
    input.Body.properties.origins[_].properties.privateLinkResourceId == STRING
    input.Body.properties.origins[_].properties.privateLinkLocation == STRING
    input.Body.properties.origins[_].properties.privateLinkApprovalMessage == STRING
    input.Body.properties.originGroups[_].name == STRING
    input.Body.properties.originGroups[_].properties.healthProbeSettings.probePath == STRING
    input.Body.properties.originGroups[_].properties.healthProbeSettings.probeRequestType == enum_HealthProbeParametersProbeRequestType[_]
    input.Body.properties.originGroups[_].properties.healthProbeSettings.probeProtocol == enum_HealthProbeParametersProbeProtocol[_]
    input.Body.properties.originGroups[_].properties.healthProbeSettings.probeIntervalInSeconds == INTEGER
    input.Body.properties.originGroups[_].properties.origins[_].id == STRING
    input.Body.properties.originGroups[_].properties.trafficRestorationTimeToHealedOrNewEndpointsInMinutes == INTEGER
    input.Body.properties.originGroups[_].properties.responseBasedOriginErrorDetectionSettings.responseBasedDetectedErrorTypes == enum_ResponseBasedOriginErrorDetectionParametersResponseBasedDetectedErrorTypes[_]
    input.Body.properties.originGroups[_].properties.responseBasedOriginErrorDetectionSettings.responseBasedFailoverThresholdPercentage == INTEGER
    input.Body.properties.originGroups[_].properties.responseBasedOriginErrorDetectionSettings.httpErrorRanges[_].begin == INTEGER
    input.Body.properties.originGroups[_].properties.responseBasedOriginErrorDetectionSettings.httpErrorRanges[_].end == INTEGER
    input.Body.properties.originPath == STRING
    input.Body.properties.contentTypesToCompress[_] == STRING
    input.Body.properties.originHostHeader == STRING
    input.Body.properties.isCompressionEnabled == BOOLEAN
    input.Body.properties.isHttpAllowed == BOOLEAN
    input.Body.properties.isHttpsAllowed == BOOLEAN
    input.Body.properties.queryStringCachingBehavior == enum_QueryStringCachingBehavior[_]
    input.Body.properties.optimizationType == enum_OptimizationType[_]
    input.Body.properties.probePath == STRING
    input.Body.properties.geoFilters[_].relativePath == STRING
    input.Body.properties.geoFilters[_].action == enum_GeoFilterAction[_]
    input.Body.properties.geoFilters[_].countryCodes[_] == STRING
    input.Body.properties.defaultOriginGroup.id == STRING
    input.Body.properties.urlSigningKeys[_].keyId == STRING
    input.Body.properties.urlSigningKeys[_].keySourceParameters.typeName == enum_KeyVaultSigningKeyParametersTypeName[_]
    input.Body.properties.urlSigningKeys[_].keySourceParameters.subscriptionId == STRING
    input.Body.properties.urlSigningKeys[_].keySourceParameters.resourceGroupName == STRING
    input.Body.properties.urlSigningKeys[_].keySourceParameters.vaultName == STRING
    input.Body.properties.urlSigningKeys[_].keySourceParameters.secretName == STRING
    input.Body.properties.urlSigningKeys[_].keySourceParameters.secretVersion == STRING
    input.Body.properties.deliveryPolicy.description == STRING
    input.Body.properties.deliveryPolicy.rules[_].name == STRING
    input.Body.properties.deliveryPolicy.rules[_].order == INTEGER
    input.Body.properties.deliveryPolicy.rules[_].conditions[_].name == enum_DeliveryRuleConditionName[_]
    input.Body.properties.deliveryPolicy.rules[_].actions[_].name == enum_DeliveryRuleActionName[_]
    input.Body.properties.webApplicationFirewallPolicyLink.id == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Endpoints_Delete

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

Endpoints_Get

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

Endpoints_ListByProfile

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

Endpoints_ListResourceUsage

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

Endpoints_LoadContent

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

Endpoints_PurgeContent

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

Endpoints_Start

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

Endpoints_Stop

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

Endpoints_Update

enum_DeliveryRuleActionName := [ "CacheExpiration", "CacheKeyQueryString", "ModifyRequestHeader", "ModifyResponseHeader", "UrlRedirect", "UrlRewrite", "UrlSigning", "OriginGroupOverride", "RouteConfigurationOverride" ]
enum_DeliveryRuleConditionName := [ "RemoteAddress", "RequestMethod", "QueryString", "PostArgs", "RequestUri", "RequestHeader", "RequestBody", "RequestScheme", "UrlPath", "UrlFileExtension", "UrlFileName", "HttpVersion", "Cookies", "IsDevice", "SocketAddr", "ClientPort", "ServerPort", "HostName", "SslProtocol" ]
enum_GeoFilterAction := [ "Block", "Allow" ]
enum_KeyVaultSigningKeyParametersTypeName := [ "KeyVaultSigningKeyParameters" ]
enum_OptimizationType := [ "GeneralWebDelivery", "GeneralMediaStreaming", "VideoOnDemandMediaStreaming", "LargeFileDownload", "DynamicSiteAcceleration" ]
enum_QueryStringCachingBehavior := [ "IgnoreQueryString", "BypassCaching", "UseQueryString", "NotSet" ]

valid {
    input.Body.tags.STRING == STRING
    input.Body.properties.originPath == STRING
    input.Body.properties.contentTypesToCompress[_] == STRING
    input.Body.properties.originHostHeader == STRING
    input.Body.properties.isCompressionEnabled == BOOLEAN
    input.Body.properties.isHttpAllowed == BOOLEAN
    input.Body.properties.isHttpsAllowed == BOOLEAN
    input.Body.properties.queryStringCachingBehavior == enum_QueryStringCachingBehavior[_]
    input.Body.properties.optimizationType == enum_OptimizationType[_]
    input.Body.properties.probePath == STRING
    input.Body.properties.geoFilters[_].relativePath == STRING
    input.Body.properties.geoFilters[_].action == enum_GeoFilterAction[_]
    input.Body.properties.geoFilters[_].countryCodes[_] == STRING
    input.Body.properties.defaultOriginGroup.id == STRING
    input.Body.properties.urlSigningKeys[_].keyId == STRING
    input.Body.properties.urlSigningKeys[_].keySourceParameters.typeName == enum_KeyVaultSigningKeyParametersTypeName[_]
    input.Body.properties.urlSigningKeys[_].keySourceParameters.subscriptionId == STRING
    input.Body.properties.urlSigningKeys[_].keySourceParameters.resourceGroupName == STRING
    input.Body.properties.urlSigningKeys[_].keySourceParameters.vaultName == STRING
    input.Body.properties.urlSigningKeys[_].keySourceParameters.secretName == STRING
    input.Body.properties.urlSigningKeys[_].keySourceParameters.secretVersion == STRING
    input.Body.properties.deliveryPolicy.description == STRING
    input.Body.properties.deliveryPolicy.rules[_].name == STRING
    input.Body.properties.deliveryPolicy.rules[_].order == INTEGER
    input.Body.properties.deliveryPolicy.rules[_].conditions[_].name == enum_DeliveryRuleConditionName[_]
    input.Body.properties.deliveryPolicy.rules[_].actions[_].name == enum_DeliveryRuleActionName[_]
    input.Body.properties.webApplicationFirewallPolicyLink.id == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Endpoints_ValidateCustomDomain

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

KeyGroups_CreateUpdate

valid {
    input.Body.properties.keyReferences[_].id == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.keyGroupName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

KeyGroups_Delete

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

KeyGroups_Get

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

KeyGroups_ListByProfile

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

LogAnalytics_GetLogAnalyticsLocations

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

LogAnalytics_GetLogAnalyticsMetrics

enum_GranularityParameter := [ "PT5M", "PT1H", "P1D" ]

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.Qs.api-version == STRING
    input.Qs.metrics == ARRAY
    input.Qs.dateTimeBegin == STRING
    input.Qs.dateTimeEnd == STRING
    input.Qs.granularity == enum_GranularityParameter[_]
    input.Qs.groupBy == ARRAY
    input.Qs.continents == ARRAY
    input.Qs.countryOrRegions == ARRAY
    input.Qs.customDomains == ARRAY
    input.Qs.protocols == ARRAY
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LogAnalytics_GetLogAnalyticsRankings

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.Qs.api-version == STRING
    input.Qs.rankings == ARRAY
    input.Qs.metrics == ARRAY
    input.Qs.maxRanking == INTEGER
    input.Qs.dateTimeBegin == STRING
    input.Qs.dateTimeEnd == STRING
    input.Qs.customDomains == ARRAY
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LogAnalytics_GetLogAnalyticsResources

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

LogAnalytics_GetWafLogAnalyticsMetrics

enum_GranularityParameter := [ "PT5M", "PT1H", "P1D" ]

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.Qs.api-version == STRING
    input.Qs.metrics == ARRAY
    input.Qs.dateTimeBegin == STRING
    input.Qs.dateTimeEnd == STRING
    input.Qs.granularity == enum_GranularityParameter[_]
    input.Qs.actions == ARRAY
    input.Qs.groupBy == ARRAY
    input.Qs.ruleTypes == ARRAY
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LogAnalytics_GetWafLogAnalyticsRankings

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.Qs.api-version == STRING
    input.Qs.metrics == ARRAY
    input.Qs.dateTimeBegin == STRING
    input.Qs.dateTimeEnd == STRING
    input.Qs.maxRanking == INTEGER
    input.Qs.rankings == ARRAY
    input.Qs.actions == ARRAY
    input.Qs.ruleTypes == ARRAY
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ManagedRuleSets_List

valid {
    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
}

OriginGroups_Create

enum_HealthProbeParametersProbeProtocol := [ "NotSet", "Http", "Https" ]
enum_HealthProbeParametersProbeRequestType := [ "NotSet", "GET", "HEAD" ]
enum_ResponseBasedOriginErrorDetectionParametersResponseBasedDetectedErrorTypes := [ "None", "TcpErrorsOnly", "TcpAndHttpErrors" ]

valid {
    input.Body.properties.healthProbeSettings.probePath == STRING
    input.Body.properties.healthProbeSettings.probeRequestType == enum_HealthProbeParametersProbeRequestType[_]
    input.Body.properties.healthProbeSettings.probeProtocol == enum_HealthProbeParametersProbeProtocol[_]
    input.Body.properties.healthProbeSettings.probeIntervalInSeconds == INTEGER
    input.Body.properties.origins[_].id == STRING
    input.Body.properties.trafficRestorationTimeToHealedOrNewEndpointsInMinutes == INTEGER
    input.Body.properties.responseBasedOriginErrorDetectionSettings.responseBasedDetectedErrorTypes == enum_ResponseBasedOriginErrorDetectionParametersResponseBasedDetectedErrorTypes[_]
    input.Body.properties.responseBasedOriginErrorDetectionSettings.responseBasedFailoverThresholdPercentage == INTEGER
    input.Body.properties.responseBasedOriginErrorDetectionSettings.httpErrorRanges[_].begin == INTEGER
    input.Body.properties.responseBasedOriginErrorDetectionSettings.httpErrorRanges[_].end == INTEGER
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.originGroupName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

OriginGroups_Delete

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

OriginGroups_Get

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

OriginGroups_ListByEndpoint

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

OriginGroups_Update

enum_HealthProbeParametersProbeProtocol := [ "NotSet", "Http", "Https" ]
enum_HealthProbeParametersProbeRequestType := [ "NotSet", "GET", "HEAD" ]
enum_ResponseBasedOriginErrorDetectionParametersResponseBasedDetectedErrorTypes := [ "None", "TcpErrorsOnly", "TcpAndHttpErrors" ]

valid {
    input.Body.properties.healthProbeSettings.probePath == STRING
    input.Body.properties.healthProbeSettings.probeRequestType == enum_HealthProbeParametersProbeRequestType[_]
    input.Body.properties.healthProbeSettings.probeProtocol == enum_HealthProbeParametersProbeProtocol[_]
    input.Body.properties.healthProbeSettings.probeIntervalInSeconds == INTEGER
    input.Body.properties.origins[_].id == STRING
    input.Body.properties.trafficRestorationTimeToHealedOrNewEndpointsInMinutes == INTEGER
    input.Body.properties.responseBasedOriginErrorDetectionSettings.responseBasedDetectedErrorTypes == enum_ResponseBasedOriginErrorDetectionParametersResponseBasedDetectedErrorTypes[_]
    input.Body.properties.responseBasedOriginErrorDetectionSettings.responseBasedFailoverThresholdPercentage == INTEGER
    input.Body.properties.responseBasedOriginErrorDetectionSettings.httpErrorRanges[_].begin == INTEGER
    input.Body.properties.responseBasedOriginErrorDetectionSettings.httpErrorRanges[_].end == INTEGER
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.originGroupName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Origins_Create

valid {
    input.Body.properties.hostName == STRING
    input.Body.properties.httpPort == INTEGER
    input.Body.properties.httpsPort == INTEGER
    input.Body.properties.originHostHeader == STRING
    input.Body.properties.priority == INTEGER
    input.Body.properties.weight == INTEGER
    input.Body.properties.enabled == BOOLEAN
    input.Body.properties.privateLinkAlias == STRING
    input.Body.properties.privateLinkResourceId == STRING
    input.Body.properties.privateLinkLocation == STRING
    input.Body.properties.privateLinkApprovalMessage == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.originName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Origins_Delete

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

Origins_Get

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

Origins_ListByEndpoint

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

Origins_Update

valid {
    input.Body.properties.hostName == STRING
    input.Body.properties.httpPort == INTEGER
    input.Body.properties.httpsPort == INTEGER
    input.Body.properties.originHostHeader == STRING
    input.Body.properties.priority == INTEGER
    input.Body.properties.weight == INTEGER
    input.Body.properties.enabled == BOOLEAN
    input.Body.properties.privateLinkAlias == STRING
    input.Body.properties.privateLinkResourceId == STRING
    input.Body.properties.privateLinkLocation == STRING
    input.Body.properties.privateLinkApprovalMessage == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.originName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Policies_CreateOrUpdate

enum_ActionType := [ "Allow", "Block", "Log", "Redirect" ]
enum_CustomRuleEnabledState := [ "Disabled", "Enabled" ]
enum_ManagedRuleOverrideEnabledState := [ "Disabled", "Enabled" ]
enum_MatchConditionMatchVariable := [ "RemoteAddr", "SocketAddr", "RequestMethod", "RequestHeader", "RequestUri", "QueryString", "RequestBody", "Cookies", "PostArgs" ]
enum_MatchConditionOperator := [ "Any", "IPMatch", "GeoMatch", "Equal", "Contains", "LessThan", "GreaterThan", "LessThanOrEqual", "GreaterThanOrEqual", "BeginsWith", "EndsWith", "RegEx" ]
enum_SkuName := [ "Standard_Verizon", "Premium_Verizon", "Custom_Verizon", "Standard_Akamai", "Standard_ChinaCdn", "Standard_Microsoft", "Standard_AzureFrontDoor", "Premium_AzureFrontDoor", "Standard_955BandWidth_ChinaCdn", "Standard_AvgBandWidth_ChinaCdn", "StandardPlus_ChinaCdn", "StandardPlus_955BandWidth_ChinaCdn", "StandardPlus_AvgBandWidth_ChinaCdn" ]
enum_TransformType := [ "Lowercase", "Uppercase", "Trim", "UrlDecode", "UrlEncode", "RemoveNulls" ]
enum_policySettingsDefaultCustomBlockResponseStatusCode := [ 200, 403, 405, 406, 429 ]
enum_policySettingsEnabledState := [ "Disabled", "Enabled" ]
enum_policySettingsMode := [ "Prevention", "Detection" ]

valid {
    input.Body.properties.policySettings.enabledState == enum_policySettingsEnabledState[_]
    input.Body.properties.policySettings.mode == enum_policySettingsMode[_]
    input.Body.properties.policySettings.defaultRedirectUrl == STRING
    input.Body.properties.policySettings.defaultCustomBlockResponseStatusCode == enum_policySettingsDefaultCustomBlockResponseStatusCode[_]
    input.Body.properties.policySettings.defaultCustomBlockResponseBody == STRING
    input.Body.properties.rateLimitRules.rules[_].rateLimitThreshold == INTEGER
    input.Body.properties.rateLimitRules.rules[_].rateLimitDurationInMinutes == INTEGER
    input.Body.properties.rateLimitRules.rules[_].name == STRING
    input.Body.properties.rateLimitRules.rules[_].enabledState == enum_CustomRuleEnabledState[_]
    input.Body.properties.rateLimitRules.rules[_].priority == INTEGER
    input.Body.properties.rateLimitRules.rules[_].matchConditions[_].matchVariable == enum_MatchConditionMatchVariable[_]
    input.Body.properties.rateLimitRules.rules[_].matchConditions[_].selector == STRING
    input.Body.properties.rateLimitRules.rules[_].matchConditions[_].operator == enum_MatchConditionOperator[_]
    input.Body.properties.rateLimitRules.rules[_].matchConditions[_].negateCondition == BOOLEAN
    input.Body.properties.rateLimitRules.rules[_].matchConditions[_].matchValue[_] == STRING
    input.Body.properties.rateLimitRules.rules[_].matchConditions[_].transforms[_] == enum_TransformType[_]
    input.Body.properties.rateLimitRules.rules[_].action == enum_ActionType[_]
    input.Body.properties.customRules.rules[_].name == STRING
    input.Body.properties.customRules.rules[_].enabledState == enum_CustomRuleEnabledState[_]
    input.Body.properties.customRules.rules[_].priority == INTEGER
    input.Body.properties.customRules.rules[_].matchConditions[_].matchVariable == enum_MatchConditionMatchVariable[_]
    input.Body.properties.customRules.rules[_].matchConditions[_].selector == STRING
    input.Body.properties.customRules.rules[_].matchConditions[_].operator == enum_MatchConditionOperator[_]
    input.Body.properties.customRules.rules[_].matchConditions[_].negateCondition == BOOLEAN
    input.Body.properties.customRules.rules[_].matchConditions[_].matchValue[_] == STRING
    input.Body.properties.customRules.rules[_].matchConditions[_].transforms[_] == enum_TransformType[_]
    input.Body.properties.customRules.rules[_].action == enum_ActionType[_]
    input.Body.properties.managedRules.managedRuleSets[_].ruleSetType == STRING
    input.Body.properties.managedRules.managedRuleSets[_].ruleSetVersion == STRING
    input.Body.properties.managedRules.managedRuleSets[_].anomalyScore == INTEGER
    input.Body.properties.managedRules.managedRuleSets[_].ruleGroupOverrides[_].ruleGroupName == STRING
    input.Body.properties.managedRules.managedRuleSets[_].ruleGroupOverrides[_].rules[_].ruleId == STRING
    input.Body.properties.managedRules.managedRuleSets[_].ruleGroupOverrides[_].rules[_].enabledState == enum_ManagedRuleOverrideEnabledState[_]
    input.Body.properties.managedRules.managedRuleSets[_].ruleGroupOverrides[_].rules[_].action == enum_ActionType[_]
    input.Body.properties.extendedProperties.STRING == STRING
    input.Body.etag == STRING
    input.Body.sku.name == enum_SkuName[_]
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.policyName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Policies_Delete

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

Policies_Get

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

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

Policies_Update

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

Profiles_CanMigrate

valid {
    input.Body.classicResourceReference.id == STRING
    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
}

Profiles_Create

enum_ManagedServiceIdentityType := [ "None", "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned" ]
enum_ProfileLogScrubbingState := [ "Enabled", "Disabled" ]
enum_ProfileScrubbingRulesMatchVariable := [ "RequestIPAddress", "RequestUri", "QueryStringArgNames" ]
enum_ProfileScrubbingRulesSelectorMatchOperator := [ "EqualsAny" ]
enum_ProfileScrubbingRulesState := [ "Enabled", "Disabled" ]
enum_SkuName := [ "Standard_Verizon", "Premium_Verizon", "Custom_Verizon", "Standard_Akamai", "Standard_ChinaCdn", "Standard_Microsoft", "Standard_AzureFrontDoor", "Premium_AzureFrontDoor", "Standard_955BandWidth_ChinaCdn", "Standard_AvgBandWidth_ChinaCdn", "StandardPlus_ChinaCdn", "StandardPlus_955BandWidth_ChinaCdn", "StandardPlus_AvgBandWidth_ChinaCdn" ]

valid {
    input.Body.sku.name == enum_SkuName[_]
    input.Body.identity.type == enum_ManagedServiceIdentityType[_]
    input.Body.identity.userAssignedIdentities.STRING == {}
    input.Body.properties.originResponseTimeoutSeconds == INTEGER
    input.Body.properties.logScrubbing.state == enum_ProfileLogScrubbingState[_]
    input.Body.properties.logScrubbing.scrubbingRules[_].matchVariable == enum_ProfileScrubbingRulesMatchVariable[_]
    input.Body.properties.logScrubbing.scrubbingRules[_].selectorMatchOperator == enum_ProfileScrubbingRulesSelectorMatchOperator[_]
    input.Body.properties.logScrubbing.scrubbingRules[_].selector == STRING
    input.Body.properties.logScrubbing.scrubbingRules[_].state == enum_ProfileScrubbingRulesState[_]
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Profiles_Delete

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

Profiles_GenerateSsoUri

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

Profiles_Get

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

Profiles_List

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

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

Profiles_ListResourceUsage

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

Profiles_ListSupportedOptimizationTypes

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

Profiles_Migrate

enum_SkuName := [ "Standard_Verizon", "Premium_Verizon", "Custom_Verizon", "Standard_Akamai", "Standard_ChinaCdn", "Standard_Microsoft", "Standard_AzureFrontDoor", "Premium_AzureFrontDoor", "Standard_955BandWidth_ChinaCdn", "Standard_AvgBandWidth_ChinaCdn", "StandardPlus_ChinaCdn", "StandardPlus_955BandWidth_ChinaCdn", "StandardPlus_AvgBandWidth_ChinaCdn" ]

valid {
    input.Body.sku.name == enum_SkuName[_]
    input.Body.classicResourceReference.id == STRING
    input.Body.profileName == STRING
    input.Body.migrationWebApplicationFirewallMappings[_].migratedFrom.id == STRING
    input.Body.migrationWebApplicationFirewallMappings[_].migratedTo.id == STRING
    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
}

Profiles_MigrationCommit

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

Profiles_Update

enum_ManagedServiceIdentityType := [ "None", "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned" ]
enum_ProfileLogScrubbingState := [ "Enabled", "Disabled" ]
enum_ProfileScrubbingRulesMatchVariable := [ "RequestIPAddress", "RequestUri", "QueryStringArgNames" ]
enum_ProfileScrubbingRulesSelectorMatchOperator := [ "EqualsAny" ]
enum_ProfileScrubbingRulesState := [ "Enabled", "Disabled" ]

valid {
    input.Body.tags.STRING == STRING
    input.Body.identity.type == enum_ManagedServiceIdentityType[_]
    input.Body.identity.userAssignedIdentities.STRING == {}
    input.Body.properties.originResponseTimeoutSeconds == INTEGER
    input.Body.properties.logScrubbing.state == enum_ProfileLogScrubbingState[_]
    input.Body.properties.logScrubbing.scrubbingRules[_].matchVariable == enum_ProfileScrubbingRulesMatchVariable[_]
    input.Body.properties.logScrubbing.scrubbingRules[_].selectorMatchOperator == enum_ProfileScrubbingRulesSelectorMatchOperator[_]
    input.Body.properties.logScrubbing.scrubbingRules[_].selector == STRING
    input.Body.properties.logScrubbing.scrubbingRules[_].state == enum_ProfileScrubbingRulesState[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ResourceUsage_List

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

Routes_Create

enum_AFDEndpointProtocols := [ "Http", "Https" ]
enum_AfdRouteCacheConfigurationQueryStringCachingBehavior := [ "IgnoreQueryString", "UseQueryString", "IgnoreSpecifiedQueryStrings", "IncludeSpecifiedQueryStrings" ]
enum_RouteUpdatePropertiesParametersEnabledState := [ "Enabled", "Disabled" ]
enum_RouteUpdatePropertiesParametersForwardingProtocol := [ "HttpOnly", "HttpsOnly", "MatchRequest" ]
enum_RouteUpdatePropertiesParametersHttpsRedirect := [ "Enabled", "Disabled" ]
enum_RouteUpdatePropertiesParametersLinkToDefaultDomain := [ "Enabled", "Disabled" ]

valid {
    input.Body.properties.customDomains[_].id == STRING
    input.Body.properties.originGroup.id == STRING
    input.Body.properties.originPath == STRING
    input.Body.properties.ruleSets[_].id == STRING
    input.Body.properties.supportedProtocols[_] == enum_AFDEndpointProtocols[_]
    input.Body.properties.patternsToMatch[_] == STRING
    input.Body.properties.cacheConfiguration.queryStringCachingBehavior == enum_AfdRouteCacheConfigurationQueryStringCachingBehavior[_]
    input.Body.properties.cacheConfiguration.queryParameters == STRING
    input.Body.properties.cacheConfiguration.compressionSettings.contentTypesToCompress[_] == STRING
    input.Body.properties.cacheConfiguration.compressionSettings.isCompressionEnabled == BOOLEAN
    input.Body.properties.forwardingProtocol == enum_RouteUpdatePropertiesParametersForwardingProtocol[_]
    input.Body.properties.linkToDefaultDomain == enum_RouteUpdatePropertiesParametersLinkToDefaultDomain[_]
    input.Body.properties.httpsRedirect == enum_RouteUpdatePropertiesParametersHttpsRedirect[_]
    input.Body.properties.enabledState == enum_RouteUpdatePropertiesParametersEnabledState[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.routeName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Routes_Delete

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

Routes_Get

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

Routes_ListByEndpoint

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

Routes_Update

enum_AFDEndpointProtocols := [ "Http", "Https" ]
enum_AfdRouteCacheConfigurationQueryStringCachingBehavior := [ "IgnoreQueryString", "UseQueryString", "IgnoreSpecifiedQueryStrings", "IncludeSpecifiedQueryStrings" ]
enum_RouteUpdatePropertiesParametersEnabledState := [ "Enabled", "Disabled" ]
enum_RouteUpdatePropertiesParametersForwardingProtocol := [ "HttpOnly", "HttpsOnly", "MatchRequest" ]
enum_RouteUpdatePropertiesParametersHttpsRedirect := [ "Enabled", "Disabled" ]
enum_RouteUpdatePropertiesParametersLinkToDefaultDomain := [ "Enabled", "Disabled" ]

valid {
    input.Body.properties.customDomains[_].id == STRING
    input.Body.properties.originGroup.id == STRING
    input.Body.properties.originPath == STRING
    input.Body.properties.ruleSets[_].id == STRING
    input.Body.properties.supportedProtocols[_] == enum_AFDEndpointProtocols[_]
    input.Body.properties.patternsToMatch[_] == STRING
    input.Body.properties.cacheConfiguration.queryStringCachingBehavior == enum_AfdRouteCacheConfigurationQueryStringCachingBehavior[_]
    input.Body.properties.cacheConfiguration.queryParameters == STRING
    input.Body.properties.cacheConfiguration.compressionSettings.contentTypesToCompress[_] == STRING
    input.Body.properties.cacheConfiguration.compressionSettings.isCompressionEnabled == BOOLEAN
    input.Body.properties.forwardingProtocol == enum_RouteUpdatePropertiesParametersForwardingProtocol[_]
    input.Body.properties.linkToDefaultDomain == enum_RouteUpdatePropertiesParametersLinkToDefaultDomain[_]
    input.Body.properties.httpsRedirect == enum_RouteUpdatePropertiesParametersHttpsRedirect[_]
    input.Body.properties.enabledState == enum_RouteUpdatePropertiesParametersEnabledState[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.endpointName == STRING
    input.ReqMap.routeName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

RuleSets_Create

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

RuleSets_Delete

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

RuleSets_Get

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

RuleSets_ListByProfile

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

RuleSets_ListResourceUsage

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

Rules_Create

enum_DeliveryRuleActionName := [ "CacheExpiration", "CacheKeyQueryString", "ModifyRequestHeader", "ModifyResponseHeader", "UrlRedirect", "UrlRewrite", "UrlSigning", "OriginGroupOverride", "RouteConfigurationOverride" ]
enum_DeliveryRuleConditionName := [ "RemoteAddress", "RequestMethod", "QueryString", "PostArgs", "RequestUri", "RequestHeader", "RequestBody", "RequestScheme", "UrlPath", "UrlFileExtension", "UrlFileName", "HttpVersion", "Cookies", "IsDevice", "SocketAddr", "ClientPort", "ServerPort", "HostName", "SslProtocol" ]
enum_RuleUpdatePropertiesParametersMatchProcessingBehavior := [ "Continue", "Stop" ]

valid {
    input.Body.properties.STRING == STRING
    input.Body.properties.order == INTEGER
    input.Body.properties.conditions[_].name == enum_DeliveryRuleConditionName[_]
    input.Body.properties.actions[_].name == enum_DeliveryRuleActionName[_]
    input.Body.properties.matchProcessingBehavior == enum_RuleUpdatePropertiesParametersMatchProcessingBehavior[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.ruleSetName == STRING
    input.ReqMap.ruleName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Rules_Delete

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

Rules_Get

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

Rules_ListByRuleSet

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

Rules_Update

enum_DeliveryRuleActionName := [ "CacheExpiration", "CacheKeyQueryString", "ModifyRequestHeader", "ModifyResponseHeader", "UrlRedirect", "UrlRewrite", "UrlSigning", "OriginGroupOverride", "RouteConfigurationOverride" ]
enum_DeliveryRuleConditionName := [ "RemoteAddress", "RequestMethod", "QueryString", "PostArgs", "RequestUri", "RequestHeader", "RequestBody", "RequestScheme", "UrlPath", "UrlFileExtension", "UrlFileName", "HttpVersion", "Cookies", "IsDevice", "SocketAddr", "ClientPort", "ServerPort", "HostName", "SslProtocol" ]
enum_RuleUpdatePropertiesParametersMatchProcessingBehavior := [ "Continue", "Stop" ]

valid {
    input.Body.properties.order == INTEGER
    input.Body.properties.conditions[_].name == enum_DeliveryRuleConditionName[_]
    input.Body.properties.actions[_].name == enum_DeliveryRuleActionName[_]
    input.Body.properties.matchProcessingBehavior == enum_RuleUpdatePropertiesParametersMatchProcessingBehavior[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.ruleSetName == STRING
    input.ReqMap.ruleName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Secrets_Create

enum_SecretType := [ "UrlSigningKey", "CustomerCertificate", "ManagedCertificate", "AzureFirstPartyManagedCertificate" ]

valid {
    input.Body.properties.parameters.type == enum_SecretType[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.secretName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Secrets_Delete

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

Secrets_Get

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

Secrets_ListByProfile

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

Secrets_Update

enum_SecretParametersType := [ "UrlSigningKey", "CustomerCertificate", "ManagedCertificate" ]

valid {
    input.Body.parameters.type == enum_SecretParametersType[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.secretName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

SecurityPolicies_Create

enum_SecurityPolicyPropertiesParametersType := [ "WebApplicationFirewall" ]

valid {
    input.Body.properties.parameters.type == enum_SecurityPolicyPropertiesParametersType[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.securityPolicyName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

SecurityPolicies_Delete

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

SecurityPolicies_Get

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

SecurityPolicies_ListByProfile

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

SecurityPolicies_Patch

enum_SecurityPolicyPropertiesParametersType := [ "WebApplicationFirewall" ]

valid {
    input.Body.properties.parameters.type == enum_SecurityPolicyPropertiesParametersType[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.profileName == STRING
    input.ReqMap.securityPolicyName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ValidateProbe

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

Validate_Secret

enum_SecretType := [ "UrlSigningKey", "CustomerCertificate", "ManagedCertificate", "AzureFirstPartyManagedCertificate" ]

valid {
    input.Body.secretType == enum_SecretType[_]
    input.Body.secretSource.id == STRING
    input.Body.secretVersion == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}