/* * Copyright (c) Microsoft Corporation. * Licensed under the MIT License. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ import { ManagedDatabaseVulnerabilityAssessmentRuleBaselines } from "../operationsInterfaces"; import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; import * as Parameters from "../models/parameters"; import { SqlManagementClient } from "../sqlManagementClient"; import { VulnerabilityAssessmentName, VulnerabilityAssessmentPolicyBaselineName, ManagedDatabaseVulnerabilityAssessmentRuleBaselinesGetOptionalParams, ManagedDatabaseVulnerabilityAssessmentRuleBaselinesGetResponse, DatabaseVulnerabilityAssessmentRuleBaseline, ManagedDatabaseVulnerabilityAssessmentRuleBaselinesCreateOrUpdateOptionalParams, ManagedDatabaseVulnerabilityAssessmentRuleBaselinesCreateOrUpdateResponse, ManagedDatabaseVulnerabilityAssessmentRuleBaselinesDeleteOptionalParams } from "../models"; /** Class containing ManagedDatabaseVulnerabilityAssessmentRuleBaselines operations. */ export class ManagedDatabaseVulnerabilityAssessmentRuleBaselinesImpl implements ManagedDatabaseVulnerabilityAssessmentRuleBaselines { private readonly client: SqlManagementClient; /** * Initialize a new instance of the class ManagedDatabaseVulnerabilityAssessmentRuleBaselines class. * @param client Reference to the service client */ constructor(client: SqlManagementClient) { this.client = client; } /** * Gets a database's vulnerability assessment rule baseline. * @param resourceGroupName The name of the resource group that contains the resource. You can obtain * this value from the Azure Resource Manager API or the portal. * @param managedInstanceName The name of the managed instance. * @param databaseName The name of the database for which the vulnerability assessment rule baseline is * defined. * @param vulnerabilityAssessmentName The name of the vulnerability assessment. * @param ruleId The vulnerability assessment rule ID. * @param baselineName The name of the vulnerability assessment rule baseline (default implies a * baseline on a database level rule and master for server level rule). * @param options The options parameters. */ get( resourceGroupName: string, managedInstanceName: string, databaseName: string, vulnerabilityAssessmentName: VulnerabilityAssessmentName, ruleId: string, baselineName: VulnerabilityAssessmentPolicyBaselineName, options?: ManagedDatabaseVulnerabilityAssessmentRuleBaselinesGetOptionalParams ): Promise { return this.client.sendOperationRequest( { resourceGroupName, managedInstanceName, databaseName, vulnerabilityAssessmentName, ruleId, baselineName, options }, getOperationSpec ); } /** * Creates or updates a database's vulnerability assessment rule baseline. * @param resourceGroupName The name of the resource group that contains the resource. You can obtain * this value from the Azure Resource Manager API or the portal. * @param managedInstanceName The name of the managed instance. * @param databaseName The name of the database for which the vulnerability assessment rule baseline is * defined. * @param vulnerabilityAssessmentName The name of the vulnerability assessment. * @param ruleId The vulnerability assessment rule ID. * @param baselineName The name of the vulnerability assessment rule baseline (default implies a * baseline on a database level rule and master for server level rule). * @param parameters The requested rule baseline resource. * @param options The options parameters. */ createOrUpdate( resourceGroupName: string, managedInstanceName: string, databaseName: string, vulnerabilityAssessmentName: VulnerabilityAssessmentName, ruleId: string, baselineName: VulnerabilityAssessmentPolicyBaselineName, parameters: DatabaseVulnerabilityAssessmentRuleBaseline, options?: ManagedDatabaseVulnerabilityAssessmentRuleBaselinesCreateOrUpdateOptionalParams ): Promise< ManagedDatabaseVulnerabilityAssessmentRuleBaselinesCreateOrUpdateResponse > { return this.client.sendOperationRequest( { resourceGroupName, managedInstanceName, databaseName, vulnerabilityAssessmentName, ruleId, baselineName, parameters, options }, createOrUpdateOperationSpec ); } /** * Removes the database's vulnerability assessment rule baseline. * @param resourceGroupName The name of the resource group that contains the resource. You can obtain * this value from the Azure Resource Manager API or the portal. * @param managedInstanceName The name of the managed instance. * @param databaseName The name of the database for which the vulnerability assessment rule baseline is * defined. * @param vulnerabilityAssessmentName The name of the vulnerability assessment. * @param ruleId The vulnerability assessment rule ID. * @param baselineName The name of the vulnerability assessment rule baseline (default implies a * baseline on a database level rule and master for server level rule). * @param options The options parameters. */ delete( resourceGroupName: string, managedInstanceName: string, databaseName: string, vulnerabilityAssessmentName: VulnerabilityAssessmentName, ruleId: string, baselineName: VulnerabilityAssessmentPolicyBaselineName, options?: ManagedDatabaseVulnerabilityAssessmentRuleBaselinesDeleteOptionalParams ): Promise { return this.client.sendOperationRequest( { resourceGroupName, managedInstanceName, databaseName, vulnerabilityAssessmentName, ruleId, baselineName, options }, deleteOperationSpec ); } } // Operation Specifications const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); const getOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/databases/{databaseName}/vulnerabilityAssessments/{vulnerabilityAssessmentName}/rules/{ruleId}/baselines/{baselineName}", httpMethod: "GET", responses: { 200: { bodyMapper: Mappers.DatabaseVulnerabilityAssessmentRuleBaseline }, default: {} }, queryParameters: [Parameters.apiVersion3], urlParameters: [ Parameters.$host, Parameters.subscriptionId, Parameters.resourceGroupName, Parameters.databaseName, Parameters.vulnerabilityAssessmentName, Parameters.ruleId, Parameters.baselineName, Parameters.managedInstanceName ], headerParameters: [Parameters.accept], serializer }; const createOrUpdateOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/databases/{databaseName}/vulnerabilityAssessments/{vulnerabilityAssessmentName}/rules/{ruleId}/baselines/{baselineName}", httpMethod: "PUT", responses: { 200: { bodyMapper: Mappers.DatabaseVulnerabilityAssessmentRuleBaseline }, default: {} }, requestBody: Parameters.parameters15, queryParameters: [Parameters.apiVersion3], urlParameters: [ Parameters.$host, Parameters.subscriptionId, Parameters.resourceGroupName, Parameters.databaseName, Parameters.vulnerabilityAssessmentName, Parameters.ruleId, Parameters.baselineName, Parameters.managedInstanceName ], headerParameters: [Parameters.contentType, Parameters.accept], mediaType: "json", serializer }; const deleteOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/databases/{databaseName}/vulnerabilityAssessments/{vulnerabilityAssessmentName}/rules/{ruleId}/baselines/{baselineName}", httpMethod: "DELETE", responses: { 200: {}, default: {} }, queryParameters: [Parameters.apiVersion3], urlParameters: [ Parameters.$host, Parameters.subscriptionId, Parameters.resourceGroupName, Parameters.databaseName, Parameters.vulnerabilityAssessmentName, Parameters.ruleId, Parameters.baselineName, Parameters.managedInstanceName ], serializer };