From e7536f4864887fa2bf86cc3106e1265cc00d6760 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Fri, 20 Oct 2023 17:54:32 +0000 Subject: [PATCH] CodeGen from PR 26325 in Azure/azure-rest-api-specs Merge 04c8aefe9907f0a8ab5c30608ceedbc49955caa1 into e6d90862a97c4f04f0c26a8869602bbfd8b10280 --- common/config/rush/pnpm-lock.yaml | 44 +- sdk/dashboard/arm-dashboard/CHANGELOG.md | 79 +- sdk/dashboard/arm-dashboard/_meta.json | 8 +- sdk/dashboard/arm-dashboard/package.json | 41 +- .../arm-dashboard/review/arm-dashboard.api.md | 313 +++++++- sdk/dashboard/arm-dashboard/rollup.config.js | 122 +++ .../src/dashboardManagementClient.ts | 12 +- sdk/dashboard/arm-dashboard/src/lroImpl.ts | 54 +- .../arm-dashboard/src/models/index.ts | 420 +++++++++- .../arm-dashboard/src/models/mappers.ts | 631 +++++++++++++++ .../arm-dashboard/src/models/parameters.ts | 27 +- .../arm-dashboard/src/operations/grafana.ts | 143 +++- .../arm-dashboard/src/operations/index.ts | 1 + .../src/operations/managedPrivateEndpoints.ts | 756 ++++++++++++++++++ .../operations/privateEndpointConnections.ts | 94 ++- .../src/operationsInterfaces/grafana.ts | 36 +- .../src/operationsInterfaces/index.ts | 1 + .../managedPrivateEndpoints.ts | 170 ++++ .../privateEndpointConnections.ts | 18 +- sdk/dashboard/arm-dashboard/tsconfig.json | 10 +- 20 files changed, 2815 insertions(+), 165 deletions(-) create mode 100644 sdk/dashboard/arm-dashboard/rollup.config.js create mode 100644 sdk/dashboard/arm-dashboard/src/operations/managedPrivateEndpoints.ts create mode 100644 sdk/dashboard/arm-dashboard/src/operationsInterfaces/managedPrivateEndpoints.ts diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 028b409889dd..61d68695d0e4 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -2711,7 +2711,7 @@ packages: /@types/express-serve-static-core@4.17.38: resolution: {integrity: sha512-hXOtc0tuDHZPFwwhuBJXPbjemWtXnJjbvuuyNH2Y5Z6in+iXc63c4eXYDc7GGGqHy+iwYqAJMdaItqdnbcBKmg==} dependencies: - '@types/node': 16.18.58 + '@types/node': 18.18.6 '@types/qs': 6.9.8 '@types/range-parser': 1.2.5 '@types/send': 0.17.2 @@ -2729,7 +2729,7 @@ packages: /@types/fs-extra@8.1.3: resolution: {integrity: sha512-7IdV01N0u/CaVO0fuY1YmEg14HQN3+EW8mpNgg6NEfxEl/lzCa5OxlBu3iFsCAdamnYOcTQ7oEi43Xc/67Rgzw==} dependencies: - '@types/node': 16.18.58 + '@types/node': 18.18.6 dev: false /@types/fs-extra@9.0.13: @@ -2752,7 +2752,7 @@ packages: /@types/is-buffer@2.0.0: resolution: {integrity: sha512-0f7N/e3BAz32qDYvgB4d2cqv1DqUwvGxHkXsrucICn8la1Vb6Yl6Eg8mPScGwUiqHJeE7diXlzaK+QMA9m4Gxw==} dependencies: - '@types/node': 16.18.58 + '@types/node': 18.18.6 dev: false /@types/json-schema@7.0.13: @@ -2766,13 +2766,13 @@ packages: /@types/jsonwebtoken@9.0.3: resolution: {integrity: sha512-b0jGiOgHtZ2jqdPgPnP6WLCXZk1T8p06A/vPGzUvxpFGgKMbjXJDjC5m52ErqBnIuWZFgGoIJyRdeG5AyreJjA==} dependencies: - '@types/node': 16.18.58 + '@types/node': 18.18.6 dev: false /@types/jws@3.2.6: resolution: {integrity: sha512-SVbs88FPvGVMj19JYVOV+NpWu3HO5LUjz0+z6ks/rdRbrWlxs6fBz6Qxb/PKalZaweJisPyfikeoPu8VlpljQQ==} dependencies: - '@types/node': 16.18.58 + '@types/node': 18.18.6 dev: false /@types/linkify-it@3.0.3: @@ -2823,13 +2823,13 @@ packages: /@types/mysql@2.15.22: resolution: {integrity: sha512-wK1pzsJVVAjYCSZWQoWHziQZbNggXFDUEIGf54g4ZM/ERuP86uGdWeKZWMYlqTPMZfHJJvLPyogXGvCOg87yLQ==} dependencies: - '@types/node': 16.18.58 + '@types/node': 18.18.6 dev: false /@types/node-fetch@2.6.6: resolution: {integrity: sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==} dependencies: - '@types/node': 16.18.58 + '@types/node': 18.18.6 form-data: 4.0.0 dev: false @@ -2854,7 +2854,7 @@ packages: /@types/pg@8.6.1: resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} dependencies: - '@types/node': 16.18.58 + '@types/node': 18.18.6 pg-protocol: 1.6.0 pg-types: 2.2.0 dev: false @@ -2933,7 +2933,7 @@ packages: /@types/stoppable@1.1.1: resolution: {integrity: sha512-b8N+fCADRIYYrGZOcmOR8ZNBOqhktWTB/bMUl5LvGtT201QKJZOOH5UsFyI3qtteM6ZAJbJqZoBcLqqxKIwjhw==} dependencies: - '@types/node': 16.18.58 + '@types/node': 18.18.6 dev: false /@types/through@0.0.31: @@ -2953,7 +2953,7 @@ packages: /@types/tunnel@0.0.3: resolution: {integrity: sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==} dependencies: - '@types/node': 16.18.58 + '@types/node': 18.18.6 dev: false /@types/underscore@1.11.11: @@ -2983,7 +2983,7 @@ packages: /@types/xml2js@0.4.12: resolution: {integrity: sha512-CZPpQKBZ8db66EP5hCjwvYrLThgZvnyZrPXK2W+UI1oOaWezGt34iOaUCX4Jah2X8+rQqjvl9VKEIT8TR1I0rA==} dependencies: - '@types/node': 16.18.58 + '@types/node': 18.18.6 dev: false /@types/yargs-parser@21.0.1: @@ -4254,7 +4254,7 @@ packages: dependencies: semver: 7.5.4 shelljs: 0.8.5 - typescript: 5.3.0-dev.20231019 + typescript: 5.3.0-dev.20231020 dev: false /eastasianwidth@0.2.0: @@ -7530,7 +7530,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 16.18.58 + '@types/node': 18.18.6 long: 5.2.3 dev: false @@ -8846,8 +8846,8 @@ packages: hasBin: true dev: false - /typescript@5.3.0-dev.20231019: - resolution: {integrity: sha512-fdexB8vj46ZSMsAg6g5aSNjThPegwT73WYwNM1DLmEnt0+fKPmmyft3LzfUR1CMHtcQNic5hl+0FeNTv7l232Q==} + /typescript@5.3.0-dev.20231020: + resolution: {integrity: sha512-7C4VN/XIuL4MDSf06bSrCHUL4bZq8RMt58jZ5DdwoGZmBlnPE2YEm1gxygeUws72yvvlJJzU3BL89RMQjg7R9Q==} engines: {node: '>=14.17'} hasBin: true dev: false @@ -11302,19 +11302,27 @@ packages: dev: false file:projects/arm-dashboard.tgz: - resolution: {integrity: sha512-SOrHFkkAZbTCDiHsQtWD4Wh+u+YUgY2/wdFZ5AYYGwTDU0K3zukl5WQmroe4bjOm261byjcPLuhqcM7CdsvnIA==, tarball: file:projects/arm-dashboard.tgz} + resolution: {integrity: sha512-aWAPgl9oS4qjLem57H363vam89JTufwJsEo42XbmfQCOs0FCeVzBQ9R4mqxeqptrGiuFPbRv07Iy6ck/xt2BnQ==, tarball: file:projects/arm-dashboard.tgz} name: '@rush-temp/arm-dashboard' version: 0.0.0 dependencies: '@microsoft/api-extractor': 7.38.0(@types/node@16.18.58) + '@rollup/plugin-commonjs': 24.1.0(rollup@2.79.1) + '@rollup/plugin-json': 6.0.1(rollup@2.79.1) + '@rollup/plugin-multi-entry': 6.0.1(rollup@2.79.1) + '@rollup/plugin-node-resolve': 13.3.0(rollup@2.79.1) '@types/chai': 4.3.9 + '@types/mocha': 10.0.2 '@types/node': 16.18.58 chai: 4.3.10 cross-env: 7.0.3 dotenv: 16.3.1 - mkdirp: 1.0.4 + esm: 3.2.25 + mkdirp: 2.1.6 mocha: 10.2.0 - rimraf: 3.0.2 + rimraf: 5.0.5 + rollup: 2.79.1 + rollup-plugin-sourcemaps: 0.6.3(@types/node@16.18.58)(rollup@2.79.1) ts-node: 10.9.1(@types/node@16.18.58)(typescript@5.0.4) tslib: 2.6.2 typescript: 5.0.4 diff --git a/sdk/dashboard/arm-dashboard/CHANGELOG.md b/sdk/dashboard/arm-dashboard/CHANGELOG.md index 34f6d92232a8..642b316ff491 100644 --- a/sdk/dashboard/arm-dashboard/CHANGELOG.md +++ b/sdk/dashboard/arm-dashboard/CHANGELOG.md @@ -1,15 +1,72 @@ # Release History + +## 1.1.0 (2023-10-20) + +**Features** -## 1.0.2 (Unreleased) - -### Features Added - -### Breaking Changes - -### Bugs Fixed - -### Other Changes - + - Added operation group ManagedPrivateEndpoints + - Added operation Grafana.checkEnterpriseDetails + - Added operation Grafana.fetchAvailablePlugins + - Added Interface EnterpriseConfigurations + - Added Interface EnterpriseDetails + - Added Interface GrafanaAvailablePlugin + - Added Interface GrafanaAvailablePluginListResponse + - Added Interface GrafanaCheckEnterpriseDetailsOptionalParams + - Added Interface GrafanaConfigurations + - Added Interface GrafanaCreateHeaders + - Added Interface GrafanaDeleteHeaders + - Added Interface GrafanaFetchAvailablePluginsOptionalParams + - Added Interface GrafanaPlugin + - Added Interface GrafanaUpdateHeaders + - Added Interface ManagedPrivateEndpointConnectionState + - Added Interface ManagedPrivateEndpointModel + - Added Interface ManagedPrivateEndpointModelListResponse + - Added Interface ManagedPrivateEndpointsCreateHeaders + - Added Interface ManagedPrivateEndpointsCreateOptionalParams + - Added Interface ManagedPrivateEndpointsDeleteHeaders + - Added Interface ManagedPrivateEndpointsDeleteOptionalParams + - Added Interface ManagedPrivateEndpointsGetOptionalParams + - Added Interface ManagedPrivateEndpointsListNextOptionalParams + - Added Interface ManagedPrivateEndpointsListOptionalParams + - Added Interface ManagedPrivateEndpointsRefreshHeaders + - Added Interface ManagedPrivateEndpointsRefreshOptionalParams + - Added Interface ManagedPrivateEndpointsUpdateHeaders + - Added Interface ManagedPrivateEndpointsUpdateOptionalParams + - Added Interface ManagedPrivateEndpointUpdateParameters + - Added Interface MarketplaceTrialQuota + - Added Interface PrivateEndpointConnectionsApproveHeaders + - Added Interface PrivateEndpointConnectionsDeleteHeaders + - Added Interface SaasSubscriptionDetails + - Added Interface Smtp + - Added Interface SubscriptionTerm + - Added Interface TrackedResource + - Added Type Alias AvailablePromotion + - Added Type Alias GrafanaCheckEnterpriseDetailsResponse + - Added Type Alias GrafanaFetchAvailablePluginsResponse + - Added Type Alias ManagedPrivateEndpointConnectionStatus + - Added Type Alias ManagedPrivateEndpointsCreateResponse + - Added Type Alias ManagedPrivateEndpointsGetResponse + - Added Type Alias ManagedPrivateEndpointsListNextResponse + - Added Type Alias ManagedPrivateEndpointsListResponse + - Added Type Alias ManagedPrivateEndpointsUpdateResponse + - Added Type Alias MarketplaceAutoRenew + - Added Type Alias PrivateEndpointConnectionsDeleteResponse + - Added Type Alias StartTLSPolicy + - Interface ManagedGrafanaProperties has a new optional parameter enterpriseConfigurations + - Interface ManagedGrafanaProperties has a new optional parameter grafanaConfigurations + - Interface ManagedGrafanaProperties has a new optional parameter grafanaMajorVersion + - Interface ManagedGrafanaProperties has a new optional parameter grafanaPlugins + - Interface ManagedGrafanaPropertiesUpdateParameters has a new optional parameter enterpriseConfigurations + - Interface ManagedGrafanaPropertiesUpdateParameters has a new optional parameter grafanaConfigurations + - Interface ManagedGrafanaPropertiesUpdateParameters has a new optional parameter grafanaMajorVersion + - Interface ManagedGrafanaPropertiesUpdateParameters has a new optional parameter grafanaPlugins + - Interface ManagedGrafanaUpdateParameters has a new optional parameter sku + - Add parameters of PrivateEndpointConnectionsApproveHeaders to TypeAlias PrivateEndpointConnectionsApproveResponse + - Added Enum KnownAvailablePromotion + - Added Enum KnownManagedPrivateEndpointConnectionStatus + - Added Enum KnownMarketplaceAutoRenew + - Added Enum KnownStartTLSPolicy + ## 1.0.1 (2023-01-03) **Features** @@ -22,4 +79,4 @@ ## 1.0.0 (2022-08-15) -The package of @azure/arm-dashboard is using our next generation design principles. To learn more, please refer to our documentation [Quick Start](https://aka.ms/azsdk/js/mgmt/quickstart ). +The package of @azure/arm-dashboard is using our next generation design principles. To learn more, please refer to our documentation [Quick Start](https://aka.ms/js-track2-quickstart). diff --git a/sdk/dashboard/arm-dashboard/_meta.json b/sdk/dashboard/arm-dashboard/_meta.json index 89f0dc8ebf7f..435b048aef80 100644 --- a/sdk/dashboard/arm-dashboard/_meta.json +++ b/sdk/dashboard/arm-dashboard/_meta.json @@ -1,8 +1,8 @@ { - "commit": "c1eacd86904b1720511b3f4e683f54d8999c125a", + "commit": "31410201ec0d7c04df35e33221baa87bfc03cb63", "readme": "specification/dashboard/resource-manager/readme.md", - "autorest_command": "autorest --version=3.9.3 --typescript --modelerfour.lenient-model-deduplication --azure-arm --head-as-boolean=true --license-header=MICROSOFT_MIT_NO_VERSION --generate-test --typescript-sdks-folder=F:\\azure-sdk-for-js ..\\azure-rest-api-specs\\specification\\dashboard\\resource-manager\\readme.md --use=@autorest/typescript@6.0.0-rc.5.20221215.1 --generate-sample=true", + "autorest_command": "autorest --version=3.9.7 --typescript --modelerfour.lenient-model-deduplication --azure-arm --head-as-boolean=true --license-header=MICROSOFT_MIT_NO_VERSION --generate-test --typescript-sdks-folder=/mnt/vss/_work/1/s/azure-sdk-for-js ../azure-rest-api-specs/specification/dashboard/resource-manager/readme.md --use=@autorest/typescript@^6.0.11", "repository_url": "https://github.com/Azure/azure-rest-api-specs.git", - "release_tool": "@azure-tools/js-sdk-release-tools@2.5.4", - "use": "@autorest/typescript@6.0.0-rc.5.20221215.1" + "release_tool": "@azure-tools/js-sdk-release-tools@2.7.2", + "use": "@autorest/typescript@^6.0.11" } \ No newline at end of file diff --git a/sdk/dashboard/arm-dashboard/package.json b/sdk/dashboard/arm-dashboard/package.json index 53e39eadce51..17fc8d967192 100644 --- a/sdk/dashboard/arm-dashboard/package.json +++ b/sdk/dashboard/arm-dashboard/package.json @@ -3,17 +3,17 @@ "sdk-type": "mgmt", "author": "Microsoft Corporation", "description": "A generated SDK for DashboardManagementClient.", - "version": "1.0.2", + "version": "1.1.0", "engines": { "node": ">=16.0.0" }, "dependencies": { - "@azure/core-lro": "^2.2.0", + "@azure/core-lro": "^2.5.4", "@azure/abort-controller": "^1.0.0", "@azure/core-paging": "^1.2.0", - "@azure/core-client": "^1.6.1", + "@azure/core-client": "^1.7.0", "@azure/core-auth": "^1.3.0", - "@azure/core-rest-pipeline": "^1.8.0", + "@azure/core-rest-pipeline": "^1.12.0", "tslib": "^2.2.0" }, "keywords": [ @@ -29,21 +29,29 @@ "types": "./types/arm-dashboard.d.ts", "devDependencies": { "@microsoft/api-extractor": "^7.31.1", - "mkdirp": "^1.0.4", + "@rollup/plugin-commonjs": "^24.0.0", + "@rollup/plugin-json": "^6.0.0", + "@rollup/plugin-multi-entry": "^6.0.0", + "@rollup/plugin-node-resolve": "^13.1.3", + "mkdirp": "^2.1.2", + "rollup": "^2.66.1", + "rollup-plugin-sourcemaps": "^0.6.3", "typescript": "~5.0.0", "uglify-js": "^3.4.9", - "rimraf": "^3.0.0", + "rimraf": "^5.0.0", "dotenv": "^16.0.0", "@azure/identity": "^3.3.0", "@azure-tools/test-recorder": "^3.0.0", "@azure-tools/test-credential": "^1.0.0", "mocha": "^10.0.0", + "@types/mocha": "^10.0.0", + "esm": "^3.2.18", "@types/chai": "^4.2.8", "chai": "^4.2.0", "cross-env": "^7.0.2", "@types/node": "^16.0.0", - "@azure/dev-tool": "^1.0.0", - "ts-node": "^10.0.0" + "ts-node": "^10.0.0", + "@azure/dev-tool": "^1.0.0" }, "repository": { "type": "git", @@ -64,20 +72,21 @@ "src/**/*.ts", "README.md", "LICENSE", + "rollup.config.js", "tsconfig.json", "review/*", "CHANGELOG.md", "types/*" ], "scripts": { - "build": "npm run clean && tsc && dev-tool run bundle && npm run minify && mkdirp ./review && npm run extract-api", + "build": "npm run clean && tsc && rollup -c 2>&1 && npm run minify && mkdirp ./review && npm run extract-api", "minify": "uglifyjs -c -m --comments --source-map \"content='./dist/index.js.map'\" -o ./dist/index.min.js ./dist/index.js", "prepack": "npm run build", "pack": "npm pack 2>&1", "extract-api": "api-extractor run --local", "lint": "echo skipped", "audit": "echo skipped", - "clean": "rimraf dist dist-browser dist-esm test-dist temp types *.tgz *.log", + "clean": "rimraf --glob dist dist-browser dist-esm test-dist temp types *.tgz *.log", "build:node": "echo skipped", "build:browser": "echo skipped", "build:test": "echo skipped", @@ -105,13 +114,5 @@ ] }, "autoPublish": true, - "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/dashboard/arm-dashboard", - "//sampleConfiguration": { - "productName": "", - "productSlugs": [ - "azure" - ], - "disableDocsMs": true, - "apiRefLink": "https://docs.microsoft.com/javascript/api/@azure/arm-dashboard?view=azure-node-preview" - } -} + "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/dashboard/arm-dashboard" +} \ No newline at end of file diff --git a/sdk/dashboard/arm-dashboard/review/arm-dashboard.api.md b/sdk/dashboard/arm-dashboard/review/arm-dashboard.api.md index 6d1e03af9502..4bb845b3b21a 100644 --- a/sdk/dashboard/arm-dashboard/review/arm-dashboard.api.md +++ b/sdk/dashboard/arm-dashboard/review/arm-dashboard.api.md @@ -6,9 +6,9 @@ import * as coreAuth from '@azure/core-auth'; import * as coreClient from '@azure/core-client'; +import { OperationState } from '@azure/core-lro'; import { PagedAsyncIterableIterator } from '@azure/core-paging'; -import { PollerLike } from '@azure/core-lro'; -import { PollOperationState } from '@azure/core-lro'; +import { SimplePollerLike } from '@azure/core-lro'; // @public export type ActionType = string; @@ -19,6 +19,9 @@ export type ApiKey = string; // @public export type AutoGeneratedDomainNameLabelScope = string; +// @public +export type AvailablePromotion = string; + // @public export interface AzureMonitorWorkspaceIntegration { azureMonitorWorkspaceResourceId?: string; @@ -37,6 +40,8 @@ export class DashboardManagementClient extends coreClient.ServiceClient { // (undocumented) grafana: Grafana; // (undocumented) + managedPrivateEndpoints: ManagedPrivateEndpoints; + // (undocumented) operations: Operations; // (undocumented) privateEndpointConnections: PrivateEndpointConnections; @@ -56,6 +61,18 @@ export interface DashboardManagementClientOptionalParams extends coreClient.Serv // @public export type DeterministicOutboundIP = string; +// @public +export interface EnterpriseConfigurations { + marketplaceAutoRenew?: MarketplaceAutoRenew; + marketplacePlanId?: string; +} + +// @public +export interface EnterpriseDetails { + marketplaceTrialQuota?: MarketplaceTrialQuota; + saasSubscriptionDetails?: SaasSubscriptionDetails; +} + // @public export interface ErrorAdditionalInfo { readonly info?: Record; @@ -81,16 +98,50 @@ export function getContinuationToken(page: unknown): string | undefined; // @public export interface Grafana { - beginCreate(resourceGroupName: string, workspaceName: string, requestBodyParameters: ManagedGrafana, options?: GrafanaCreateOptionalParams): Promise, GrafanaCreateResponse>>; + beginCreate(resourceGroupName: string, workspaceName: string, requestBodyParameters: ManagedGrafana, options?: GrafanaCreateOptionalParams): Promise, GrafanaCreateResponse>>; beginCreateAndWait(resourceGroupName: string, workspaceName: string, requestBodyParameters: ManagedGrafana, options?: GrafanaCreateOptionalParams): Promise; - beginDelete(resourceGroupName: string, workspaceName: string, options?: GrafanaDeleteOptionalParams): Promise, void>>; + beginDelete(resourceGroupName: string, workspaceName: string, options?: GrafanaDeleteOptionalParams): Promise, void>>; beginDeleteAndWait(resourceGroupName: string, workspaceName: string, options?: GrafanaDeleteOptionalParams): Promise; + checkEnterpriseDetails(resourceGroupName: string, workspaceName: string, options?: GrafanaCheckEnterpriseDetailsOptionalParams): Promise; + // (undocumented) + fetchAvailablePlugins(resourceGroupName: string, workspaceName: string, options?: GrafanaFetchAvailablePluginsOptionalParams): Promise; get(resourceGroupName: string, workspaceName: string, options?: GrafanaGetOptionalParams): Promise; list(options?: GrafanaListOptionalParams): PagedAsyncIterableIterator; listByResourceGroup(resourceGroupName: string, options?: GrafanaListByResourceGroupOptionalParams): PagedAsyncIterableIterator; update(resourceGroupName: string, workspaceName: string, requestBodyParameters: ManagedGrafanaUpdateParameters, options?: GrafanaUpdateOptionalParams): Promise; } +// @public +export interface GrafanaAvailablePlugin { + readonly name?: string; + readonly pluginId?: string; +} + +// @public (undocumented) +export interface GrafanaAvailablePluginListResponse { + // (undocumented) + nextLink?: string; + // (undocumented) + value?: GrafanaAvailablePlugin[]; +} + +// @public +export interface GrafanaCheckEnterpriseDetailsOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type GrafanaCheckEnterpriseDetailsResponse = EnterpriseDetails; + +// @public +export interface GrafanaConfigurations { + smtp?: Smtp; +} + +// @public +export interface GrafanaCreateHeaders { + azureAsyncOperation?: string; +} + // @public export interface GrafanaCreateOptionalParams extends coreClient.OperationOptions { resumeFrom?: string; @@ -100,12 +151,24 @@ export interface GrafanaCreateOptionalParams extends coreClient.OperationOptions // @public export type GrafanaCreateResponse = ManagedGrafana; +// @public +export interface GrafanaDeleteHeaders { + azureAsyncOperation?: string; +} + // @public export interface GrafanaDeleteOptionalParams extends coreClient.OperationOptions { resumeFrom?: string; updateIntervalInMs?: number; } +// @public +export interface GrafanaFetchAvailablePluginsOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type GrafanaFetchAvailablePluginsResponse = GrafanaAvailablePluginListResponse; + // @public export interface GrafanaGetOptionalParams extends coreClient.OperationOptions { } @@ -147,6 +210,16 @@ export interface GrafanaListOptionalParams extends coreClient.OperationOptions { // @public export type GrafanaListResponse = ManagedGrafanaListResponse; +// @public +export interface GrafanaPlugin { + readonly pluginId?: string; +} + +// @public +export interface GrafanaUpdateHeaders { + azureAsyncOperation?: string; +} + // @public export interface GrafanaUpdateOptionalParams extends coreClient.OperationOptions { } @@ -170,6 +243,12 @@ export enum KnownAutoGeneratedDomainNameLabelScope { TenantReuse = "TenantReuse" } +// @public +export enum KnownAvailablePromotion { + FreeTrial = "FreeTrial", + None = "None" +} + // @public export enum KnownCreatedByType { Application = "Application", @@ -184,6 +263,14 @@ export enum KnownDeterministicOutboundIP { Enabled = "Enabled" } +// @public +export enum KnownManagedPrivateEndpointConnectionStatus { + Approved = "Approved", + Disconnected = "Disconnected", + Pending = "Pending", + Rejected = "Rejected" +} + // @public export enum KnownManagedServiceIdentityType { None = "None", @@ -192,6 +279,12 @@ export enum KnownManagedServiceIdentityType { UserAssigned = "UserAssigned" } +// @public +export enum KnownMarketplaceAutoRenew { + Disabled = "Disabled", + Enabled = "Enabled" +} + // @public export enum KnownOrigin { System = "system", @@ -233,6 +326,13 @@ export enum KnownPublicNetworkAccess { Enabled = "Enabled" } +// @public +export enum KnownStartTLSPolicy { + MandatoryStartTLS = "MandatoryStartTLS", + NoStartTLS = "NoStartTLS", + OpportunisticStartTLS = "OpportunisticStartTLS" +} + // @public export enum KnownZoneRedundancy { Disabled = "Disabled", @@ -268,7 +368,13 @@ export interface ManagedGrafanaProperties { autoGeneratedDomainNameLabelScope?: AutoGeneratedDomainNameLabelScope; deterministicOutboundIP?: DeterministicOutboundIP; readonly endpoint?: string; + enterpriseConfigurations?: EnterpriseConfigurations; + grafanaConfigurations?: GrafanaConfigurations; grafanaIntegrations?: GrafanaIntegrations; + grafanaMajorVersion?: string; + grafanaPlugins?: { + [propertyName: string]: GrafanaPlugin; + }; readonly grafanaVersion?: string; readonly outboundIPs?: string[]; readonly privateEndpointConnections?: PrivateEndpointConnection[]; @@ -281,7 +387,13 @@ export interface ManagedGrafanaProperties { export interface ManagedGrafanaPropertiesUpdateParameters { apiKey?: ApiKey; deterministicOutboundIP?: DeterministicOutboundIP; + enterpriseConfigurations?: EnterpriseConfigurations; + grafanaConfigurations?: GrafanaConfigurations; grafanaIntegrations?: GrafanaIntegrations; + grafanaMajorVersion?: string; + grafanaPlugins?: { + [propertyName: string]: GrafanaPlugin; + }; publicNetworkAccess?: PublicNetworkAccess; zoneRedundancy?: ZoneRedundancy; } @@ -290,6 +402,129 @@ export interface ManagedGrafanaPropertiesUpdateParameters { export interface ManagedGrafanaUpdateParameters { identity?: ManagedServiceIdentity; properties?: ManagedGrafanaPropertiesUpdateParameters; + // (undocumented) + sku?: ResourceSku; + tags?: { + [propertyName: string]: string; + }; +} + +// @public +export interface ManagedPrivateEndpointConnectionState { + readonly description?: string; + readonly status?: ManagedPrivateEndpointConnectionStatus; +} + +// @public +export type ManagedPrivateEndpointConnectionStatus = string; + +// @public +export interface ManagedPrivateEndpointModel extends TrackedResource { + readonly connectionState?: ManagedPrivateEndpointConnectionState; + groupIds?: string[]; + privateLinkResourceId?: string; + privateLinkResourceRegion?: string; + readonly privateLinkServicePrivateIP?: string; + privateLinkServiceUrl?: string; + readonly provisioningState?: ProvisioningState; + requestMessage?: string; +} + +// @public +export interface ManagedPrivateEndpointModelListResponse { + // (undocumented) + nextLink?: string; + // (undocumented) + value?: ManagedPrivateEndpointModel[]; +} + +// @public +export interface ManagedPrivateEndpoints { + beginCreate(resourceGroupName: string, workspaceName: string, managedPrivateEndpointName: string, requestBodyParameters: ManagedPrivateEndpointModel, options?: ManagedPrivateEndpointsCreateOptionalParams): Promise, ManagedPrivateEndpointsCreateResponse>>; + beginCreateAndWait(resourceGroupName: string, workspaceName: string, managedPrivateEndpointName: string, requestBodyParameters: ManagedPrivateEndpointModel, options?: ManagedPrivateEndpointsCreateOptionalParams): Promise; + beginDelete(resourceGroupName: string, workspaceName: string, managedPrivateEndpointName: string, options?: ManagedPrivateEndpointsDeleteOptionalParams): Promise, void>>; + beginDeleteAndWait(resourceGroupName: string, workspaceName: string, managedPrivateEndpointName: string, options?: ManagedPrivateEndpointsDeleteOptionalParams): Promise; + beginRefresh(resourceGroupName: string, workspaceName: string, options?: ManagedPrivateEndpointsRefreshOptionalParams): Promise, void>>; + beginRefreshAndWait(resourceGroupName: string, workspaceName: string, options?: ManagedPrivateEndpointsRefreshOptionalParams): Promise; + beginUpdate(resourceGroupName: string, workspaceName: string, managedPrivateEndpointName: string, requestBodyParameters: ManagedPrivateEndpointUpdateParameters, options?: ManagedPrivateEndpointsUpdateOptionalParams): Promise, ManagedPrivateEndpointsUpdateResponse>>; + beginUpdateAndWait(resourceGroupName: string, workspaceName: string, managedPrivateEndpointName: string, requestBodyParameters: ManagedPrivateEndpointUpdateParameters, options?: ManagedPrivateEndpointsUpdateOptionalParams): Promise; + get(resourceGroupName: string, workspaceName: string, managedPrivateEndpointName: string, options?: ManagedPrivateEndpointsGetOptionalParams): Promise; + list(resourceGroupName: string, workspaceName: string, options?: ManagedPrivateEndpointsListOptionalParams): PagedAsyncIterableIterator; +} + +// @public +export interface ManagedPrivateEndpointsCreateHeaders { + azureAsyncOperation?: string; +} + +// @public +export interface ManagedPrivateEndpointsCreateOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type ManagedPrivateEndpointsCreateResponse = ManagedPrivateEndpointModel; + +// @public +export interface ManagedPrivateEndpointsDeleteHeaders { + azureAsyncOperation?: string; +} + +// @public +export interface ManagedPrivateEndpointsDeleteOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export interface ManagedPrivateEndpointsGetOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type ManagedPrivateEndpointsGetResponse = ManagedPrivateEndpointModel; + +// @public +export interface ManagedPrivateEndpointsListNextOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type ManagedPrivateEndpointsListNextResponse = ManagedPrivateEndpointModelListResponse; + +// @public +export interface ManagedPrivateEndpointsListOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type ManagedPrivateEndpointsListResponse = ManagedPrivateEndpointModelListResponse; + +// @public +export interface ManagedPrivateEndpointsRefreshHeaders { + azureAsyncOperation?: string; +} + +// @public +export interface ManagedPrivateEndpointsRefreshOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export interface ManagedPrivateEndpointsUpdateHeaders { + azureAsyncOperation?: string; +} + +// @public +export interface ManagedPrivateEndpointsUpdateOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type ManagedPrivateEndpointsUpdateResponse = ManagedPrivateEndpointModel; + +// @public +export interface ManagedPrivateEndpointUpdateParameters { tags?: { [propertyName: string]: string; }; @@ -308,6 +543,17 @@ export interface ManagedServiceIdentity { // @public export type ManagedServiceIdentityType = string; +// @public +export type MarketplaceAutoRenew = string; + +// @public +export interface MarketplaceTrialQuota { + availablePromotion?: AvailablePromotion; + grafanaResourceId?: string; + trialEndAt?: Date; + trialStartAt?: Date; +} + // @public export interface Operation { readonly actionType?: ActionType; @@ -377,14 +623,19 @@ export type PrivateEndpointConnectionProvisioningState = string; // @public export interface PrivateEndpointConnections { - beginApprove(resourceGroupName: string, workspaceName: string, privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsApproveOptionalParams): Promise, PrivateEndpointConnectionsApproveResponse>>; + beginApprove(resourceGroupName: string, workspaceName: string, privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsApproveOptionalParams): Promise, PrivateEndpointConnectionsApproveResponse>>; beginApproveAndWait(resourceGroupName: string, workspaceName: string, privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsApproveOptionalParams): Promise; - beginDelete(resourceGroupName: string, workspaceName: string, privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsDeleteOptionalParams): Promise, void>>; - beginDeleteAndWait(resourceGroupName: string, workspaceName: string, privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsDeleteOptionalParams): Promise; + beginDelete(resourceGroupName: string, workspaceName: string, privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsDeleteOptionalParams): Promise, PrivateEndpointConnectionsDeleteResponse>>; + beginDeleteAndWait(resourceGroupName: string, workspaceName: string, privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsDeleteOptionalParams): Promise; get(resourceGroupName: string, workspaceName: string, privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsGetOptionalParams): Promise; list(resourceGroupName: string, workspaceName: string, options?: PrivateEndpointConnectionsListOptionalParams): PagedAsyncIterableIterator; } +// @public +export interface PrivateEndpointConnectionsApproveHeaders { + azureAsyncOperation?: string; +} + // @public export interface PrivateEndpointConnectionsApproveOptionalParams extends coreClient.OperationOptions { body?: PrivateEndpointConnection; @@ -393,7 +644,12 @@ export interface PrivateEndpointConnectionsApproveOptionalParams extends coreCli } // @public -export type PrivateEndpointConnectionsApproveResponse = PrivateEndpointConnection; +export type PrivateEndpointConnectionsApproveResponse = PrivateEndpointConnectionsApproveHeaders & PrivateEndpointConnection; + +// @public +export interface PrivateEndpointConnectionsDeleteHeaders { + azureAsyncOperation?: string; +} // @public export interface PrivateEndpointConnectionsDeleteOptionalParams extends coreClient.OperationOptions { @@ -401,6 +657,9 @@ export interface PrivateEndpointConnectionsDeleteOptionalParams extends coreClie updateIntervalInMs?: number; } +// @public +export type PrivateEndpointConnectionsDeleteResponse = PrivateEndpointConnectionsDeleteHeaders; + // @public export interface PrivateEndpointConnectionsGetOptionalParams extends coreClient.OperationOptions { } @@ -493,6 +752,36 @@ export interface ResourceSku { name: string; } +// @public +export interface SaasSubscriptionDetails { + offerId?: string; + planId?: string; + publisherId?: string; + term?: SubscriptionTerm; +} + +// @public +export interface Smtp { + enabled?: boolean; + fromAddress?: string; + fromName?: string; + host?: string; + password?: string; + skipVerify?: boolean; + startTLSPolicy?: StartTLSPolicy; + user?: string; +} + +// @public +export type StartTLSPolicy = string; + +// @public +export interface SubscriptionTerm { + endDate?: Date; + startDate?: Date; + termUnit?: string; +} + // @public export interface SystemData { createdAt?: Date; @@ -503,6 +792,14 @@ export interface SystemData { lastModifiedByType?: CreatedByType; } +// @public +export interface TrackedResource extends Resource { + location: string; + tags?: { + [propertyName: string]: string; + }; +} + // @public export interface UserAssignedIdentity { readonly clientId?: string; diff --git a/sdk/dashboard/arm-dashboard/rollup.config.js b/sdk/dashboard/arm-dashboard/rollup.config.js new file mode 100644 index 000000000000..3f89d7309da5 --- /dev/null +++ b/sdk/dashboard/arm-dashboard/rollup.config.js @@ -0,0 +1,122 @@ +/* + * 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 nodeResolve from "@rollup/plugin-node-resolve"; +import cjs from "@rollup/plugin-commonjs"; +import sourcemaps from "rollup-plugin-sourcemaps"; +import multiEntry from "@rollup/plugin-multi-entry"; +import json from "@rollup/plugin-json"; + +import nodeBuiltins from "builtin-modules"; + +// #region Warning Handler + +/** + * A function that can determine whether a rollup warning should be ignored. If + * the function returns `true`, then the warning will not be displayed. + */ + +function ignoreNiseSinonEval(warning) { + return ( + warning.code === "EVAL" && + warning.id && + (warning.id.includes("node_modules/nise") || + warning.id.includes("node_modules/sinon")) === true + ); +} + +function ignoreChaiCircularDependency(warning) { + return ( + warning.code === "CIRCULAR_DEPENDENCY" && + warning.importer && warning.importer.includes("node_modules/chai") === true + ); +} + +const warningInhibitors = [ignoreChaiCircularDependency, ignoreNiseSinonEval]; + +/** + * Construct a warning handler for the shared rollup configuration + * that ignores certain warnings that are not relevant to testing. + */ +function makeOnWarnForTesting() { + return (warning, warn) => { + // If every inhibitor returns false (i.e. no inhibitors), then show the warning + if (warningInhibitors.every((inhib) => !inhib(warning))) { + warn(warning); + } + }; +} + +// #endregion + +function makeBrowserTestConfig() { + const config = { + input: { + include: ["dist-esm/test/**/*.spec.js"], + exclude: ["dist-esm/test/**/node/**"] + }, + output: { + file: `dist-test/index.browser.js`, + format: "umd", + sourcemap: true + }, + preserveSymlinks: false, + plugins: [ + multiEntry({ exports: false }), + nodeResolve({ + mainFields: ["module", "browser"] + }), + cjs(), + json(), + sourcemaps() + //viz({ filename: "dist-test/browser-stats.html", sourcemap: true }) + ], + onwarn: makeOnWarnForTesting(), + // Disable tree-shaking of test code. In rollup-plugin-node-resolve@5.0.0, + // rollup started respecting the "sideEffects" field in package.json. Since + // our package.json sets "sideEffects=false", this also applies to test + // code, which causes all tests to be removed by tree-shaking. + treeshake: false + }; + + return config; +} + +const defaultConfigurationOptions = { + disableBrowserBundle: false +}; + +export function makeConfig(pkg, options) { + options = { + ...defaultConfigurationOptions, + ...(options || {}) + }; + + const baseConfig = { + // Use the package's module field if it has one + input: pkg["module"] || "dist-esm/src/index.js", + external: [ + ...nodeBuiltins, + ...Object.keys(pkg.dependencies), + ...Object.keys(pkg.devDependencies) + ], + output: { file: "dist/index.js", format: "cjs", sourcemap: true }, + preserveSymlinks: false, + plugins: [sourcemaps(), nodeResolve()] + }; + + const config = [baseConfig]; + + if (!options.disableBrowserBundle) { + config.push(makeBrowserTestConfig()); + } + + return config; +} + +export default makeConfig(require("./package.json")); diff --git a/sdk/dashboard/arm-dashboard/src/dashboardManagementClient.ts b/sdk/dashboard/arm-dashboard/src/dashboardManagementClient.ts index 4ebb93208649..894caea21ad6 100644 --- a/sdk/dashboard/arm-dashboard/src/dashboardManagementClient.ts +++ b/sdk/dashboard/arm-dashboard/src/dashboardManagementClient.ts @@ -18,13 +18,15 @@ import { OperationsImpl, GrafanaImpl, PrivateEndpointConnectionsImpl, - PrivateLinkResourcesImpl + PrivateLinkResourcesImpl, + ManagedPrivateEndpointsImpl } from "./operations"; import { Operations, Grafana, PrivateEndpointConnections, - PrivateLinkResources + PrivateLinkResources, + ManagedPrivateEndpoints } from "./operationsInterfaces"; import { DashboardManagementClientOptionalParams } from "./models"; @@ -60,7 +62,7 @@ export class DashboardManagementClient extends coreClient.ServiceClient { credential: credentials }; - const packageDetails = `azsdk-js-arm-dashboard/1.0.2`; + const packageDetails = `azsdk-js-arm-dashboard/1.1.0`; const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}` @@ -113,11 +115,12 @@ export class DashboardManagementClient extends coreClient.ServiceClient { // Assigning values to Constant parameters this.$host = options.$host || "https://management.azure.com"; - this.apiVersion = options.apiVersion || "2022-08-01"; + this.apiVersion = options.apiVersion || "2023-09-01"; this.operations = new OperationsImpl(this); this.grafana = new GrafanaImpl(this); this.privateEndpointConnections = new PrivateEndpointConnectionsImpl(this); this.privateLinkResources = new PrivateLinkResourcesImpl(this); + this.managedPrivateEndpoints = new ManagedPrivateEndpointsImpl(this); this.addCustomApiVersionPolicy(options.apiVersion); } @@ -153,4 +156,5 @@ export class DashboardManagementClient extends coreClient.ServiceClient { grafana: Grafana; privateEndpointConnections: PrivateEndpointConnections; privateLinkResources: PrivateLinkResources; + managedPrivateEndpoints: ManagedPrivateEndpoints; } diff --git a/sdk/dashboard/arm-dashboard/src/lroImpl.ts b/sdk/dashboard/arm-dashboard/src/lroImpl.ts index 518d5f053b4e..dd803cd5e28c 100644 --- a/sdk/dashboard/arm-dashboard/src/lroImpl.ts +++ b/sdk/dashboard/arm-dashboard/src/lroImpl.ts @@ -6,29 +6,37 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +import { AbortSignalLike } from "@azure/abort-controller"; import { LongRunningOperation, LroResponse } from "@azure/core-lro"; -export class LroImpl implements LongRunningOperation { - constructor( - private sendOperationFn: (args: any, spec: any) => Promise>, - private args: Record, - private spec: { - readonly requestBody?: unknown; - readonly path?: string; - readonly httpMethod: string; - } & Record, - public requestPath: string = spec.path!, - public requestMethod: string = spec.httpMethod - ) {} - public async sendInitialRequest(): Promise> { - return this.sendOperationFn(this.args, this.spec); - } - public async sendPollRequest(path: string): Promise> { - const { requestBody, ...restSpec } = this.spec; - return this.sendOperationFn(this.args, { - ...restSpec, - path, - httpMethod: "GET" - }); - } +export function createLroSpec(inputs: { + sendOperationFn: (args: any, spec: any) => Promise>; + args: Record; + spec: { + readonly requestBody?: unknown; + readonly path?: string; + readonly httpMethod: string; + } & Record; +}): LongRunningOperation { + const { args, spec, sendOperationFn } = inputs; + return { + requestMethod: spec.httpMethod, + requestPath: spec.path!, + sendInitialRequest: () => sendOperationFn(args, spec), + sendPollRequest: ( + path: string, + options?: { abortSignal?: AbortSignalLike } + ) => { + const { requestBody, ...restSpec } = spec; + return sendOperationFn(args, { + ...restSpec, + httpMethod: "GET", + path, + abortSignal: options?.abortSignal + }); + } + }; } diff --git a/sdk/dashboard/arm-dashboard/src/models/index.ts b/sdk/dashboard/arm-dashboard/src/models/index.ts index ccbd797e51ee..1b38c19ea4a2 100644 --- a/sdk/dashboard/arm-dashboard/src/models/index.ts +++ b/sdk/dashboard/arm-dashboard/src/models/index.ts @@ -203,6 +203,14 @@ export interface ManagedGrafanaProperties { autoGeneratedDomainNameLabelScope?: AutoGeneratedDomainNameLabelScope; /** GrafanaIntegrations is a bundled observability experience (e.g. pre-configured data source, tailored Grafana dashboards, alerting defaults) for common monitoring scenarios. */ grafanaIntegrations?: GrafanaIntegrations; + /** Enterprise settings of a Grafana instance */ + enterpriseConfigurations?: EnterpriseConfigurations; + /** Server configurations of a Grafana instance */ + grafanaConfigurations?: GrafanaConfigurations; + /** Installed plugin list of the Grafana instance. Key is plugin id, value is plugin definition. */ + grafanaPlugins?: { [propertyName: string]: GrafanaPlugin }; + /** The major Grafana software version to target. */ + grafanaMajorVersion?: string; } /** The Private Endpoint resource. */ @@ -275,6 +283,67 @@ export interface AzureMonitorWorkspaceIntegration { azureMonitorWorkspaceResourceId?: string; } +/** Enterprise settings of a Grafana instance */ +export interface EnterpriseConfigurations { + /** The Plan Id of the Azure Marketplace subscription for the Enterprise plugins */ + marketplacePlanId?: string; + /** The AutoRenew setting of the Enterprise subscription */ + marketplaceAutoRenew?: MarketplaceAutoRenew; +} + +/** Server configurations of a Grafana instance */ +export interface GrafanaConfigurations { + /** + * Email server settings. + * https://grafana.com/docs/grafana/v9.0/setup-grafana/configure-grafana/#smtp + */ + smtp?: Smtp; +} + +/** + * Email server settings. + * https://grafana.com/docs/grafana/v9.0/setup-grafana/configure-grafana/#smtp + */ +export interface Smtp { + /** Enable this to allow Grafana to send email. Default is false */ + enabled?: boolean; + /** SMTP server hostname with port, e.g. test.email.net:587 */ + host?: string; + /** User of SMTP auth */ + user?: string; + /** Password of SMTP auth. If the password contains # or ;, then you have to wrap it with triple quotes */ + password?: string; + /** + * Address used when sending out emails + * https://pkg.go.dev/net/mail#Address + */ + fromAddress?: string; + /** + * Name to be used when sending out emails. Default is "Azure Managed Grafana Notification" + * https://pkg.go.dev/net/mail#Address + */ + fromName?: string; + /** + * The StartTLSPolicy setting of the SMTP configuration + * https://pkg.go.dev/github.com/go-mail/mail#StartTLSPolicy + */ + startTLSPolicy?: StartTLSPolicy; + /** + * Verify SSL for SMTP server. Default is false + * https://pkg.go.dev/crypto/tls#Config + */ + skipVerify?: boolean; +} + +/** Plugin of Grafana */ +export interface GrafanaPlugin { + /** + * Grafana plugin id + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly pluginId?: string; +} + /** Managed service identity (system assigned and/or user assigned identities) */ export interface ManagedServiceIdentity { /** @@ -309,6 +378,7 @@ export interface UserAssignedIdentity { /** The parameters for a PATCH request to a grafana resource. */ export interface ManagedGrafanaUpdateParameters { + sku?: ResourceSku; /** The managed identity of the grafana resource. */ identity?: ManagedServiceIdentity; /** The new tags of the grafana resource. */ @@ -329,6 +399,14 @@ export interface ManagedGrafanaPropertiesUpdateParameters { publicNetworkAccess?: PublicNetworkAccess; /** GrafanaIntegrations is a bundled observability experience (e.g. pre-configured data source, tailored Grafana dashboards, alerting defaults) for common monitoring scenarios. */ grafanaIntegrations?: GrafanaIntegrations; + /** Enterprise settings of a Grafana instance */ + enterpriseConfigurations?: EnterpriseConfigurations; + /** Server configurations of a Grafana instance */ + grafanaConfigurations?: GrafanaConfigurations; + /** Update of Grafana plugin. Key is plugin id, value is plugin definition. If plugin definition is null, plugin with given plugin id will be removed. Otherwise, given plugin will be installed. */ + grafanaPlugins?: { [propertyName: string]: GrafanaPlugin }; + /** The major Grafana software version to target. */ + grafanaMajorVersion?: string; } /** List of private endpoint connection associated with the specified storage account */ @@ -353,6 +431,93 @@ export interface PrivateLinkResourceListResult { readonly nextLink?: string; } +/** Enterprise details of a Grafana instance */ +export interface EnterpriseDetails { + /** SaaS subscription details of a Grafana instance */ + saasSubscriptionDetails?: SaasSubscriptionDetails; + /** The allocation details of the per subscription free trial slot of the subscription. */ + marketplaceTrialQuota?: MarketplaceTrialQuota; +} + +/** SaaS subscription details of a Grafana instance */ +export interface SaasSubscriptionDetails { + /** The plan Id of the SaaS subscription. */ + planId?: string; + /** The offer Id of the SaaS subscription. */ + offerId?: string; + /** The publisher Id of the SaaS subscription. */ + publisherId?: string; + /** The billing term of the SaaS Subscription. */ + term?: SubscriptionTerm; +} + +/** The current billing term of the SaaS Subscription. */ +export interface SubscriptionTerm { + /** The unit of the billing term. */ + termUnit?: string; + /** The date and time in UTC of when the billing term starts. */ + startDate?: Date; + /** The date and time in UTC of when the billing term ends. */ + endDate?: Date; +} + +/** The allocation details of the per subscription free trial slot of the subscription. */ +export interface MarketplaceTrialQuota { + /** Available enterprise promotion for the subscription */ + availablePromotion?: AvailablePromotion; + /** Resource Id of the Grafana resource which is doing the trial. */ + grafanaResourceId?: string; + /** The date and time in UTC of when the trial starts. */ + trialStartAt?: Date; + /** The date and time in UTC of when the trial ends. */ + trialEndAt?: Date; +} + +export interface GrafanaAvailablePluginListResponse { + value?: GrafanaAvailablePlugin[]; + nextLink?: string; +} + +/** Available plugins of grafana */ +export interface GrafanaAvailablePlugin { + /** + * Grafana plugin id + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly pluginId?: string; + /** + * Grafana plugin display name + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly name?: string; +} + +/** The list of managed private endpoints of a grafana resource */ +export interface ManagedPrivateEndpointModelListResponse { + value?: ManagedPrivateEndpointModel[]; + nextLink?: string; +} + +/** The state of managed private endpoint connection. */ +export interface ManagedPrivateEndpointConnectionState { + /** + * The approval/rejection status of managed private endpoint connection. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly status?: ManagedPrivateEndpointConnectionStatus; + /** + * Gets or sets the reason for approval/rejection of the connection. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly description?: string; +} + +/** The parameters for a PATCH request to a managed private endpoint. */ +export interface ManagedPrivateEndpointUpdateParameters { + /** The new tags of the managed private endpoint. */ + tags?: { [propertyName: string]: string }; +} + /** The Private Endpoint Connection resource. */ export interface PrivateEndpointConnection extends Resource { /** The resource of private end point. */ @@ -389,6 +554,97 @@ export interface PrivateLinkResource extends Resource { requiredZoneNames?: string[]; } +/** The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' */ +export interface TrackedResource extends Resource { + /** Resource tags. */ + tags?: { [propertyName: string]: string }; + /** The geo-location where the resource lives */ + location: string; +} + +/** The managed private endpoint resource type. */ +export interface ManagedPrivateEndpointModel extends TrackedResource { + /** + * Provisioning state of the resource. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly provisioningState?: ProvisioningState; + /** The ARM resource ID of the resource for which the managed private endpoint is pointing to. */ + privateLinkResourceId?: string; + /** The region of the resource to which the managed private endpoint is pointing to. */ + privateLinkResourceRegion?: string; + /** The group Ids of the managed private endpoint. */ + groupIds?: string[]; + /** User input request message of the managed private endpoint. */ + requestMessage?: string; + /** + * The state of managed private endpoint connection. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly connectionState?: ManagedPrivateEndpointConnectionState; + /** The URL of the data store behind the private link service. It would be the URL in the Grafana data source configuration page without the protocol and port. */ + privateLinkServiceUrl?: string; + /** + * The private IP of private endpoint after approval. This property is empty before connection is approved. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly privateLinkServicePrivateIP?: string; +} + +/** Defines headers for Grafana_create operation. */ +export interface GrafanaCreateHeaders { + /** Operation URI for long running operation. */ + azureAsyncOperation?: string; +} + +/** Defines headers for Grafana_update operation. */ +export interface GrafanaUpdateHeaders { + /** Operation URI for long running operation. */ + azureAsyncOperation?: string; +} + +/** Defines headers for Grafana_delete operation. */ +export interface GrafanaDeleteHeaders { + /** Operation URI for long running operation. */ + azureAsyncOperation?: string; +} + +/** Defines headers for PrivateEndpointConnections_approve operation. */ +export interface PrivateEndpointConnectionsApproveHeaders { + /** Operation URI for long running operation. */ + azureAsyncOperation?: string; +} + +/** Defines headers for PrivateEndpointConnections_delete operation. */ +export interface PrivateEndpointConnectionsDeleteHeaders { + /** Operation URI for long running operation. */ + azureAsyncOperation?: string; +} + +/** Defines headers for ManagedPrivateEndpoints_refresh operation. */ +export interface ManagedPrivateEndpointsRefreshHeaders { + /** Operation URI for long running operation. */ + azureAsyncOperation?: string; +} + +/** Defines headers for ManagedPrivateEndpoints_create operation. */ +export interface ManagedPrivateEndpointsCreateHeaders { + /** Operation URI for long running operation. */ + azureAsyncOperation?: string; +} + +/** Defines headers for ManagedPrivateEndpoints_update operation. */ +export interface ManagedPrivateEndpointsUpdateHeaders { + /** Operation URI for long running operation. */ + azureAsyncOperation?: string; +} + +/** Defines headers for ManagedPrivateEndpoints_delete operation. */ +export interface ManagedPrivateEndpointsDeleteHeaders { + /** Operation URI for long running operation. */ + azureAsyncOperation?: string; +} + /** Known values of {@link Origin} that the service accepts. */ export enum KnownOrigin { /** User */ @@ -620,6 +876,45 @@ export enum KnownAutoGeneratedDomainNameLabelScope { */ export type AutoGeneratedDomainNameLabelScope = string; +/** Known values of {@link MarketplaceAutoRenew} that the service accepts. */ +export enum KnownMarketplaceAutoRenew { + /** Disabled */ + Disabled = "Disabled", + /** Enabled */ + Enabled = "Enabled" +} + +/** + * Defines values for MarketplaceAutoRenew. \ + * {@link KnownMarketplaceAutoRenew} can be used interchangeably with MarketplaceAutoRenew, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Disabled** \ + * **Enabled** + */ +export type MarketplaceAutoRenew = string; + +/** Known values of {@link StartTLSPolicy} that the service accepts. */ +export enum KnownStartTLSPolicy { + /** OpportunisticStartTLS */ + OpportunisticStartTLS = "OpportunisticStartTLS", + /** MandatoryStartTLS */ + MandatoryStartTLS = "MandatoryStartTLS", + /** NoStartTLS */ + NoStartTLS = "NoStartTLS" +} + +/** + * Defines values for StartTLSPolicy. \ + * {@link KnownStartTLSPolicy} can be used interchangeably with StartTLSPolicy, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **OpportunisticStartTLS** \ + * **MandatoryStartTLS** \ + * **NoStartTLS** + */ +export type StartTLSPolicy = string; + /** Known values of {@link ManagedServiceIdentityType} that the service accepts. */ export enum KnownManagedServiceIdentityType { /** None */ @@ -644,6 +939,48 @@ export enum KnownManagedServiceIdentityType { */ export type ManagedServiceIdentityType = string; +/** Known values of {@link AvailablePromotion} that the service accepts. */ +export enum KnownAvailablePromotion { + /** None */ + None = "None", + /** FreeTrial */ + FreeTrial = "FreeTrial" +} + +/** + * Defines values for AvailablePromotion. \ + * {@link KnownAvailablePromotion} can be used interchangeably with AvailablePromotion, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **None** \ + * **FreeTrial** + */ +export type AvailablePromotion = string; + +/** Known values of {@link ManagedPrivateEndpointConnectionStatus} that the service accepts. */ +export enum KnownManagedPrivateEndpointConnectionStatus { + /** Pending */ + Pending = "Pending", + /** Approved */ + Approved = "Approved", + /** Rejected */ + Rejected = "Rejected", + /** Disconnected */ + Disconnected = "Disconnected" +} + +/** + * Defines values for ManagedPrivateEndpointConnectionStatus. \ + * {@link KnownManagedPrivateEndpointConnectionStatus} can be used interchangeably with ManagedPrivateEndpointConnectionStatus, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Pending** \ + * **Approved** \ + * **Rejected** \ + * **Disconnected** + */ +export type ManagedPrivateEndpointConnectionStatus = string; + /** Optional parameters. */ export interface OperationsListOptionalParams extends coreClient.OperationOptions {} @@ -706,6 +1043,20 @@ export interface GrafanaDeleteOptionalParams resumeFrom?: string; } +/** Optional parameters. */ +export interface GrafanaCheckEnterpriseDetailsOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the checkEnterpriseDetails operation. */ +export type GrafanaCheckEnterpriseDetailsResponse = EnterpriseDetails; + +/** Optional parameters. */ +export interface GrafanaFetchAvailablePluginsOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the fetchAvailablePlugins operation. */ +export type GrafanaFetchAvailablePluginsResponse = GrafanaAvailablePluginListResponse; + /** Optional parameters. */ export interface GrafanaListNextOptionalParams extends coreClient.OperationOptions {} @@ -739,7 +1090,8 @@ export interface PrivateEndpointConnectionsApproveOptionalParams } /** Contains response data for the approve operation. */ -export type PrivateEndpointConnectionsApproveResponse = PrivateEndpointConnection; +export type PrivateEndpointConnectionsApproveResponse = PrivateEndpointConnectionsApproveHeaders & + PrivateEndpointConnection; /** Optional parameters. */ export interface PrivateEndpointConnectionsDeleteOptionalParams @@ -750,6 +1102,9 @@ export interface PrivateEndpointConnectionsDeleteOptionalParams resumeFrom?: string; } +/** Contains response data for the delete operation. */ +export type PrivateEndpointConnectionsDeleteResponse = PrivateEndpointConnectionsDeleteHeaders; + /** Optional parameters. */ export interface PrivateEndpointConnectionsListOptionalParams extends coreClient.OperationOptions {} @@ -785,6 +1140,69 @@ export interface PrivateLinkResourcesListNextOptionalParams /** Contains response data for the listNext operation. */ export type PrivateLinkResourcesListNextResponse = PrivateLinkResourceListResult; +/** Optional parameters. */ +export interface ManagedPrivateEndpointsListOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the list operation. */ +export type ManagedPrivateEndpointsListResponse = ManagedPrivateEndpointModelListResponse; + +/** Optional parameters. */ +export interface ManagedPrivateEndpointsRefreshOptionalParams + extends coreClient.OperationOptions { + /** Delay to wait until next poll, in milliseconds. */ + updateIntervalInMs?: number; + /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */ + resumeFrom?: string; +} + +/** Optional parameters. */ +export interface ManagedPrivateEndpointsGetOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the get operation. */ +export type ManagedPrivateEndpointsGetResponse = ManagedPrivateEndpointModel; + +/** Optional parameters. */ +export interface ManagedPrivateEndpointsCreateOptionalParams + extends coreClient.OperationOptions { + /** Delay to wait until next poll, in milliseconds. */ + updateIntervalInMs?: number; + /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */ + resumeFrom?: string; +} + +/** Contains response data for the create operation. */ +export type ManagedPrivateEndpointsCreateResponse = ManagedPrivateEndpointModel; + +/** Optional parameters. */ +export interface ManagedPrivateEndpointsUpdateOptionalParams + extends coreClient.OperationOptions { + /** Delay to wait until next poll, in milliseconds. */ + updateIntervalInMs?: number; + /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */ + resumeFrom?: string; +} + +/** Contains response data for the update operation. */ +export type ManagedPrivateEndpointsUpdateResponse = ManagedPrivateEndpointModel; + +/** Optional parameters. */ +export interface ManagedPrivateEndpointsDeleteOptionalParams + extends coreClient.OperationOptions { + /** Delay to wait until next poll, in milliseconds. */ + updateIntervalInMs?: number; + /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */ + resumeFrom?: string; +} + +/** Optional parameters. */ +export interface ManagedPrivateEndpointsListNextOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the listNext operation. */ +export type ManagedPrivateEndpointsListNextResponse = ManagedPrivateEndpointModelListResponse; + /** Optional parameters. */ export interface DashboardManagementClientOptionalParams extends coreClient.ServiceClientOptions { diff --git a/sdk/dashboard/arm-dashboard/src/models/mappers.ts b/sdk/dashboard/arm-dashboard/src/models/mappers.ts index 0c9895827d3b..71c871d48ecc 100644 --- a/sdk/dashboard/arm-dashboard/src/models/mappers.ts +++ b/sdk/dashboard/arm-dashboard/src/models/mappers.ts @@ -419,6 +419,33 @@ export const ManagedGrafanaProperties: coreClient.CompositeMapper = { name: "Composite", className: "GrafanaIntegrations" } + }, + enterpriseConfigurations: { + serializedName: "enterpriseConfigurations", + type: { + name: "Composite", + className: "EnterpriseConfigurations" + } + }, + grafanaConfigurations: { + serializedName: "grafanaConfigurations", + type: { + name: "Composite", + className: "GrafanaConfigurations" + } + }, + grafanaPlugins: { + serializedName: "grafanaPlugins", + type: { + name: "Dictionary", + value: { type: { name: "Composite", className: "GrafanaPlugin" } } + } + }, + grafanaMajorVersion: { + serializedName: "grafanaMajorVersion", + type: { + name: "String" + } } } } @@ -585,6 +612,117 @@ export const AzureMonitorWorkspaceIntegration: coreClient.CompositeMapper = { } }; +export const EnterpriseConfigurations: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "EnterpriseConfigurations", + modelProperties: { + marketplacePlanId: { + serializedName: "marketplacePlanId", + type: { + name: "String" + } + }, + marketplaceAutoRenew: { + serializedName: "marketplaceAutoRenew", + type: { + name: "String" + } + } + } + } +}; + +export const GrafanaConfigurations: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "GrafanaConfigurations", + modelProperties: { + smtp: { + serializedName: "smtp", + type: { + name: "Composite", + className: "Smtp" + } + } + } + } +}; + +export const Smtp: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "Smtp", + modelProperties: { + enabled: { + defaultValue: false, + serializedName: "enabled", + type: { + name: "Boolean" + } + }, + host: { + serializedName: "host", + type: { + name: "String" + } + }, + user: { + serializedName: "user", + type: { + name: "String" + } + }, + password: { + serializedName: "password", + type: { + name: "String" + } + }, + fromAddress: { + serializedName: "fromAddress", + type: { + name: "String" + } + }, + fromName: { + serializedName: "fromName", + type: { + name: "String" + } + }, + startTLSPolicy: { + serializedName: "startTLSPolicy", + type: { + name: "String" + } + }, + skipVerify: { + serializedName: "skipVerify", + type: { + name: "Boolean" + } + } + } + } +}; + +export const GrafanaPlugin: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "GrafanaPlugin", + modelProperties: { + pluginId: { + serializedName: "pluginId", + readOnly: true, + type: { + name: "String" + } + } + } + } +}; + export const ManagedServiceIdentity: coreClient.CompositeMapper = { type: { name: "Composite", @@ -652,6 +790,13 @@ export const ManagedGrafanaUpdateParameters: coreClient.CompositeMapper = { name: "Composite", className: "ManagedGrafanaUpdateParameters", modelProperties: { + sku: { + serializedName: "sku", + type: { + name: "Composite", + className: "ResourceSku" + } + }, identity: { serializedName: "identity", type: { @@ -716,6 +861,33 @@ export const ManagedGrafanaPropertiesUpdateParameters: coreClient.CompositeMappe name: "Composite", className: "GrafanaIntegrations" } + }, + enterpriseConfigurations: { + serializedName: "enterpriseConfigurations", + type: { + name: "Composite", + className: "EnterpriseConfigurations" + } + }, + grafanaConfigurations: { + serializedName: "grafanaConfigurations", + type: { + name: "Composite", + className: "GrafanaConfigurations" + } + }, + grafanaPlugins: { + serializedName: "grafanaPlugins", + type: { + name: "Dictionary", + value: { type: { name: "Composite", className: "GrafanaPlugin" } } + } + }, + grafanaMajorVersion: { + serializedName: "grafanaMajorVersion", + type: { + name: "String" + } } } } @@ -777,6 +949,240 @@ export const PrivateLinkResourceListResult: coreClient.CompositeMapper = { } }; +export const EnterpriseDetails: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "EnterpriseDetails", + modelProperties: { + saasSubscriptionDetails: { + serializedName: "saasSubscriptionDetails", + type: { + name: "Composite", + className: "SaasSubscriptionDetails" + } + }, + marketplaceTrialQuota: { + serializedName: "marketplaceTrialQuota", + type: { + name: "Composite", + className: "MarketplaceTrialQuota" + } + } + } + } +}; + +export const SaasSubscriptionDetails: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "SaasSubscriptionDetails", + modelProperties: { + planId: { + serializedName: "planId", + type: { + name: "String" + } + }, + offerId: { + serializedName: "offerId", + type: { + name: "String" + } + }, + publisherId: { + serializedName: "publisherId", + type: { + name: "String" + } + }, + term: { + serializedName: "term", + type: { + name: "Composite", + className: "SubscriptionTerm" + } + } + } + } +}; + +export const SubscriptionTerm: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "SubscriptionTerm", + modelProperties: { + termUnit: { + serializedName: "termUnit", + type: { + name: "String" + } + }, + startDate: { + serializedName: "startDate", + type: { + name: "DateTime" + } + }, + endDate: { + serializedName: "endDate", + type: { + name: "DateTime" + } + } + } + } +}; + +export const MarketplaceTrialQuota: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "MarketplaceTrialQuota", + modelProperties: { + availablePromotion: { + defaultValue: "None", + serializedName: "availablePromotion", + type: { + name: "String" + } + }, + grafanaResourceId: { + serializedName: "grafanaResourceId", + type: { + name: "String" + } + }, + trialStartAt: { + serializedName: "trialStartAt", + type: { + name: "DateTime" + } + }, + trialEndAt: { + serializedName: "trialEndAt", + type: { + name: "DateTime" + } + } + } + } +}; + +export const GrafanaAvailablePluginListResponse: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "GrafanaAvailablePluginListResponse", + modelProperties: { + value: { + serializedName: "value", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "GrafanaAvailablePlugin" + } + } + } + }, + nextLink: { + serializedName: "nextLink", + type: { + name: "String" + } + } + } + } +}; + +export const GrafanaAvailablePlugin: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "GrafanaAvailablePlugin", + modelProperties: { + pluginId: { + serializedName: "pluginId", + readOnly: true, + type: { + name: "String" + } + }, + name: { + serializedName: "name", + readOnly: true, + type: { + name: "String" + } + } + } + } +}; + +export const ManagedPrivateEndpointModelListResponse: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedPrivateEndpointModelListResponse", + modelProperties: { + value: { + serializedName: "value", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "ManagedPrivateEndpointModel" + } + } + } + }, + nextLink: { + serializedName: "nextLink", + type: { + name: "String" + } + } + } + } +}; + +export const ManagedPrivateEndpointConnectionState: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedPrivateEndpointConnectionState", + modelProperties: { + status: { + serializedName: "status", + readOnly: true, + type: { + name: "String" + } + }, + description: { + serializedName: "description", + readOnly: true, + type: { + name: "String" + } + } + } + } +}; + +export const ManagedPrivateEndpointUpdateParameters: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedPrivateEndpointUpdateParameters", + modelProperties: { + tags: { + serializedName: "tags", + type: { + name: "Dictionary", + value: { type: { name: "String" } } + } + } + } + } +}; + export const PrivateEndpointConnection: coreClient.CompositeMapper = { type: { name: "Composite", @@ -865,3 +1271,228 @@ export const PrivateLinkResource: coreClient.CompositeMapper = { } } }; + +export const TrackedResource: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "TrackedResource", + modelProperties: { + ...Resource.type.modelProperties, + tags: { + serializedName: "tags", + type: { + name: "Dictionary", + value: { type: { name: "String" } } + } + }, + location: { + serializedName: "location", + required: true, + type: { + name: "String" + } + } + } + } +}; + +export const ManagedPrivateEndpointModel: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedPrivateEndpointModel", + modelProperties: { + ...TrackedResource.type.modelProperties, + provisioningState: { + serializedName: "properties.provisioningState", + readOnly: true, + type: { + name: "String" + } + }, + privateLinkResourceId: { + serializedName: "properties.privateLinkResourceId", + type: { + name: "String" + } + }, + privateLinkResourceRegion: { + serializedName: "properties.privateLinkResourceRegion", + type: { + name: "String" + } + }, + groupIds: { + serializedName: "properties.groupIds", + type: { + name: "Sequence", + element: { + type: { + name: "String" + } + } + } + }, + requestMessage: { + serializedName: "properties.requestMessage", + type: { + name: "String" + } + }, + connectionState: { + serializedName: "properties.connectionState", + type: { + name: "Composite", + className: "ManagedPrivateEndpointConnectionState" + } + }, + privateLinkServiceUrl: { + serializedName: "properties.privateLinkServiceUrl", + type: { + name: "String" + } + }, + privateLinkServicePrivateIP: { + serializedName: "properties.privateLinkServicePrivateIP", + readOnly: true, + type: { + name: "String" + } + } + } + } +}; + +export const GrafanaCreateHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "GrafanaCreateHeaders", + modelProperties: { + azureAsyncOperation: { + serializedName: "azure-asyncoperation", + type: { + name: "String" + } + } + } + } +}; + +export const GrafanaUpdateHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "GrafanaUpdateHeaders", + modelProperties: { + azureAsyncOperation: { + serializedName: "azure-asyncoperation", + type: { + name: "String" + } + } + } + } +}; + +export const GrafanaDeleteHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "GrafanaDeleteHeaders", + modelProperties: { + azureAsyncOperation: { + serializedName: "azure-asyncoperation", + type: { + name: "String" + } + } + } + } +}; + +export const PrivateEndpointConnectionsApproveHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "PrivateEndpointConnectionsApproveHeaders", + modelProperties: { + azureAsyncOperation: { + serializedName: "azure-asyncoperation", + type: { + name: "String" + } + } + } + } +}; + +export const PrivateEndpointConnectionsDeleteHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "PrivateEndpointConnectionsDeleteHeaders", + modelProperties: { + azureAsyncOperation: { + serializedName: "azure-asyncoperation", + type: { + name: "String" + } + } + } + } +}; + +export const ManagedPrivateEndpointsRefreshHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedPrivateEndpointsRefreshHeaders", + modelProperties: { + azureAsyncOperation: { + serializedName: "azure-asyncoperation", + type: { + name: "String" + } + } + } + } +}; + +export const ManagedPrivateEndpointsCreateHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedPrivateEndpointsCreateHeaders", + modelProperties: { + azureAsyncOperation: { + serializedName: "azure-asyncoperation", + type: { + name: "String" + } + } + } + } +}; + +export const ManagedPrivateEndpointsUpdateHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedPrivateEndpointsUpdateHeaders", + modelProperties: { + azureAsyncOperation: { + serializedName: "azure-asyncoperation", + type: { + name: "String" + } + } + } + } +}; + +export const ManagedPrivateEndpointsDeleteHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedPrivateEndpointsDeleteHeaders", + modelProperties: { + azureAsyncOperation: { + serializedName: "azure-asyncoperation", + type: { + name: "String" + } + } + } + } +}; diff --git a/sdk/dashboard/arm-dashboard/src/models/parameters.ts b/sdk/dashboard/arm-dashboard/src/models/parameters.ts index c28a319166d0..963043edd42a 100644 --- a/sdk/dashboard/arm-dashboard/src/models/parameters.ts +++ b/sdk/dashboard/arm-dashboard/src/models/parameters.ts @@ -14,7 +14,9 @@ import { import { ManagedGrafana as ManagedGrafanaMapper, ManagedGrafanaUpdateParameters as ManagedGrafanaUpdateParametersMapper, - PrivateEndpointConnection as PrivateEndpointConnectionMapper + PrivateEndpointConnection as PrivateEndpointConnectionMapper, + ManagedPrivateEndpointModel as ManagedPrivateEndpointModelMapper, + ManagedPrivateEndpointUpdateParameters as ManagedPrivateEndpointUpdateParametersMapper } from "../models/mappers"; export const accept: OperationParameter = { @@ -44,7 +46,7 @@ export const $host: OperationURLParameter = { export const apiVersion: OperationQueryParameter = { parameterPath: "apiVersion", mapper: { - defaultValue: "2022-08-01", + defaultValue: "2023-09-01", isConstant: true, serializedName: "api-version", type: { @@ -153,3 +155,24 @@ export const privateLinkResourceName: OperationURLParameter = { } } }; + +export const managedPrivateEndpointName: OperationURLParameter = { + parameterPath: "managedPrivateEndpointName", + mapper: { + serializedName: "managedPrivateEndpointName", + required: true, + type: { + name: "String" + } + } +}; + +export const requestBodyParameters2: OperationParameter = { + parameterPath: "requestBodyParameters", + mapper: ManagedPrivateEndpointModelMapper +}; + +export const requestBodyParameters3: OperationParameter = { + parameterPath: "requestBodyParameters", + mapper: ManagedPrivateEndpointUpdateParametersMapper +}; diff --git a/sdk/dashboard/arm-dashboard/src/operations/grafana.ts b/sdk/dashboard/arm-dashboard/src/operations/grafana.ts index d73df6abdf66..5ed3d67c66f3 100644 --- a/sdk/dashboard/arm-dashboard/src/operations/grafana.ts +++ b/sdk/dashboard/arm-dashboard/src/operations/grafana.ts @@ -13,8 +13,12 @@ import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; import * as Parameters from "../models/parameters"; import { DashboardManagementClient } from "../dashboardManagementClient"; -import { PollerLike, PollOperationState, LroEngine } from "@azure/core-lro"; -import { LroImpl } from "../lroImpl"; +import { + SimplePollerLike, + OperationState, + createHttpPoller +} from "@azure/core-lro"; +import { createLroSpec } from "../lroImpl"; import { ManagedGrafana, GrafanaListNextOptionalParams, @@ -31,6 +35,10 @@ import { GrafanaUpdateOptionalParams, GrafanaUpdateResponse, GrafanaDeleteOptionalParams, + GrafanaCheckEnterpriseDetailsOptionalParams, + GrafanaCheckEnterpriseDetailsResponse, + GrafanaFetchAvailablePluginsOptionalParams, + GrafanaFetchAvailablePluginsResponse, GrafanaListNextResponse, GrafanaListByResourceGroupNextResponse } from "../models"; @@ -227,7 +235,10 @@ export class GrafanaImpl implements Grafana { requestBodyParameters: ManagedGrafana, options?: GrafanaCreateOptionalParams ): Promise< - PollerLike, GrafanaCreateResponse> + SimplePollerLike< + OperationState, + GrafanaCreateResponse + > > { const directSendOperation = async ( args: coreClient.OperationArguments, @@ -235,7 +246,7 @@ export class GrafanaImpl implements Grafana { ): Promise => { return this.client.sendOperationRequest(args, spec); }; - const sendOperation = async ( + const sendOperationFn = async ( args: coreClient.OperationArguments, spec: coreClient.OperationSpec ) => { @@ -268,15 +279,23 @@ export class GrafanaImpl implements Grafana { }; }; - const lro = new LroImpl( - sendOperation, - { resourceGroupName, workspaceName, requestBodyParameters, options }, - createOperationSpec - ); - const poller = new LroEngine(lro, { - resumeFrom: options?.resumeFrom, + const lro = createLroSpec({ + sendOperationFn, + args: { + resourceGroupName, + workspaceName, + requestBodyParameters, + options + }, + spec: createOperationSpec + }); + const poller = await createHttpPoller< + GrafanaCreateResponse, + OperationState + >(lro, { + restoreFrom: options?.resumeFrom, intervalInMs: options?.updateIntervalInMs, - lroResourceLocationConfig: "azure-async-operation" + resourceLocationConfig: "azure-async-operation" }); await poller.poll(); return poller; @@ -334,14 +353,14 @@ export class GrafanaImpl implements Grafana { resourceGroupName: string, workspaceName: string, options?: GrafanaDeleteOptionalParams - ): Promise, void>> { + ): Promise, void>> { const directSendOperation = async ( args: coreClient.OperationArguments, spec: coreClient.OperationSpec ): Promise => { return this.client.sendOperationRequest(args, spec); }; - const sendOperation = async ( + const sendOperationFn = async ( args: coreClient.OperationArguments, spec: coreClient.OperationSpec ) => { @@ -374,15 +393,15 @@ export class GrafanaImpl implements Grafana { }; }; - const lro = new LroImpl( - sendOperation, - { resourceGroupName, workspaceName, options }, - deleteOperationSpec - ); - const poller = new LroEngine(lro, { - resumeFrom: options?.resumeFrom, + const lro = createLroSpec({ + sendOperationFn, + args: { resourceGroupName, workspaceName, options }, + spec: deleteOperationSpec + }); + const poller = await createHttpPoller>(lro, { + restoreFrom: options?.resumeFrom, intervalInMs: options?.updateIntervalInMs, - lroResourceLocationConfig: "azure-async-operation" + resourceLocationConfig: "azure-async-operation" }); await poller.poll(); return poller; @@ -407,6 +426,39 @@ export class GrafanaImpl implements Grafana { return poller.pollUntilDone(); } + /** + * Retrieve enterprise add-on details information + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param options The options parameters. + */ + checkEnterpriseDetails( + resourceGroupName: string, + workspaceName: string, + options?: GrafanaCheckEnterpriseDetailsOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, options }, + checkEnterpriseDetailsOperationSpec + ); + } + + /** + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param options The options parameters. + */ + fetchAvailablePlugins( + resourceGroupName: string, + workspaceName: string, + options?: GrafanaFetchAvailablePluginsOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, options }, + fetchAvailablePluginsOperationSpec + ); + } + /** * ListNext * @param nextLink The nextLink from the previous successful call to the List method. @@ -543,7 +595,8 @@ const updateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ManagedGrafana }, 202: { - bodyMapper: Mappers.ManagedGrafana + bodyMapper: Mappers.ManagedGrafana, + headersMapper: Mappers.GrafanaUpdateHeaders }, default: { bodyMapper: Mappers.ErrorResponse @@ -584,6 +637,50 @@ const deleteOperationSpec: coreClient.OperationSpec = { headerParameters: [Parameters.accept], serializer }; +const checkEnterpriseDetailsOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Dashboard/grafana/{workspaceName}/checkEnterpriseDetails", + httpMethod: "POST", + responses: { + 200: { + bodyMapper: Mappers.EnterpriseDetails + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName + ], + headerParameters: [Parameters.accept], + serializer +}; +const fetchAvailablePluginsOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Dashboard/grafana/{workspaceName}/fetchAvailablePlugins", + httpMethod: "POST", + responses: { + 200: { + bodyMapper: Mappers.GrafanaAvailablePluginListResponse + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName + ], + headerParameters: [Parameters.accept], + serializer +}; const listNextOperationSpec: coreClient.OperationSpec = { path: "{nextLink}", httpMethod: "GET", diff --git a/sdk/dashboard/arm-dashboard/src/operations/index.ts b/sdk/dashboard/arm-dashboard/src/operations/index.ts index ccfcf6ca4471..bf770e679d2b 100644 --- a/sdk/dashboard/arm-dashboard/src/operations/index.ts +++ b/sdk/dashboard/arm-dashboard/src/operations/index.ts @@ -10,3 +10,4 @@ export * from "./operations"; export * from "./grafana"; export * from "./privateEndpointConnections"; export * from "./privateLinkResources"; +export * from "./managedPrivateEndpoints"; diff --git a/sdk/dashboard/arm-dashboard/src/operations/managedPrivateEndpoints.ts b/sdk/dashboard/arm-dashboard/src/operations/managedPrivateEndpoints.ts new file mode 100644 index 000000000000..4be38666b450 --- /dev/null +++ b/sdk/dashboard/arm-dashboard/src/operations/managedPrivateEndpoints.ts @@ -0,0 +1,756 @@ +/* + * 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 { PagedAsyncIterableIterator, PageSettings } from "@azure/core-paging"; +import { setContinuationToken } from "../pagingHelper"; +import { ManagedPrivateEndpoints } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { DashboardManagementClient } from "../dashboardManagementClient"; +import { + SimplePollerLike, + OperationState, + createHttpPoller +} from "@azure/core-lro"; +import { createLroSpec } from "../lroImpl"; +import { + ManagedPrivateEndpointModel, + ManagedPrivateEndpointsListNextOptionalParams, + ManagedPrivateEndpointsListOptionalParams, + ManagedPrivateEndpointsListResponse, + ManagedPrivateEndpointsRefreshOptionalParams, + ManagedPrivateEndpointsGetOptionalParams, + ManagedPrivateEndpointsGetResponse, + ManagedPrivateEndpointsCreateOptionalParams, + ManagedPrivateEndpointsCreateResponse, + ManagedPrivateEndpointUpdateParameters, + ManagedPrivateEndpointsUpdateOptionalParams, + ManagedPrivateEndpointsUpdateResponse, + ManagedPrivateEndpointsDeleteOptionalParams, + ManagedPrivateEndpointsListNextResponse +} from "../models"; + +/// +/** Class containing ManagedPrivateEndpoints operations. */ +export class ManagedPrivateEndpointsImpl implements ManagedPrivateEndpoints { + private readonly client: DashboardManagementClient; + + /** + * Initialize a new instance of the class ManagedPrivateEndpoints class. + * @param client Reference to the service client + */ + constructor(client: DashboardManagementClient) { + this.client = client; + } + + /** + * List all managed private endpoints of a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param options The options parameters. + */ + public list( + resourceGroupName: string, + workspaceName: string, + options?: ManagedPrivateEndpointsListOptionalParams + ): PagedAsyncIterableIterator { + const iter = this.listPagingAll(resourceGroupName, workspaceName, options); + return { + next() { + return iter.next(); + }, + [Symbol.asyncIterator]() { + return this; + }, + byPage: (settings?: PageSettings) => { + if (settings?.maxPageSize) { + throw new Error("maxPageSize is not supported by this operation."); + } + return this.listPagingPage( + resourceGroupName, + workspaceName, + options, + settings + ); + } + }; + } + + private async *listPagingPage( + resourceGroupName: string, + workspaceName: string, + options?: ManagedPrivateEndpointsListOptionalParams, + settings?: PageSettings + ): AsyncIterableIterator { + let result: ManagedPrivateEndpointsListResponse; + let continuationToken = settings?.continuationToken; + if (!continuationToken) { + result = await this._list(resourceGroupName, workspaceName, options); + let page = result.value || []; + continuationToken = result.nextLink; + setContinuationToken(page, continuationToken); + yield page; + } + while (continuationToken) { + result = await this._listNext( + resourceGroupName, + workspaceName, + continuationToken, + options + ); + continuationToken = result.nextLink; + let page = result.value || []; + setContinuationToken(page, continuationToken); + yield page; + } + } + + private async *listPagingAll( + resourceGroupName: string, + workspaceName: string, + options?: ManagedPrivateEndpointsListOptionalParams + ): AsyncIterableIterator { + for await (const page of this.listPagingPage( + resourceGroupName, + workspaceName, + options + )) { + yield* page; + } + } + + /** + * List all managed private endpoints of a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param options The options parameters. + */ + private _list( + resourceGroupName: string, + workspaceName: string, + options?: ManagedPrivateEndpointsListOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, options }, + listOperationSpec + ); + } + + /** + * Refresh and sync managed private endpoints of a grafana resource to latest state. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param options The options parameters. + */ + async beginRefresh( + resourceGroupName: string, + workspaceName: string, + options?: ManagedPrivateEndpointsRefreshOptionalParams + ): Promise, void>> { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperationFn = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = createLroSpec({ + sendOperationFn, + args: { resourceGroupName, workspaceName, options }, + spec: refreshOperationSpec + }); + const poller = await createHttpPoller>(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + resourceLocationConfig: "azure-async-operation" + }); + await poller.poll(); + return poller; + } + + /** + * Refresh and sync managed private endpoints of a grafana resource to latest state. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param options The options parameters. + */ + async beginRefreshAndWait( + resourceGroupName: string, + workspaceName: string, + options?: ManagedPrivateEndpointsRefreshOptionalParams + ): Promise { + const poller = await this.beginRefresh( + resourceGroupName, + workspaceName, + options + ); + return poller.pollUntilDone(); + } + + /** + * Get a specific managed private endpoint of a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param options The options parameters. + */ + get( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + options?: ManagedPrivateEndpointsGetOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, managedPrivateEndpointName, options }, + getOperationSpec + ); + } + + /** + * Create or update a managed private endpoint for a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param requestBodyParameters The managed private endpoint to be created or updated. + * @param options The options parameters. + */ + async beginCreate( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + requestBodyParameters: ManagedPrivateEndpointModel, + options?: ManagedPrivateEndpointsCreateOptionalParams + ): Promise< + SimplePollerLike< + OperationState, + ManagedPrivateEndpointsCreateResponse + > + > { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperationFn = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = createLroSpec({ + sendOperationFn, + args: { + resourceGroupName, + workspaceName, + managedPrivateEndpointName, + requestBodyParameters, + options + }, + spec: createOperationSpec + }); + const poller = await createHttpPoller< + ManagedPrivateEndpointsCreateResponse, + OperationState + >(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + resourceLocationConfig: "original-uri" + }); + await poller.poll(); + return poller; + } + + /** + * Create or update a managed private endpoint for a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param requestBodyParameters The managed private endpoint to be created or updated. + * @param options The options parameters. + */ + async beginCreateAndWait( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + requestBodyParameters: ManagedPrivateEndpointModel, + options?: ManagedPrivateEndpointsCreateOptionalParams + ): Promise { + const poller = await this.beginCreate( + resourceGroupName, + workspaceName, + managedPrivateEndpointName, + requestBodyParameters, + options + ); + return poller.pollUntilDone(); + } + + /** + * Update a managed private endpoint for an existing grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param requestBodyParameters Properties that can be updated to an existing managed private endpoint. + * @param options The options parameters. + */ + async beginUpdate( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + requestBodyParameters: ManagedPrivateEndpointUpdateParameters, + options?: ManagedPrivateEndpointsUpdateOptionalParams + ): Promise< + SimplePollerLike< + OperationState, + ManagedPrivateEndpointsUpdateResponse + > + > { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperationFn = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = createLroSpec({ + sendOperationFn, + args: { + resourceGroupName, + workspaceName, + managedPrivateEndpointName, + requestBodyParameters, + options + }, + spec: updateOperationSpec + }); + const poller = await createHttpPoller< + ManagedPrivateEndpointsUpdateResponse, + OperationState + >(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + resourceLocationConfig: "azure-async-operation" + }); + await poller.poll(); + return poller; + } + + /** + * Update a managed private endpoint for an existing grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param requestBodyParameters Properties that can be updated to an existing managed private endpoint. + * @param options The options parameters. + */ + async beginUpdateAndWait( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + requestBodyParameters: ManagedPrivateEndpointUpdateParameters, + options?: ManagedPrivateEndpointsUpdateOptionalParams + ): Promise { + const poller = await this.beginUpdate( + resourceGroupName, + workspaceName, + managedPrivateEndpointName, + requestBodyParameters, + options + ); + return poller.pollUntilDone(); + } + + /** + * Delete a managed private endpoint for a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param options The options parameters. + */ + async beginDelete( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + options?: ManagedPrivateEndpointsDeleteOptionalParams + ): Promise, void>> { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperationFn = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = createLroSpec({ + sendOperationFn, + args: { + resourceGroupName, + workspaceName, + managedPrivateEndpointName, + options + }, + spec: deleteOperationSpec + }); + const poller = await createHttpPoller>(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + resourceLocationConfig: "azure-async-operation" + }); + await poller.poll(); + return poller; + } + + /** + * Delete a managed private endpoint for a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param options The options parameters. + */ + async beginDeleteAndWait( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + options?: ManagedPrivateEndpointsDeleteOptionalParams + ): Promise { + const poller = await this.beginDelete( + resourceGroupName, + workspaceName, + managedPrivateEndpointName, + options + ); + return poller.pollUntilDone(); + } + + /** + * ListNext + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param nextLink The nextLink from the previous successful call to the List method. + * @param options The options parameters. + */ + private _listNext( + resourceGroupName: string, + workspaceName: string, + nextLink: string, + options?: ManagedPrivateEndpointsListNextOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, workspaceName, nextLink, options }, + listNextOperationSpec + ); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const listOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Dashboard/grafana/{workspaceName}/managedPrivateEndpoints", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.ManagedPrivateEndpointModelListResponse + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName + ], + headerParameters: [Parameters.accept], + serializer +}; +const refreshOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Dashboard/grafana/{workspaceName}/refreshManagedPrivateEndpoints", + httpMethod: "POST", + responses: { + 200: {}, + 201: {}, + 202: {}, + 204: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName + ], + headerParameters: [Parameters.accept], + serializer +}; +const getOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Dashboard/grafana/{workspaceName}/managedPrivateEndpoints/{managedPrivateEndpointName}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.ManagedPrivateEndpointModel + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.managedPrivateEndpointName + ], + headerParameters: [Parameters.accept], + serializer +}; +const createOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Dashboard/grafana/{workspaceName}/managedPrivateEndpoints/{managedPrivateEndpointName}", + httpMethod: "PUT", + responses: { + 200: { + bodyMapper: Mappers.ManagedPrivateEndpointModel + }, + 201: { + bodyMapper: Mappers.ManagedPrivateEndpointModel + }, + 202: { + bodyMapper: Mappers.ManagedPrivateEndpointModel + }, + 204: { + bodyMapper: Mappers.ManagedPrivateEndpointModel + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + requestBody: Parameters.requestBodyParameters2, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.managedPrivateEndpointName + ], + headerParameters: [Parameters.accept, Parameters.contentType], + mediaType: "json", + serializer +}; +const updateOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Dashboard/grafana/{workspaceName}/managedPrivateEndpoints/{managedPrivateEndpointName}", + httpMethod: "PATCH", + responses: { + 200: { + bodyMapper: Mappers.ManagedPrivateEndpointModel + }, + 201: { + bodyMapper: Mappers.ManagedPrivateEndpointModel + }, + 202: { + bodyMapper: Mappers.ManagedPrivateEndpointModel + }, + 204: { + bodyMapper: Mappers.ManagedPrivateEndpointModel + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + requestBody: Parameters.requestBodyParameters3, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.managedPrivateEndpointName + ], + headerParameters: [Parameters.accept, Parameters.contentType], + mediaType: "json", + serializer +}; +const deleteOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Dashboard/grafana/{workspaceName}/managedPrivateEndpoints/{managedPrivateEndpointName}", + httpMethod: "DELETE", + responses: { + 200: {}, + 201: {}, + 202: {}, + 204: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName, + Parameters.managedPrivateEndpointName + ], + headerParameters: [Parameters.accept], + serializer +}; +const listNextOperationSpec: coreClient.OperationSpec = { + path: "{nextLink}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.ManagedPrivateEndpointModelListResponse + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + urlParameters: [ + Parameters.$host, + Parameters.nextLink, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.workspaceName + ], + headerParameters: [Parameters.accept], + serializer +}; diff --git a/sdk/dashboard/arm-dashboard/src/operations/privateEndpointConnections.ts b/sdk/dashboard/arm-dashboard/src/operations/privateEndpointConnections.ts index 5e6408f4fd9f..76200fe9178c 100644 --- a/sdk/dashboard/arm-dashboard/src/operations/privateEndpointConnections.ts +++ b/sdk/dashboard/arm-dashboard/src/operations/privateEndpointConnections.ts @@ -13,8 +13,12 @@ import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; import * as Parameters from "../models/parameters"; import { DashboardManagementClient } from "../dashboardManagementClient"; -import { PollerLike, PollOperationState, LroEngine } from "@azure/core-lro"; -import { LroImpl } from "../lroImpl"; +import { + SimplePollerLike, + OperationState, + createHttpPoller +} from "@azure/core-lro"; +import { createLroSpec } from "../lroImpl"; import { PrivateEndpointConnection, PrivateEndpointConnectionsListNextOptionalParams, @@ -25,6 +29,7 @@ import { PrivateEndpointConnectionsApproveOptionalParams, PrivateEndpointConnectionsApproveResponse, PrivateEndpointConnectionsDeleteOptionalParams, + PrivateEndpointConnectionsDeleteResponse, PrivateEndpointConnectionsListNextResponse } from "../models"; @@ -155,8 +160,8 @@ export class PrivateEndpointConnectionsImpl privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsApproveOptionalParams ): Promise< - PollerLike< - PollOperationState, + SimplePollerLike< + OperationState, PrivateEndpointConnectionsApproveResponse > > { @@ -166,7 +171,7 @@ export class PrivateEndpointConnectionsImpl ): Promise => { return this.client.sendOperationRequest(args, spec); }; - const sendOperation = async ( + const sendOperationFn = async ( args: coreClient.OperationArguments, spec: coreClient.OperationSpec ) => { @@ -199,20 +204,23 @@ export class PrivateEndpointConnectionsImpl }; }; - const lro = new LroImpl( - sendOperation, - { + const lro = createLroSpec({ + sendOperationFn, + args: { resourceGroupName, workspaceName, privateEndpointConnectionName, options }, - approveOperationSpec - ); - const poller = new LroEngine(lro, { - resumeFrom: options?.resumeFrom, + spec: approveOperationSpec + }); + const poller = await createHttpPoller< + PrivateEndpointConnectionsApproveResponse, + OperationState + >(lro, { + restoreFrom: options?.resumeFrom, intervalInMs: options?.updateIntervalInMs, - lroResourceLocationConfig: "azure-async-operation" + resourceLocationConfig: "azure-async-operation" }); await poller.poll(); return poller; @@ -252,14 +260,19 @@ export class PrivateEndpointConnectionsImpl workspaceName: string, privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsDeleteOptionalParams - ): Promise, void>> { + ): Promise< + SimplePollerLike< + OperationState, + PrivateEndpointConnectionsDeleteResponse + > + > { const directSendOperation = async ( args: coreClient.OperationArguments, spec: coreClient.OperationSpec - ): Promise => { + ): Promise => { return this.client.sendOperationRequest(args, spec); }; - const sendOperation = async ( + const sendOperationFn = async ( args: coreClient.OperationArguments, spec: coreClient.OperationSpec ) => { @@ -292,20 +305,23 @@ export class PrivateEndpointConnectionsImpl }; }; - const lro = new LroImpl( - sendOperation, - { + const lro = createLroSpec({ + sendOperationFn, + args: { resourceGroupName, workspaceName, privateEndpointConnectionName, options }, - deleteOperationSpec - ); - const poller = new LroEngine(lro, { - resumeFrom: options?.resumeFrom, + spec: deleteOperationSpec + }); + const poller = await createHttpPoller< + PrivateEndpointConnectionsDeleteResponse, + OperationState + >(lro, { + restoreFrom: options?.resumeFrom, intervalInMs: options?.updateIntervalInMs, - lroResourceLocationConfig: "azure-async-operation" + resourceLocationConfig: "azure-async-operation" }); await poller.poll(); return poller; @@ -323,7 +339,7 @@ export class PrivateEndpointConnectionsImpl workspaceName: string, privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsDeleteOptionalParams - ): Promise { + ): Promise { const poller = await this.beginDelete( resourceGroupName, workspaceName, @@ -401,16 +417,20 @@ const approveOperationSpec: coreClient.OperationSpec = { httpMethod: "PUT", responses: { 200: { - bodyMapper: Mappers.PrivateEndpointConnection + bodyMapper: Mappers.PrivateEndpointConnection, + headersMapper: Mappers.PrivateEndpointConnectionsApproveHeaders }, 201: { - bodyMapper: Mappers.PrivateEndpointConnection + bodyMapper: Mappers.PrivateEndpointConnection, + headersMapper: Mappers.PrivateEndpointConnectionsApproveHeaders }, 202: { - bodyMapper: Mappers.PrivateEndpointConnection + bodyMapper: Mappers.PrivateEndpointConnection, + headersMapper: Mappers.PrivateEndpointConnectionsApproveHeaders }, 204: { - bodyMapper: Mappers.PrivateEndpointConnection + bodyMapper: Mappers.PrivateEndpointConnection, + headersMapper: Mappers.PrivateEndpointConnectionsApproveHeaders }, default: { bodyMapper: Mappers.ErrorResponse @@ -434,10 +454,18 @@ const deleteOperationSpec: coreClient.OperationSpec = { "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Dashboard/grafana/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}", httpMethod: "DELETE", responses: { - 200: {}, - 201: {}, - 202: {}, - 204: {}, + 200: { + headersMapper: Mappers.PrivateEndpointConnectionsDeleteHeaders + }, + 201: { + headersMapper: Mappers.PrivateEndpointConnectionsDeleteHeaders + }, + 202: { + headersMapper: Mappers.PrivateEndpointConnectionsDeleteHeaders + }, + 204: { + headersMapper: Mappers.PrivateEndpointConnectionsDeleteHeaders + }, default: { bodyMapper: Mappers.ErrorResponse } diff --git a/sdk/dashboard/arm-dashboard/src/operationsInterfaces/grafana.ts b/sdk/dashboard/arm-dashboard/src/operationsInterfaces/grafana.ts index 51f8e7ff81e9..593c8131e119 100644 --- a/sdk/dashboard/arm-dashboard/src/operationsInterfaces/grafana.ts +++ b/sdk/dashboard/arm-dashboard/src/operationsInterfaces/grafana.ts @@ -7,7 +7,7 @@ */ import { PagedAsyncIterableIterator } from "@azure/core-paging"; -import { PollerLike, PollOperationState } from "@azure/core-lro"; +import { SimplePollerLike, OperationState } from "@azure/core-lro"; import { ManagedGrafana, GrafanaListOptionalParams, @@ -19,7 +19,11 @@ import { ManagedGrafanaUpdateParameters, GrafanaUpdateOptionalParams, GrafanaUpdateResponse, - GrafanaDeleteOptionalParams + GrafanaDeleteOptionalParams, + GrafanaCheckEnterpriseDetailsOptionalParams, + GrafanaCheckEnterpriseDetailsResponse, + GrafanaFetchAvailablePluginsOptionalParams, + GrafanaFetchAvailablePluginsResponse } from "../models"; /// @@ -66,7 +70,10 @@ export interface Grafana { requestBodyParameters: ManagedGrafana, options?: GrafanaCreateOptionalParams ): Promise< - PollerLike, GrafanaCreateResponse> + SimplePollerLike< + OperationState, + GrafanaCreateResponse + > >; /** * Create or update a workspace for Grafana resource. This API is idempotent, so user can either create @@ -105,7 +112,7 @@ export interface Grafana { resourceGroupName: string, workspaceName: string, options?: GrafanaDeleteOptionalParams - ): Promise, void>>; + ): Promise, void>>; /** * Delete a workspace for Grafana resource. * @param resourceGroupName The name of the resource group. The name is case insensitive. @@ -117,4 +124,25 @@ export interface Grafana { workspaceName: string, options?: GrafanaDeleteOptionalParams ): Promise; + /** + * Retrieve enterprise add-on details information + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param options The options parameters. + */ + checkEnterpriseDetails( + resourceGroupName: string, + workspaceName: string, + options?: GrafanaCheckEnterpriseDetailsOptionalParams + ): Promise; + /** + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param options The options parameters. + */ + fetchAvailablePlugins( + resourceGroupName: string, + workspaceName: string, + options?: GrafanaFetchAvailablePluginsOptionalParams + ): Promise; } diff --git a/sdk/dashboard/arm-dashboard/src/operationsInterfaces/index.ts b/sdk/dashboard/arm-dashboard/src/operationsInterfaces/index.ts index ccfcf6ca4471..bf770e679d2b 100644 --- a/sdk/dashboard/arm-dashboard/src/operationsInterfaces/index.ts +++ b/sdk/dashboard/arm-dashboard/src/operationsInterfaces/index.ts @@ -10,3 +10,4 @@ export * from "./operations"; export * from "./grafana"; export * from "./privateEndpointConnections"; export * from "./privateLinkResources"; +export * from "./managedPrivateEndpoints"; diff --git a/sdk/dashboard/arm-dashboard/src/operationsInterfaces/managedPrivateEndpoints.ts b/sdk/dashboard/arm-dashboard/src/operationsInterfaces/managedPrivateEndpoints.ts new file mode 100644 index 000000000000..596e25a56fa3 --- /dev/null +++ b/sdk/dashboard/arm-dashboard/src/operationsInterfaces/managedPrivateEndpoints.ts @@ -0,0 +1,170 @@ +/* + * 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 { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { SimplePollerLike, OperationState } from "@azure/core-lro"; +import { + ManagedPrivateEndpointModel, + ManagedPrivateEndpointsListOptionalParams, + ManagedPrivateEndpointsRefreshOptionalParams, + ManagedPrivateEndpointsGetOptionalParams, + ManagedPrivateEndpointsGetResponse, + ManagedPrivateEndpointsCreateOptionalParams, + ManagedPrivateEndpointsCreateResponse, + ManagedPrivateEndpointUpdateParameters, + ManagedPrivateEndpointsUpdateOptionalParams, + ManagedPrivateEndpointsUpdateResponse, + ManagedPrivateEndpointsDeleteOptionalParams +} from "../models"; + +/// +/** Interface representing a ManagedPrivateEndpoints. */ +export interface ManagedPrivateEndpoints { + /** + * List all managed private endpoints of a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param options The options parameters. + */ + list( + resourceGroupName: string, + workspaceName: string, + options?: ManagedPrivateEndpointsListOptionalParams + ): PagedAsyncIterableIterator; + /** + * Refresh and sync managed private endpoints of a grafana resource to latest state. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param options The options parameters. + */ + beginRefresh( + resourceGroupName: string, + workspaceName: string, + options?: ManagedPrivateEndpointsRefreshOptionalParams + ): Promise, void>>; + /** + * Refresh and sync managed private endpoints of a grafana resource to latest state. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param options The options parameters. + */ + beginRefreshAndWait( + resourceGroupName: string, + workspaceName: string, + options?: ManagedPrivateEndpointsRefreshOptionalParams + ): Promise; + /** + * Get a specific managed private endpoint of a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param options The options parameters. + */ + get( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + options?: ManagedPrivateEndpointsGetOptionalParams + ): Promise; + /** + * Create or update a managed private endpoint for a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param requestBodyParameters The managed private endpoint to be created or updated. + * @param options The options parameters. + */ + beginCreate( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + requestBodyParameters: ManagedPrivateEndpointModel, + options?: ManagedPrivateEndpointsCreateOptionalParams + ): Promise< + SimplePollerLike< + OperationState, + ManagedPrivateEndpointsCreateResponse + > + >; + /** + * Create or update a managed private endpoint for a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param requestBodyParameters The managed private endpoint to be created or updated. + * @param options The options parameters. + */ + beginCreateAndWait( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + requestBodyParameters: ManagedPrivateEndpointModel, + options?: ManagedPrivateEndpointsCreateOptionalParams + ): Promise; + /** + * Update a managed private endpoint for an existing grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param requestBodyParameters Properties that can be updated to an existing managed private endpoint. + * @param options The options parameters. + */ + beginUpdate( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + requestBodyParameters: ManagedPrivateEndpointUpdateParameters, + options?: ManagedPrivateEndpointsUpdateOptionalParams + ): Promise< + SimplePollerLike< + OperationState, + ManagedPrivateEndpointsUpdateResponse + > + >; + /** + * Update a managed private endpoint for an existing grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param requestBodyParameters Properties that can be updated to an existing managed private endpoint. + * @param options The options parameters. + */ + beginUpdateAndWait( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + requestBodyParameters: ManagedPrivateEndpointUpdateParameters, + options?: ManagedPrivateEndpointsUpdateOptionalParams + ): Promise; + /** + * Delete a managed private endpoint for a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param options The options parameters. + */ + beginDelete( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + options?: ManagedPrivateEndpointsDeleteOptionalParams + ): Promise, void>>; + /** + * Delete a managed private endpoint for a grafana resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param workspaceName The workspace name of Azure Managed Grafana. + * @param managedPrivateEndpointName The managed private endpoint name of Azure Managed Grafana. + * @param options The options parameters. + */ + beginDeleteAndWait( + resourceGroupName: string, + workspaceName: string, + managedPrivateEndpointName: string, + options?: ManagedPrivateEndpointsDeleteOptionalParams + ): Promise; +} diff --git a/sdk/dashboard/arm-dashboard/src/operationsInterfaces/privateEndpointConnections.ts b/sdk/dashboard/arm-dashboard/src/operationsInterfaces/privateEndpointConnections.ts index 64231d766cca..e28ef9b34592 100644 --- a/sdk/dashboard/arm-dashboard/src/operationsInterfaces/privateEndpointConnections.ts +++ b/sdk/dashboard/arm-dashboard/src/operationsInterfaces/privateEndpointConnections.ts @@ -7,7 +7,7 @@ */ import { PagedAsyncIterableIterator } from "@azure/core-paging"; -import { PollerLike, PollOperationState } from "@azure/core-lro"; +import { SimplePollerLike, OperationState } from "@azure/core-lro"; import { PrivateEndpointConnection, PrivateEndpointConnectionsListOptionalParams, @@ -15,7 +15,8 @@ import { PrivateEndpointConnectionsGetResponse, PrivateEndpointConnectionsApproveOptionalParams, PrivateEndpointConnectionsApproveResponse, - PrivateEndpointConnectionsDeleteOptionalParams + PrivateEndpointConnectionsDeleteOptionalParams, + PrivateEndpointConnectionsDeleteResponse } from "../models"; /// @@ -58,8 +59,8 @@ export interface PrivateEndpointConnections { privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsApproveOptionalParams ): Promise< - PollerLike< - PollOperationState, + SimplePollerLike< + OperationState, PrivateEndpointConnectionsApproveResponse > >; @@ -88,7 +89,12 @@ export interface PrivateEndpointConnections { workspaceName: string, privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsDeleteOptionalParams - ): Promise, void>>; + ): Promise< + SimplePollerLike< + OperationState, + PrivateEndpointConnectionsDeleteResponse + > + >; /** * Delete private endpoint connection * @param resourceGroupName The name of the resource group. The name is case insensitive. @@ -101,5 +107,5 @@ export interface PrivateEndpointConnections { workspaceName: string, privateEndpointConnectionName: string, options?: PrivateEndpointConnectionsDeleteOptionalParams - ): Promise; + ): Promise; } diff --git a/sdk/dashboard/arm-dashboard/tsconfig.json b/sdk/dashboard/arm-dashboard/tsconfig.json index d6251f79964f..3e6ae96443f3 100644 --- a/sdk/dashboard/arm-dashboard/tsconfig.json +++ b/sdk/dashboard/arm-dashboard/tsconfig.json @@ -15,17 +15,11 @@ ], "declaration": true, "outDir": "./dist-esm", - "importHelpers": true, - "paths": { - "@azure/arm-dashboard": [ - "./src/index" - ] - } + "importHelpers": true }, "include": [ "./src/**/*.ts", - "./test/**/*.ts", - "samples-dev/**/*.ts" + "./test/**/*.ts" ], "exclude": [ "node_modules"