import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface BackupShortTermRetentionPolicyProperties { retentionDays?: Expressionable; } export interface DatabaseProperties { autoPauseDelay?: Expressionable; catalogCollation?: Expressionable<('DATABASE_DEFAULT' | 'SQL_Latin1_General_CP1_CI_AS')>; collation?: Expressionable; createMode?: Expressionable<('Copy' | 'Default' | 'NonReadableSecondary' | 'OnlineSecondary' | 'PointInTimeRestore' | 'Recovery' | 'Restore' | 'RestoreLongTermRetentionBackup' | 'Secondary' | 'RestoreExternalBackup' | 'RestoreExternalBackupSecondary')>; 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; zoneRedundant?: Expressionable; } export interface DatabaseVulnerabilityAssessmentProperties { recurringScans?: Expressionable; storageAccountAccessKey?: Expressionable; storageContainerPath?: Expressionable; storageContainerSasKey?: Expressionable; } export interface DatabaseVulnerabilityAssessmentRuleBaselineItem { result: Expressionable; } export interface DatabaseVulnerabilityAssessmentRuleBaselineProperties { baselineResults: Expressionable; } export interface ElasticPoolPerDatabaseSettings { maxCapacity?: Expressionable; minCapacity?: Expressionable; } export interface ElasticPoolProperties { licenseType?: Expressionable<('LicenseIncluded' | 'BasePrice')>; maxSizeBytes?: Expressionable; perDatabaseSettings?: Expressionable; zoneRedundant?: Expressionable; } export interface InstanceFailoverGroupProperties { managedInstancePairs: Expressionable; partnerRegions: Expressionable; readOnlyEndpoint?: Expressionable; readWriteEndpoint: Expressionable; } export interface InstanceFailoverGroupReadOnlyEndpoint { failoverPolicy?: Expressionable<('Disabled' | 'Enabled')>; } export interface InstanceFailoverGroupReadWriteEndpoint { failoverPolicy: Expressionable<('Manual' | 'Automatic')>; failoverWithDataLossGracePeriodMinutes?: Expressionable; } export interface ManagedInstanceEncryptionProtectorProperties { serverKeyName?: Expressionable; serverKeyType: Expressionable<('ServiceManaged' | 'AzureKeyVault')>; } export interface ManagedInstanceKeyProperties { serverKeyType: Expressionable<('ServiceManaged' | 'AzureKeyVault')>; uri?: Expressionable; } export interface ManagedInstancePairInfo { partnerManagedInstanceId?: Expressionable; primaryManagedInstanceId?: Expressionable; } export interface PartnerRegionInfo { location?: Expressionable; } export interface Sku { capacity?: Expressionable; family?: Expressionable; name: Expressionable; size?: Expressionable; tier?: Expressionable; } export interface VulnerabilityAssessmentRecurringScansProperties { emails?: Expressionable; emailSubscriptionAdmins?: Expressionable; isEnabled?: Expressionable; } export declare namespace locations { namespace instanceFailoverGroups { type InstanceFailoverGroupsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: InstanceFailoverGroupProperties): InstanceFailoverGroupsResource; } } export declare namespace managedInstances { namespace databases { namespace vulnerabilityAssessments { type VulnerabilityAssessmentsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: DatabaseVulnerabilityAssessmentProperties): VulnerabilityAssessmentsResource; } } } export declare namespace managedInstances { namespace databases { namespace vulnerabilityAssessments { namespace rules { namespace baselines { type BaselinesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable, Expressionable, Expressionable], properties: DatabaseVulnerabilityAssessmentRuleBaselineProperties): BaselinesResource; } } } } } export declare namespace managedInstances { namespace encryptionProtector { type EncryptionProtectorResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ManagedInstanceEncryptionProtectorProperties): EncryptionProtectorResource; } } export declare namespace managedInstances { namespace keys { type KeysResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ManagedInstanceKeyProperties): KeysResource; } } 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 backupShortTermRetentionPolicies { type BackupShortTermRetentionPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: BackupShortTermRetentionPolicyProperties): BackupShortTermRetentionPoliciesResource; } } } export declare namespace servers { namespace elasticPools { interface AdditionalProps { sku?: Expressionable; tags?: Expressionable; } type ElasticPoolsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ElasticPoolProperties, location: Expressionable, sku?: Expressionable, tags?: Expressionable): ElasticPoolsResource; } }