/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { NotificationType, RequestType } from 'vscode-languageclient'; import * as telemetry from '@microsoft/ads-extension-telemetry'; import * as azdata from 'azdata'; import { ConnectParams } from 'dataprotocol-client/lib/protocol'; import * as mssql from 'mssql'; // ------------------------------- < Telemetry Sent Event > ------------------------------------ /** * Event sent when the language service send a telemetry event */ export namespace TelemetryNotification { export const type = new NotificationType('telemetry/sqlevent'); } /** * Update event parameters */ export class TelemetryParams { public params: { eventName: string; properties: telemetry.TelemetryEventProperties; measures: telemetry.TelemetryEventMeasures; }; } // ------------------------------- ---------------------------------- // ------------------------------- < Security Token Request > ------------------------------------------ export interface RequestSecurityTokenParams { authority: string; provider: string; resource: string; scope: string; } export interface RequestSecurityTokenResponse { accountKey: string; token: string; } export namespace SecurityTokenRequest { export const type = new RequestType('account/securityTokenRequest'); } // ------------------------------- ------------------------------------------ // ------------------------------- < Refresh Token Notification > --------------------------------- /** * Parameters for a refresh token notification sent from STS to ADS */ export interface RefreshTokenParams { /** * The tenant ID */ tenantId: string; /** * The provider that indicates the type of linked account to query */ provider: string; /** * The identifier of the target resource of the requested token */ resource: string; /** * The account ID */ accountId: string; /** * The URI for the editor that needs a token refresh */ uri: string; } export namespace RefreshTokenNotification { export const type = new NotificationType('account/refreshToken'); } // ------------------------------- ------------------------------- // ------------------------------- < Token Refreshed Notification > --------------------------------- /** * Parameters for a new refresh token sent from ADS to STS */ export interface TokenRefreshedParams { /** * The refresh token */ token: string; /** * The token expiration, a Unix epoch */ expiresOn: Number; /** * The URI for the editor that needs a token refresh */ uri: string; } export namespace TokenRefreshedNotification { export const type = new NotificationType('account/tokenRefreshed'); } // ------------------------------- ------------------------------- // ------------------------------- < Agent Management > ------------------------------------ // Job management parameters export interface AgentJobsParams { ownerUri: string; jobId: string; } export interface AgentJobHistoryParams { ownerUri: string; jobId: string; jobName: string; } export interface AgentJobActionParams { ownerUri: string; jobName: string; action: string; } export interface CreateAgentJobParams { ownerUri: string; job: azdata.AgentJobInfo; } export interface UpdateAgentJobParams { ownerUri: string; originalJobName: string; job: azdata.AgentJobInfo; } export interface DeleteAgentJobParams { ownerUri: string; job: azdata.AgentJobInfo; } export interface AgentJobDefaultsParams { ownerUri: string; } // Job Step management parameters export interface CreateAgentJobStepParams { ownerUri: string; step: azdata.AgentJobStepInfo; } export interface UpdateAgentJobStepParams { ownerUri: string; originalJobStepName: string; step: azdata.AgentJobStepInfo; } export interface DeleteAgentJobStepParams { ownerUri: string; step: azdata.AgentJobStepInfo; } // Notebook management parameters export interface AgentNotebookParams { ownerUri: string; } export interface AgentNotebookHistoryParams { ownerUri: string; jobId: string; jobName: string; targetDatabase: string; } export interface AgentNotebookMaterializedParams { ownerUri: string; targetDatabase: string; notebookMaterializedId: number; } export interface AgentNotebookTemplateParams { ownerUri: string; targetDatabase: string; jobId: string; } export interface CreateAgentNotebookParams { ownerUri: string; notebook: azdata.AgentNotebookInfo; templateFilePath: string; } export interface UpdateAgentNotebookParams { ownerUri: string; originalNotebookName: string; notebook: azdata.AgentJobInfo; templateFilePath: string; } export interface UpdateAgentNotebookRunPinParams { ownerUri: string; targetDatabase: string; agentNotebookHistory: azdata.AgentNotebookHistoryInfo; materializedNotebookPin: boolean; } export interface UpdateAgentNotebookRunNameParams { ownerUri: string; targetDatabase: string; agentNotebookHistory: azdata.AgentNotebookHistoryInfo; materializedNotebookName: string; } export interface DeleteAgentNotebookParams { ownerUri: string; notebook: azdata.AgentNotebookInfo; } export interface DeleteAgentMaterializedNotebookParams { ownerUri: string; targetDatabase: string; agentNotebookHistory: azdata.AgentNotebookHistoryInfo; } // Alert management parameters export interface AgentAlertsParams { ownerUri: string; } export interface CreateAgentAlertParams { ownerUri: string; alert: azdata.AgentAlertInfo; } export interface UpdateAgentAlertParams { ownerUri: string; originalAlertName: string; alert: azdata.AgentAlertInfo; } export interface DeleteAgentAlertParams { ownerUri: string; alert: azdata.AgentAlertInfo; } // Operator management parameters export interface AgentOperatorsParams { ownerUri: string; } export interface CreateAgentOperatorParams { ownerUri: string; operator: azdata.AgentOperatorInfo; } export interface UpdateAgentOperatorParams { ownerUri: string; originalOperatorName: string; operator: azdata.AgentOperatorInfo; } export interface DeleteAgentOperatorParams { ownerUri: string; operator: azdata.AgentOperatorInfo; } // Proxy management parameters export interface AgentProxiesParams { ownerUri: string; } export interface CreateAgentProxyParams { ownerUri: string; proxy: azdata.AgentProxyInfo; } export interface UpdateAgentProxyParams { ownerUri: string; originalProxyName: string; proxy: azdata.AgentProxyInfo; } export interface DeleteAgentProxyParams { ownerUri: string; proxy: azdata.AgentProxyInfo; } // Agent Credentials parameters export interface GetCredentialsParams { ownerUri: string; } // Job Schedule management parameters export interface AgentJobScheduleParams { ownerUri: string; } export interface CreateAgentJobScheduleParams { ownerUri: string; schedule: azdata.AgentJobScheduleInfo; } export interface UpdateAgentJobScheduleParams { ownerUri: string; originalScheduleName: string; schedule: azdata.AgentJobScheduleInfo; } export interface DeleteAgentJobScheduleParams { ownerUri: string; schedule: azdata.AgentJobScheduleInfo; } // Agent Job management requests export namespace AgentJobsRequest { export const type = new RequestType('agent/jobs'); } export namespace AgentJobHistoryRequest { export const type = new RequestType('agent/jobhistory'); } export namespace AgentJobActionRequest { export const type = new RequestType('agent/jobaction'); } export namespace CreateAgentJobRequest { export const type = new RequestType('agent/createjob'); } export namespace UpdateAgentJobRequest { export const type = new RequestType('agent/updatejob'); } export namespace DeleteAgentJobRequest { export const type = new RequestType('agent/deletejob'); } export namespace AgentJobDefaultsRequest { export const type = new RequestType('agent/jobdefaults'); } // Job Step requests export namespace CreateAgentJobStepRequest { export const type = new RequestType('agent/createjobstep'); } export namespace UpdateAgentJobStepRequest { export const type = new RequestType('agent/updatejobstep'); } export namespace DeleteAgentJobStepRequest { export const type = new RequestType('agent/deletejobstep'); } // Notebooks request export namespace AgentNotebooksRequest { export const type = new RequestType('agent/notebooks'); } export namespace AgentNotebookHistoryRequest { export const type = new RequestType('agent/notebookhistory'); } export namespace AgentNotebookMaterializedRequest { export const type = new RequestType('agent/notebookmaterialized'); } export namespace UpdateAgentNotebookRunNameRequest { export const type = new RequestType('agent/updatenotebookname'); } export namespace DeleteMaterializedNotebookRequest { export const type = new RequestType('agent/deletematerializednotebook'); } export namespace UpdateAgentNotebookRunPinRequest { export const type = new RequestType('agent/updatenotebookpin'); } export namespace AgentNotebookTemplateRequest { export const type = new RequestType('agent/notebooktemplate'); } export namespace CreateAgentNotebookRequest { export const type = new RequestType('agent/createnotebook'); } export namespace DeleteAgentNotebookRequest { export const type = new RequestType('agent/deletenotebook'); } export namespace UpdateAgentNotebookRequest { export const type = new RequestType('agent/updatenotebook'); } // Alerts requests export namespace AgentAlertsRequest { export const type = new RequestType('agent/alerts'); } export namespace CreateAgentAlertRequest { export const type = new RequestType('agent/createalert'); } export namespace UpdateAgentAlertRequest { export const type = new RequestType('agent/updatealert'); } export namespace DeleteAgentAlertRequest { export const type = new RequestType('agent/deletealert'); } // Operators requests export namespace AgentOperatorsRequest { export const type = new RequestType('agent/operators'); } export namespace CreateAgentOperatorRequest { export const type = new RequestType('agent/createoperator'); } export namespace UpdateAgentOperatorRequest { export const type = new RequestType('agent/updateoperator'); } export namespace DeleteAgentOperatorRequest { export const type = new RequestType('agent/deleteoperator'); } // Proxies requests export namespace AgentProxiesRequest { export const type = new RequestType('agent/proxies'); } export namespace CreateAgentProxyRequest { export const type = new RequestType('agent/createproxy'); } export namespace UpdateAgentProxyRequest { export const type = new RequestType('agent/updateproxy'); } export namespace DeleteAgentProxyRequest { export const type = new RequestType('agent/deleteproxy'); } // Agent Credentials request export namespace AgentCredentialsRequest { export const type = new RequestType('security/credentials'); } // Job Schedules requests export namespace AgentJobSchedulesRequest { export const type = new RequestType('agent/schedules'); } export namespace CreateAgentJobScheduleRequest { export const type = new RequestType('agent/createschedule'); } export namespace UpdateAgentJobScheduleRequest { export const type = new RequestType('agent/updateschedule'); } export namespace DeleteAgentJobScheduleRequest { export const type = new RequestType('agent/deleteschedule'); } // ------------------------------- < Agent Management > ------------------------------------ // ------------------------------- < DacFx > ------------------------------------ export enum TaskExecutionMode { execute = 0, script = 1, executeAndScript = 2, } export interface ExportParams { databaseName: string; packageFilePath: string; ownerUri: string; taskExecutionMode: TaskExecutionMode; } export interface ImportParams { packageFilePath: string; databaseName: string; ownerUri: string; taskExecutionMode: TaskExecutionMode; } export interface ExtractParams { databaseName: string; packageFilePath: string; applicationName: string; applicationVersion: string; ownerUri: string; extractTarget?: mssql.ExtractTarget; taskExecutionMode: TaskExecutionMode; includePermissions?: boolean; } export interface DeployParams { packageFilePath: string; databaseName: string; upgradeExisting: boolean; sqlCommandVariableValues?: Record; deploymentOptions?: mssql.DeploymentOptions; ownerUri: string; taskExecutionMode: TaskExecutionMode; } export interface GenerateDeployScriptParams { packageFilePath: string; databaseName: string; sqlCommandVariableValues?: Record; deploymentOptions?: mssql.DeploymentOptions ownerUri: string; taskExecutionMode: TaskExecutionMode; } export interface GenerateDeployPlanParams { packageFilePath: string; databaseName: string; ownerUri: string; taskExecutionMode: TaskExecutionMode; } export interface GetOptionsFromProfileParams { profilePath: string; } export interface ValidateStreamingJobParams { packageFilePath: string, createStreamingJobTsql: string } export interface ParseTSqlScriptParams { filePath: string; databaseSchemaProvider: string; } export interface SavePublishProfileParams { profilePath: string; databaseName: string; connectionString: string; sqlCommandVariableValues?: Record; deploymentOptions?: mssql.DeploymentOptions; } export namespace ExportRequest { export const type = new RequestType('dacfx/export'); } export namespace ImportRequest { export const type = new RequestType('dacfx/import'); } export namespace ExtractRequest { export const type = new RequestType('dacfx/extract'); } export namespace DeployRequest { export const type = new RequestType('dacfx/deploy'); } export namespace GenerateDeployScriptRequest { export const type = new RequestType('dacfx/generateDeploymentScript'); } export namespace GenerateDeployPlanRequest { export const type = new RequestType('dacfx/generateDeployPlan'); } export namespace GetOptionsFromProfileRequest { export const type = new RequestType('dacfx/getOptionsFromProfile'); } export namespace ValidateStreamingJobRequest { export const type = new RequestType('dacfx/validateStreamingJob'); } export namespace ParseTSqlScriptRequest { export const type = new RequestType('dacfx/parseTSqlScript'); } export namespace SavePublishProfileRequest { export const type = new RequestType('dacfx/savePublishProfile'); } // ------------------------------- ------------------------------------ // ------------------------------- ---------------------------------------- export interface CreateCentralManagementServerParams { registeredServerName: string; registeredServerDescription: string; connectParams: ConnectParams; } export interface ListRegisteredServersParams extends RegisteredServerParamsBase { // same as base } export interface AddRegisteredServerParams extends RegisteredServerParamsBase { registeredServerName: string; registeredServerDescription: string; registeredServerConnectionDetails: azdata.ConnectionInfo; } export interface RemoveRegisteredServerParams extends RegisteredServerParamsBase { registeredServerName: string; } export interface AddServerGroupParams extends RegisteredServerParamsBase { groupName: string; groupDescription: string; } export interface RemoveServerGroupParams extends RegisteredServerParamsBase { groupName: string; } export interface RegisteredServerParamsBase { parentOwnerUri: string; relativePath: string; } export namespace CreateCentralManagementServerRequest { export const type = new RequestType('cms/createCms'); } export namespace ListRegisteredServersRequest { export const type = new RequestType('cms/listRegisteredServers'); } export namespace AddRegisteredServerRequest { export const type = new RequestType('cms/addRegisteredServer'); } export namespace RemoveRegisteredServerRequest { export const type = new RequestType('cms/removeRegisteredServer'); } export namespace AddServerGroupRequest { export const type = new RequestType('cms/addCmsServerGroup'); } export namespace RemoveServerGroupRequest { export const type = new RequestType('cms/removeCmsServerGroup'); } // ------------------------------- ---------------------------------------- // ------------------------------- ----------------------------- export interface LanguageExtensionRequestParam { ownerUri: string; } export interface ExternalLanguageRequestParam extends LanguageExtensionRequestParam { languageName: string; } export interface ExternalLanguageUpdateRequestParam extends LanguageExtensionRequestParam { language: mssql.ExternalLanguage; } export interface LanguageExtensionListResponseParam { languages: mssql.ExternalLanguage[]; } export interface ExternalLanguageResponseParam { } export namespace LanguageExtensibilityListRequest { export const type = new RequestType('languageExtension/list'); } export namespace LanguageExtensibilityDeleteRequest { export const type = new RequestType('languageExtension/delete'); } export namespace LanguageExtensibilityUpdateRequest { export const type = new RequestType('languageExtension/update'); } // ------------------------------- ----------------------------- export interface SchemaCompareParams { operationId: string; sourceEndpointInfo: mssql.SchemaCompareEndpointInfo; targetEndpointInfo: mssql.SchemaCompareEndpointInfo; taskExecutionMode: TaskExecutionMode; deploymentOptions: mssql.DeploymentOptions; } export interface SchemaCompareGenerateScriptParams { operationId: string; targetServerName: string; targetDatabaseName: string; taskExecutionMode: TaskExecutionMode; } export interface SchemaComparePublishDatabaseChangesParams { operationId: string; targetServerName: string; targetDatabaseName: string; taskExecutionMode: TaskExecutionMode; } export interface SchemaComparePublishProjectChangesParams { operationId: string; targetProjectPath: string; targetFolderStructure: mssql.ExtractTarget; taskExecutionMode: TaskExecutionMode; } export interface SchemaCompareGetOptionsParams { } export interface SchemaCompareNodeParams { operationId: string; diffEntry: mssql.DiffEntry; includeRequest: boolean; taskExecutionMode: TaskExecutionMode; } export interface SchemaCompareOpenScmpParams { filePath: string; } export interface SchemaCompareSaveScmpParams { sourceEndpointInfo: mssql.SchemaCompareEndpointInfo; targetEndpointInfo: mssql.SchemaCompareEndpointInfo; taskExecutionMode: TaskExecutionMode; deploymentOptions: mssql.DeploymentOptions; scmpFilePath: string; excludedSourceObjects: mssql.SchemaCompareObjectId[]; excludedTargetObjects: mssql.SchemaCompareObjectId[]; } export interface SchemaCompareCancelParams { operationId: string; } export namespace SchemaCompareRequest { export const type = new RequestType('schemaCompare/compare'); } export namespace SchemaCompareGenerateScriptRequest { export const type = new RequestType('schemaCompare/generateScript'); } export namespace SchemaComparePublishDatabaseChangesRequest { export const type = new RequestType('schemaCompare/publishDatabase'); } export namespace SchemaComparePublishProjectChangesRequest { export const type = new RequestType('schemaCompare/publishProject'); } export namespace SchemaCompareGetDefaultOptionsRequest { export const type = new RequestType('schemaCompare/getDefaultOptions'); } export namespace SchemaCompareIncludeExcludeNodeRequest { export const type = new RequestType('schemaCompare/includeExcludeNode'); } export namespace SchemaCompareOpenScmpRequest { export const type = new RequestType('schemaCompare/openScmp'); } export namespace SchemaCompareSaveScmpRequest { export const type = new RequestType('schemaCompare/saveScmp'); } export namespace SchemaCompareCancellationRequest { export const type = new RequestType('schemaCompare/cancel'); } // ------------------------------- ----------------------------- /// ------------------------------- ----------------------------- export interface SqlAssessmentParams { ownerUri: string; targetType: azdata.sqlAssessment.SqlAssessmentTargetType; } export interface GenerateSqlAssessmentScriptParams { items: azdata.SqlAssessmentResultItem[]; taskExecutionMode: azdata.TaskExecutionMode; targetServerName: string; targetDatabaseName: string; } export namespace SqlAssessmentInvokeRequest { export const type = new RequestType('assessment/invoke'); } export namespace GetSqlAssessmentItemsRequest { export const type = new RequestType('assessment/getAssessmentItems'); } export namespace GenerateSqlAssessmentScriptRequest { export const type = new RequestType('assessment/generateScript'); } // ------------------------------- ----------------------------- // ------------------------------- ----------------------------- export namespace SerializeDataStartRequest { export const type = new RequestType('serialize/start'); } export namespace SerializeDataContinueRequest { export const type = new RequestType('serialize/continue'); } // ------------------------------- ----------------------------- // ------------------------------- < Load Completion Extension Request > ------------------------------------ /** * Completion extension load parameters */ export class CompletionExtensionParams { /// /// Absolute path for the assembly containing the completion extension /// public assemblyPath: string; /// /// The type name for the completion extension /// public typeName: string; /// /// Property bag for initializing the completion extension /// public properties: {}; } export namespace CompletionExtLoadRequest { export const type = new RequestType('completion/extLoad'); } // ------------------------------- < Load Completion Extension Request > ------------------------------------ /// ------------------------------- ----------------------------- export interface ConvertNotebookToSqlParams { content: string; } export namespace ConvertNotebookToSqlRequest { export const type = new RequestType('notebookconvert/convertnotebooktosql'); } export interface ConvertNotebookToSqlResult extends azdata.ResultStatus { content: string; } export interface ConvertSqlToNotebookParams { clientUri: string; } export namespace ConvertSqlToNotebookRequest { export const type = new RequestType('notebookconvert/convertsqltonotebook'); } export interface ConvertSqlToNotebookResult extends azdata.ResultStatus { content: string; } // ------------------------------- ----------------------------- // ------------------------------- < SQL Profiler > ------------------------------------ /** * Parameters to start a profiler session */ export interface CreateXEventSessionParams { /** * Session Owner URI */ ownerUri: string; /** * Session name */ sessionName: string; /** * Profiler Session template */ template: ProfilerSessionTemplate; } export interface CreateXEventSessionResponse { } /** * Parameters to start a profiler session */ export interface StartProfilingParams { /** * Session Owner URI */ ownerUri: string; /** * Session name */ sessionName: string; } export interface StartProfilingResponse { } /** * Parameters to stop a profiler session */ export interface StopProfilingParams { /** * Session Owner URI */ ownerUri: string; } export interface StopProfilingResponse { } /** * Parameters to pause a profiler session */ export interface PauseProfilingParams { /** * Session Owner URI */ ownerUri: string; } export interface PauseProfilingResponse { } /** * Parameters to get a list of XEvent sessions */ export interface GetXEventSessionsParams { /** * Session Owner URI */ ownerUri: string; } export interface GetXEventSessionsResponse { /** * List of all running XEvent Sessions on target server */ sessions: string[]; } export interface DisconnectSessionParams { /** * Session Owner URI */ ownerUri: string; } export interface DisconnectSessionResponse { } /** * Profiler Event */ export interface ProfilerEvent { /** * Event class name */ name: string; /** * Event timestamp */ timestamp: string; /** * Event values */ values: {}; } /** * Profiler Session Template */ export interface ProfilerSessionTemplate { /** * Template name */ name: string; /** * Default view for template */ defaultView: string; /** * TSQL for creating a session */ createStatement: string; } /** * Profiler events available notification parameters */ export interface ProfilerEventsAvailableParams { /** * Session owner URI */ ownerUri: string; /** * New profiler events available */ events: ProfilerEvent[]; /** * If events may have been dropped */ eventsLost: boolean; } /** * Profiler events available notification parameters */ export interface ProfilerSessionStoppedParams { /** * Session owner URI */ ownerUri: string; /** * Stopped session Id */ sessionId: number; } /** * Profiler session created notification parameters */ export interface ProfilerSessionCreatedParams { /** * Session owner URI */ ownerUri: string; /** * Created session name */ sessionName: string; /** * Template used to create session */ templateName: string; } export namespace CreateXEventSessionRequest { export const type = new RequestType('profiler/createsession'); } export namespace StartProfilingRequest { export const type = new RequestType('profiler/start'); } export namespace StopProfilingRequest { export const type = new RequestType('profiler/stop'); } export namespace PauseProfilingRequest { export const type = new RequestType('profiler/pause'); } export namespace GetXEventSessionsRequest { export const type = new RequestType('profiler/getsessions'); } export namespace DisconnectSessionRequest { export const type = new RequestType('profiler/disconnect'); } export namespace ProfilerEventsAvailableNotification { export const type = new NotificationType('profiler/eventsavailable'); } export namespace ProfilerSessionStoppedNotification { export const type = new NotificationType('profiler/sessionstopped'); } export namespace ProfilerSessionCreatedNotification { export const type = new NotificationType('profiler/sessioncreated'); } // ------------------------------- < SQL Profiler > ------------------------------------ /// ------------------------------- ----------------------------- export interface SqlMigrationAssessmentParams { ownerUri: string; databases: string[]; xEventsFilesFolderPath: string; } export namespace GetSqlMigrationAssessmentItemsRequest { export const type = new RequestType('migration/getassessments'); } export interface SqlMigrationSkuRecommendationsParams { dataFolder: string; perfQueryIntervalInSec: number; targetPlatforms: string[]; targetSqlInstance: string; targetPercentile: number; scalingFactor: number; startTime: string; endTime: string; includePreviewSkus: boolean; databaseAllowList: string[]; } export namespace GetSqlMigrationSkuRecommendationsRequest { export const type = new RequestType('migration/getskurecommendations'); } export interface SqlMigrationStartPerfDataCollectionParams { ownerUri: string, dataFolder: string, perfQueryIntervalInSec: number, staticQueryIntervalInSec: number, numberOfIterations: number } export namespace SqlMigrationStartPerfDataCollectionRequest { export const type = new RequestType('migration/startperfdatacollection'); } export interface SqlMigrationStopPerfDataCollectionParams { } export namespace SqlMigrationStopPerfDataCollectionRequest { export const type = new RequestType('migration/stopperfdatacollection'); } export interface SqlMigrationRefreshPerfDataCollectionParams { lastRefreshTime: Date } export namespace SqlMigrationRefreshPerfDataCollectionRequest { export const type = new RequestType('migration/refreshperfdatacollection'); } export interface StartLoginMigrationsParams { sourceConnectionString: string; targetConnectionString: string; loginList: string[]; aadDomainName: string; } export namespace StartLoginMigrationRequest { export const type = new RequestType('migration/startloginmigration'); } export namespace ValidateLoginMigrationRequest { export const type = new RequestType('migration/validateloginmigration'); } export namespace MigrateLoginsRequest { export const type = new RequestType('migration/migratelogins'); } export namespace EstablishUserMappingRequest { export const type = new RequestType('migration/establishusermapping'); } export namespace MigrateServerRolesAndSetPermissionsRequest { export const type = new RequestType('migration/migrateserverrolesandsetpermissions'); } export namespace LoginMigrationNotification { export const type = new NotificationType('migration/loginmigrationnotification"'); } // ------------------------------- ----------------------------- // ------------------------------- < Table Designer > ------------------------------------ export interface TableDesignerEditRequestParams { tableInfo: azdata.designers.TableInfo, tableChangeInfo: azdata.designers.DesignerEdit } export namespace InitializeTableDesignerRequest { export const type = new RequestType('tabledesigner/initialize'); } export namespace ProcessTableDesignerEditRequest { export const type = new RequestType, void, void>('tabledesigner/processedit'); } export namespace PublishTableDesignerChangesRequest { export const type = new RequestType('tabledesigner/publish'); } export namespace TableDesignerGenerateScriptRequest { export const type = new RequestType('tabledesigner/script'); } export namespace TableDesignerGenerateChangePreviewReportRequest { export const type = new RequestType('tabledesigner/generatepreviewreport'); } export namespace DisposeTableDesignerRequest { export const type = new RequestType('tabledesigner/dispose'); } // ------------------------------- < Table Designer > ------------------------------------ // ------------------------------- < Azure Blob > ------------------------------------ export interface CreateSasParams { ownerUri: string; blobContainerUri: string; blobContainerKey: string; storageAccountName: string; expirationDate: string; } export namespace CreateSasRequest { export const type = new RequestType('blob/createSas'); } // ------------------------------- < Azure Blob > ------------------------------------ // ------------------------------- < Execution Plan > ------------------------------------ export interface GetExecutionPlanParams { graphInfo: azdata.executionPlan.ExecutionPlanGraphInfo, } export namespace GetExecutionPlanRequest { export const type = new RequestType('queryExecutionPlan/getExecutionPlan'); } export interface ExecutionPlanComparisonParams { firstExecutionPlanGraphInfo: azdata.executionPlan.ExecutionPlanGraphInfo; secondExecutionPlanGraphInfo: azdata.executionPlan.ExecutionPlanGraphInfo; } export namespace ExecutionPlanComparisonRequest { export const type = new RequestType('queryExecutionPlan/compareExecutionPlanGraph'); } // ------------------------------- < Execution Plan > ------------------------------------ // ------------------------------- < Tde Migration > ------------------------------------ export namespace TdeMigrateRequest { export const type = new RequestType('migration/tdemigration'); } export interface TdeMigrationParams { encryptedDatabases: string[]; sourceSqlConnectionString: string; targetSubscriptionId: string; targetResourceGroupName: string; targetManagedInstanceName: string; networkSharePath: string; networkShareDomain: string; networkShareUserName: string; networkSharePassword: string; accessToken: string; } export namespace TdeMigrateProgressEvent { export const type = new NotificationType('migration/tdemigrationprogress'); } export interface TdeMigrateProgressParams { name: string; success: boolean; message: string; } // ------------------------------- < Tde Migration > ------------------------------------