import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface AdditionalFeaturesServerConfigurations { isRServicesEnabled?: Expressionable; } export interface AutoBackupSettings { backupScheduleType?: Expressionable<('Manual' | 'Automated')>; backupSystemDbs?: Expressionable; enable?: Expressionable; enableEncryption?: Expressionable; fullBackupFrequency?: Expressionable<('Daily' | 'Weekly')>; fullBackupStartTime?: Expressionable; fullBackupWindowHours?: Expressionable; logBackupFrequency?: Expressionable; password?: Expressionable; retentionPeriod?: Expressionable; storageAccessKey?: Expressionable; storageAccountUrl?: Expressionable; } export interface AutoPatchingSettings { dayOfWeek?: Expressionable<('Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday')>; enable?: Expressionable; maintenanceWindowDuration?: Expressionable; maintenanceWindowStartingHour?: Expressionable; } export interface AvailabilityGroupListenerProperties { availabilityGroupName?: Expressionable; createDefaultAvailabilityGroupIfNotExist?: Expressionable; loadBalancerConfigurations?: Expressionable; port?: Expressionable; } export interface KeyVaultCredentialSettings { azureKeyVaultUrl?: Expressionable; credentialName?: Expressionable; enable?: Expressionable; servicePrincipalName?: Expressionable; servicePrincipalSecret?: Expressionable; } export interface LoadBalancerConfiguration { loadBalancerResourceId?: Expressionable; privateIpAddress?: Expressionable; probePort?: Expressionable; publicIpAddressResourceId?: Expressionable; sqlVirtualMachineInstances?: Expressionable; } export interface PrivateIPAddress { ipAddress?: Expressionable; subnetResourceId?: Expressionable; } export interface ResourceIdentity { type?: Expressionable<('SystemAssigned')>; } export interface ServerConfigurationsManagementSettings { additionalFeaturesServerConfigurations?: Expressionable; sqlConnectivityUpdateSettings?: Expressionable; sqlStorageUpdateSettings?: Expressionable; sqlWorkloadTypeUpdateSettings?: Expressionable; } export interface SqlConnectivityUpdateSettings { connectivityType?: Expressionable<('LOCAL' | 'PRIVATE' | 'PUBLIC')>; port?: Expressionable; sqlAuthUpdatePassword?: Expressionable; sqlAuthUpdateUserName?: Expressionable; } export interface SQLStorageSettings { defaultFilePath?: Expressionable; luns?: Expressionable; } export interface SqlStorageUpdateSettings { diskConfigurationType?: Expressionable<('NEW' | 'EXTEND' | 'ADD')>; diskCount?: Expressionable; startingDeviceId?: Expressionable; } export interface SqlVirtualMachineGroupProperties { sqlImageOffer?: Expressionable; sqlImageSku?: Expressionable<('Developer' | 'Enterprise')>; wsfcDomainProfile?: Expressionable; } export interface SqlVirtualMachineProperties { autoBackupSettings?: Expressionable; autoPatchingSettings?: Expressionable; keyVaultCredentialSettings?: Expressionable; serverConfigurationsManagementSettings?: Expressionable; sqlImageOffer?: Expressionable; sqlImageSku?: Expressionable<('Developer' | 'Express' | 'Standard' | 'Enterprise' | 'Web')>; sqlManagement?: Expressionable<('Full' | 'LightWeight' | 'NoAgent')>; sqlServerLicenseType?: Expressionable<('PAYG' | 'AHUB' | 'DR')>; sqlVirtualMachineGroupResourceId?: Expressionable; storageConfigurationSettings?: Expressionable; virtualMachineResourceId?: Expressionable; wsfcDomainCredentials?: Expressionable; } export interface SqlWorkloadTypeUpdateSettings { sqlWorkloadType?: Expressionable<('GENERAL' | 'OLTP' | 'DW')>; } export interface StorageConfigurationSettings { diskConfigurationType?: Expressionable<('NEW' | 'EXTEND' | 'ADD')>; sqlDataSettings?: Expressionable; sqlLogSettings?: Expressionable; sqlTempDbSettings?: Expressionable; storageWorkloadType?: Expressionable<('GENERAL' | 'OLTP' | 'DW')>; } export interface WsfcDomainCredentials { clusterBootstrapAccountPassword?: Expressionable; clusterOperatorAccountPassword?: Expressionable; sqlServiceAccountPassword?: Expressionable; } export interface WsfcDomainProfile { clusterBootstrapAccount?: Expressionable; clusterOperatorAccount?: Expressionable; domainFqdn?: Expressionable; fileShareWitnessPath?: Expressionable; ouPath?: Expressionable; sqlServiceAccount?: Expressionable; storageAccountPrimaryKey?: Expressionable; storageAccountUrl?: Expressionable; } export declare namespace sqlVirtualMachineGroups { interface AdditionalProps { tags?: Expressionable; } type SqlVirtualMachineGroupsResource = ResourceDefinition; function create(name: Expressionable, properties: SqlVirtualMachineGroupProperties, location: Expressionable, tags?: Expressionable): SqlVirtualMachineGroupsResource; } export declare namespace sqlVirtualMachineGroups { namespace availabilityGroupListeners { type AvailabilityGroupListenersResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: AvailabilityGroupListenerProperties): AvailabilityGroupListenersResource; } } export declare namespace sqlVirtualMachines { interface AdditionalProps { identity?: Expressionable; tags?: Expressionable; } type SqlVirtualMachinesResource = ResourceDefinition; function create(name: Expressionable, properties: SqlVirtualMachineProperties, location: Expressionable, identity?: Expressionable, tags?: Expressionable): SqlVirtualMachinesResource; }