/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { RequestType } from 'vscode-languageclient'; import * as azdata from 'azdata'; // ------------------------------- < Resource Events > ------------------------------------ /** * A request to open up a firewall rule */ export namespace CreateFirewallRuleRequest { export const type = new RequestType('resource/createFirewallRule'); } /** * Firewall rule request handler */ export namespace HandleFirewallRuleRequest { export const type = new RequestType('resource/handleFirewallRule'); } /** * Firewall rule creation parameters */ export interface CreateFirewallRuleParams { /** * Account information to use in connecting to Azure */ account: azdata.Account; /** * Fully qualified name of the server to create a new firewall rule on */ serverName: string; /** * Firewall rule name to set */ firewallRuleName: string; /** * Start of the IP address range */ startIpAddress: string; /** * End of the IP address range */ endIpAddress: string; /** * Per-tenant token mappings. Ideally would be set independently of this call, * but for now this allows us to get the tokens necessary to find a server and open a firewall rule */ securityTokenMappings: {}; } /** * Firewall rule creation response */ interface CreateFirewallRuleResponse { /** * Whether or not request can be handled. */ result: boolean; /** * Contains error message, if request could not be handled. */ errorMessage: string; } /** * Firewall rule handling parameters */ export interface HandleFirewallRuleParams { /** * The error code used to defined the error type */ errorCode: number; /** * The error message from which to parse the IP address */ errorMessage: string; /** * The connection type, for example MSSQL */ connectionTypeId: string; } /** * Response to the check for Firewall rule support given an error message */ interface HandleFirewallRuleResponse { /** * Whether or not request can be handled. */ result: boolean; /** * Contains error message, if request could not be handled. */ errorMessage: string; /** * If handled, the default IP address to send back; so users can tell what their blocked IP is. */ ipAddress: string; }