import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface DatabaseProperties { autoPauseDelay?: Expressionable; catalogCollation?: Expressionable<('DATABASE_DEFAULT' | 'SQL_Latin1_General_CP1_CI_AS')>; collation?: Expressionable; createMode?: Expressionable<('Default' | 'Copy' | 'Secondary' | 'PointInTimeRestore' | 'Restore' | 'Recovery' | 'RestoreExternalBackup' | 'RestoreExternalBackupSecondary' | 'RestoreLongTermRetentionBackup' | 'OnlineSecondary')>; elasticPoolId?: Expressionable; licenseType?: Expressionable<('LicenseIncluded' | 'BasePrice')>; longTermRetentionBackupResourceId?: Expressionable; maxSizeBytes?: Expressionable; minCapacity?: Expressionable; readReplicaCount?: Expressionable; readScale?: Expressionable<('Enabled' | 'Disabled')>; recoverableDatabaseId?: Expressionable; recoveryServicesRecoveryPointId?: Expressionable; restorableDroppedDatabaseId?: Expressionable; restorePointInTime?: Expressionable; sampleName?: Expressionable<('AdventureWorksLT' | 'WideWorldImportersStd' | 'WideWorldImportersFull')>; sourceDatabaseDeletionDate?: Expressionable; sourceDatabaseId?: Expressionable; storageAccountType?: Expressionable<('GRS' | 'LRS' | 'ZRS')>; zoneRedundant?: Expressionable; } export interface ManagedDatabaseProperties { catalogCollation?: Expressionable<('DATABASE_DEFAULT' | 'SQL_Latin1_General_CP1_CI_AS')>; collation?: Expressionable; createMode?: Expressionable<('Default' | 'RestoreExternalBackup' | 'PointInTimeRestore' | 'Recovery')>; recoverableDatabaseId?: Expressionable; restorableDroppedDatabaseId?: Expressionable; restorePointInTime?: Expressionable; sourceDatabaseId?: Expressionable; storageContainerSasToken?: Expressionable; storageContainerUri?: Expressionable; } export interface ResourceIdentity { type?: Expressionable<('SystemAssigned')>; } export interface ServerProperties { administratorLogin?: Expressionable; administratorLoginPassword?: Expressionable; version?: Expressionable; } export interface Sku { capacity?: Expressionable; family?: Expressionable; name: Expressionable; size?: Expressionable; tier?: Expressionable; } export interface WorkloadClassifierProperties { context?: Expressionable; endTime?: Expressionable; importance?: Expressionable; label?: Expressionable; memberName: Expressionable; startTime?: Expressionable; } export interface WorkloadGroupProperties { importance?: Expressionable; maxResourcePercent: Expressionable; maxResourcePercentPerRequest?: Expressionable; minResourcePercent: Expressionable; minResourcePercentPerRequest: Expressionable; queryExecutionTimeout?: Expressionable; } export declare namespace managedInstances { namespace databases { interface AdditionalProps { tags?: Expressionable; } type DatabasesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ManagedDatabaseProperties, location: Expressionable, tags?: Expressionable): DatabasesResource; } } export declare namespace servers { interface AdditionalProps { identity?: Expressionable; tags?: Expressionable; } type ServersResource = ResourceDefinition; function create(name: Expressionable, properties: ServerProperties, location: Expressionable, identity?: Expressionable, tags?: Expressionable): ServersResource; } export declare namespace servers { namespace databases { interface AdditionalProps { sku?: Expressionable; tags?: Expressionable; } type DatabasesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: DatabaseProperties, location: Expressionable, sku?: Expressionable, tags?: Expressionable): DatabasesResource; } } export declare namespace servers { namespace databases { namespace workloadGroups { type WorkloadGroupsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: WorkloadGroupProperties): WorkloadGroupsResource; } } } export declare namespace servers { namespace databases { namespace workloadGroups { namespace workloadClassifiers { type WorkloadClassifiersResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable, Expressionable], properties: WorkloadClassifierProperties): WorkloadClassifiersResource; } } } }