import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface ConfigurationProperties { source?: Expressionable; value?: Expressionable; } export interface DatabaseProperties { charset?: Expressionable; collation?: Expressionable; } export interface FirewallRuleProperties { endIpAddress: Expressionable; startIpAddress: Expressionable; } export interface SecurityAlertPolicyProperties { disabledAlerts?: Expressionable; emailAccountAdmins?: Expressionable; emailAddresses?: Expressionable; retentionDays?: Expressionable; state: Expressionable<('Enabled' | 'Disabled')>; storageAccountAccessKey?: Expressionable; storageEndpoint?: Expressionable; } export interface ServerAdministratorProperties { administratorType: Expressionable<('ActiveDirectory')>; login: Expressionable; sid: Expressionable; tenantId: Expressionable; } export interface ServerPropertiesForCreate { sslEnforcement?: Expressionable<('Enabled' | 'Disabled')>; storageProfile?: Expressionable; version?: Expressionable<('9.5' | '9.6' | '10' | '10.0' | '10.2' | '11')>; } export interface ServerPropertiesForDefaultCreate { administratorLogin: Expressionable; administratorLoginPassword: Expressionable; createMode: Expressionable<('Default')>; } export interface ServerPropertiesForGeoRestore { createMode: Expressionable<('GeoRestore')>; sourceServerId: Expressionable; } export interface ServerPropertiesForReplica { createMode: Expressionable<('Replica')>; sourceServerId: Expressionable; } export interface ServerPropertiesForRestore { createMode: Expressionable<('PointInTimeRestore')>; restorePointInTime: Expressionable; sourceServerId: Expressionable; } export interface Sku { capacity?: Expressionable; family?: Expressionable; name?: Expressionable; size?: Expressionable; tier?: Expressionable<('Basic' | 'GeneralPurpose' | 'MemoryOptimized')>; } export interface StorageProfile { backupRetentionDays?: Expressionable; geoRedundantBackup?: Expressionable<('Enabled' | 'Disabled')>; storageAutogrow?: Expressionable<('Enabled' | 'Disabled')>; storageMB?: Expressionable; } export interface VirtualNetworkRuleProperties { ignoreMissingVnetServiceEndpoint?: Expressionable; virtualNetworkSubnetId: Expressionable; } export declare namespace servers { interface AdditionalProps { sku?: Expressionable; tags?: Expressionable; } type ServersResource = ResourceDefinition; function create(name: Expressionable, properties: ServerPropertiesForCreate, location: Expressionable, sku?: Expressionable, tags?: Expressionable): ServersResource; } export declare namespace servers { namespace Administrators { type AdministratorsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ServerAdministratorProperties): AdministratorsResource; } } export declare namespace servers { namespace configurations { type ConfigurationsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ConfigurationProperties): ConfigurationsResource; } } export declare namespace servers { namespace databases { type DatabasesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: DatabaseProperties): DatabasesResource; } } export declare namespace servers { namespace firewallRules { type FirewallRulesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: FirewallRuleProperties): FirewallRulesResource; } } export declare namespace servers { namespace securityAlertPolicies { type SecurityAlertPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: SecurityAlertPolicyProperties): SecurityAlertPoliciesResource; } } export declare namespace servers { namespace virtualNetworkRules { type VirtualNetworkRulesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: VirtualNetworkRuleProperties): VirtualNetworkRulesResource; } }