From 94c3540dada40e656c48ec79e0065b72456f4b07 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Fri, 18 Jun 2021 06:25:17 +0000 Subject: [PATCH] CodeGen from PR 14889 in Azure/azure-rest-api-specs Merge 64588411f8484de0a3f35f279f5a4852a1d94049 into a6302e8490871f3619de9cd7001fd5f9cba887bf --- sdk/kusto/arm-kusto/README.md | 119 +- sdk/kusto/arm-kusto/package.json | 7 +- sdk/kusto/arm-kusto/rollup.config.js | 10 +- .../arm-kusto/src/kustoManagementClient.ts | 15 +- .../src/kustoManagementClientContext.ts | 29 +- sdk/kusto/arm-kusto/src/models/index.ts | 1334 ++++++++--------- sdk/kusto/arm-kusto/src/models/mappers.ts | 31 +- .../src/models/operationsResultsMappers.ts | 6 +- sdk/kusto/arm-kusto/src/models/parameters.ts | 12 +- .../attachedDatabaseConfigurations.ts | 171 +-- .../operations/clusterPrincipalAssignments.ts | 219 +-- .../arm-kusto/src/operations/clusters.ts | 684 ++++----- .../src/operations/dataConnections.ts | 308 ++-- .../databasePrincipalAssignments.ts | 227 +-- .../arm-kusto/src/operations/databases.ts | 402 ++--- .../arm-kusto/src/operations/operations.ts | 58 +- .../src/operations/operationsResults.ts | 46 +- sdk/kusto/arm-kusto/src/operations/scripts.ts | 265 +--- 18 files changed, 1521 insertions(+), 2422 deletions(-) diff --git a/sdk/kusto/arm-kusto/README.md b/sdk/kusto/arm-kusto/README.md index ecc394710389..d18102cbd6fd 100644 --- a/sdk/kusto/arm-kusto/README.md +++ b/sdk/kusto/arm-kusto/README.md @@ -1,67 +1,73 @@ ## Azure KustoManagementClient SDK for JavaScript -This package contains an isomorphic SDK for KustoManagementClient. +This package contains an isomorphic SDK (runs both in node.js and in browsers) for KustoManagementClient. ### Currently supported environments -- Node.js version 6.x.x or higher -- Browser JavaScript +- [LTS versions of Node.js](https://nodejs.org/about/releases/) +- Latest versions of Safari, Chrome, Edge and Firefox. -### How to Install +### Prerequisites +You must have an [Azure subscription](https://azure.microsoft.com/free/). + +### How to install + +To use this SDK in your project, you will need to install two packages. +- `@azure/arm-kusto` that contains the client. +- `@azure/identity` that provides different mechanisms for the client to authenticate your requests using Azure Active Directory. + +Install both packages using the below command: ```bash -npm install @azure/arm-kusto +npm install --save @azure/arm-kusto @azure/identity ``` +> **Note**: You may have used either `@azure/ms-rest-nodeauth` or `@azure/ms-rest-browserauth` in the past. These packages are in maintenance mode receiving critical bug fixes, but no new features. +If you are on a [Node.js that has LTS status](https://nodejs.org/about/releases/), or are writing a client side browser application, we strongly encourage you to upgrade to `@azure/identity` which uses the latest versions of Azure Active Directory and MSAL APIs and provides more authentication options. ### How to use -#### nodejs - client creation and get clusters as an example written in TypeScript. +- If you are writing a client side browser application, + - Follow the instructions in the section on Authenticating client side browser applications in [Azure Identity examples](https://aka.ms/azsdk/js/identity/examples) to register your application in the Microsoft identity platform and set the right permissions. + - Copy the client ID and tenant ID from the Overview section of your app registration in Azure portal and use it in the browser sample below. +- If you are writing a server side application, + - [Select a credential from `@azure/identity` based on the authentication method of your choice](https://aka.ms/azsdk/js/identity/examples) + - Complete the set up steps required by the credential if any. + - Use the credential you picked in the place of `DefaultAzureCredential` in the Node.js sample below. -##### Install @azure/ms-rest-nodeauth - -- Please install minimum version of `"@azure/ms-rest-nodeauth": "^3.0.0"`. - -```bash -npm install @azure/ms-rest-nodeauth@"^3.0.0" -``` +In the below samples, we pass the credential and the Azure subscription id to instantiate the client. +Once the client is created, explore the operations on it either in your favorite editor or in our [API reference documentation](https://docs.microsoft.com/javascript/api) to get started. +#### nodejs - Authentication, client creation, and get clusters as an example written in JavaScript. ##### Sample code -While the below sample uses the interactive login, other authentication options can be found in the [README.md file of @azure/ms-rest-nodeauth](https://www.npmjs.com/package/@azure/ms-rest-nodeauth) package - -```typescript -const msRestNodeAuth = require("@azure/ms-rest-nodeauth"); +```javascript +const { DefaultAzureCredential } = require("@azure/identity"); const { KustoManagementClient } = require("@azure/arm-kusto"); const subscriptionId = process.env["AZURE_SUBSCRIPTION_ID"]; -msRestNodeAuth - .interactiveLogin() - .then((creds) => { - const client = new KustoManagementClient(creds, subscriptionId); - const resourceGroupName = "testresourceGroupName"; - const clusterName = "testclusterName"; - client.clusters.get(resourceGroupName, clusterName).then((result) => { - console.log("The result is:"); - console.log(result); - }); - }) - .catch((err) => { - console.error(err); - }); +// Use `DefaultAzureCredential` or any other credential of your choice based on https://aka.ms/azsdk/js/identity/examples +// Please note that you can also use credentials from the `@azure/ms-rest-nodeauth` package instead. +const creds = new DefaultAzureCredential(); +const client = new KustoManagementClient(creds, subscriptionId); +const resourceGroupName = "testresourceGroupName"; +const clusterName = "testclusterName"; +client.clusters.get(resourceGroupName, clusterName).then((result) => { + console.log("The result is:"); + console.log(result); +}).catch((err) => { + console.log("An error occurred:"); + console.error(err); +}); ``` -#### browser - Authentication, client creation and get clusters as an example written in JavaScript. - -##### Install @azure/ms-rest-browserauth +#### browser - Authentication, client creation, and get clusters as an example written in JavaScript. -```bash -npm install @azure/ms-rest-browserauth -``` +In browser applications, we recommend using the `InteractiveBrowserCredential` that interactively authenticates using the default system browser. + - See [Single-page application: App registration guide](https://docs.microsoft.com/azure/active-directory/develop/scenario-spa-app-registration) to configure your app registration for the browser. + - Note down the client Id from the previous step and use it in the browser sample below. ##### Sample code -See https://github.com/Azure/ms-rest-browserauth to learn how to authenticate to Azure in the browser. - - index.html ```html @@ -69,34 +75,27 @@ See https://github.com/Azure/ms-rest-browserauth to learn how to authenticate to @azure/arm-kusto sample - - + diff --git a/sdk/kusto/arm-kusto/package.json b/sdk/kusto/arm-kusto/package.json index 1eef0eb6fb97..d3f3c8550191 100644 --- a/sdk/kusto/arm-kusto/package.json +++ b/sdk/kusto/arm-kusto/package.json @@ -4,8 +4,9 @@ "description": "KustoManagementClient Library with typescript type definitions for node.js and browser.", "version": "6.1.0", "dependencies": { - "@azure/ms-rest-azure-js": "^2.0.1", - "@azure/ms-rest-js": "^2.0.4", + "@azure/ms-rest-azure-js": "^2.1.0", + "@azure/ms-rest-js": "^2.2.0", + "@azure/core-auth": "^1.1.4", "tslib": "^1.10.0" }, "keywords": [ @@ -20,7 +21,7 @@ "module": "./esm/kustoManagementClient.js", "types": "./esm/kustoManagementClient.d.ts", "devDependencies": { - "typescript": "^3.5.3", + "typescript": "^3.6.0", "rollup": "^1.18.0", "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-sourcemaps": "^0.4.2", diff --git a/sdk/kusto/arm-kusto/rollup.config.js b/sdk/kusto/arm-kusto/rollup.config.js index 23dfac7c4530..7cdacd3bd768 100644 --- a/sdk/kusto/arm-kusto/rollup.config.js +++ b/sdk/kusto/arm-kusto/rollup.config.js @@ -7,7 +7,10 @@ import sourcemaps from "rollup-plugin-sourcemaps"; */ const config = { input: "./esm/kustoManagementClient.js", - external: ["@azure/ms-rest-js", "@azure/ms-rest-azure-js"], + external: [ + "@azure/ms-rest-js", + "@azure/ms-rest-azure-js" + ], output: { file: "./dist/arm-kusto.js", format: "umd", @@ -25,7 +28,10 @@ const config = { * Changes may cause incorrect behavior and will be lost if the code is regenerated. */` }, - plugins: [nodeResolve({ mainFields: ["module", "main"] }), sourcemaps()] + plugins: [ + nodeResolve({ mainFields: ['module', 'main'] }), + sourcemaps() + ] }; export default config; diff --git a/sdk/kusto/arm-kusto/src/kustoManagementClient.ts b/sdk/kusto/arm-kusto/src/kustoManagementClient.ts index 9131be10fd4c..dc45b57c6ede 100644 --- a/sdk/kusto/arm-kusto/src/kustoManagementClient.ts +++ b/sdk/kusto/arm-kusto/src/kustoManagementClient.ts @@ -8,11 +8,13 @@ */ import * as msRest from "@azure/ms-rest-js"; +import { TokenCredential } from "@azure/core-auth"; import * as Models from "./models"; import * as Mappers from "./models/mappers"; import * as operations from "./operations"; import { KustoManagementClientContext } from "./kustoManagementClientContext"; + class KustoManagementClient extends KustoManagementClientContext { // Operation groups clusters: operations.Clusters; @@ -27,16 +29,17 @@ class KustoManagementClient extends KustoManagementClientContext { /** * Initializes a new instance of the KustoManagementClient class. - * @param credentials Credentials needed for the client to connect to Azure. + * @param credentials Credentials needed for the client to connect to Azure. Credentials + * implementing the TokenCredential interface from the @azure/identity package are recommended. For + * more information about these credentials, see + * {@link https://www.npmjs.com/package/@azure/identity}. Credentials implementing the + * ServiceClientCredentials interface from the older packages @azure/ms-rest-nodeauth and + * @azure/ms-rest-browserauth are also supported. * @param subscriptionId Gets subscription credentials which uniquely identify Microsoft Azure * subscription. The subscription ID forms part of the URI for every service call. * @param [options] The parameter options */ - constructor( - credentials: msRest.ServiceClientCredentials, - subscriptionId: string, - options?: Models.KustoManagementClientOptions - ) { + constructor(credentials: msRest.ServiceClientCredentials | TokenCredential, subscriptionId: string, options?: Models.KustoManagementClientOptions) { super(credentials, subscriptionId, options); this.clusters = new operations.Clusters(this); this.clusterPrincipalAssignments = new operations.ClusterPrincipalAssignments(this); diff --git a/sdk/kusto/arm-kusto/src/kustoManagementClientContext.ts b/sdk/kusto/arm-kusto/src/kustoManagementClientContext.ts index c7cc3b8f0a69..e59c0bc1b1e9 100644 --- a/sdk/kusto/arm-kusto/src/kustoManagementClientContext.ts +++ b/sdk/kusto/arm-kusto/src/kustoManagementClientContext.ts @@ -10,32 +10,34 @@ import * as Models from "./models"; import * as msRest from "@azure/ms-rest-js"; import * as msRestAzure from "@azure/ms-rest-azure-js"; +import { TokenCredential } from "@azure/core-auth"; const packageName = "@azure/arm-kusto"; const packageVersion = "6.1.0"; export class KustoManagementClientContext extends msRestAzure.AzureServiceClient { - credentials: msRest.ServiceClientCredentials; + credentials: msRest.ServiceClientCredentials | TokenCredential; subscriptionId: string; apiVersion?: string; /** * Initializes a new instance of the KustoManagementClient class. - * @param credentials Credentials needed for the client to connect to Azure. + * @param credentials Credentials needed for the client to connect to Azure. Credentials + * implementing the TokenCredential interface from the @azure/identity package are recommended. For + * more information about these credentials, see + * {@link https://www.npmjs.com/package/@azure/identity}. Credentials implementing the + * ServiceClientCredentials interface from the older packages @azure/ms-rest-nodeauth and + * @azure/ms-rest-browserauth are also supported. * @param subscriptionId Gets subscription credentials which uniquely identify Microsoft Azure * subscription. The subscription ID forms part of the URI for every service call. * @param [options] The parameter options */ - constructor( - credentials: msRest.ServiceClientCredentials, - subscriptionId: string, - options?: Models.KustoManagementClientOptions - ) { + constructor(credentials: msRest.ServiceClientCredentials | TokenCredential, subscriptionId: string, options?: Models.KustoManagementClientOptions) { if (credentials == undefined) { - throw new Error("'credentials' cannot be null."); + throw new Error('\'credentials\' cannot be null.'); } if (subscriptionId == undefined) { - throw new Error("'subscriptionId' cannot be null."); + throw new Error('\'subscriptionId\' cannot be null.'); } if (!options) { @@ -48,8 +50,8 @@ export class KustoManagementClientContext extends msRestAzure.AzureServiceClient super(credentials, options); - this.apiVersion = "2021-01-01"; - this.acceptLanguage = "en-US"; + this.apiVersion = '2021-01-01'; + this.acceptLanguage = 'en-US'; this.longRunningOperationRetryTimeout = 30; this.baseUri = options.baseUri || this.baseUri || "https://management.azure.com"; this.requestContentType = "application/json; charset=utf-8"; @@ -59,10 +61,7 @@ export class KustoManagementClientContext extends msRestAzure.AzureServiceClient if (options.acceptLanguage !== null && options.acceptLanguage !== undefined) { this.acceptLanguage = options.acceptLanguage; } - if ( - options.longRunningOperationRetryTimeout !== null && - options.longRunningOperationRetryTimeout !== undefined - ) { + if (options.longRunningOperationRetryTimeout !== null && options.longRunningOperationRetryTimeout !== undefined) { this.longRunningOperationRetryTimeout = options.longRunningOperationRetryTimeout; } } diff --git a/sdk/kusto/arm-kusto/src/models/index.ts b/sdk/kusto/arm-kusto/src/models/index.ts index b46cd739e509..8092fe6ef4de 100644 --- a/sdk/kusto/arm-kusto/src/models/index.ts +++ b/sdk/kusto/arm-kusto/src/models/index.ts @@ -516,7 +516,8 @@ export interface ClusterUpdate extends Resource { * and a location * @summary Proxy Resource */ -export interface ProxyResource extends Resource {} +export interface ProxyResource extends Resource { +} /** * Class representing an attached database configuration. @@ -907,11 +908,7 @@ export interface FollowerDatabaseDefinition { /** * Contains the possible cases for DataConnection. */ -export type DataConnectionUnion = - | DataConnection - | EventHubDataConnection - | IotHubDataConnection - | EventGridDataConnection; +export type DataConnectionUnion = DataConnection | EventHubDataConnection | IotHubDataConnection | EventGridDataConnection; /** * Class representing an data connection. @@ -1477,85 +1474,96 @@ export interface KustoManagementClientOptions extends AzureServiceClientOptions * The list Kusto database principals operation response. * @extends Array */ -export interface FollowerDatabaseListResult extends Array {} +export interface FollowerDatabaseListResult extends Array { +} /** * @interface * The list Kusto clusters operation response. * @extends Array */ -export interface ClusterListResult extends Array {} +export interface ClusterListResult extends Array { +} /** * @interface * The list of the EngagementFabric SKU descriptions * @extends Array */ -export interface SkuDescriptionList extends Array {} +export interface SkuDescriptionList extends Array { +} /** * @interface * List of available SKUs for a Kusto Cluster. * @extends Array */ -export interface ListResourceSkusResult extends Array {} +export interface ListResourceSkusResult extends Array { +} /** * @interface * The list of language extension objects. * @extends Array */ -export interface LanguageExtensionsList extends Array {} +export interface LanguageExtensionsList extends Array { +} /** * @interface * The list Kusto cluster principal assignments operation response. * @extends Array */ -export interface ClusterPrincipalAssignmentListResult extends Array {} +export interface ClusterPrincipalAssignmentListResult extends Array { +} /** * @interface * The list Kusto databases operation response. * @extends Array */ -export interface DatabaseListResult extends Array {} +export interface DatabaseListResult extends Array { +} /** * @interface * The list Kusto database principals operation response. * @extends Array */ -export interface DatabasePrincipalListResult extends Array {} +export interface DatabasePrincipalListResult extends Array { +} /** * @interface * The list Kusto database principal assignments operation response. * @extends Array */ -export interface DatabasePrincipalAssignmentListResult extends Array {} +export interface DatabasePrincipalAssignmentListResult extends Array { +} /** * @interface * The list Kusto database script operation response. * @extends Array