MICROSOFT.STORAGE

BlobContainers_ClearLegalHold

valid {
    input.Body.tags[_] == STRING
    input.Body.allowProtectedAppendWritesAll == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.containerName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobContainers_Create

enum_ContainerPropertiesPublicAccess := [ "Container", "Blob", "None" ]

valid {
    input.Body.properties.defaultEncryptionScope == STRING
    input.Body.properties.denyEncryptionScopeOverride == BOOLEAN
    input.Body.properties.publicAccess == enum_ContainerPropertiesPublicAccess[_]
    input.Body.properties.metadata.STRING == STRING
    input.Body.properties.immutableStorageWithVersioning.enabled == BOOLEAN
    input.Body.properties.enableNfsV3RootSquash == BOOLEAN
    input.Body.properties.enableNfsV3AllSquash == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.containerName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobContainers_CreateOrUpdateImmutabilityPolicy

enum_ImmutabilityPolicyName := [ "default" ]

valid {
    input.Body.properties.immutabilityPeriodSinceCreationInDays == INTEGER
    input.Body.properties.allowProtectedAppendWrites == BOOLEAN
    input.Body.properties.allowProtectedAppendWritesAll == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.containerName == STRING
    input.ReqMap.immutabilityPolicyName == enum_ImmutabilityPolicyName[_]
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobContainers_Delete

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

BlobContainers_DeleteImmutabilityPolicy

enum_ImmutabilityPolicyName := [ "default" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.containerName == STRING
    input.ReqMap.immutabilityPolicyName == enum_ImmutabilityPolicyName[_]
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobContainers_ExtendImmutabilityPolicy

valid {
    input.Body.properties.immutabilityPeriodSinceCreationInDays == INTEGER
    input.Body.properties.allowProtectedAppendWrites == BOOLEAN
    input.Body.properties.allowProtectedAppendWritesAll == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.containerName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobContainers_Get

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

BlobContainers_GetImmutabilityPolicy

enum_ImmutabilityPolicyName := [ "default" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.containerName == STRING
    input.ReqMap.immutabilityPolicyName == enum_ImmutabilityPolicyName[_]
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobContainers_Lease

enum_LeaseContainerRequestAction := [ "Acquire", "Renew", "Change", "Release", "Break" ]

valid {
    input.Body.action == enum_LeaseContainerRequestAction[_]
    input.Body.leaseId == STRING
    input.Body.breakPeriod == INTEGER
    input.Body.leaseDuration == INTEGER
    input.Body.proposedLeaseId == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.containerName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobContainers_List

enum_$includeParameter := [ "deleted" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$maxpagesize == STRING
    input.Qs.$filter == STRING
    input.Qs.$include == enum_$includeParameter[_]
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobContainers_LockImmutabilityPolicy

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

BlobContainers_ObjectLevelWorm

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

BlobContainers_SetLegalHold

valid {
    input.Body.tags[_] == STRING
    input.Body.allowProtectedAppendWritesAll == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.containerName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobContainers_Update

enum_ContainerPropertiesPublicAccess := [ "Container", "Blob", "None" ]

valid {
    input.Body.properties.defaultEncryptionScope == STRING
    input.Body.properties.denyEncryptionScopeOverride == BOOLEAN
    input.Body.properties.publicAccess == enum_ContainerPropertiesPublicAccess[_]
    input.Body.properties.metadata.STRING == STRING
    input.Body.properties.immutableStorageWithVersioning.enabled == BOOLEAN
    input.Body.properties.enableNfsV3RootSquash == BOOLEAN
    input.Body.properties.enableNfsV3AllSquash == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.containerName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobInventoryPolicies_CreateOrUpdate

enum_BlobInventoryPolicyDefinitionFormat := [ "Csv", "Parquet" ]
enum_BlobInventoryPolicyDefinitionObjectType := [ "Blob", "Container" ]
enum_BlobInventoryPolicyDefinitionSchedule := [ "Daily", "Weekly" ]
enum_BlobInventoryPolicyName := [ "default" ]
enum_BlobInventoryPolicySchemaType := [ "Inventory" ]

valid {
    input.Body.properties.policy.enabled == BOOLEAN
    input.Body.properties.policy.type == enum_BlobInventoryPolicySchemaType[_]
    input.Body.properties.policy.rules[_].enabled == BOOLEAN
    input.Body.properties.policy.rules[_].name == STRING
    input.Body.properties.policy.rules[_].destination == STRING
    input.Body.properties.policy.rules[_].definition.filters.prefixMatch[_] == STRING
    input.Body.properties.policy.rules[_].definition.filters.excludePrefix[_] == STRING
    input.Body.properties.policy.rules[_].definition.filters.blobTypes[_] == STRING
    input.Body.properties.policy.rules[_].definition.filters.includeBlobVersions == BOOLEAN
    input.Body.properties.policy.rules[_].definition.filters.includeSnapshots == BOOLEAN
    input.Body.properties.policy.rules[_].definition.filters.includeDeleted == BOOLEAN
    input.Body.properties.policy.rules[_].definition.filters.creationTime.lastNDays == INTEGER
    input.Body.properties.policy.rules[_].definition.format == enum_BlobInventoryPolicyDefinitionFormat[_]
    input.Body.properties.policy.rules[_].definition.schedule == enum_BlobInventoryPolicyDefinitionSchedule[_]
    input.Body.properties.policy.rules[_].definition.objectType == enum_BlobInventoryPolicyDefinitionObjectType[_]
    input.Body.properties.policy.rules[_].definition.schemaFields[_] == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.blobInventoryPolicyName == enum_BlobInventoryPolicyName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobInventoryPolicies_Delete

enum_BlobInventoryPolicyName := [ "default" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.blobInventoryPolicyName == enum_BlobInventoryPolicyName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobInventoryPolicies_Get

enum_BlobInventoryPolicyName := [ "default" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.blobInventoryPolicyName == enum_BlobInventoryPolicyName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobInventoryPolicies_List

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

BlobServices_GetServiceProperties

enum_BlobServicesName := [ "default" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.BlobServicesName == enum_BlobServicesName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

BlobServices_List

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

BlobServices_SetServiceProperties

enum_BlobServicesName := [ "default" ]
enum_CorsRuleAllowedMethods := [ "DELETE", "GET", "HEAD", "MERGE", "POST", "OPTIONS", "PUT", "PATCH", "CONNECT", "TRACE" ]
enum_LastAccessTimeTrackingPolicyName := [ "AccessTimeTracking" ]

valid {
    input.Body.properties.cors.corsRules[_].allowedOrigins[_] == STRING
    input.Body.properties.cors.corsRules[_].allowedMethods[_] == enum_CorsRuleAllowedMethods[_]
    input.Body.properties.cors.corsRules[_].maxAgeInSeconds == INTEGER
    input.Body.properties.cors.corsRules[_].exposedHeaders[_] == STRING
    input.Body.properties.cors.corsRules[_].allowedHeaders[_] == STRING
    input.Body.properties.defaultServiceVersion == STRING
    input.Body.properties.deleteRetentionPolicy.enabled == BOOLEAN
    input.Body.properties.deleteRetentionPolicy.days == INTEGER
    input.Body.properties.deleteRetentionPolicy.allowPermanentDelete == BOOLEAN
    input.Body.properties.isVersioningEnabled == BOOLEAN
    input.Body.properties.automaticSnapshotPolicyEnabled == BOOLEAN
    input.Body.properties.changeFeed.enabled == BOOLEAN
    input.Body.properties.changeFeed.retentionInDays == INTEGER
    input.Body.properties.restorePolicy.enabled == BOOLEAN
    input.Body.properties.restorePolicy.days == INTEGER
    input.Body.properties.containerDeleteRetentionPolicy.enabled == BOOLEAN
    input.Body.properties.containerDeleteRetentionPolicy.days == INTEGER
    input.Body.properties.containerDeleteRetentionPolicy.allowPermanentDelete == BOOLEAN
    input.Body.properties.lastAccessTimeTrackingPolicy.enable == BOOLEAN
    input.Body.properties.lastAccessTimeTrackingPolicy.name == enum_LastAccessTimeTrackingPolicyName[_]
    input.Body.properties.lastAccessTimeTrackingPolicy.trackingGranularityInDays == INTEGER
    input.Body.properties.lastAccessTimeTrackingPolicy.blobType[_] == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.BlobServicesName == enum_BlobServicesName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

DeletedAccounts_Get

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

DeletedAccounts_List

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

EncryptionScopes_Get

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

EncryptionScopes_List

enum_$includeParameter := [ "All", "Enabled", "Disabled" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$maxpagesize == INTEGER
    input.Qs.$filter == STRING
    input.Qs.$include == enum_$includeParameter[_]
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

EncryptionScopes_Patch

enum_EncryptionScopePropertiesSource := [ "Microsoft.Storage", "Microsoft.KeyVault" ]
enum_EncryptionScopePropertiesState := [ "Enabled", "Disabled" ]

valid {
    input.Body.properties.source == enum_EncryptionScopePropertiesSource[_]
    input.Body.properties.state == enum_EncryptionScopePropertiesState[_]
    input.Body.properties.keyVaultProperties.keyUri == STRING
    input.Body.properties.requireInfrastructureEncryption == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.encryptionScopeName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

EncryptionScopes_Put

enum_EncryptionScopePropertiesSource := [ "Microsoft.Storage", "Microsoft.KeyVault" ]
enum_EncryptionScopePropertiesState := [ "Enabled", "Disabled" ]

valid {
    input.Body.properties.source == enum_EncryptionScopePropertiesSource[_]
    input.Body.properties.state == enum_EncryptionScopePropertiesState[_]
    input.Body.properties.keyVaultProperties.keyUri == STRING
    input.Body.properties.requireInfrastructureEncryption == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.encryptionScopeName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

FileServices_GetServiceProperties

enum_FileServicesName := [ "default" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.FileServicesName == enum_FileServicesName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

FileServices_List

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

FileServices_SetServiceProperties

enum_CorsRuleAllowedMethods := [ "DELETE", "GET", "HEAD", "MERGE", "POST", "OPTIONS", "PUT", "PATCH", "CONNECT", "TRACE" ]
enum_FileServicesName := [ "default" ]

valid {
    input.Body.properties.cors.corsRules[_].allowedOrigins[_] == STRING
    input.Body.properties.cors.corsRules[_].allowedMethods[_] == enum_CorsRuleAllowedMethods[_]
    input.Body.properties.cors.corsRules[_].maxAgeInSeconds == INTEGER
    input.Body.properties.cors.corsRules[_].exposedHeaders[_] == STRING
    input.Body.properties.cors.corsRules[_].allowedHeaders[_] == STRING
    input.Body.properties.shareDeleteRetentionPolicy.enabled == BOOLEAN
    input.Body.properties.shareDeleteRetentionPolicy.days == INTEGER
    input.Body.properties.shareDeleteRetentionPolicy.allowPermanentDelete == BOOLEAN
    input.Body.properties.protocolSettings.smb.multichannel.enabled == BOOLEAN
    input.Body.properties.protocolSettings.smb.versions == STRING
    input.Body.properties.protocolSettings.smb.authenticationMethods == STRING
    input.Body.properties.protocolSettings.smb.kerberosTicketEncryption == STRING
    input.Body.properties.protocolSettings.smb.channelEncryption == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.FileServicesName == enum_FileServicesName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

FileShares_Create

enum_FileSharePropertiesAccessTier := [ "TransactionOptimized", "Hot", "Cool", "Premium" ]
enum_FileSharePropertiesEnabledProtocols := [ "SMB", "NFS" ]
enum_FileSharePropertiesRootSquash := [ "NoRootSquash", "RootSquash", "AllSquash" ]

valid {
    input.Body.properties.metadata.STRING == STRING
    input.Body.properties.shareQuota == INTEGER
    input.Body.properties.enabledProtocols == enum_FileSharePropertiesEnabledProtocols[_]
    input.Body.properties.rootSquash == enum_FileSharePropertiesRootSquash[_]
    input.Body.properties.accessTier == enum_FileSharePropertiesAccessTier[_]
    input.Body.properties.signedIdentifiers[_].id == STRING
    input.Body.properties.signedIdentifiers[_].accessPolicy.startTime == STRING
    input.Body.properties.signedIdentifiers[_].accessPolicy.expiryTime == STRING
    input.Body.properties.signedIdentifiers[_].accessPolicy.permission == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.shareName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.$expand == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

FileShares_Delete

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.shareName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$include == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

FileShares_Get

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.shareName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$expand == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

FileShares_Lease

enum_LeaseShareRequestAction := [ "Acquire", "Renew", "Change", "Release", "Break" ]

valid {
    input.Body.action == enum_LeaseShareRequestAction[_]
    input.Body.leaseId == STRING
    input.Body.breakPeriod == INTEGER
    input.Body.leaseDuration == INTEGER
    input.Body.proposedLeaseId == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.shareName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

FileShares_List

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$maxpagesize == STRING
    input.Qs.$filter == STRING
    input.Qs.$expand == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

FileShares_Restore

valid {
    input.Body.deletedShareName == STRING
    input.Body.deletedShareVersion == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.shareName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

FileShares_Update

enum_FileSharePropertiesAccessTier := [ "TransactionOptimized", "Hot", "Cool", "Premium" ]
enum_FileSharePropertiesEnabledProtocols := [ "SMB", "NFS" ]
enum_FileSharePropertiesRootSquash := [ "NoRootSquash", "RootSquash", "AllSquash" ]

valid {
    input.Body.properties.metadata.STRING == STRING
    input.Body.properties.shareQuota == INTEGER
    input.Body.properties.enabledProtocols == enum_FileSharePropertiesEnabledProtocols[_]
    input.Body.properties.rootSquash == enum_FileSharePropertiesRootSquash[_]
    input.Body.properties.accessTier == enum_FileSharePropertiesAccessTier[_]
    input.Body.properties.signedIdentifiers[_].id == STRING
    input.Body.properties.signedIdentifiers[_].accessPolicy.startTime == STRING
    input.Body.properties.signedIdentifiers[_].accessPolicy.expiryTime == STRING
    input.Body.properties.signedIdentifiers[_].accessPolicy.permission == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.shareName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LocalUsers_CreateOrUpdate

valid {
    input.Body.properties.permissionScopes[_].permissions == STRING
    input.Body.properties.permissionScopes[_].service == STRING
    input.Body.properties.permissionScopes[_].resourceName == STRING
    input.Body.properties.homeDirectory == STRING
    input.Body.properties.sshAuthorizedKeys[_].description == STRING
    input.Body.properties.sshAuthorizedKeys[_].key == STRING
    input.Body.properties.hasSharedKey == BOOLEAN
    input.Body.properties.hasSshKey == BOOLEAN
    input.Body.properties.hasSshPassword == BOOLEAN
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.username == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

LocalUsers_Delete

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

LocalUsers_Get

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

LocalUsers_List

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

LocalUsers_ListKeys

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

LocalUsers_RegeneratePassword

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

ManagementPolicies_CreateOrUpdate

enum_ManagementPolicyName := [ "default" ]
enum_ManagementPolicyRuleType := [ "Lifecycle" ]

valid {
    input.Body.properties.policy.rules[_].enabled == BOOLEAN
    input.Body.properties.policy.rules[_].name == STRING
    input.Body.properties.policy.rules[_].type == enum_ManagementPolicyRuleType[_]
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToCool.daysAfterModificationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToCool.daysAfterLastAccessTimeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToCool.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToCool.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToArchive.daysAfterModificationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToArchive.daysAfterLastAccessTimeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToArchive.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToArchive.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToCold.daysAfterModificationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToCold.daysAfterLastAccessTimeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToCold.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToCold.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToHot.daysAfterModificationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToHot.daysAfterLastAccessTimeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToHot.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.tierToHot.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.delete.daysAfterModificationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.delete.daysAfterLastAccessTimeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.delete.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.delete.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.baseBlob.enableAutoTierToHotFromCool == BOOLEAN
    input.Body.properties.policy.rules[_].definition.actions.snapshot.tierToCool.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.snapshot.tierToCool.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.snapshot.tierToArchive.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.snapshot.tierToArchive.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.snapshot.tierToCold.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.snapshot.tierToCold.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.snapshot.tierToHot.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.snapshot.tierToHot.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.snapshot.delete.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.snapshot.delete.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.version.tierToCool.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.version.tierToCool.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.version.tierToArchive.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.version.tierToArchive.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.version.tierToCold.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.version.tierToCold.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.version.tierToHot.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.version.tierToHot.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.version.delete.daysAfterCreationGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.actions.version.delete.daysAfterLastTierChangeGreaterThan == NUMBER
    input.Body.properties.policy.rules[_].definition.filters.prefixMatch[_] == STRING
    input.Body.properties.policy.rules[_].definition.filters.blobTypes[_] == STRING
    input.Body.properties.policy.rules[_].definition.filters.blobIndexMatch[_].name == STRING
    input.Body.properties.policy.rules[_].definition.filters.blobIndexMatch[_].op == STRING
    input.Body.properties.policy.rules[_].definition.filters.blobIndexMatch[_].value == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.managementPolicyName == enum_ManagementPolicyName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ManagementPolicies_Delete

enum_ManagementPolicyName := [ "default" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.managementPolicyName == enum_ManagementPolicyName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ManagementPolicies_Get

enum_ManagementPolicyName := [ "default" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.managementPolicyName == enum_ManagementPolicyName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

NetworkSecurityPerimeterConfigurations_Get

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

NetworkSecurityPerimeterConfigurations_List

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

NetworkSecurityPerimeterConfigurations_Reconcile

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

ObjectReplicationPolicies_CreateOrUpdate

valid {
    input.Body.properties.sourceAccount == STRING
    input.Body.properties.destinationAccount == STRING
    input.Body.properties.rules[_].ruleId == STRING
    input.Body.properties.rules[_].sourceContainer == STRING
    input.Body.properties.rules[_].destinationContainer == STRING
    input.Body.properties.rules[_].filters.prefixMatch[_] == STRING
    input.Body.properties.rules[_].filters.minCreationTime == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.objectReplicationPolicyId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ObjectReplicationPolicies_Delete

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

ObjectReplicationPolicies_Get

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

ObjectReplicationPolicies_List

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

Operations_List

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

PrivateEndpointConnections_Delete

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

PrivateEndpointConnections_List

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

PrivateEndpointConnections_Put

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

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

PrivateLinkResources_ListByStorageAccount

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

QueueServices_GetServiceProperties

enum_QueueServiceName := [ "default" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.queueServiceName == enum_QueueServiceName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

QueueServices_List

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

QueueServices_SetServiceProperties

enum_CorsRuleAllowedMethods := [ "DELETE", "GET", "HEAD", "MERGE", "POST", "OPTIONS", "PUT", "PATCH", "CONNECT", "TRACE" ]
enum_QueueServiceName := [ "default" ]

valid {
    input.Body.properties.cors.corsRules[_].allowedOrigins[_] == STRING
    input.Body.properties.cors.corsRules[_].allowedMethods[_] == enum_CorsRuleAllowedMethods[_]
    input.Body.properties.cors.corsRules[_].maxAgeInSeconds == INTEGER
    input.Body.properties.cors.corsRules[_].exposedHeaders[_] == STRING
    input.Body.properties.cors.corsRules[_].allowedHeaders[_] == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.queueServiceName == enum_QueueServiceName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Queue_Create

valid {
    input.Body.properties.metadata.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.queueName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Queue_Delete

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

Queue_Get

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

Queue_List

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$maxpagesize == STRING
    input.Qs.$filter == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Queue_Update

valid {
    input.Body.properties.metadata.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.queueName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Skus_List

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

StorageAccounts_AbortHierarchicalNamespaceMigration

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

StorageAccounts_CheckNameAvailability

enum_StorageAccountCheckNameAvailabilityParametersType := [ "Microsoft.Storage/storageAccounts" ]

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

StorageAccounts_Create

enum_AccountImmutabilityPolicyPropertiesState := [ "Unlocked", "Locked", "Disabled" ]
enum_ActiveDirectoryPropertiesAccountType := [ "User", "Computer" ]
enum_AzureFilesIdentityBasedAuthenticationDefaultSharePermission := [ "None", "StorageFileDataSmbShareReader", "StorageFileDataSmbShareContributor", "StorageFileDataSmbShareElevatedContributor" ]
enum_AzureFilesIdentityBasedAuthenticationDirectoryServiceOptions := [ "None", "AADDS", "AD", "AADKERB" ]
enum_EncryptionKeySource := [ "Microsoft.Storage", "Microsoft.Keyvault" ]
enum_EncryptionServiceKeyType := [ "Service", "Account" ]
enum_ExtendedLocationType := [ "EdgeZone" ]
enum_IPRuleAction := [ "Allow" ]
enum_IdentityType := [ "None", "SystemAssigned", "UserAssigned", "SystemAssigned,UserAssigned" ]
enum_NetworkRuleSetBypass := [ "None", "Logging", "Metrics", "AzureServices" ]
enum_NetworkRuleSetDefaultAction := [ "Allow", "Deny" ]
enum_PublicNetworkAccess := [ "Enabled", "Disabled", "SecuredByPerimeter" ]
enum_RoutingPreferenceRoutingChoice := [ "MicrosoftRouting", "InternetRouting" ]
enum_SasPolicyExpirationAction := [ "Log" ]
enum_SkuName := [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ]
enum_StorageAccountCreateParametersKind := [ "Storage", "StorageV2", "BlobStorage", "FileStorage", "BlockBlobStorage" ]
enum_StorageAccountPropertiesCreateParametersAccessTier := [ "Hot", "Cool", "Premium" ]
enum_StorageAccountPropertiesCreateParametersAllowedCopyScope := [ "PrivateLink", "AAD" ]
enum_StorageAccountPropertiesCreateParametersDnsEndpointType := [ "Standard", "AzureDnsZone" ]
enum_StorageAccountPropertiesCreateParametersLargeFileSharesState := [ "Disabled", "Enabled" ]
enum_StorageAccountPropertiesCreateParametersMinimumTlsVersion := [ "TLS1_0", "TLS1_1", "TLS1_2" ]
enum_VirtualNetworkRuleAction := [ "Allow" ]
enum_VirtualNetworkRuleState := [ "Provisioning", "Deprovisioning", "Succeeded", "Failed", "NetworkSourceDeleted" ]

valid {
    input.Body.sku.name == enum_SkuName[_]
    input.Body.kind == enum_StorageAccountCreateParametersKind[_]
    input.Body.location == STRING
    input.Body.extendedLocation.name == STRING
    input.Body.extendedLocation.type == enum_ExtendedLocationType[_]
    input.Body.tags.STRING == STRING
    input.Body.identity.type == enum_IdentityType[_]
    input.Body.identity.userAssignedIdentities.STRING == {}
    input.Body.properties.allowedCopyScope == enum_StorageAccountPropertiesCreateParametersAllowedCopyScope[_]
    input.Body.properties.publicNetworkAccess == enum_PublicNetworkAccess[_]
    input.Body.properties.sasPolicy.sasExpirationPeriod == STRING
    input.Body.properties.sasPolicy.expirationAction == enum_SasPolicyExpirationAction[_]
    input.Body.properties.keyPolicy.keyExpirationPeriodInDays == INTEGER
    input.Body.properties.customDomain.name == STRING
    input.Body.properties.customDomain.useSubDomainName == BOOLEAN
    input.Body.properties.encryption.services.blob.enabled == BOOLEAN
    input.Body.properties.encryption.services.blob.keyType == enum_EncryptionServiceKeyType[_]
    input.Body.properties.encryption.services.file.enabled == BOOLEAN
    input.Body.properties.encryption.services.file.keyType == enum_EncryptionServiceKeyType[_]
    input.Body.properties.encryption.services.table.enabled == BOOLEAN
    input.Body.properties.encryption.services.table.keyType == enum_EncryptionServiceKeyType[_]
    input.Body.properties.encryption.services.queue.enabled == BOOLEAN
    input.Body.properties.encryption.services.queue.keyType == enum_EncryptionServiceKeyType[_]
    input.Body.properties.encryption.keySource == enum_EncryptionKeySource[_]
    input.Body.properties.encryption.requireInfrastructureEncryption == BOOLEAN
    input.Body.properties.encryption.keyvaultproperties.keyname == STRING
    input.Body.properties.encryption.keyvaultproperties.keyversion == STRING
    input.Body.properties.encryption.keyvaultproperties.keyvaulturi == STRING
    input.Body.properties.encryption.identity.userAssignedIdentity == STRING
    input.Body.properties.encryption.identity.federatedIdentityClientId == STRING
    input.Body.properties.networkAcls.bypass == enum_NetworkRuleSetBypass[_]
    input.Body.properties.networkAcls.resourceAccessRules[_].tenantId == STRING
    input.Body.properties.networkAcls.resourceAccessRules[_].resourceId == STRING
    input.Body.properties.networkAcls.virtualNetworkRules[_].id == STRING
    input.Body.properties.networkAcls.virtualNetworkRules[_].action == enum_VirtualNetworkRuleAction[_]
    input.Body.properties.networkAcls.virtualNetworkRules[_].state == enum_VirtualNetworkRuleState[_]
    input.Body.properties.networkAcls.ipRules[_].value == STRING
    input.Body.properties.networkAcls.ipRules[_].action == enum_IPRuleAction[_]
    input.Body.properties.networkAcls.defaultAction == enum_NetworkRuleSetDefaultAction[_]
    input.Body.properties.accessTier == enum_StorageAccountPropertiesCreateParametersAccessTier[_]
    input.Body.properties.azureFilesIdentityBasedAuthentication.directoryServiceOptions == enum_AzureFilesIdentityBasedAuthenticationDirectoryServiceOptions[_]
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.domainName == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.netBiosDomainName == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.forestName == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.domainGuid == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.domainSid == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.azureStorageSid == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.samAccountName == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.accountType == enum_ActiveDirectoryPropertiesAccountType[_]
    input.Body.properties.azureFilesIdentityBasedAuthentication.defaultSharePermission == enum_AzureFilesIdentityBasedAuthenticationDefaultSharePermission[_]
    input.Body.properties.supportsHttpsTrafficOnly == BOOLEAN
    input.Body.properties.isSftpEnabled == BOOLEAN
    input.Body.properties.isLocalUserEnabled == BOOLEAN
    input.Body.properties.isHnsEnabled == BOOLEAN
    input.Body.properties.largeFileSharesState == enum_StorageAccountPropertiesCreateParametersLargeFileSharesState[_]
    input.Body.properties.routingPreference.routingChoice == enum_RoutingPreferenceRoutingChoice[_]
    input.Body.properties.routingPreference.publishMicrosoftEndpoints == BOOLEAN
    input.Body.properties.routingPreference.publishInternetEndpoints == BOOLEAN
    input.Body.properties.allowBlobPublicAccess == BOOLEAN
    input.Body.properties.minimumTlsVersion == enum_StorageAccountPropertiesCreateParametersMinimumTlsVersion[_]
    input.Body.properties.allowSharedKeyAccess == BOOLEAN
    input.Body.properties.isNfsV3Enabled == BOOLEAN
    input.Body.properties.allowCrossTenantReplication == BOOLEAN
    input.Body.properties.defaultToOAuthAuthentication == BOOLEAN
    input.Body.properties.immutableStorageWithVersioning.enabled == BOOLEAN
    input.Body.properties.immutableStorageWithVersioning.immutabilityPolicy.immutabilityPeriodSinceCreationInDays == INTEGER
    input.Body.properties.immutableStorageWithVersioning.immutabilityPolicy.state == enum_AccountImmutabilityPolicyPropertiesState[_]
    input.Body.properties.immutableStorageWithVersioning.immutabilityPolicy.allowProtectedAppendWrites == BOOLEAN
    input.Body.properties.dnsEndpointType == enum_StorageAccountPropertiesCreateParametersDnsEndpointType[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

StorageAccounts_CustomerInitiatedMigration

enum_SkuName := [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ]

valid {
    input.Body.name == STRING
    input.Body.type == STRING
    input.Body.properties.targetSkuName == enum_SkuName[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

StorageAccounts_Delete

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

StorageAccounts_Failover

enum_FailoverTypeParameter := [ "Planned" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.failoverType == enum_FailoverTypeParameter[_]
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

StorageAccounts_GetCustomerInitiatedMigration

enum_MigrationName := [ "default" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.migrationName == enum_MigrationName[_]
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

StorageAccounts_GetProperties

enum_$expandParameter := [ "geoReplicationStats", "blobRestoreStatus" ]

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

StorageAccounts_HierarchicalNamespaceMigration

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

StorageAccounts_List

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

StorageAccounts_ListAccountSAS

enum_AccountSasParametersSignedPermission := [ "r", "d", "w", "l", "a", "c", "u", "p" ]
enum_AccountSasParametersSignedProtocol := [ "https,http", "https" ]
enum_AccountSasParametersSignedResourceTypes := [ "s", "c", "o" ]
enum_AccountSasParametersSignedServices := [ "b", "q", "t", "f" ]

valid {
    input.Body.signedServices == enum_AccountSasParametersSignedServices[_]
    input.Body.signedResourceTypes == enum_AccountSasParametersSignedResourceTypes[_]
    input.Body.signedPermission == enum_AccountSasParametersSignedPermission[_]
    input.Body.signedIp == STRING
    input.Body.signedProtocol == enum_AccountSasParametersSignedProtocol[_]
    input.Body.signedStart == STRING
    input.Body.signedExpiry == STRING
    input.Body.keyToSign == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

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

StorageAccounts_ListKeys

enum_$expandParameter := [ "kerb" ]

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

StorageAccounts_ListServiceSAS

enum_ServiceSasParametersSignedPermission := [ "r", "d", "w", "l", "a", "c", "u", "p" ]
enum_ServiceSasParametersSignedProtocol := [ "https,http", "https" ]
enum_ServiceSasParametersSignedResource := [ "b", "c", "f", "s" ]

valid {
    input.Body.canonicalizedResource == STRING
    input.Body.signedResource == enum_ServiceSasParametersSignedResource[_]
    input.Body.signedPermission == enum_ServiceSasParametersSignedPermission[_]
    input.Body.signedIp == STRING
    input.Body.signedProtocol == enum_ServiceSasParametersSignedProtocol[_]
    input.Body.signedStart == STRING
    input.Body.signedExpiry == STRING
    input.Body.signedIdentifier == STRING
    input.Body.startPk == STRING
    input.Body.endPk == STRING
    input.Body.startRk == STRING
    input.Body.endRk == STRING
    input.Body.keyToSign == STRING
    input.Body.rscc == STRING
    input.Body.rscd == STRING
    input.Body.rsce == STRING
    input.Body.rscl == STRING
    input.Body.rsct == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

StorageAccounts_RegenerateKey

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

StorageAccounts_RestoreBlobRanges

valid {
    input.Body.timeToRestore == STRING
    input.Body.blobRanges[_].startRange == STRING
    input.Body.blobRanges[_].endRange == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

StorageAccounts_RevokeUserDelegationKeys

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

StorageAccounts_Update

enum_AccountImmutabilityPolicyPropertiesState := [ "Unlocked", "Locked", "Disabled" ]
enum_ActiveDirectoryPropertiesAccountType := [ "User", "Computer" ]
enum_AzureFilesIdentityBasedAuthenticationDefaultSharePermission := [ "None", "StorageFileDataSmbShareReader", "StorageFileDataSmbShareContributor", "StorageFileDataSmbShareElevatedContributor" ]
enum_AzureFilesIdentityBasedAuthenticationDirectoryServiceOptions := [ "None", "AADDS", "AD", "AADKERB" ]
enum_EncryptionKeySource := [ "Microsoft.Storage", "Microsoft.Keyvault" ]
enum_EncryptionServiceKeyType := [ "Service", "Account" ]
enum_IPRuleAction := [ "Allow" ]
enum_IdentityType := [ "None", "SystemAssigned", "UserAssigned", "SystemAssigned,UserAssigned" ]
enum_NetworkRuleSetBypass := [ "None", "Logging", "Metrics", "AzureServices" ]
enum_NetworkRuleSetDefaultAction := [ "Allow", "Deny" ]
enum_PublicNetworkAccess := [ "Enabled", "Disabled", "SecuredByPerimeter" ]
enum_RoutingPreferenceRoutingChoice := [ "MicrosoftRouting", "InternetRouting" ]
enum_SasPolicyExpirationAction := [ "Log" ]
enum_SkuName := [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ]
enum_StorageAccountPropertiesUpdateParametersAccessTier := [ "Hot", "Cool", "Premium" ]
enum_StorageAccountPropertiesUpdateParametersAllowedCopyScope := [ "PrivateLink", "AAD" ]
enum_StorageAccountPropertiesUpdateParametersDnsEndpointType := [ "Standard", "AzureDnsZone" ]
enum_StorageAccountPropertiesUpdateParametersLargeFileSharesState := [ "Disabled", "Enabled" ]
enum_StorageAccountPropertiesUpdateParametersMinimumTlsVersion := [ "TLS1_0", "TLS1_1", "TLS1_2" ]
enum_StorageAccountUpdateParametersKind := [ "Storage", "StorageV2", "BlobStorage", "FileStorage", "BlockBlobStorage" ]
enum_VirtualNetworkRuleAction := [ "Allow" ]
enum_VirtualNetworkRuleState := [ "Provisioning", "Deprovisioning", "Succeeded", "Failed", "NetworkSourceDeleted" ]

valid {
    input.Body.sku.name == enum_SkuName[_]
    input.Body.tags.STRING == STRING
    input.Body.identity.type == enum_IdentityType[_]
    input.Body.identity.userAssignedIdentities.STRING == {}
    input.Body.properties.customDomain.name == STRING
    input.Body.properties.customDomain.useSubDomainName == BOOLEAN
    input.Body.properties.encryption.services.blob.enabled == BOOLEAN
    input.Body.properties.encryption.services.blob.keyType == enum_EncryptionServiceKeyType[_]
    input.Body.properties.encryption.services.file.enabled == BOOLEAN
    input.Body.properties.encryption.services.file.keyType == enum_EncryptionServiceKeyType[_]
    input.Body.properties.encryption.services.table.enabled == BOOLEAN
    input.Body.properties.encryption.services.table.keyType == enum_EncryptionServiceKeyType[_]
    input.Body.properties.encryption.services.queue.enabled == BOOLEAN
    input.Body.properties.encryption.services.queue.keyType == enum_EncryptionServiceKeyType[_]
    input.Body.properties.encryption.keySource == enum_EncryptionKeySource[_]
    input.Body.properties.encryption.requireInfrastructureEncryption == BOOLEAN
    input.Body.properties.encryption.keyvaultproperties.keyname == STRING
    input.Body.properties.encryption.keyvaultproperties.keyversion == STRING
    input.Body.properties.encryption.keyvaultproperties.keyvaulturi == STRING
    input.Body.properties.encryption.identity.userAssignedIdentity == STRING
    input.Body.properties.encryption.identity.federatedIdentityClientId == STRING
    input.Body.properties.sasPolicy.sasExpirationPeriod == STRING
    input.Body.properties.sasPolicy.expirationAction == enum_SasPolicyExpirationAction[_]
    input.Body.properties.keyPolicy.keyExpirationPeriodInDays == INTEGER
    input.Body.properties.accessTier == enum_StorageAccountPropertiesUpdateParametersAccessTier[_]
    input.Body.properties.azureFilesIdentityBasedAuthentication.directoryServiceOptions == enum_AzureFilesIdentityBasedAuthenticationDirectoryServiceOptions[_]
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.domainName == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.netBiosDomainName == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.forestName == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.domainGuid == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.domainSid == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.azureStorageSid == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.samAccountName == STRING
    input.Body.properties.azureFilesIdentityBasedAuthentication.activeDirectoryProperties.accountType == enum_ActiveDirectoryPropertiesAccountType[_]
    input.Body.properties.azureFilesIdentityBasedAuthentication.defaultSharePermission == enum_AzureFilesIdentityBasedAuthenticationDefaultSharePermission[_]
    input.Body.properties.supportsHttpsTrafficOnly == BOOLEAN
    input.Body.properties.isSftpEnabled == BOOLEAN
    input.Body.properties.isLocalUserEnabled == BOOLEAN
    input.Body.properties.networkAcls.bypass == enum_NetworkRuleSetBypass[_]
    input.Body.properties.networkAcls.resourceAccessRules[_].tenantId == STRING
    input.Body.properties.networkAcls.resourceAccessRules[_].resourceId == STRING
    input.Body.properties.networkAcls.virtualNetworkRules[_].id == STRING
    input.Body.properties.networkAcls.virtualNetworkRules[_].action == enum_VirtualNetworkRuleAction[_]
    input.Body.properties.networkAcls.virtualNetworkRules[_].state == enum_VirtualNetworkRuleState[_]
    input.Body.properties.networkAcls.ipRules[_].value == STRING
    input.Body.properties.networkAcls.ipRules[_].action == enum_IPRuleAction[_]
    input.Body.properties.networkAcls.defaultAction == enum_NetworkRuleSetDefaultAction[_]
    input.Body.properties.largeFileSharesState == enum_StorageAccountPropertiesUpdateParametersLargeFileSharesState[_]
    input.Body.properties.routingPreference.routingChoice == enum_RoutingPreferenceRoutingChoice[_]
    input.Body.properties.routingPreference.publishMicrosoftEndpoints == BOOLEAN
    input.Body.properties.routingPreference.publishInternetEndpoints == BOOLEAN
    input.Body.properties.allowBlobPublicAccess == BOOLEAN
    input.Body.properties.minimumTlsVersion == enum_StorageAccountPropertiesUpdateParametersMinimumTlsVersion[_]
    input.Body.properties.allowSharedKeyAccess == BOOLEAN
    input.Body.properties.allowCrossTenantReplication == BOOLEAN
    input.Body.properties.defaultToOAuthAuthentication == BOOLEAN
    input.Body.properties.publicNetworkAccess == enum_PublicNetworkAccess[_]
    input.Body.properties.immutableStorageWithVersioning.enabled == BOOLEAN
    input.Body.properties.immutableStorageWithVersioning.immutabilityPolicy.immutabilityPeriodSinceCreationInDays == INTEGER
    input.Body.properties.immutableStorageWithVersioning.immutabilityPolicy.state == enum_AccountImmutabilityPolicyPropertiesState[_]
    input.Body.properties.immutableStorageWithVersioning.immutabilityPolicy.allowProtectedAppendWrites == BOOLEAN
    input.Body.properties.allowedCopyScope == enum_StorageAccountPropertiesUpdateParametersAllowedCopyScope[_]
    input.Body.properties.dnsEndpointType == enum_StorageAccountPropertiesUpdateParametersDnsEndpointType[_]
    input.Body.kind == enum_StorageAccountUpdateParametersKind[_]
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

TableServices_GetServiceProperties

enum_TableServiceName := [ "default" ]

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.tableServiceName == enum_TableServiceName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

TableServices_List

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

TableServices_SetServiceProperties

enum_CorsRuleAllowedMethods := [ "DELETE", "GET", "HEAD", "MERGE", "POST", "OPTIONS", "PUT", "PATCH", "CONNECT", "TRACE" ]
enum_TableServiceName := [ "default" ]

valid {
    input.Body.properties.cors.corsRules[_].allowedOrigins[_] == STRING
    input.Body.properties.cors.corsRules[_].allowedMethods[_] == enum_CorsRuleAllowedMethods[_]
    input.Body.properties.cors.corsRules[_].maxAgeInSeconds == INTEGER
    input.Body.properties.cors.corsRules[_].exposedHeaders[_] == STRING
    input.Body.properties.cors.corsRules[_].allowedHeaders[_] == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.tableServiceName == enum_TableServiceName[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Table_Create

valid {
    input.Body.properties.signedIdentifiers[_].id == STRING
    input.Body.properties.signedIdentifiers[_].accessPolicy.startTime == STRING
    input.Body.properties.signedIdentifiers[_].accessPolicy.expiryTime == STRING
    input.Body.properties.signedIdentifiers[_].accessPolicy.permission == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.tableName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Table_Delete

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

Table_Get

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

Table_List

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

Table_Update

valid {
    input.Body.properties.signedIdentifiers[_].id == STRING
    input.Body.properties.signedIdentifiers[_].accessPolicy.startTime == STRING
    input.Body.properties.signedIdentifiers[_].accessPolicy.expiryTime == STRING
    input.Body.properties.signedIdentifiers[_].accessPolicy.permission == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.tableName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Usages_List

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

Usages_ListByLocation

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