import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface AdvisorPropertiesModel { autoExecuteValue: Expressionable<('Enabled' | 'Disabled' | 'Default')>; } export interface BackupLongTermRetentionPolicyProperties { recoveryServicesBackupPolicyResourceId: Expressionable; state: Expressionable<('Disabled' | 'Enabled')>; } export interface BackupLongTermRetentionVaultProperties { recoveryServicesVaultResourceId: Expressionable; } export interface DatabaseConnectionPolicyProperties { proxyDnsName?: Expressionable; proxyPort?: Expressionable; redirectionState?: Expressionable; securityEnabledAccess?: Expressionable; state?: Expressionable; useServerDefault?: Expressionable; visibility?: Expressionable; } export interface DatabaseProperties { collation?: Expressionable; createMode?: Expressionable<('Copy' | 'Default' | 'NonReadableSecondary' | 'OnlineSecondary' | 'PointInTimeRestore' | 'Recovery' | 'Restore' | 'RestoreLongTermRetentionBackup' | 'Secondary' | 'RestoreExternalBackup' | 'RestoreExternalBackupSecondary')>; edition?: Expressionable<('Web' | 'Business' | 'Basic' | 'Standard' | 'Premium' | 'PremiumRS' | 'Free' | 'Stretch' | 'DataWarehouse' | 'System' | 'System2' | 'GeneralPurpose' | 'BusinessCritical' | 'Hyperscale')>; elasticPoolName?: Expressionable; maxSizeBytes?: Expressionable; readScale?: Expressionable<('Enabled' | 'Disabled')>; recoveryServicesRecoveryPointResourceId?: Expressionable; requestedServiceObjectiveId?: Expressionable; requestedServiceObjectiveName?: Expressionable<('System' | 'System0' | 'System1' | 'System2' | 'System3' | 'System4' | 'System2L' | 'System3L' | 'System4L' | 'Free' | 'Basic' | 'S0' | 'S1' | 'S2' | 'S3' | 'S4' | 'S6' | 'S7' | 'S9' | 'S12' | 'P1' | 'P2' | 'P3' | 'P4' | 'P6' | 'P11' | 'P15' | 'PRS1' | 'PRS2' | 'PRS4' | 'PRS6' | 'DW100' | 'DW200' | 'DW300' | 'DW400' | 'DW500' | 'DW600' | 'DW1000' | 'DW1200' | 'DW1000c' | 'DW1500' | 'DW1500c' | 'DW2000' | 'DW2000c' | 'DW3000' | 'DW2500c' | 'DW3000c' | 'DW6000' | 'DW5000c' | 'DW6000c' | 'DW7500c' | 'DW10000c' | 'DW15000c' | 'DW30000c' | 'DS100' | 'DS200' | 'DS300' | 'DS400' | 'DS500' | 'DS600' | 'DS1000' | 'DS1200' | 'DS1500' | 'DS2000' | 'ElasticPool')>; restorePointInTime?: Expressionable; sampleName?: Expressionable<('AdventureWorksLT' | 'WideWorldImportersStd' | 'WideWorldImportersFull')>; sourceDatabaseDeletionDate?: Expressionable; sourceDatabaseId?: Expressionable; zoneRedundant?: Expressionable; } export interface DatabaseSecurityAlertPolicyProperties { disabledAlerts?: Expressionable; emailAccountAdmins?: Expressionable<('Enabled' | 'Disabled')>; emailAddresses?: Expressionable; retentionDays?: Expressionable; state: Expressionable<('New' | 'Enabled' | 'Disabled')>; storageAccountAccessKey?: Expressionable; storageEndpoint?: Expressionable; useServerDefault?: Expressionable<('Enabled' | 'Disabled')>; } export interface DatabaseTableAuditingPolicyProperties { auditingState?: Expressionable; auditLogsTableName?: Expressionable; eventTypesToAudit?: Expressionable; fullAuditLogsTableName?: Expressionable; retentionDays?: Expressionable; storageAccountKey?: Expressionable; storageAccountName?: Expressionable; storageAccountResourceGroupName?: Expressionable; storageAccountSecondaryKey?: Expressionable; storageAccountSubscriptionId?: Expressionable; storageTableEndpoint?: Expressionable; useServerDefault?: Expressionable; } export interface DataMaskingPolicyProperties { dataMaskingState: Expressionable<('Disabled' | 'Enabled')>; exemptPrincipals?: Expressionable; } export interface DataMaskingRuleProperties { aliasName?: Expressionable; columnName: Expressionable; maskingFunction: Expressionable<('Default' | 'CCN' | 'Email' | 'Number' | 'SSN' | 'Text')>; numberFrom?: Expressionable; numberTo?: Expressionable; prefixSize?: Expressionable; replacementString?: Expressionable; ruleState?: Expressionable<('Disabled' | 'Enabled')>; schemaName: Expressionable; suffixSize?: Expressionable; tableName: Expressionable; } export interface ElasticPoolPropertiesModel { databaseDtuMax?: Expressionable; databaseDtuMin?: Expressionable; dtu?: Expressionable; edition?: Expressionable<('Basic' | 'Standard' | 'Premium' | 'GeneralPurpose' | 'BusinessCritical')>; storageMB?: Expressionable; zoneRedundant?: Expressionable; } export interface FirewallRuleProperties { endIpAddress: Expressionable; startIpAddress: Expressionable; } export interface GeoBackupPolicyProperties { state: Expressionable<('Disabled' | 'Enabled')>; } export interface ImportExtensionProperties { administratorLogin: Expressionable; administratorLoginPassword: Expressionable; authenticationType?: Expressionable<('SQL' | 'ADPassword')>; operationMode: Expressionable<('Import')>; storageKey: Expressionable; storageKeyType: Expressionable<('StorageAccessKey' | 'SharedAccessKey')>; storageUri: Expressionable; } export interface ServerAdministratorProperties { administratorType: Expressionable<('ActiveDirectory')>; login: Expressionable; sid: Expressionable; tenantId: Expressionable; } export interface ServerCommunicationLinkProperties { partnerServer: Expressionable; } export interface ServerConnectionPolicyProperties { connectionType: Expressionable<('Default' | 'Proxy' | 'Redirect')>; } export interface ServerPropertiesModel { administratorLogin?: Expressionable; administratorLoginPassword?: Expressionable; version?: Expressionable<('2.0' | '12.0')>; } export interface ServerTableAuditingPolicyProperties { auditingState?: Expressionable; auditLogsTableName?: Expressionable; eventTypesToAudit?: Expressionable; fullAuditLogsTableName?: Expressionable; retentionDays?: Expressionable; storageAccountKey?: Expressionable; storageAccountName?: Expressionable; storageAccountResourceGroupName?: Expressionable; storageAccountSecondaryKey?: Expressionable; storageAccountSubscriptionId?: Expressionable; storageTableEndpoint?: Expressionable; } export interface TransparentDataEncryptionProperties { status?: Expressionable<('Enabled' | 'Disabled')>; } export declare namespace servers { interface AdditionalProps { tags?: Expressionable; } type ServersResource = ResourceDefinition; function create(name: Expressionable, properties: ServerPropertiesModel, location: 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 advisors { type AdvisorsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: AdvisorPropertiesModel): AdvisorsResource; } } export declare namespace servers { namespace auditingPolicies { type AuditingPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ServerTableAuditingPolicyProperties): AuditingPoliciesResource; } } export declare namespace servers { namespace backupLongTermRetentionVaults { type BackupLongTermRetentionVaultsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: BackupLongTermRetentionVaultProperties): BackupLongTermRetentionVaultsResource; } } export declare namespace servers { namespace communicationLinks { type CommunicationLinksResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ServerCommunicationLinkProperties): CommunicationLinksResource; } } export declare namespace servers { namespace connectionPolicies { type ConnectionPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ServerConnectionPolicyProperties): ConnectionPoliciesResource; } } export declare namespace servers { namespace databases { interface AdditionalProps { tags?: Expressionable; } type DatabasesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: DatabaseProperties, location: Expressionable, tags?: Expressionable): DatabasesResource; } } export declare namespace servers { namespace databases { namespace advisors { type AdvisorsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: AdvisorPropertiesModel): AdvisorsResource; } } } export declare namespace servers { namespace databases { namespace auditingPolicies { type AuditingPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: DatabaseTableAuditingPolicyProperties): AuditingPoliciesResource; } } } export declare namespace servers { namespace databases { namespace backupLongTermRetentionPolicies { type BackupLongTermRetentionPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: BackupLongTermRetentionPolicyProperties): BackupLongTermRetentionPoliciesResource; } } } export declare namespace servers { namespace databases { namespace connectionPolicies { type ConnectionPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: DatabaseConnectionPolicyProperties): ConnectionPoliciesResource; } } } export declare namespace servers { namespace databases { namespace dataMaskingPolicies { type DataMaskingPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: DataMaskingPolicyProperties): DataMaskingPoliciesResource; } } } export declare namespace servers { namespace databases { namespace dataMaskingPolicies { namespace rules { type RulesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable, Expressionable], properties: DataMaskingRuleProperties): RulesResource; } } } } export declare namespace servers { namespace databases { namespace extensions { type ExtensionsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: ImportExtensionProperties): ExtensionsResource; } } } export declare namespace servers { namespace databases { namespace geoBackupPolicies { type GeoBackupPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: GeoBackupPolicyProperties): GeoBackupPoliciesResource; } } } export declare namespace servers { namespace databases { namespace securityAlertPolicies { type SecurityAlertPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: DatabaseSecurityAlertPolicyProperties, location?: Expressionable): SecurityAlertPoliciesResource; } } } export declare namespace servers { namespace databases { namespace transparentDataEncryption { type TransparentDataEncryptionResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: TransparentDataEncryptionProperties): TransparentDataEncryptionResource; } } } export declare namespace servers { namespace disasterRecoveryConfiguration { type DisasterRecoveryConfigurationResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: any): DisasterRecoveryConfigurationResource; } } export declare namespace servers { namespace elasticPools { interface AdditionalProps { tags?: Expressionable; } type ElasticPoolsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ElasticPoolPropertiesModel, location: Expressionable, tags?: Expressionable): ElasticPoolsResource; } } export declare namespace servers { namespace firewallRules { type FirewallRulesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: FirewallRuleProperties): FirewallRulesResource; } }