import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface DatabaseBlobAuditingPolicyProperties { auditActionsAndGroups?: Expressionable; isAzureMonitorTargetEnabled?: Expressionable; isStorageSecondaryKeyInUse?: Expressionable; queueDelayMs?: Expressionable; retentionDays?: Expressionable; state: Expressionable<('Enabled' | 'Disabled')>; storageAccountAccessKey?: Expressionable; storageAccountSubscriptionId?: Expressionable; storageEndpoint?: Expressionable; } export interface DatabasePropertiesModel { 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; longTermRetentionBackupResourceId?: Expressionable; maxSizeBytes?: Expressionable; 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 ExtendedDatabaseBlobAuditingPolicyProperties { auditActionsAndGroups?: Expressionable; isAzureMonitorTargetEnabled?: Expressionable; isStorageSecondaryKeyInUse?: Expressionable; predicateExpression?: Expressionable; queueDelayMs?: Expressionable; retentionDays?: Expressionable; state: Expressionable<('Enabled' | 'Disabled')>; storageAccountAccessKey?: Expressionable; storageAccountSubscriptionId?: Expressionable; storageEndpoint?: Expressionable; } export interface ExtendedServerBlobAuditingPolicyProperties { auditActionsAndGroups?: Expressionable; isAzureMonitorTargetEnabled?: Expressionable; isStorageSecondaryKeyInUse?: Expressionable; predicateExpression?: Expressionable; queueDelayMs?: Expressionable; retentionDays?: Expressionable; state: Expressionable<('Enabled' | 'Disabled')>; storageAccountAccessKey?: Expressionable; storageAccountSubscriptionId?: Expressionable; storageEndpoint?: Expressionable; } export interface JobAgentProperties { databaseId: Expressionable; } export interface JobCredentialProperties { password: Expressionable; username: Expressionable; } export interface JobProperties { description?: Expressionable; schedule?: Expressionable; } export interface JobSchedule { enabled?: Expressionable; endTime?: Expressionable; interval?: Expressionable; startTime?: Expressionable; type?: Expressionable<('Once' | 'Recurring')>; } export interface JobStepAction { source?: Expressionable<('Inline')>; type?: Expressionable<('TSql')>; value: Expressionable; } export interface JobStepExecutionOptions { initialRetryIntervalSeconds?: Expressionable; maximumRetryIntervalSeconds?: Expressionable; retryAttempts?: Expressionable; retryIntervalBackoffMultiplier?: Expressionable; timeoutSeconds?: Expressionable; } export interface JobStepOutput { credential: Expressionable; databaseName: Expressionable; resourceGroupName?: Expressionable; schemaName?: Expressionable; serverName: Expressionable; subscriptionId?: Expressionable; tableName: Expressionable; type?: Expressionable<('SqlDatabase')>; } export interface JobStepProperties { action: Expressionable; credential: Expressionable; executionOptions?: Expressionable; output?: Expressionable; stepId?: Expressionable; targetGroup: Expressionable; } export interface JobTarget { databaseName?: Expressionable; elasticPoolName?: Expressionable; membershipType?: Expressionable<('Include' | 'Exclude')>; refreshCredential?: Expressionable; serverName?: Expressionable; shardMapName?: Expressionable; type: Expressionable<('TargetGroup' | 'SqlDatabase' | 'SqlElasticPool' | 'SqlShardMap' | 'SqlServer')>; } export interface JobTargetGroupProperties { members: Expressionable; } export interface LongTermRetentionPolicyProperties { monthlyRetention?: Expressionable; weeklyRetention?: Expressionable; weekOfYear?: Expressionable; yearlyRetention?: Expressionable; } export interface ManagedBackupShortTermRetentionPolicyProperties { retentionDays?: 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 ManagedInstanceAdministratorProperties { administratorType: Expressionable<('ActiveDirectory')>; login: Expressionable; sid: Expressionable; tenantId?: Expressionable; } export interface SecurityAlertPolicyProperties { disabledAlerts?: Expressionable; emailAccountAdmins?: Expressionable; emailAddresses?: Expressionable; retentionDays?: Expressionable; state: Expressionable<('New' | 'Enabled' | 'Disabled')>; storageAccountAccessKey?: Expressionable; storageEndpoint?: Expressionable; } export interface SensitivityLabelProperties { informationType?: Expressionable; informationTypeId?: Expressionable; labelId?: Expressionable; labelName?: Expressionable; rank?: Expressionable<('None' | 'Low' | 'Medium' | 'High' | 'Critical')>; } export interface ServerBlobAuditingPolicyProperties { auditActionsAndGroups?: Expressionable; isAzureMonitorTargetEnabled?: Expressionable; isStorageSecondaryKeyInUse?: Expressionable; queueDelayMs?: Expressionable; retentionDays?: Expressionable; state: Expressionable<('Enabled' | 'Disabled')>; storageAccountAccessKey?: Expressionable; storageAccountSubscriptionId?: Expressionable; storageEndpoint?: 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 managedInstances { namespace administrators { type AdministratorsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ManagedInstanceAdministratorProperties): AdministratorsResource; } } 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 managedInstances { namespace databases { namespace backupShortTermRetentionPolicies { type BackupShortTermRetentionPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: ManagedBackupShortTermRetentionPolicyProperties): BackupShortTermRetentionPoliciesResource; } } } export declare namespace managedInstances { namespace databases { namespace securityAlertPolicies { type SecurityAlertPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: SecurityAlertPolicyProperties): SecurityAlertPoliciesResource; } } } export declare namespace managedInstances { namespace restorableDroppedDatabases { namespace backupShortTermRetentionPolicies { type BackupShortTermRetentionPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: ManagedBackupShortTermRetentionPolicyProperties): BackupShortTermRetentionPoliciesResource; } } } export declare namespace managedInstances { namespace securityAlertPolicies { type SecurityAlertPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: SecurityAlertPolicyProperties): SecurityAlertPoliciesResource; } } export declare namespace servers { namespace auditingSettings { type AuditingSettingsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ServerBlobAuditingPolicyProperties): AuditingSettingsResource; } } export declare namespace servers { namespace databases { interface AdditionalProps { sku?: Expressionable; tags?: Expressionable; } type DatabasesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: DatabasePropertiesModel, location: Expressionable, sku?: Expressionable, tags?: Expressionable): DatabasesResource; } } export declare namespace servers { namespace databases { namespace auditingSettings { type AuditingSettingsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: DatabaseBlobAuditingPolicyProperties): AuditingSettingsResource; } } } export declare namespace servers { namespace databases { namespace backupLongTermRetentionPolicies { type BackupLongTermRetentionPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: LongTermRetentionPolicyProperties): BackupLongTermRetentionPoliciesResource; } } } export declare namespace servers { namespace databases { namespace extendedAuditingSettings { type ExtendedAuditingSettingsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: ExtendedDatabaseBlobAuditingPolicyProperties): ExtendedAuditingSettingsResource; } } } export declare namespace servers { namespace databases { namespace schemas { namespace tables { namespace columns { namespace sensitivityLabels { type SensitivityLabelsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable, Expressionable, Expressionable, Expressionable], properties: SensitivityLabelProperties): SensitivityLabelsResource; } } } } } } export declare namespace servers { namespace databases { namespace vulnerabilityAssessments { type VulnerabilityAssessmentsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: DatabaseVulnerabilityAssessmentProperties): VulnerabilityAssessmentsResource; } } } export declare namespace servers { 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 servers { namespace dnsAliases { type DnsAliasesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: any): DnsAliasesResource; } } export declare namespace servers { namespace extendedAuditingSettings { type ExtendedAuditingSettingsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ExtendedServerBlobAuditingPolicyProperties): ExtendedAuditingSettingsResource; } } export declare namespace servers { namespace jobAgents { interface AdditionalProps { sku?: Expressionable; tags?: Expressionable; } type JobAgentsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: JobAgentProperties, location: Expressionable, sku?: Expressionable, tags?: Expressionable): JobAgentsResource; } } export declare namespace servers { namespace jobAgents { namespace credentials { type CredentialsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: JobCredentialProperties): CredentialsResource; } } } export declare namespace servers { namespace jobAgents { namespace jobs { type JobsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: JobProperties): JobsResource; } } } export declare namespace servers { namespace jobAgents { namespace jobs { namespace executions { type ExecutionsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable, Expressionable], properties: any): ExecutionsResource; } } } } export declare namespace servers { namespace jobAgents { namespace jobs { namespace steps { type StepsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable, Expressionable], properties: JobStepProperties): StepsResource; } } } } export declare namespace servers { namespace jobAgents { namespace targetGroups { type TargetGroupsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: JobTargetGroupProperties): TargetGroupsResource; } } } export declare namespace servers { namespace securityAlertPolicies { type SecurityAlertPoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: SecurityAlertPolicyProperties): SecurityAlertPoliciesResource; } }