MICROSOFT.NOTIFICATIONHUBS

Namespaces_CheckAvailability

enum_SkuName := [ "Free", "Basic", "Standard" ]

valid {
    input.Body.name == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.Body.isAvailiable == BOOLEAN
    input.Body.sku.name == enum_SkuName[_]
    input.Body.sku.tier == STRING
    input.Body.sku.size == STRING
    input.Body.sku.family == STRING
    input.Body.sku.capacity == INTEGER
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Namespaces_CreateOrUpdate

enum_AccessRights := [ "Manage", "Send", "Listen" ]
enum_NamespaceStatus := [ "Created", "Creating", "Suspended", "Deleting" ]
enum_NamespaceType := [ "Messaging", "NotificationHub" ]
enum_OperationProvisioningState := [ "Unknown", "InProgress", "Succeeded", "Failed", "Canceled", "Pending", "Disabled" ]
enum_PublicNetworkAccess := [ "Enabled", "Disabled" ]
enum_ReplicationRegion := [ "Default", "WestUs2", "NorthEurope", "AustraliaEast", "BrazilSouth", "SouthEastAsia", "SouthAfricaNorth", "None" ]
enum_SkuName := [ "Free", "Basic", "Standard" ]
enum_ZoneRedundancyPreference := [ "Disabled", "Enabled" ]

valid {
    input.Body.sku.name == enum_SkuName[_]
    input.Body.sku.tier == STRING
    input.Body.sku.size == STRING
    input.Body.sku.family == STRING
    input.Body.sku.capacity == INTEGER
    input.Body.properties.provisioningState == enum_OperationProvisioningState[_]
    input.Body.properties.status == enum_NamespaceStatus[_]
    input.Body.properties.namespaceType == enum_NamespaceType[_]
    input.Body.properties.replicationRegion == enum_ReplicationRegion[_]
    input.Body.properties.zoneRedundancy == enum_ZoneRedundancyPreference[_]
    input.Body.properties.networkAcls.ipRules[_].ipMask == STRING
    input.Body.properties.networkAcls.ipRules[_].rights[_] == enum_AccessRights[_]
    input.Body.properties.networkAcls.publicNetworkRule.rights[_] == enum_AccessRights[_]
    input.Body.properties.pnsCredentials.admCredential.properties.clientId == STRING
    input.Body.properties.pnsCredentials.admCredential.properties.clientSecret == STRING
    input.Body.properties.pnsCredentials.admCredential.properties.authTokenUrl == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.apnsCertificate == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.certificateKey == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.endpoint == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.thumbprint == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.keyId == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.appName == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.appId == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.token == STRING
    input.Body.properties.pnsCredentials.baiduCredential.properties.baiduApiKey == STRING
    input.Body.properties.pnsCredentials.baiduCredential.properties.baiduEndPoint == STRING
    input.Body.properties.pnsCredentials.baiduCredential.properties.baiduSecretKey == STRING
    input.Body.properties.pnsCredentials.browserCredential.properties.subject == STRING
    input.Body.properties.pnsCredentials.browserCredential.properties.vapidPrivateKey == STRING
    input.Body.properties.pnsCredentials.browserCredential.properties.vapidPublicKey == STRING
    input.Body.properties.pnsCredentials.gcmCredential.properties.gcmEndpoint == STRING
    input.Body.properties.pnsCredentials.gcmCredential.properties.googleApiKey == STRING
    input.Body.properties.pnsCredentials.mpnsCredential.properties.mpnsCertificate == STRING
    input.Body.properties.pnsCredentials.mpnsCredential.properties.certificateKey == STRING
    input.Body.properties.pnsCredentials.mpnsCredential.properties.thumbprint == STRING
    input.Body.properties.pnsCredentials.wnsCredential.properties.packageSid == STRING
    input.Body.properties.pnsCredentials.wnsCredential.properties.secretKey == STRING
    input.Body.properties.pnsCredentials.wnsCredential.properties.windowsLiveEndpoint == STRING
    input.Body.properties.pnsCredentials.wnsCredential.properties.certificateKey == STRING
    input.Body.properties.pnsCredentials.wnsCredential.properties.wnsCertificate == STRING
    input.Body.properties.pnsCredentials.xiaomiCredential.properties.appSecret == STRING
    input.Body.properties.pnsCredentials.xiaomiCredential.properties.endpoint == STRING
    input.Body.properties.pnsCredentials.fcmV1Credential.properties.clientEmail == STRING
    input.Body.properties.pnsCredentials.fcmV1Credential.properties.privateKey == STRING
    input.Body.properties.pnsCredentials.fcmV1Credential.properties.projectId == STRING
    input.Body.properties.scaleUnit == STRING
    input.Body.properties.dataCenter == STRING
    input.Body.properties.publicNetworkAccess == enum_PublicNetworkAccess[_]
    input.Body.tags.STRING == STRING
    input.Body.location == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.namespaceName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Namespaces_CreateOrUpdateAuthorizationRule

enum_AccessRights := [ "Manage", "Send", "Listen" ]

valid {
    input.Body.properties.rights[_] == enum_AccessRights[_]
    input.Body.properties.primaryKey == STRING
    input.Body.properties.secondaryKey == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.namespaceName == STRING
    input.ReqMap.authorizationRuleName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Namespaces_Delete

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

Namespaces_DeleteAuthorizationRule

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

Namespaces_Get

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

Namespaces_GetAuthorizationRule

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

Namespaces_GetLongRunningOperationStatus

valid {
    input.ReqMap.operationStatusLink == STRING
    input.ProviderMetadata.Region == STRING
}

Namespaces_GetPnsCredentials

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

Namespaces_List

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

Namespaces_ListAll

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

Namespaces_ListAuthorizationRules

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

Namespaces_ListKeys

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

Namespaces_RegenerateKeys

enum_PolicyKeyType := [ "PrimaryKey", "SecondaryKey" ]

valid {
    input.Body.policyKey == enum_PolicyKeyType[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.namespaceName == STRING
    input.ReqMap.authorizationRuleName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Namespaces_Update

enum_AccessRights := [ "Manage", "Send", "Listen" ]
enum_NamespaceStatus := [ "Created", "Creating", "Suspended", "Deleting" ]
enum_NamespaceType := [ "Messaging", "NotificationHub" ]
enum_OperationProvisioningState := [ "Unknown", "InProgress", "Succeeded", "Failed", "Canceled", "Pending", "Disabled" ]
enum_PublicNetworkAccess := [ "Enabled", "Disabled" ]
enum_ReplicationRegion := [ "Default", "WestUs2", "NorthEurope", "AustraliaEast", "BrazilSouth", "SouthEastAsia", "SouthAfricaNorth", "None" ]
enum_SkuName := [ "Free", "Basic", "Standard" ]
enum_ZoneRedundancyPreference := [ "Disabled", "Enabled" ]

valid {
    input.Body.sku.name == enum_SkuName[_]
    input.Body.sku.tier == STRING
    input.Body.sku.size == STRING
    input.Body.sku.family == STRING
    input.Body.sku.capacity == INTEGER
    input.Body.properties.provisioningState == enum_OperationProvisioningState[_]
    input.Body.properties.status == enum_NamespaceStatus[_]
    input.Body.properties.namespaceType == enum_NamespaceType[_]
    input.Body.properties.replicationRegion == enum_ReplicationRegion[_]
    input.Body.properties.zoneRedundancy == enum_ZoneRedundancyPreference[_]
    input.Body.properties.networkAcls.ipRules[_].ipMask == STRING
    input.Body.properties.networkAcls.ipRules[_].rights[_] == enum_AccessRights[_]
    input.Body.properties.networkAcls.publicNetworkRule.rights[_] == enum_AccessRights[_]
    input.Body.properties.pnsCredentials.admCredential.properties.clientId == STRING
    input.Body.properties.pnsCredentials.admCredential.properties.clientSecret == STRING
    input.Body.properties.pnsCredentials.admCredential.properties.authTokenUrl == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.apnsCertificate == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.certificateKey == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.endpoint == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.thumbprint == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.keyId == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.appName == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.appId == STRING
    input.Body.properties.pnsCredentials.apnsCredential.properties.token == STRING
    input.Body.properties.pnsCredentials.baiduCredential.properties.baiduApiKey == STRING
    input.Body.properties.pnsCredentials.baiduCredential.properties.baiduEndPoint == STRING
    input.Body.properties.pnsCredentials.baiduCredential.properties.baiduSecretKey == STRING
    input.Body.properties.pnsCredentials.browserCredential.properties.subject == STRING
    input.Body.properties.pnsCredentials.browserCredential.properties.vapidPrivateKey == STRING
    input.Body.properties.pnsCredentials.browserCredential.properties.vapidPublicKey == STRING
    input.Body.properties.pnsCredentials.gcmCredential.properties.gcmEndpoint == STRING
    input.Body.properties.pnsCredentials.gcmCredential.properties.googleApiKey == STRING
    input.Body.properties.pnsCredentials.mpnsCredential.properties.mpnsCertificate == STRING
    input.Body.properties.pnsCredentials.mpnsCredential.properties.certificateKey == STRING
    input.Body.properties.pnsCredentials.mpnsCredential.properties.thumbprint == STRING
    input.Body.properties.pnsCredentials.wnsCredential.properties.packageSid == STRING
    input.Body.properties.pnsCredentials.wnsCredential.properties.secretKey == STRING
    input.Body.properties.pnsCredentials.wnsCredential.properties.windowsLiveEndpoint == STRING
    input.Body.properties.pnsCredentials.wnsCredential.properties.certificateKey == STRING
    input.Body.properties.pnsCredentials.wnsCredential.properties.wnsCertificate == STRING
    input.Body.properties.pnsCredentials.xiaomiCredential.properties.appSecret == STRING
    input.Body.properties.pnsCredentials.xiaomiCredential.properties.endpoint == STRING
    input.Body.properties.pnsCredentials.fcmV1Credential.properties.clientEmail == STRING
    input.Body.properties.pnsCredentials.fcmV1Credential.properties.privateKey == STRING
    input.Body.properties.pnsCredentials.fcmV1Credential.properties.projectId == STRING
    input.Body.properties.scaleUnit == STRING
    input.Body.properties.dataCenter == STRING
    input.Body.properties.publicNetworkAccess == enum_PublicNetworkAccess[_]
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.namespaceName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

NotificationHubs_CheckNotificationHubAvailability

enum_SkuName := [ "Free", "Basic", "Standard" ]

valid {
    input.Body.name == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.Body.isAvailiable == BOOLEAN
    input.Body.sku.name == enum_SkuName[_]
    input.Body.sku.tier == STRING
    input.Body.sku.size == STRING
    input.Body.sku.family == STRING
    input.Body.sku.capacity == INTEGER
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.namespaceName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

NotificationHubs_CreateOrUpdate

enum_SkuName := [ "Free", "Basic", "Standard" ]

valid {
    input.Body.properties.name == STRING
    input.Body.properties.registrationTtl == STRING
    input.Body.properties.apnsCredential.properties.apnsCertificate == STRING
    input.Body.properties.apnsCredential.properties.certificateKey == STRING
    input.Body.properties.apnsCredential.properties.endpoint == STRING
    input.Body.properties.apnsCredential.properties.thumbprint == STRING
    input.Body.properties.apnsCredential.properties.keyId == STRING
    input.Body.properties.apnsCredential.properties.appName == STRING
    input.Body.properties.apnsCredential.properties.appId == STRING
    input.Body.properties.apnsCredential.properties.token == STRING
    input.Body.properties.wnsCredential.properties.packageSid == STRING
    input.Body.properties.wnsCredential.properties.secretKey == STRING
    input.Body.properties.wnsCredential.properties.windowsLiveEndpoint == STRING
    input.Body.properties.wnsCredential.properties.certificateKey == STRING
    input.Body.properties.wnsCredential.properties.wnsCertificate == STRING
    input.Body.properties.gcmCredential.properties.gcmEndpoint == STRING
    input.Body.properties.gcmCredential.properties.googleApiKey == STRING
    input.Body.properties.mpnsCredential.properties.mpnsCertificate == STRING
    input.Body.properties.mpnsCredential.properties.certificateKey == STRING
    input.Body.properties.mpnsCredential.properties.thumbprint == STRING
    input.Body.properties.admCredential.properties.clientId == STRING
    input.Body.properties.admCredential.properties.clientSecret == STRING
    input.Body.properties.admCredential.properties.authTokenUrl == STRING
    input.Body.properties.baiduCredential.properties.baiduApiKey == STRING
    input.Body.properties.baiduCredential.properties.baiduEndPoint == STRING
    input.Body.properties.baiduCredential.properties.baiduSecretKey == STRING
    input.Body.properties.browserCredential.properties.subject == STRING
    input.Body.properties.browserCredential.properties.vapidPrivateKey == STRING
    input.Body.properties.browserCredential.properties.vapidPublicKey == STRING
    input.Body.properties.xiaomiCredential.properties.appSecret == STRING
    input.Body.properties.xiaomiCredential.properties.endpoint == STRING
    input.Body.properties.fcmV1Credential.properties.clientEmail == STRING
    input.Body.properties.fcmV1Credential.properties.privateKey == STRING
    input.Body.properties.fcmV1Credential.properties.projectId == STRING
    input.Body.sku.name == enum_SkuName[_]
    input.Body.sku.tier == STRING
    input.Body.sku.size == STRING
    input.Body.sku.family == STRING
    input.Body.sku.capacity == INTEGER
    input.Body.tags.STRING == STRING
    input.Body.location == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.namespaceName == STRING
    input.ReqMap.notificationHubName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

NotificationHubs_CreateOrUpdateAuthorizationRule

enum_AccessRights := [ "Manage", "Send", "Listen" ]

valid {
    input.Body.properties.rights[_] == enum_AccessRights[_]
    input.Body.properties.primaryKey == STRING
    input.Body.properties.secondaryKey == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.Body.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.namespaceName == STRING
    input.ReqMap.notificationHubName == STRING
    input.ReqMap.authorizationRuleName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

NotificationHubs_DebugSend

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

NotificationHubs_Delete

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

NotificationHubs_DeleteAuthorizationRule

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

NotificationHubs_Get

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

NotificationHubs_GetAuthorizationRule

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

NotificationHubs_GetPnsCredentials

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

NotificationHubs_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.namespaceName == STRING
    input.Qs.$skipToken == STRING
    input.Qs.$top == INTEGER
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

NotificationHubs_ListAuthorizationRules

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

NotificationHubs_ListKeys

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

NotificationHubs_RegenerateKeys

enum_PolicyKeyType := [ "PrimaryKey", "SecondaryKey" ]

valid {
    input.Body.policyKey == enum_PolicyKeyType[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.namespaceName == STRING
    input.ReqMap.notificationHubName == STRING
    input.ReqMap.authorizationRuleName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

NotificationHubs_Update

enum_SkuName := [ "Free", "Basic", "Standard" ]

valid {
    input.Body.properties.name == STRING
    input.Body.properties.registrationTtl == STRING
    input.Body.properties.apnsCredential.properties.apnsCertificate == STRING
    input.Body.properties.apnsCredential.properties.certificateKey == STRING
    input.Body.properties.apnsCredential.properties.endpoint == STRING
    input.Body.properties.apnsCredential.properties.thumbprint == STRING
    input.Body.properties.apnsCredential.properties.keyId == STRING
    input.Body.properties.apnsCredential.properties.appName == STRING
    input.Body.properties.apnsCredential.properties.appId == STRING
    input.Body.properties.apnsCredential.properties.token == STRING
    input.Body.properties.wnsCredential.properties.packageSid == STRING
    input.Body.properties.wnsCredential.properties.secretKey == STRING
    input.Body.properties.wnsCredential.properties.windowsLiveEndpoint == STRING
    input.Body.properties.wnsCredential.properties.certificateKey == STRING
    input.Body.properties.wnsCredential.properties.wnsCertificate == STRING
    input.Body.properties.gcmCredential.properties.gcmEndpoint == STRING
    input.Body.properties.gcmCredential.properties.googleApiKey == STRING
    input.Body.properties.mpnsCredential.properties.mpnsCertificate == STRING
    input.Body.properties.mpnsCredential.properties.certificateKey == STRING
    input.Body.properties.mpnsCredential.properties.thumbprint == STRING
    input.Body.properties.admCredential.properties.clientId == STRING
    input.Body.properties.admCredential.properties.clientSecret == STRING
    input.Body.properties.admCredential.properties.authTokenUrl == STRING
    input.Body.properties.baiduCredential.properties.baiduApiKey == STRING
    input.Body.properties.baiduCredential.properties.baiduEndPoint == STRING
    input.Body.properties.baiduCredential.properties.baiduSecretKey == STRING
    input.Body.properties.browserCredential.properties.subject == STRING
    input.Body.properties.browserCredential.properties.vapidPrivateKey == STRING
    input.Body.properties.browserCredential.properties.vapidPublicKey == STRING
    input.Body.properties.xiaomiCredential.properties.appSecret == STRING
    input.Body.properties.xiaomiCredential.properties.endpoint == STRING
    input.Body.properties.fcmV1Credential.properties.clientEmail == STRING
    input.Body.properties.fcmV1Credential.properties.privateKey == STRING
    input.Body.properties.fcmV1Credential.properties.projectId == STRING
    input.Body.sku.name == enum_SkuName[_]
    input.Body.sku.tier == STRING
    input.Body.sku.size == STRING
    input.Body.sku.family == STRING
    input.Body.sku.capacity == INTEGER
    input.Body.tags.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.namespaceName == STRING
    input.ReqMap.notificationHubName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Operations_List

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

PrivateEndpointConnections_Delete

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

PrivateEndpointConnections_Get

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

PrivateEndpointConnections_GetGroupId

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

PrivateEndpointConnections_List

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

PrivateEndpointConnections_ListGroupIds

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

PrivateEndpointConnections_Update

enum_PrivateEndpointConnectionProvisioningState := [ "Unknown", "Succeeded", "Creating", "Updating", "UpdatingByProxy", "Deleting", "DeletingByProxy", "Deleted" ]
enum_PrivateLinkConnectionStatus := [ "Disconnected", "Pending", "Approved", "Rejected" ]

valid {
    input.Body.properties.provisioningState == enum_PrivateEndpointConnectionProvisioningState[_]
    input.Body.properties.privateEndpoint == {}
    input.Body.properties.privateLinkServiceConnectionState.status == enum_PrivateLinkConnectionStatus[_]
    input.Body.STRING == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.namespaceName == STRING
    input.ReqMap.privateEndpointConnectionName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}