From caf3e80aacfeb41bfad0171dba7ff1de06e13d5f Mon Sep 17 00:00:00 2001 From: azure-sdk Date: Thu, 28 Aug 2025 20:43:19 +0000 Subject: [PATCH 1/5] Configurations: 'specification/impact/Impact.Management/tspconfig.yaml', API Version: 2024-05-01-preview, SDK Release Type: beta, and CommitSHA: 'f9b00d9100abf7a317573f66dcf1fac5ea467b3d' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5274250 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. --- .../arm-impactreporting/CHANGELOG.md | 13 + .../arm-impactreporting/api-extractor.json | 2 +- .../arm-impactreporting/metadata.json | 4 + .../arm-impactreporting/package.json | 4 +- .../arm-impactreporting-models-node.api.md | 2 +- .../review/arm-impactreporting-node.api.md | 13 +- .../connectorsCreateOrUpdateSample.ts | 27 + .../samples-dev/connectorsDeleteSample.ts | 24 + .../samples-dev/connectorsGetSample.ts | 25 + .../connectorsListBySubscriptionSample.ts | 29 + .../samples-dev/connectorsUpdateSample.ts | 27 + .../samples-dev/impactCategoriesGetSample.ts | 25 + ...mpactCategoriesListBySubscriptionSample.ts | 31 + .../samples-dev/insightsCreateSample.ts | 44 + .../samples-dev/insightsDeleteSample.ts | 24 + .../samples-dev/insightsGetSample.ts | 55 + .../insightsListBySubscriptionSample.ts | 29 + .../samples-dev/operationsListSample.ts | 29 + .../workloadImpactsCreateSample.ts | 136 ++ .../workloadImpactsDeleteSample.ts | 24 + .../samples-dev/workloadImpactsGetSample.ts | 25 + ...workloadImpactsListBySubscriptionSample.ts | 29 + .../src/api/connectors/index.ts | 265 +-- .../src/api/connectors/operations.ts | 281 +++ .../src/api/connectors/options.ts | 22 + .../src/api/impactCategories/index.ts | 125 +- .../src/api/impactCategories/operations.ts | 130 ++ .../src/api/impactCategories/options.ts | 13 + .../src/api/impactContext.ts | 6 +- .../arm-impactreporting/src/api/index.ts | 42 - .../src/api/insights/index.ts | 222 +-- .../src/api/insights/operations.ts | 232 +++ .../src/api/insights/options.ts | 16 + .../src/api/operations/index.ts | 60 +- .../src/api/operations/operations.ts | 71 + .../src/api/operations/options.ts | 7 + .../arm-impactreporting/src/api/options.ts | 61 - .../src/api/workloadImpacts/index.ts | 221 +-- .../src/api/workloadImpacts/operations.ts | 230 +++ .../src/api/workloadImpacts/options.ts | 19 + .../src/classic/connectors/index.ts | 35 +- .../src/classic/impactCategories/index.ts | 15 +- .../src/classic/insights/index.ts | 22 +- .../src/classic/operations/index.ts | 6 +- .../src/classic/workloadImpacts/index.ts | 22 +- .../arm-impactreporting/src/impactClient.ts | 14 +- .../arm-impactreporting/src/index.ts | 70 +- .../arm-impactreporting/src/models/index.ts | 52 +- .../arm-impactreporting/src/models/models.ts | 1750 ++++++++--------- .../src/restorePollerHelpers.ts | 12 +- .../src/static-helpers/cloudSettingHelpers.ts | 33 + .../src/static-helpers/urlTemplate.ts | 198 ++ .../arm-impactreporting/tsconfig.json | 2 +- .../arm-impactreporting/tsp-location.yaml | 4 +- sdk/impactreporting/ci.mgmt.yml | 4 +- 55 files changed, 2892 insertions(+), 1991 deletions(-) create mode 100644 sdk/impactreporting/arm-impactreporting/metadata.json create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/connectorsCreateOrUpdateSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/connectorsDeleteSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/connectorsGetSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/connectorsListBySubscriptionSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/connectorsUpdateSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/impactCategoriesGetSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/impactCategoriesListBySubscriptionSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/insightsCreateSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/insightsDeleteSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/insightsGetSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/insightsListBySubscriptionSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/operationsListSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsCreateSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsDeleteSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsGetSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsListBySubscriptionSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/src/api/connectors/operations.ts create mode 100644 sdk/impactreporting/arm-impactreporting/src/api/connectors/options.ts create mode 100644 sdk/impactreporting/arm-impactreporting/src/api/impactCategories/operations.ts create mode 100644 sdk/impactreporting/arm-impactreporting/src/api/impactCategories/options.ts create mode 100644 sdk/impactreporting/arm-impactreporting/src/api/insights/operations.ts create mode 100644 sdk/impactreporting/arm-impactreporting/src/api/insights/options.ts create mode 100644 sdk/impactreporting/arm-impactreporting/src/api/operations/operations.ts create mode 100644 sdk/impactreporting/arm-impactreporting/src/api/operations/options.ts delete mode 100644 sdk/impactreporting/arm-impactreporting/src/api/options.ts create mode 100644 sdk/impactreporting/arm-impactreporting/src/api/workloadImpacts/operations.ts create mode 100644 sdk/impactreporting/arm-impactreporting/src/api/workloadImpacts/options.ts create mode 100644 sdk/impactreporting/arm-impactreporting/src/static-helpers/cloudSettingHelpers.ts create mode 100644 sdk/impactreporting/arm-impactreporting/src/static-helpers/urlTemplate.ts diff --git a/sdk/impactreporting/arm-impactreporting/CHANGELOG.md b/sdk/impactreporting/arm-impactreporting/CHANGELOG.md index 7907d4221ae4..c97afc6e4f65 100644 --- a/sdk/impactreporting/arm-impactreporting/CHANGELOG.md +++ b/sdk/impactreporting/arm-impactreporting/CHANGELOG.md @@ -1,4 +1,17 @@ # Release History + +## 1.0.0-beta.2 (2025-08-28) +Compared with version 1.0.0-beta.1 + +### Features Added + - Added Interface Performance + - Interface ImpactClientOptionalParams has a new optional parameter cloudSetting + - Added Type Alias AzureSupportedClouds + - Added Enum AzureClouds + +### Breaking Changes + - Removed Interface Performance_2 + ## 1.0.0-beta.1 (2025-02-20) diff --git a/sdk/impactreporting/arm-impactreporting/api-extractor.json b/sdk/impactreporting/arm-impactreporting/api-extractor.json index 16d81e2eb512..1e1b312909b1 100644 --- a/sdk/impactreporting/arm-impactreporting/api-extractor.json +++ b/sdk/impactreporting/arm-impactreporting/api-extractor.json @@ -1,3 +1,3 @@ { "extends": "../../../api-extractor-base.json" -} +} \ No newline at end of file diff --git a/sdk/impactreporting/arm-impactreporting/metadata.json b/sdk/impactreporting/arm-impactreporting/metadata.json new file mode 100644 index 000000000000..e3fbc6471bc7 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/metadata.json @@ -0,0 +1,4 @@ +{ + "apiVersion": "2024-05-01-preview", + "emitterVersion": "0.43.0" +} diff --git a/sdk/impactreporting/arm-impactreporting/package.json b/sdk/impactreporting/arm-impactreporting/package.json index 845e0a388052..53f974c4beb3 100644 --- a/sdk/impactreporting/arm-impactreporting/package.json +++ b/sdk/impactreporting/arm-impactreporting/package.json @@ -1,6 +1,6 @@ { "name": "@azure/arm-impactreporting", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "description": "A generated SDK for ImpactClient.", "engines": { "node": ">=20.0.0" @@ -152,4 +152,4 @@ "main": "./dist/commonjs/index.js", "types": "./dist/commonjs/index.d.ts", "module": "./dist/esm/index.js" -} +} \ No newline at end of file diff --git a/sdk/impactreporting/arm-impactreporting/review/arm-impactreporting-models-node.api.md b/sdk/impactreporting/arm-impactreporting/review/arm-impactreporting-models-node.api.md index 6a3a81b296b5..49f928f62a9f 100644 --- a/sdk/impactreporting/arm-impactreporting/review/arm-impactreporting-models-node.api.md +++ b/sdk/impactreporting/arm-impactreporting/review/arm-impactreporting-models-node.api.md @@ -59,7 +59,7 @@ export type CreatedByType = string; // @public export interface ErrorAdditionalInfo { - readonly info?: Record; + readonly info?: any; readonly type?: string; } diff --git a/sdk/impactreporting/arm-impactreporting/review/arm-impactreporting-node.api.md b/sdk/impactreporting/arm-impactreporting/review/arm-impactreporting-node.api.md index f1a3629e4282..d44a95370016 100644 --- a/sdk/impactreporting/arm-impactreporting/review/arm-impactreporting-node.api.md +++ b/sdk/impactreporting/arm-impactreporting/review/arm-impactreporting-node.api.md @@ -16,6 +16,16 @@ import { TokenCredential } from '@azure/core-auth'; // @public export type ActionType = string; +// @public +export enum AzureClouds { + AZURE_CHINA_CLOUD = "AZURE_CHINA_CLOUD", + AZURE_PUBLIC_CLOUD = "AZURE_PUBLIC_CLOUD", + AZURE_US_GOVERNMENT = "AZURE_US_GOVERNMENT" +} + +// @public +export type AzureSupportedClouds = `${AzureClouds}`; + // @public export interface ClientIncidentDetails { clientIncidentId?: string; @@ -103,7 +113,7 @@ export type CreatedByType = string; // @public export interface ErrorAdditionalInfo { - readonly info?: Record; + readonly info?: any; readonly type?: string; } @@ -176,6 +186,7 @@ export class ImpactClient { // @public export interface ImpactClientOptionalParams extends ClientOptions { apiVersion?: string; + cloudSetting?: AzureSupportedClouds; } // @public diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsCreateOrUpdateSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsCreateOrUpdateSample.ts new file mode 100644 index 000000000000..fcd0e9e589bd --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsCreateOrUpdateSample.ts @@ -0,0 +1,27 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to create a Connector + * + * @summary create a Connector + * x-ms-original-file: 2024-05-01-preview/Connectors_CreateOrUpdate.json + */ +async function connectorsCreateOrUpdate(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.connectors.createOrUpdate("testconnector1", { + properties: { connectorType: "AzureMonitor" }, + }); + console.log(result); +} + +async function main(): Promise { + await connectorsCreateOrUpdate(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsDeleteSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsDeleteSample.ts new file mode 100644 index 000000000000..a2daca64d8ef --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsDeleteSample.ts @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to delete a Connector + * + * @summary delete a Connector + * x-ms-original-file: 2024-05-01-preview/Connectors_Delete.json + */ +async function connectorsDelete(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "8F74B371-8573-4773-9BDA-D546505BDB3A"; + const client = new ImpactClient(credential, subscriptionId); + await client.connectors.delete("testconnector1"); +} + +async function main(): Promise { + await connectorsDelete(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsGetSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsGetSample.ts new file mode 100644 index 000000000000..42f3e7f1973a --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsGetSample.ts @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to get a Connector + * + * @summary get a Connector + * x-ms-original-file: 2024-05-01-preview/Connectors_Get.json + */ +async function connectorsGet(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.connectors.get("testconnector1"); + console.log(result); +} + +async function main(): Promise { + await connectorsGet(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsListBySubscriptionSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsListBySubscriptionSample.ts new file mode 100644 index 000000000000..96518f5d03b9 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsListBySubscriptionSample.ts @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to list Connector resources by subscription ID + * + * @summary list Connector resources by subscription ID + * x-ms-original-file: 2024-05-01-preview/Connectors_ListBySubscription.json + */ +async function connectorsListBySubscription(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.connectors.listBySubscription()) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main(): Promise { + await connectorsListBySubscription(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsUpdateSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsUpdateSample.ts new file mode 100644 index 000000000000..3d7422c68e43 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsUpdateSample.ts @@ -0,0 +1,27 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to update a Connector + * + * @summary update a Connector + * x-ms-original-file: 2024-05-01-preview/Connectors_Update.json + */ +async function connectorsUpdate(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.connectors.update("testconnector1", { + properties: { connectorType: "AzureMonitor" }, + }); + console.log(result); +} + +async function main(): Promise { + await connectorsUpdate(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/impactCategoriesGetSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/impactCategoriesGetSample.ts new file mode 100644 index 000000000000..e2b845fdb997 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/impactCategoriesGetSample.ts @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to get a ImpactCategory + * + * @summary get a ImpactCategory + * x-ms-original-file: 2024-05-01-preview/ImpactCategories_Get.json + */ +async function getWorkloadImpactResourceByName(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.impactCategories.get("ARMOperation.Create"); + console.log(result); +} + +async function main(): Promise { + await getWorkloadImpactResourceByName(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/impactCategoriesListBySubscriptionSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/impactCategoriesListBySubscriptionSample.ts new file mode 100644 index 000000000000..97beae44ad0b --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/impactCategoriesListBySubscriptionSample.ts @@ -0,0 +1,31 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to list ImpactCategory resources by subscription + * + * @summary list ImpactCategory resources by subscription + * x-ms-original-file: 2024-05-01-preview/ImpactCategories_ListBySubscription.json + */ +async function getImpactCategoriesListBySubscription(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.impactCategories.listBySubscription( + "microsoft.compute/virtualmachines", + )) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main(): Promise { + await getImpactCategoriesListBySubscription(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/insightsCreateSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/insightsCreateSample.ts new file mode 100644 index 000000000000..d8a91f35a5e8 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/insightsCreateSample.ts @@ -0,0 +1,44 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to create Insight resource, This is Admin only operation + * + * @summary create Insight resource, This is Admin only operation + * x-ms-original-file: 2024-05-01-preview/Insights_Create.json + */ +async function creatingAnInsight(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.insights.create("impactid22", "insightId12", { + properties: { + content: { + title: "Impact Has been correlated to an outage", + description: + 'At 2018-11-08T00:00:00Z UTC, your services dependent on these resources VM1 may have experienced an issue.
We have identified an outage that affected these resources(s). You can look at outage information on NL2W-VCZ link.
', + }, + category: "repair", + status: "resolved", + eventTime: new Date("2023-06-15T04:00:00.009223Z"), + insightUniqueId: "00000000-0000-0000-0000-000000000000", + impact: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservername", + startTime: new Date("2023-06-15T01:00:00.009223Z"), + impactId: + "/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.Impact/workloadImpacts/impactid22", + }, + }, + }); + console.log(result); +} + +async function main(): Promise { + await creatingAnInsight(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/insightsDeleteSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/insightsDeleteSample.ts new file mode 100644 index 000000000000..d02a998caa29 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/insightsDeleteSample.ts @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to delete Insight resource, This is Admin only operation + * + * @summary delete Insight resource, This is Admin only operation + * x-ms-original-file: 2024-05-01-preview/Insights_Delete.json + */ +async function deleteAnInsight(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + await client.insights.delete("impactid22", "insightId12"); +} + +async function main(): Promise { + await deleteAnInsight(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/insightsGetSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/insightsGetSample.ts new file mode 100644 index 000000000000..88f2ab2cf7d4 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/insightsGetSample.ts @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to get Insight resources by workloadImpactName and insightName + * + * @summary get Insight resources by workloadImpactName and insightName + * x-ms-original-file: 2024-05-01-preview/Insights_Get_diagnostics.json + */ +async function getInsightSampleForDiagnosticsCategory(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.insights.get("impactid", "insight1"); + console.log(result); +} + +/** + * This sample demonstrates how to get Insight resources by workloadImpactName and insightName + * + * @summary get Insight resources by workloadImpactName and insightName + * x-ms-original-file: 2024-05-01-preview/Insights_Get_mitigationAction.json + */ +async function getInsightSampleForMitigationActionCategory(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.insights.get("impactId", "HPCUASucceeded"); + console.log(result); +} + +/** + * This sample demonstrates how to get Insight resources by workloadImpactName and insightName + * + * @summary get Insight resources by workloadImpactName and insightName + * x-ms-original-file: 2024-05-01-preview/Insights_Get_servicehealth.json + */ +async function getInsightSampleForServiceHealthCategory(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.insights.get("impactid", "insightname"); + console.log(result); +} + +async function main(): Promise { + await getInsightSampleForDiagnosticsCategory(); + await getInsightSampleForMitigationActionCategory(); + await getInsightSampleForServiceHealthCategory(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/insightsListBySubscriptionSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/insightsListBySubscriptionSample.ts new file mode 100644 index 000000000000..45c411060505 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/insightsListBySubscriptionSample.ts @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to list Insight resources by workloadImpactName + * + * @summary list Insight resources by workloadImpactName + * x-ms-original-file: 2024-05-01-preview/Insights_ListBySubscription.json + */ +async function listInsightResourcesByWorkloadImpactName(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.insights.listBySubscription("impactid22")) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main(): Promise { + await listInsightResourcesByWorkloadImpactName(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/operationsListSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/operationsListSample.ts new file mode 100644 index 000000000000..9affe9d0b813 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/operationsListSample.ts @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to list the operations for the provider + * + * @summary list the operations for the provider + * x-ms-original-file: 2024-05-01-preview/Operations_List.json + */ +async function operationsList(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-00000000000"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.operations.list()) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main(): Promise { + await operationsList(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsCreateSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsCreateSample.ts new file mode 100644 index 000000000000..65cc642ff507 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsCreateSample.ts @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to create a WorkloadImpact + * + * @summary create a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadArmOperation_create.json + */ +async function reportingArmOperationFailure(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.create("impact-002", { + properties: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", + startDateTime: new Date("2022-06-15T05:59:46.6517821Z"), + impactDescription: "deletion of resource failed", + impactCategory: "ArmOperation", + armCorrelationIds: ["00000000-0000-0000-0000-000000000000"], + workload: { context: "webapp/scenario1", toolset: "Other" }, + clientIncidentDetails: { + clientIncidentId: "AA123", + clientIncidentSource: "Jira", + }, + }, + }); + console.log(result); +} + +/** + * This sample demonstrates how to create a WorkloadImpact + * + * @summary create a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadAvailability_Create.json + */ +async function reportingAvailabilityRelatedImpact(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.create("impact-002", { + properties: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", + startDateTime: new Date("2022-06-15T05:59:46.6517821Z"), + impactDescription: "read calls failed", + impactCategory: "Availability", + workload: { context: "webapp/scenario1", toolset: "Other" }, + clientIncidentDetails: { + clientIncidentId: "AA123", + clientIncidentSource: "Jira", + }, + }, + }); + console.log(result); +} + +/** + * This sample demonstrates how to create a WorkloadImpact + * + * @summary create a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadConnectivityImpact_Create.json + */ +async function reportingAConnectivityImpact(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.create("impact-001", { + properties: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", + startDateTime: new Date("2022-06-15T05:59:46.6517821Z"), + impactDescription: "conection failure", + impactCategory: "Resource.Connectivity", + connectivity: { + protocol: "TCP", + port: 1443, + source: { + azureResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm1", + }, + target: { + azureResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm2", + }, + }, + workload: { context: "webapp/scenario1", toolset: "Other" }, + clientIncidentDetails: { + clientIncidentId: "AA123", + clientIncidentSource: "Jira", + }, + }, + }); + console.log(result); +} + +/** + * This sample demonstrates how to create a WorkloadImpact + * + * @summary create a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadPerformance_Create.json + */ +async function reportingPerformanceRelatedImpact(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.create("impact-002", { + properties: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", + startDateTime: new Date("2022-06-15T05:59:46.6517821Z"), + impactDescription: "high cpu utilization", + impactCategory: "Resource.Performance", + workload: { context: "webapp/scenario1", toolset: "Other" }, + performance: [{ metricName: "CPU", actual: 90, expected: 60, unit: "garbage" }], + clientIncidentDetails: { + clientIncidentId: "AA123", + clientIncidentSource: "Jira", + }, + }, + }); + console.log(result); +} + +async function main(): Promise { + await reportingArmOperationFailure(); + await reportingAvailabilityRelatedImpact(); + await reportingAConnectivityImpact(); + await reportingPerformanceRelatedImpact(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsDeleteSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsDeleteSample.ts new file mode 100644 index 000000000000..a9f0195f563d --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsDeleteSample.ts @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to delete a WorkloadImpact + * + * @summary delete a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Delete.json + */ +async function deleteWorkloadImpactResourceByNameExample(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + await client.workloadImpacts.delete("impact-001"); +} + +async function main(): Promise { + await deleteWorkloadImpactResourceByNameExample(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsGetSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsGetSample.ts new file mode 100644 index 000000000000..1c9a19868a9e --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsGetSample.ts @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to get a WorkloadImpact + * + * @summary get a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Get.json + */ +async function getWorkloadImpactResourceByNameExample(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.get("impact-001"); + console.log(result); +} + +async function main(): Promise { + await getWorkloadImpactResourceByNameExample(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsListBySubscriptionSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsListBySubscriptionSample.ts new file mode 100644 index 000000000000..51e79e41e399 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/workloadImpactsListBySubscriptionSample.ts @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to list WorkloadImpact resources by subscription ID + * + * @summary list WorkloadImpact resources by subscription ID + * x-ms-original-file: 2024-05-01-preview/WorkloadImpacts_ListBySubscription.json + */ +async function listWorkloadImpactResourcesBySubscription(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.workloadImpacts.listBySubscription()) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main(): Promise { + await listWorkloadImpactResourcesBySubscription(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/src/api/connectors/index.ts b/sdk/impactreporting/arm-impactreporting/src/api/connectors/index.ts index 5129690fd8c5..34f6771c3cbf 100644 --- a/sdk/impactreporting/arm-impactreporting/src/api/connectors/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/api/connectors/index.ts @@ -1,264 +1,11 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { - ImpactContext as Client, - ConnectorsCreateOrUpdateOptionalParams, - ConnectorsDeleteOptionalParams, - ConnectorsGetOptionalParams, +export { listBySubscription, $delete, update, createOrUpdate, get } from "./operations.js"; +export { ConnectorsListBySubscriptionOptionalParams, + ConnectorsDeleteOptionalParams, ConnectorsUpdateOptionalParams, -} from "../index.js"; -import { - Connector, - connectorSerializer, - connectorDeserializer, - errorResponseDeserializer, - ConnectorUpdate, - connectorUpdateSerializer, - _ConnectorListResult, - _connectorListResultDeserializer, -} from "../../models/models.js"; -import { - PagedAsyncIterableIterator, - buildPagedAsyncIterator, -} from "../../static-helpers/pagingHelpers.js"; -import { getLongRunningPoller } from "../../static-helpers/pollingHelpers.js"; -import { - StreamableMethod, - PathUncheckedResponse, - createRestError, - operationOptionsToRequestParameters, -} from "@azure-rest/core-client"; -import { PollerLike, OperationState } from "@azure/core-lro"; - -export function _connectorsListBySubscriptionSend( - context: Client, - options: ConnectorsListBySubscriptionOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors", - context.subscriptionId, - ) - .get({ - ...operationOptionsToRequestParameters(options), - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - }); -} - -export async function _connectorsListBySubscriptionDeserialize( - result: PathUncheckedResponse, -): Promise<_ConnectorListResult> { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return _connectorListResultDeserializer(result.body); -} - -/** List Connector resources by subscription ID */ -export function connectorsListBySubscription( - context: Client, - options: ConnectorsListBySubscriptionOptionalParams = { requestOptions: {} }, -): PagedAsyncIterableIterator { - return buildPagedAsyncIterator( - context, - () => _connectorsListBySubscriptionSend(context, options), - _connectorsListBySubscriptionDeserialize, - ["200"], - { itemName: "value", nextLinkName: "nextLink" }, - ); -} - -export function _connectorsDeleteSend( - context: Client, - connectorName: string, - options: ConnectorsDeleteOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName}", - context.subscriptionId, - connectorName, - ) - .delete({ - ...operationOptionsToRequestParameters(options), - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - }); -} - -export async function _connectorsDeleteDeserialize(result: PathUncheckedResponse): Promise { - const expectedStatuses = ["200", "204"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return; -} - -/** Delete a Connector */ -export async function connectorsDelete( - context: Client, - connectorName: string, - options: ConnectorsDeleteOptionalParams = { requestOptions: {} }, -): Promise { - const result = await _connectorsDeleteSend(context, connectorName, options); - return _connectorsDeleteDeserialize(result); -} - -export function _connectorsUpdateSend( - context: Client, - connectorName: string, - properties: ConnectorUpdate, - options: ConnectorsUpdateOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName}", - context.subscriptionId, - connectorName, - ) - .patch({ - ...operationOptionsToRequestParameters(options), - contentType: "application/json", - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - body: connectorUpdateSerializer(properties), - }); -} - -export async function _connectorsUpdateDeserialize( - result: PathUncheckedResponse, -): Promise { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return connectorDeserializer(result.body); -} - -/** Update a Connector */ -export async function connectorsUpdate( - context: Client, - connectorName: string, - properties: ConnectorUpdate, - options: ConnectorsUpdateOptionalParams = { requestOptions: {} }, -): Promise { - const result = await _connectorsUpdateSend(context, connectorName, properties, options); - return _connectorsUpdateDeserialize(result); -} - -export function _connectorsCreateOrUpdateSend( - context: Client, - connectorName: string, - resource: Connector, - options: ConnectorsCreateOrUpdateOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName}", - context.subscriptionId, - connectorName, - ) - .put({ - ...operationOptionsToRequestParameters(options), - contentType: "application/json", - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - body: connectorSerializer(resource), - }); -} - -export async function _connectorsCreateOrUpdateDeserialize( - result: PathUncheckedResponse, -): Promise { - const expectedStatuses = ["200", "201"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return connectorDeserializer(result.body); -} - -/** Create a Connector */ -export function connectorsCreateOrUpdate( - context: Client, - connectorName: string, - resource: Connector, - options: ConnectorsCreateOrUpdateOptionalParams = { requestOptions: {} }, -): PollerLike, Connector> { - return getLongRunningPoller(context, _connectorsCreateOrUpdateDeserialize, ["200", "201"], { - updateIntervalInMs: options?.updateIntervalInMs, - abortSignal: options?.abortSignal, - getInitialResponse: () => - _connectorsCreateOrUpdateSend(context, connectorName, resource, options), - resourceLocationConfig: "azure-async-operation", - }) as PollerLike, Connector>; -} - -export function _connectorsGetSend( - context: Client, - connectorName: string, - options: ConnectorsGetOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName}", - context.subscriptionId, - connectorName, - ) - .get({ - ...operationOptionsToRequestParameters(options), - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - }); -} - -export async function _connectorsGetDeserialize(result: PathUncheckedResponse): Promise { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return connectorDeserializer(result.body); -} - -/** Get a Connector */ -export async function connectorsGet( - context: Client, - connectorName: string, - options: ConnectorsGetOptionalParams = { requestOptions: {} }, -): Promise { - const result = await _connectorsGetSend(context, connectorName, options); - return _connectorsGetDeserialize(result); -} + ConnectorsCreateOrUpdateOptionalParams, + ConnectorsGetOptionalParams, +} from "./options.js"; diff --git a/sdk/impactreporting/arm-impactreporting/src/api/connectors/operations.ts b/sdk/impactreporting/arm-impactreporting/src/api/connectors/operations.ts new file mode 100644 index 000000000000..dc16dac70cac --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/src/api/connectors/operations.ts @@ -0,0 +1,281 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactContext as Client } from "../index.js"; +import { + errorResponseDeserializer, + Connector, + connectorSerializer, + connectorDeserializer, + ConnectorUpdate, + connectorUpdateSerializer, + _ConnectorListResult, + _connectorListResultDeserializer, +} from "../../models/models.js"; +import { + PagedAsyncIterableIterator, + buildPagedAsyncIterator, +} from "../../static-helpers/pagingHelpers.js"; +import { getLongRunningPoller } from "../../static-helpers/pollingHelpers.js"; +import { expandUrlTemplate } from "../../static-helpers/urlTemplate.js"; +import { + ConnectorsListBySubscriptionOptionalParams, + ConnectorsDeleteOptionalParams, + ConnectorsUpdateOptionalParams, + ConnectorsCreateOrUpdateOptionalParams, + ConnectorsGetOptionalParams, +} from "./options.js"; +import { + StreamableMethod, + PathUncheckedResponse, + createRestError, + operationOptionsToRequestParameters, +} from "@azure-rest/core-client"; +import { PollerLike, OperationState } from "@azure/core-lro"; + +export function _listBySubscriptionSend( + context: Client, + options: ConnectorsListBySubscriptionOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _listBySubscriptionDeserialize( + result: PathUncheckedResponse, +): Promise<_ConnectorListResult> { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return _connectorListResultDeserializer(result.body); +} + +/** List Connector resources by subscription ID */ +export function listBySubscription( + context: Client, + options: ConnectorsListBySubscriptionOptionalParams = { requestOptions: {} }, +): PagedAsyncIterableIterator { + return buildPagedAsyncIterator( + context, + () => _listBySubscriptionSend(context, options), + _listBySubscriptionDeserialize, + ["200"], + { itemName: "value", nextLinkName: "nextLink" }, + ); +} + +export function _$deleteSend( + context: Client, + connectorName: string, + options: ConnectorsDeleteOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + connectorName: connectorName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).delete({ ...operationOptionsToRequestParameters(options) }); +} + +export async function _$deleteDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200", "204"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return; +} + +/** Delete a Connector */ +/** + * @fixme delete is a reserved word that cannot be used as an operation name. + * Please add @clientName("clientName") or @clientName("", "javascript") + * to the operation to override the generated name. + */ +export async function $delete( + context: Client, + connectorName: string, + options: ConnectorsDeleteOptionalParams = { requestOptions: {} }, +): Promise { + const result = await _$deleteSend(context, connectorName, options); + return _$deleteDeserialize(result); +} + +export function _updateSend( + context: Client, + connectorName: string, + properties: ConnectorUpdate, + options: ConnectorsUpdateOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + connectorName: connectorName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).patch({ + ...operationOptionsToRequestParameters(options), + contentType: "application/json", + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + body: connectorUpdateSerializer(properties), + }); +} + +export async function _updateDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return connectorDeserializer(result.body); +} + +/** Update a Connector */ +export async function update( + context: Client, + connectorName: string, + properties: ConnectorUpdate, + options: ConnectorsUpdateOptionalParams = { requestOptions: {} }, +): Promise { + const result = await _updateSend(context, connectorName, properties, options); + return _updateDeserialize(result); +} + +export function _createOrUpdateSend( + context: Client, + connectorName: string, + resource: Connector, + options: ConnectorsCreateOrUpdateOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + connectorName: connectorName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).put({ + ...operationOptionsToRequestParameters(options), + contentType: "application/json", + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + body: connectorSerializer(resource), + }); +} + +export async function _createOrUpdateDeserialize( + result: PathUncheckedResponse, +): Promise { + const expectedStatuses = ["200", "201", "202"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return connectorDeserializer(result.body); +} + +/** Create a Connector */ +export function createOrUpdate( + context: Client, + connectorName: string, + resource: Connector, + options: ConnectorsCreateOrUpdateOptionalParams = { requestOptions: {} }, +): PollerLike, Connector> { + return getLongRunningPoller(context, _createOrUpdateDeserialize, ["200", "201", "202"], { + updateIntervalInMs: options?.updateIntervalInMs, + abortSignal: options?.abortSignal, + getInitialResponse: () => _createOrUpdateSend(context, connectorName, resource, options), + resourceLocationConfig: "azure-async-operation", + }) as PollerLike, Connector>; +} + +export function _getSend( + context: Client, + connectorName: string, + options: ConnectorsGetOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + connectorName: connectorName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _getDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return connectorDeserializer(result.body); +} + +/** Get a Connector */ +export async function get( + context: Client, + connectorName: string, + options: ConnectorsGetOptionalParams = { requestOptions: {} }, +): Promise { + const result = await _getSend(context, connectorName, options); + return _getDeserialize(result); +} diff --git a/sdk/impactreporting/arm-impactreporting/src/api/connectors/options.ts b/sdk/impactreporting/arm-impactreporting/src/api/connectors/options.ts new file mode 100644 index 000000000000..d320fc291338 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/src/api/connectors/options.ts @@ -0,0 +1,22 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { OperationOptions } from "@azure-rest/core-client"; + +/** Optional parameters. */ +export interface ConnectorsListBySubscriptionOptionalParams extends OperationOptions {} + +/** Optional parameters. */ +export interface ConnectorsDeleteOptionalParams extends OperationOptions {} + +/** Optional parameters. */ +export interface ConnectorsUpdateOptionalParams extends OperationOptions {} + +/** Optional parameters. */ +export interface ConnectorsCreateOrUpdateOptionalParams extends OperationOptions { + /** Delay to wait until next poll, in milliseconds. */ + updateIntervalInMs?: number; +} + +/** Optional parameters. */ +export interface ConnectorsGetOptionalParams extends OperationOptions {} diff --git a/sdk/impactreporting/arm-impactreporting/src/api/impactCategories/index.ts b/sdk/impactreporting/arm-impactreporting/src/api/impactCategories/index.ts index 2e508c6f7d61..c74038d104ed 100644 --- a/sdk/impactreporting/arm-impactreporting/src/api/impactCategories/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/api/impactCategories/index.ts @@ -1,125 +1,8 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { - ImpactContext as Client, - ImpactCategoriesGetOptionalParams, +export { listBySubscription, get } from "./operations.js"; +export { ImpactCategoriesListBySubscriptionOptionalParams, -} from "../index.js"; -import { - errorResponseDeserializer, - ImpactCategory, - impactCategoryDeserializer, - _ImpactCategoryListResult, - _impactCategoryListResultDeserializer, -} from "../../models/models.js"; -import { - PagedAsyncIterableIterator, - buildPagedAsyncIterator, -} from "../../static-helpers/pagingHelpers.js"; -import { - StreamableMethod, - PathUncheckedResponse, - createRestError, - operationOptionsToRequestParameters, -} from "@azure-rest/core-client"; - -export function _impactCategoriesListBySubscriptionSend( - context: Client, - resourceType: string, - options: ImpactCategoriesListBySubscriptionOptionalParams = { - requestOptions: {}, - }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories", - context.subscriptionId, - ) - .get({ - ...operationOptionsToRequestParameters(options), - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { - "api-version": context.apiVersion, - categoryName: options?.categoryName, - resourceType: resourceType, - }, - }); -} - -export async function _impactCategoriesListBySubscriptionDeserialize( - result: PathUncheckedResponse, -): Promise<_ImpactCategoryListResult> { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return _impactCategoryListResultDeserializer(result.body); -} - -/** List ImpactCategory resources by subscription */ -export function impactCategoriesListBySubscription( - context: Client, - resourceType: string, - options: ImpactCategoriesListBySubscriptionOptionalParams = { - requestOptions: {}, - }, -): PagedAsyncIterableIterator { - return buildPagedAsyncIterator( - context, - () => _impactCategoriesListBySubscriptionSend(context, resourceType, options), - _impactCategoriesListBySubscriptionDeserialize, - ["200"], - { itemName: "value", nextLinkName: "nextLink" }, - ); -} - -export function _impactCategoriesGetSend( - context: Client, - impactCategoryName: string, - options: ImpactCategoriesGetOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName}", - context.subscriptionId, - impactCategoryName, - ) - .get({ - ...operationOptionsToRequestParameters(options), - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - }); -} - -export async function _impactCategoriesGetDeserialize( - result: PathUncheckedResponse, -): Promise { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return impactCategoryDeserializer(result.body); -} - -/** Get a ImpactCategory */ -export async function impactCategoriesGet( - context: Client, - impactCategoryName: string, - options: ImpactCategoriesGetOptionalParams = { requestOptions: {} }, -): Promise { - const result = await _impactCategoriesGetSend(context, impactCategoryName, options); - return _impactCategoriesGetDeserialize(result); -} + ImpactCategoriesGetOptionalParams, +} from "./options.js"; diff --git a/sdk/impactreporting/arm-impactreporting/src/api/impactCategories/operations.ts b/sdk/impactreporting/arm-impactreporting/src/api/impactCategories/operations.ts new file mode 100644 index 000000000000..e4f132125611 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/src/api/impactCategories/operations.ts @@ -0,0 +1,130 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactContext as Client } from "../index.js"; +import { + errorResponseDeserializer, + ImpactCategory, + impactCategoryDeserializer, + _ImpactCategoryListResult, + _impactCategoryListResultDeserializer, +} from "../../models/models.js"; +import { + PagedAsyncIterableIterator, + buildPagedAsyncIterator, +} from "../../static-helpers/pagingHelpers.js"; +import { expandUrlTemplate } from "../../static-helpers/urlTemplate.js"; +import { + ImpactCategoriesListBySubscriptionOptionalParams, + ImpactCategoriesGetOptionalParams, +} from "./options.js"; +import { + StreamableMethod, + PathUncheckedResponse, + createRestError, + operationOptionsToRequestParameters, +} from "@azure-rest/core-client"; + +export function _listBySubscriptionSend( + context: Client, + resourceType: string, + options: ImpactCategoriesListBySubscriptionOptionalParams = { + requestOptions: {}, + }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories{?api%2Dversion,categoryName,resourceType}", + { + subscriptionId: context.subscriptionId, + "api%2Dversion": context.apiVersion, + categoryName: options?.categoryName, + resourceType: resourceType, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _listBySubscriptionDeserialize( + result: PathUncheckedResponse, +): Promise<_ImpactCategoryListResult> { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return _impactCategoryListResultDeserializer(result.body); +} + +/** List ImpactCategory resources by subscription */ +export function listBySubscription( + context: Client, + resourceType: string, + options: ImpactCategoriesListBySubscriptionOptionalParams = { + requestOptions: {}, + }, +): PagedAsyncIterableIterator { + return buildPagedAsyncIterator( + context, + () => _listBySubscriptionSend(context, resourceType, options), + _listBySubscriptionDeserialize, + ["200"], + { itemName: "value", nextLinkName: "nextLink" }, + ); +} + +export function _getSend( + context: Client, + impactCategoryName: string, + options: ImpactCategoriesGetOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/impactCategories/{impactCategoryName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + impactCategoryName: impactCategoryName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _getDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return impactCategoryDeserializer(result.body); +} + +/** Get a ImpactCategory */ +export async function get( + context: Client, + impactCategoryName: string, + options: ImpactCategoriesGetOptionalParams = { requestOptions: {} }, +): Promise { + const result = await _getSend(context, impactCategoryName, options); + return _getDeserialize(result); +} diff --git a/sdk/impactreporting/arm-impactreporting/src/api/impactCategories/options.ts b/sdk/impactreporting/arm-impactreporting/src/api/impactCategories/options.ts new file mode 100644 index 000000000000..a2e07ef6f4eb --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/src/api/impactCategories/options.ts @@ -0,0 +1,13 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { OperationOptions } from "@azure-rest/core-client"; + +/** Optional parameters. */ +export interface ImpactCategoriesListBySubscriptionOptionalParams extends OperationOptions { + /** Filter by category name */ + categoryName?: string; +} + +/** Optional parameters. */ +export interface ImpactCategoriesGetOptionalParams extends OperationOptions {} diff --git a/sdk/impactreporting/arm-impactreporting/src/api/impactContext.ts b/sdk/impactreporting/arm-impactreporting/src/api/impactContext.ts index 6fce5f6d3188..672ae938dfee 100644 --- a/sdk/impactreporting/arm-impactreporting/src/api/impactContext.ts +++ b/sdk/impactreporting/arm-impactreporting/src/api/impactContext.ts @@ -3,6 +3,7 @@ import { logger } from "../logger.js"; import { KnownVersions } from "../models/models.js"; +import { AzureSupportedClouds, getArmEndpoint } from "../static-helpers/cloudSettingHelpers.js"; import { Client, ClientOptions, getClient } from "@azure-rest/core-client"; import { TokenCredential } from "@azure/core-auth"; @@ -19,6 +20,8 @@ export interface ImpactClientOptionalParams extends ClientOptions { /** The API version to use for this operation. */ /** Known values of {@link KnownVersions} that the service accepts. */ apiVersion?: string; + /** Specifies the Azure cloud environment for the client. */ + cloudSetting?: AzureSupportedClouds; } export function createImpact( @@ -26,7 +29,8 @@ export function createImpact( subscriptionId: string, options: ImpactClientOptionalParams = {}, ): ImpactContext { - const endpointUrl = options.endpoint ?? options.baseUrl ?? "https://management.azure.com"; + const endpointUrl = + options.endpoint ?? getArmEndpoint(options.cloudSetting) ?? "https://management.azure.com"; const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix; const userAgentInfo = `azsdk-js-arm-impactreporting/1.0.0-beta.1`; const userAgentPrefix = prefixFromOptions diff --git a/sdk/impactreporting/arm-impactreporting/src/api/index.ts b/sdk/impactreporting/arm-impactreporting/src/api/index.ts index 28412b69f349..cf6481bb970f 100644 --- a/sdk/impactreporting/arm-impactreporting/src/api/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/api/index.ts @@ -2,45 +2,3 @@ // Licensed under the MIT License. export { createImpact, ImpactContext, ImpactClientOptionalParams } from "./impactContext.js"; -export { - ConnectorsListBySubscriptionOptionalParams, - ConnectorsDeleteOptionalParams, - ConnectorsUpdateOptionalParams, - ConnectorsCreateOrUpdateOptionalParams, - ConnectorsGetOptionalParams, - InsightsDeleteOptionalParams, - InsightsCreateOptionalParams, - InsightsListBySubscriptionOptionalParams, - InsightsGetOptionalParams, - ImpactCategoriesListBySubscriptionOptionalParams, - ImpactCategoriesGetOptionalParams, - WorkloadImpactsListBySubscriptionOptionalParams, - WorkloadImpactsDeleteOptionalParams, - WorkloadImpactsGetOptionalParams, - WorkloadImpactsCreateOptionalParams, - OperationsListOptionalParams, -} from "./options.js"; -export { - connectorsListBySubscription, - connectorsDelete, - connectorsUpdate, - connectorsCreateOrUpdate, - connectorsGet, -} from "./connectors/index.js"; -export { - impactCategoriesListBySubscription, - impactCategoriesGet, -} from "./impactCategories/index.js"; -export { - insightsDelete, - insightsCreate, - insightsListBySubscription, - insightsGet, -} from "./insights/index.js"; -export { operationsList } from "./operations/index.js"; -export { - workloadImpactsListBySubscription, - workloadImpactsDelete, - workloadImpactsGet, - workloadImpactsCreate, -} from "./workloadImpacts/index.js"; diff --git a/sdk/impactreporting/arm-impactreporting/src/api/insights/index.ts b/sdk/impactreporting/arm-impactreporting/src/api/insights/index.ts index 5e22bfc024e2..fb6f482dd90c 100644 --- a/sdk/impactreporting/arm-impactreporting/src/api/insights/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/api/insights/index.ts @@ -1,222 +1,10 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { - ImpactContext as Client, - InsightsCreateOptionalParams, +export { $delete, create, listBySubscription, get } from "./operations.js"; +export { InsightsDeleteOptionalParams, - InsightsGetOptionalParams, + InsightsCreateOptionalParams, InsightsListBySubscriptionOptionalParams, -} from "../index.js"; -import { - errorResponseDeserializer, - Insight, - insightSerializer, - insightDeserializer, - _InsightListResult, - _insightListResultDeserializer, -} from "../../models/models.js"; -import { - PagedAsyncIterableIterator, - buildPagedAsyncIterator, -} from "../../static-helpers/pagingHelpers.js"; -import { - StreamableMethod, - PathUncheckedResponse, - createRestError, - operationOptionsToRequestParameters, -} from "@azure-rest/core-client"; - -export function _insightsDeleteSend( - context: Client, - workloadImpactName: string, - insightName: string, - options: InsightsDeleteOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName}", - context.subscriptionId, - workloadImpactName, - insightName, - ) - .delete({ - ...operationOptionsToRequestParameters(options), - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - }); -} - -export async function _insightsDeleteDeserialize(result: PathUncheckedResponse): Promise { - const expectedStatuses = ["200", "204"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return; -} - -/** Delete Insight resource, This is Admin only operation */ -export async function insightsDelete( - context: Client, - workloadImpactName: string, - insightName: string, - options: InsightsDeleteOptionalParams = { requestOptions: {} }, -): Promise { - const result = await _insightsDeleteSend(context, workloadImpactName, insightName, options); - return _insightsDeleteDeserialize(result); -} - -export function _insightsCreateSend( - context: Client, - workloadImpactName: string, - insightName: string, - resource: Insight, - options: InsightsCreateOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName}", - context.subscriptionId, - workloadImpactName, - insightName, - ) - .put({ - ...operationOptionsToRequestParameters(options), - contentType: "application/json", - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - body: insightSerializer(resource), - }); -} - -export async function _insightsCreateDeserialize(result: PathUncheckedResponse): Promise { - const expectedStatuses = ["200", "201"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return insightDeserializer(result.body); -} - -/** Create Insight resource, This is Admin only operation */ -export async function insightsCreate( - context: Client, - workloadImpactName: string, - insightName: string, - resource: Insight, - options: InsightsCreateOptionalParams = { requestOptions: {} }, -): Promise { - const result = await _insightsCreateSend( - context, - workloadImpactName, - insightName, - resource, - options, - ); - return _insightsCreateDeserialize(result); -} - -export function _insightsListBySubscriptionSend( - context: Client, - workloadImpactName: string, - options: InsightsListBySubscriptionOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights", - context.subscriptionId, - workloadImpactName, - ) - .get({ - ...operationOptionsToRequestParameters(options), - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - }); -} - -export async function _insightsListBySubscriptionDeserialize( - result: PathUncheckedResponse, -): Promise<_InsightListResult> { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return _insightListResultDeserializer(result.body); -} - -/** List Insight resources by workloadImpactName */ -export function insightsListBySubscription( - context: Client, - workloadImpactName: string, - options: InsightsListBySubscriptionOptionalParams = { requestOptions: {} }, -): PagedAsyncIterableIterator { - return buildPagedAsyncIterator( - context, - () => _insightsListBySubscriptionSend(context, workloadImpactName, options), - _insightsListBySubscriptionDeserialize, - ["200"], - { itemName: "value", nextLinkName: "nextLink" }, - ); -} - -export function _insightsGetSend( - context: Client, - workloadImpactName: string, - insightName: string, - options: InsightsGetOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName}", - context.subscriptionId, - workloadImpactName, - insightName, - ) - .get({ - ...operationOptionsToRequestParameters(options), - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - }); -} - -export async function _insightsGetDeserialize(result: PathUncheckedResponse): Promise { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return insightDeserializer(result.body); -} - -/** Get Insight resources by workloadImpactName and insightName */ -export async function insightsGet( - context: Client, - workloadImpactName: string, - insightName: string, - options: InsightsGetOptionalParams = { requestOptions: {} }, -): Promise { - const result = await _insightsGetSend(context, workloadImpactName, insightName, options); - return _insightsGetDeserialize(result); -} + InsightsGetOptionalParams, +} from "./options.js"; diff --git a/sdk/impactreporting/arm-impactreporting/src/api/insights/operations.ts b/sdk/impactreporting/arm-impactreporting/src/api/insights/operations.ts new file mode 100644 index 000000000000..d3995f5148de --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/src/api/insights/operations.ts @@ -0,0 +1,232 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactContext as Client } from "../index.js"; +import { + errorResponseDeserializer, + Insight, + insightSerializer, + insightDeserializer, + _InsightListResult, + _insightListResultDeserializer, +} from "../../models/models.js"; +import { + PagedAsyncIterableIterator, + buildPagedAsyncIterator, +} from "../../static-helpers/pagingHelpers.js"; +import { expandUrlTemplate } from "../../static-helpers/urlTemplate.js"; +import { + InsightsDeleteOptionalParams, + InsightsCreateOptionalParams, + InsightsListBySubscriptionOptionalParams, + InsightsGetOptionalParams, +} from "./options.js"; +import { + StreamableMethod, + PathUncheckedResponse, + createRestError, + operationOptionsToRequestParameters, +} from "@azure-rest/core-client"; + +export function _$deleteSend( + context: Client, + workloadImpactName: string, + insightName: string, + options: InsightsDeleteOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + workloadImpactName: workloadImpactName, + insightName: insightName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).delete({ ...operationOptionsToRequestParameters(options) }); +} + +export async function _$deleteDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200", "204"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return; +} + +/** Delete Insight resource, This is Admin only operation */ +/** + * @fixme delete is a reserved word that cannot be used as an operation name. + * Please add @clientName("clientName") or @clientName("", "javascript") + * to the operation to override the generated name. + */ +export async function $delete( + context: Client, + workloadImpactName: string, + insightName: string, + options: InsightsDeleteOptionalParams = { requestOptions: {} }, +): Promise { + const result = await _$deleteSend(context, workloadImpactName, insightName, options); + return _$deleteDeserialize(result); +} + +export function _createSend( + context: Client, + workloadImpactName: string, + insightName: string, + resource: Insight, + options: InsightsCreateOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + workloadImpactName: workloadImpactName, + insightName: insightName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).put({ + ...operationOptionsToRequestParameters(options), + contentType: "application/json", + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + body: insightSerializer(resource), + }); +} + +export async function _createDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200", "201"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return insightDeserializer(result.body); +} + +/** Create Insight resource, This is Admin only operation */ +export async function create( + context: Client, + workloadImpactName: string, + insightName: string, + resource: Insight, + options: InsightsCreateOptionalParams = { requestOptions: {} }, +): Promise { + const result = await _createSend(context, workloadImpactName, insightName, resource, options); + return _createDeserialize(result); +} + +export function _listBySubscriptionSend( + context: Client, + workloadImpactName: string, + options: InsightsListBySubscriptionOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + workloadImpactName: workloadImpactName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _listBySubscriptionDeserialize( + result: PathUncheckedResponse, +): Promise<_InsightListResult> { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return _insightListResultDeserializer(result.body); +} + +/** List Insight resources by workloadImpactName */ +export function listBySubscription( + context: Client, + workloadImpactName: string, + options: InsightsListBySubscriptionOptionalParams = { requestOptions: {} }, +): PagedAsyncIterableIterator { + return buildPagedAsyncIterator( + context, + () => _listBySubscriptionSend(context, workloadImpactName, options), + _listBySubscriptionDeserialize, + ["200"], + { itemName: "value", nextLinkName: "nextLink" }, + ); +} + +export function _getSend( + context: Client, + workloadImpactName: string, + insightName: string, + options: InsightsGetOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}/insights/{insightName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + workloadImpactName: workloadImpactName, + insightName: insightName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _getDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return insightDeserializer(result.body); +} + +/** Get Insight resources by workloadImpactName and insightName */ +export async function get( + context: Client, + workloadImpactName: string, + insightName: string, + options: InsightsGetOptionalParams = { requestOptions: {} }, +): Promise { + const result = await _getSend(context, workloadImpactName, insightName, options); + return _getDeserialize(result); +} diff --git a/sdk/impactreporting/arm-impactreporting/src/api/insights/options.ts b/sdk/impactreporting/arm-impactreporting/src/api/insights/options.ts new file mode 100644 index 000000000000..cdba3981de35 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/src/api/insights/options.ts @@ -0,0 +1,16 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { OperationOptions } from "@azure-rest/core-client"; + +/** Optional parameters. */ +export interface InsightsDeleteOptionalParams extends OperationOptions {} + +/** Optional parameters. */ +export interface InsightsCreateOptionalParams extends OperationOptions {} + +/** Optional parameters. */ +export interface InsightsListBySubscriptionOptionalParams extends OperationOptions {} + +/** Optional parameters. */ +export interface InsightsGetOptionalParams extends OperationOptions {} diff --git a/sdk/impactreporting/arm-impactreporting/src/api/operations/index.ts b/sdk/impactreporting/arm-impactreporting/src/api/operations/index.ts index 802695eeea1a..24a804d14fcf 100644 --- a/sdk/impactreporting/arm-impactreporting/src/api/operations/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/api/operations/index.ts @@ -1,61 +1,5 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactContext as Client, OperationsListOptionalParams } from "../index.js"; -import { - errorResponseDeserializer, - _OperationListResult, - _operationListResultDeserializer, - Operation, -} from "../../models/models.js"; -import { - PagedAsyncIterableIterator, - buildPagedAsyncIterator, -} from "../../static-helpers/pagingHelpers.js"; -import { - StreamableMethod, - PathUncheckedResponse, - createRestError, - operationOptionsToRequestParameters, -} from "@azure-rest/core-client"; - -export function _operationsListSend( - context: Client, - options: OperationsListOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context.path("/providers/Microsoft.Impact/operations").get({ - ...operationOptionsToRequestParameters(options), - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - }); -} - -export async function _operationsListDeserialize( - result: PathUncheckedResponse, -): Promise<_OperationListResult> { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return _operationListResultDeserializer(result.body); -} - -/** List the operations for the provider */ -export function operationsList( - context: Client, - options: OperationsListOptionalParams = { requestOptions: {} }, -): PagedAsyncIterableIterator { - return buildPagedAsyncIterator( - context, - () => _operationsListSend(context, options), - _operationsListDeserialize, - ["200"], - { itemName: "value", nextLinkName: "nextLink" }, - ); -} +export { list } from "./operations.js"; +export { OperationsListOptionalParams } from "./options.js"; diff --git a/sdk/impactreporting/arm-impactreporting/src/api/operations/operations.ts b/sdk/impactreporting/arm-impactreporting/src/api/operations/operations.ts new file mode 100644 index 000000000000..619cf2d3efb5 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/src/api/operations/operations.ts @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactContext as Client } from "../index.js"; +import { + _OperationListResult, + _operationListResultDeserializer, + Operation, + errorResponseDeserializer, +} from "../../models/models.js"; +import { + PagedAsyncIterableIterator, + buildPagedAsyncIterator, +} from "../../static-helpers/pagingHelpers.js"; +import { expandUrlTemplate } from "../../static-helpers/urlTemplate.js"; +import { OperationsListOptionalParams } from "./options.js"; +import { + StreamableMethod, + PathUncheckedResponse, + createRestError, + operationOptionsToRequestParameters, +} from "@azure-rest/core-client"; + +export function _listSend( + context: Client, + options: OperationsListOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/providers/Microsoft.Impact/operations{?api%2Dversion}", + { + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _listDeserialize( + result: PathUncheckedResponse, +): Promise<_OperationListResult> { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return _operationListResultDeserializer(result.body); +} + +/** List the operations for the provider */ +export function list( + context: Client, + options: OperationsListOptionalParams = { requestOptions: {} }, +): PagedAsyncIterableIterator { + return buildPagedAsyncIterator( + context, + () => _listSend(context, options), + _listDeserialize, + ["200"], + { itemName: "value", nextLinkName: "nextLink" }, + ); +} diff --git a/sdk/impactreporting/arm-impactreporting/src/api/operations/options.ts b/sdk/impactreporting/arm-impactreporting/src/api/operations/options.ts new file mode 100644 index 000000000000..c461016ad1c5 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/src/api/operations/options.ts @@ -0,0 +1,7 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { OperationOptions } from "@azure-rest/core-client"; + +/** Optional parameters. */ +export interface OperationsListOptionalParams extends OperationOptions {} diff --git a/sdk/impactreporting/arm-impactreporting/src/api/options.ts b/sdk/impactreporting/arm-impactreporting/src/api/options.ts deleted file mode 100644 index 4770b2049724..000000000000 --- a/sdk/impactreporting/arm-impactreporting/src/api/options.ts +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -import { OperationOptions } from "@azure-rest/core-client"; - -/** Optional parameters. */ -export interface ConnectorsListBySubscriptionOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface ConnectorsDeleteOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface ConnectorsUpdateOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface ConnectorsCreateOrUpdateOptionalParams extends OperationOptions { - /** Delay to wait until next poll, in milliseconds. */ - updateIntervalInMs?: number; -} - -/** Optional parameters. */ -export interface ConnectorsGetOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface InsightsDeleteOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface InsightsCreateOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface InsightsListBySubscriptionOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface InsightsGetOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface ImpactCategoriesListBySubscriptionOptionalParams extends OperationOptions { - /** Filter by category name */ - categoryName?: string; -} - -/** Optional parameters. */ -export interface ImpactCategoriesGetOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface WorkloadImpactsListBySubscriptionOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface WorkloadImpactsDeleteOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface WorkloadImpactsGetOptionalParams extends OperationOptions {} - -/** Optional parameters. */ -export interface WorkloadImpactsCreateOptionalParams extends OperationOptions { - /** Delay to wait until next poll, in milliseconds. */ - updateIntervalInMs?: number; -} - -/** Optional parameters. */ -export interface OperationsListOptionalParams extends OperationOptions {} diff --git a/sdk/impactreporting/arm-impactreporting/src/api/workloadImpacts/index.ts b/sdk/impactreporting/arm-impactreporting/src/api/workloadImpacts/index.ts index 6e1a7fed039f..c37f3ea0198c 100644 --- a/sdk/impactreporting/arm-impactreporting/src/api/workloadImpacts/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/api/workloadImpacts/index.ts @@ -1,221 +1,10 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { - ImpactContext as Client, - WorkloadImpactsCreateOptionalParams, +export { listBySubscription, $delete, get, create } from "./operations.js"; +export { + WorkloadImpactsListBySubscriptionOptionalParams, WorkloadImpactsDeleteOptionalParams, WorkloadImpactsGetOptionalParams, - WorkloadImpactsListBySubscriptionOptionalParams, -} from "../index.js"; -import { - errorResponseDeserializer, - WorkloadImpact, - workloadImpactSerializer, - workloadImpactDeserializer, - _WorkloadImpactListResult, - _workloadImpactListResultDeserializer, -} from "../../models/models.js"; -import { - PagedAsyncIterableIterator, - buildPagedAsyncIterator, -} from "../../static-helpers/pagingHelpers.js"; -import { getLongRunningPoller } from "../../static-helpers/pollingHelpers.js"; -import { - StreamableMethod, - PathUncheckedResponse, - createRestError, - operationOptionsToRequestParameters, -} from "@azure-rest/core-client"; -import { PollerLike, OperationState } from "@azure/core-lro"; - -export function _workloadImpactsListBySubscriptionSend( - context: Client, - options: WorkloadImpactsListBySubscriptionOptionalParams = { - requestOptions: {}, - }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts", - context.subscriptionId, - ) - .get({ - ...operationOptionsToRequestParameters(options), - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - }); -} - -export async function _workloadImpactsListBySubscriptionDeserialize( - result: PathUncheckedResponse, -): Promise<_WorkloadImpactListResult> { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return _workloadImpactListResultDeserializer(result.body); -} - -/** List WorkloadImpact resources by subscription ID */ -export function workloadImpactsListBySubscription( - context: Client, - options: WorkloadImpactsListBySubscriptionOptionalParams = { - requestOptions: {}, - }, -): PagedAsyncIterableIterator { - return buildPagedAsyncIterator( - context, - () => _workloadImpactsListBySubscriptionSend(context, options), - _workloadImpactsListBySubscriptionDeserialize, - ["200"], - { itemName: "value", nextLinkName: "nextLink" }, - ); -} - -export function _workloadImpactsDeleteSend( - context: Client, - workloadImpactName: string, - options: WorkloadImpactsDeleteOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}", - context.subscriptionId, - workloadImpactName, - ) - .delete({ - ...operationOptionsToRequestParameters(options), - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - }); -} - -export async function _workloadImpactsDeleteDeserialize( - result: PathUncheckedResponse, -): Promise { - const expectedStatuses = ["200", "204"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return; -} - -/** Delete a WorkloadImpact */ -export async function workloadImpactsDelete( - context: Client, - workloadImpactName: string, - options: WorkloadImpactsDeleteOptionalParams = { requestOptions: {} }, -): Promise { - const result = await _workloadImpactsDeleteSend(context, workloadImpactName, options); - return _workloadImpactsDeleteDeserialize(result); -} - -export function _workloadImpactsGetSend( - context: Client, - workloadImpactName: string, - options: WorkloadImpactsGetOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}", - context.subscriptionId, - workloadImpactName, - ) - .get({ - ...operationOptionsToRequestParameters(options), - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - }); -} - -export async function _workloadImpactsGetDeserialize( - result: PathUncheckedResponse, -): Promise { - const expectedStatuses = ["200"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return workloadImpactDeserializer(result.body); -} - -/** Get a WorkloadImpact */ -export async function workloadImpactsGet( - context: Client, - workloadImpactName: string, - options: WorkloadImpactsGetOptionalParams = { requestOptions: {} }, -): Promise { - const result = await _workloadImpactsGetSend(context, workloadImpactName, options); - return _workloadImpactsGetDeserialize(result); -} - -export function _workloadImpactsCreateSend( - context: Client, - workloadImpactName: string, - resource: WorkloadImpact, - options: WorkloadImpactsCreateOptionalParams = { requestOptions: {} }, -): StreamableMethod { - return context - .path( - "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}", - context.subscriptionId, - workloadImpactName, - ) - .put({ - ...operationOptionsToRequestParameters(options), - contentType: "application/json", - headers: { - accept: "application/json", - ...options.requestOptions?.headers, - }, - queryParameters: { "api-version": context.apiVersion }, - body: workloadImpactSerializer(resource), - }); -} - -export async function _workloadImpactsCreateDeserialize( - result: PathUncheckedResponse, -): Promise { - const expectedStatuses = ["200", "201"]; - if (!expectedStatuses.includes(result.status)) { - const error = createRestError(result); - error.details = errorResponseDeserializer(result.body); - throw error; - } - - return workloadImpactDeserializer(result.body); -} - -/** Create a WorkloadImpact */ -export function workloadImpactsCreate( - context: Client, - workloadImpactName: string, - resource: WorkloadImpact, - options: WorkloadImpactsCreateOptionalParams = { requestOptions: {} }, -): PollerLike, WorkloadImpact> { - return getLongRunningPoller(context, _workloadImpactsCreateDeserialize, ["200", "201"], { - updateIntervalInMs: options?.updateIntervalInMs, - abortSignal: options?.abortSignal, - getInitialResponse: () => - _workloadImpactsCreateSend(context, workloadImpactName, resource, options), - resourceLocationConfig: "azure-async-operation", - }) as PollerLike, WorkloadImpact>; -} + WorkloadImpactsCreateOptionalParams, +} from "./options.js"; diff --git a/sdk/impactreporting/arm-impactreporting/src/api/workloadImpacts/operations.ts b/sdk/impactreporting/arm-impactreporting/src/api/workloadImpacts/operations.ts new file mode 100644 index 000000000000..f8aede8001c3 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/src/api/workloadImpacts/operations.ts @@ -0,0 +1,230 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactContext as Client } from "../index.js"; +import { + errorResponseDeserializer, + WorkloadImpact, + workloadImpactSerializer, + workloadImpactDeserializer, + _WorkloadImpactListResult, + _workloadImpactListResultDeserializer, +} from "../../models/models.js"; +import { + PagedAsyncIterableIterator, + buildPagedAsyncIterator, +} from "../../static-helpers/pagingHelpers.js"; +import { getLongRunningPoller } from "../../static-helpers/pollingHelpers.js"; +import { expandUrlTemplate } from "../../static-helpers/urlTemplate.js"; +import { + WorkloadImpactsListBySubscriptionOptionalParams, + WorkloadImpactsDeleteOptionalParams, + WorkloadImpactsGetOptionalParams, + WorkloadImpactsCreateOptionalParams, +} from "./options.js"; +import { + StreamableMethod, + PathUncheckedResponse, + createRestError, + operationOptionsToRequestParameters, +} from "@azure-rest/core-client"; +import { PollerLike, OperationState } from "@azure/core-lro"; + +export function _listBySubscriptionSend( + context: Client, + options: WorkloadImpactsListBySubscriptionOptionalParams = { + requestOptions: {}, + }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _listBySubscriptionDeserialize( + result: PathUncheckedResponse, +): Promise<_WorkloadImpactListResult> { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return _workloadImpactListResultDeserializer(result.body); +} + +/** List WorkloadImpact resources by subscription ID */ +export function listBySubscription( + context: Client, + options: WorkloadImpactsListBySubscriptionOptionalParams = { + requestOptions: {}, + }, +): PagedAsyncIterableIterator { + return buildPagedAsyncIterator( + context, + () => _listBySubscriptionSend(context, options), + _listBySubscriptionDeserialize, + ["200"], + { itemName: "value", nextLinkName: "nextLink" }, + ); +} + +export function _$deleteSend( + context: Client, + workloadImpactName: string, + options: WorkloadImpactsDeleteOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + workloadImpactName: workloadImpactName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).delete({ ...operationOptionsToRequestParameters(options) }); +} + +export async function _$deleteDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200", "204"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return; +} + +/** Delete a WorkloadImpact */ +/** + * @fixme delete is a reserved word that cannot be used as an operation name. + * Please add @clientName("clientName") or @clientName("", "javascript") + * to the operation to override the generated name. + */ +export async function $delete( + context: Client, + workloadImpactName: string, + options: WorkloadImpactsDeleteOptionalParams = { requestOptions: {} }, +): Promise { + const result = await _$deleteSend(context, workloadImpactName, options); + return _$deleteDeserialize(result); +} + +export function _getSend( + context: Client, + workloadImpactName: string, + options: WorkloadImpactsGetOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + workloadImpactName: workloadImpactName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).get({ + ...operationOptionsToRequestParameters(options), + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + }); +} + +export async function _getDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return workloadImpactDeserializer(result.body); +} + +/** Get a WorkloadImpact */ +export async function get( + context: Client, + workloadImpactName: string, + options: WorkloadImpactsGetOptionalParams = { requestOptions: {} }, +): Promise { + const result = await _getSend(context, workloadImpactName, options); + return _getDeserialize(result); +} + +export function _createSend( + context: Client, + workloadImpactName: string, + resource: WorkloadImpact, + options: WorkloadImpactsCreateOptionalParams = { requestOptions: {} }, +): StreamableMethod { + const path = expandUrlTemplate( + "/subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}{?api%2Dversion}", + { + subscriptionId: context.subscriptionId, + workloadImpactName: workloadImpactName, + "api%2Dversion": context.apiVersion, + }, + { + allowReserved: options?.requestOptions?.skipUrlEncoding, + }, + ); + return context.path(path).put({ + ...operationOptionsToRequestParameters(options), + contentType: "application/json", + headers: { + accept: "application/json", + ...options.requestOptions?.headers, + }, + body: workloadImpactSerializer(resource), + }); +} + +export async function _createDeserialize(result: PathUncheckedResponse): Promise { + const expectedStatuses = ["200", "201", "202"]; + if (!expectedStatuses.includes(result.status)) { + const error = createRestError(result); + error.details = errorResponseDeserializer(result.body); + throw error; + } + + return workloadImpactDeserializer(result.body); +} + +/** Create a WorkloadImpact */ +export function create( + context: Client, + workloadImpactName: string, + resource: WorkloadImpact, + options: WorkloadImpactsCreateOptionalParams = { requestOptions: {} }, +): PollerLike, WorkloadImpact> { + return getLongRunningPoller(context, _createDeserialize, ["200", "201", "202"], { + updateIntervalInMs: options?.updateIntervalInMs, + abortSignal: options?.abortSignal, + getInitialResponse: () => _createSend(context, workloadImpactName, resource, options), + resourceLocationConfig: "azure-async-operation", + }) as PollerLike, WorkloadImpact>; +} diff --git a/sdk/impactreporting/arm-impactreporting/src/api/workloadImpacts/options.ts b/sdk/impactreporting/arm-impactreporting/src/api/workloadImpacts/options.ts new file mode 100644 index 000000000000..a1d2a9e8061e --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/src/api/workloadImpacts/options.ts @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { OperationOptions } from "@azure-rest/core-client"; + +/** Optional parameters. */ +export interface WorkloadImpactsListBySubscriptionOptionalParams extends OperationOptions {} + +/** Optional parameters. */ +export interface WorkloadImpactsDeleteOptionalParams extends OperationOptions {} + +/** Optional parameters. */ +export interface WorkloadImpactsGetOptionalParams extends OperationOptions {} + +/** Optional parameters. */ +export interface WorkloadImpactsCreateOptionalParams extends OperationOptions { + /** Delay to wait until next poll, in milliseconds. */ + updateIntervalInMs?: number; +} diff --git a/sdk/impactreporting/arm-impactreporting/src/classic/connectors/index.ts b/sdk/impactreporting/arm-impactreporting/src/classic/connectors/index.ts index 87f769230d47..6b3887da819a 100644 --- a/sdk/impactreporting/arm-impactreporting/src/classic/connectors/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/classic/connectors/index.ts @@ -3,22 +3,22 @@ import { ImpactContext } from "../../api/impactContext.js"; import { - connectorsListBySubscription, - connectorsDelete, - connectorsUpdate, - connectorsCreateOrUpdate, - connectorsGet, -} from "../../api/connectors/index.js"; -import { Connector, ConnectorUpdate } from "../../models/models.js"; -import { PagedAsyncIterableIterator } from "../../static-helpers/pagingHelpers.js"; -import { PollerLike, OperationState } from "@azure/core-lro"; + listBySubscription, + $delete, + update, + createOrUpdate, + get, +} from "../../api/connectors/operations.js"; import { ConnectorsListBySubscriptionOptionalParams, ConnectorsDeleteOptionalParams, ConnectorsUpdateOptionalParams, ConnectorsCreateOrUpdateOptionalParams, ConnectorsGetOptionalParams, -} from "../../api/options.js"; +} from "../../api/connectors/options.js"; +import { Connector, ConnectorUpdate } from "../../models/models.js"; +import { PagedAsyncIterableIterator } from "../../static-helpers/pagingHelpers.js"; +import { PollerLike, OperationState } from "@azure/core-lro"; /** Interface representing a Connectors operations. */ export interface ConnectorsOperations { @@ -27,6 +27,11 @@ export interface ConnectorsOperations { options?: ConnectorsListBySubscriptionOptionalParams, ) => PagedAsyncIterableIterator; /** Delete a Connector */ + /** + * @fixme delete is a reserved word that cannot be used as an operation name. + * Please add @clientName("clientName") or @clientName("", "javascript") + * to the operation to override the generated name. + */ delete: (connectorName: string, options?: ConnectorsDeleteOptionalParams) => Promise; /** Update a Connector */ update: ( @@ -47,21 +52,21 @@ export interface ConnectorsOperations { function _getConnectors(context: ImpactContext) { return { listBySubscription: (options?: ConnectorsListBySubscriptionOptionalParams) => - connectorsListBySubscription(context, options), + listBySubscription(context, options), delete: (connectorName: string, options?: ConnectorsDeleteOptionalParams) => - connectorsDelete(context, connectorName, options), + $delete(context, connectorName, options), update: ( connectorName: string, properties: ConnectorUpdate, options?: ConnectorsUpdateOptionalParams, - ) => connectorsUpdate(context, connectorName, properties, options), + ) => update(context, connectorName, properties, options), createOrUpdate: ( connectorName: string, resource: Connector, options?: ConnectorsCreateOrUpdateOptionalParams, - ) => connectorsCreateOrUpdate(context, connectorName, resource, options), + ) => createOrUpdate(context, connectorName, resource, options), get: (connectorName: string, options?: ConnectorsGetOptionalParams) => - connectorsGet(context, connectorName, options), + get(context, connectorName, options), }; } diff --git a/sdk/impactreporting/arm-impactreporting/src/classic/impactCategories/index.ts b/sdk/impactreporting/arm-impactreporting/src/classic/impactCategories/index.ts index 8dbc30f3d5fc..444191d50a11 100644 --- a/sdk/impactreporting/arm-impactreporting/src/classic/impactCategories/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/classic/impactCategories/index.ts @@ -2,16 +2,13 @@ // Licensed under the MIT License. import { ImpactContext } from "../../api/impactContext.js"; -import { - impactCategoriesListBySubscription, - impactCategoriesGet, -} from "../../api/impactCategories/index.js"; -import { ImpactCategory } from "../../models/models.js"; -import { PagedAsyncIterableIterator } from "../../static-helpers/pagingHelpers.js"; +import { listBySubscription, get } from "../../api/impactCategories/operations.js"; import { ImpactCategoriesListBySubscriptionOptionalParams, ImpactCategoriesGetOptionalParams, -} from "../../api/options.js"; +} from "../../api/impactCategories/options.js"; +import { ImpactCategory } from "../../models/models.js"; +import { PagedAsyncIterableIterator } from "../../static-helpers/pagingHelpers.js"; /** Interface representing a ImpactCategories operations. */ export interface ImpactCategoriesOperations { @@ -32,9 +29,9 @@ function _getImpactCategories(context: ImpactContext) { listBySubscription: ( resourceType: string, options?: ImpactCategoriesListBySubscriptionOptionalParams, - ) => impactCategoriesListBySubscription(context, resourceType, options), + ) => listBySubscription(context, resourceType, options), get: (impactCategoryName: string, options?: ImpactCategoriesGetOptionalParams) => - impactCategoriesGet(context, impactCategoryName, options), + get(context, impactCategoryName, options), }; } diff --git a/sdk/impactreporting/arm-impactreporting/src/classic/insights/index.ts b/sdk/impactreporting/arm-impactreporting/src/classic/insights/index.ts index 72217e42b836..2fc46d677401 100644 --- a/sdk/impactreporting/arm-impactreporting/src/classic/insights/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/classic/insights/index.ts @@ -2,24 +2,24 @@ // Licensed under the MIT License. import { ImpactContext } from "../../api/impactContext.js"; -import { - insightsDelete, - insightsCreate, - insightsListBySubscription, - insightsGet, -} from "../../api/insights/index.js"; +import { $delete, create, listBySubscription, get } from "../../api/insights/operations.js"; import { InsightsDeleteOptionalParams, InsightsCreateOptionalParams, InsightsListBySubscriptionOptionalParams, InsightsGetOptionalParams, -} from "../../api/options.js"; +} from "../../api/insights/options.js"; import { Insight } from "../../models/models.js"; import { PagedAsyncIterableIterator } from "../../static-helpers/pagingHelpers.js"; /** Interface representing a Insights operations. */ export interface InsightsOperations { /** Delete Insight resource, This is Admin only operation */ + /** + * @fixme delete is a reserved word that cannot be used as an operation name. + * Please add @clientName("clientName") or @clientName("", "javascript") + * to the operation to override the generated name. + */ delete: ( workloadImpactName: string, insightName: string, @@ -51,19 +51,19 @@ function _getInsights(context: ImpactContext) { workloadImpactName: string, insightName: string, options?: InsightsDeleteOptionalParams, - ) => insightsDelete(context, workloadImpactName, insightName, options), + ) => $delete(context, workloadImpactName, insightName, options), create: ( workloadImpactName: string, insightName: string, resource: Insight, options?: InsightsCreateOptionalParams, - ) => insightsCreate(context, workloadImpactName, insightName, resource, options), + ) => create(context, workloadImpactName, insightName, resource, options), listBySubscription: ( workloadImpactName: string, options?: InsightsListBySubscriptionOptionalParams, - ) => insightsListBySubscription(context, workloadImpactName, options), + ) => listBySubscription(context, workloadImpactName, options), get: (workloadImpactName: string, insightName: string, options?: InsightsGetOptionalParams) => - insightsGet(context, workloadImpactName, insightName, options), + get(context, workloadImpactName, insightName, options), }; } diff --git a/sdk/impactreporting/arm-impactreporting/src/classic/operations/index.ts b/sdk/impactreporting/arm-impactreporting/src/classic/operations/index.ts index 3b0ff4b255de..8e23c61cd1bc 100644 --- a/sdk/impactreporting/arm-impactreporting/src/classic/operations/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/classic/operations/index.ts @@ -2,8 +2,8 @@ // Licensed under the MIT License. import { ImpactContext } from "../../api/impactContext.js"; -import { operationsList } from "../../api/operations/index.js"; -import { OperationsListOptionalParams } from "../../api/options.js"; +import { list } from "../../api/operations/operations.js"; +import { OperationsListOptionalParams } from "../../api/operations/options.js"; import { Operation } from "../../models/models.js"; import { PagedAsyncIterableIterator } from "../../static-helpers/pagingHelpers.js"; @@ -15,7 +15,7 @@ export interface OperationsOperations { function _getOperations(context: ImpactContext) { return { - list: (options?: OperationsListOptionalParams) => operationsList(context, options), + list: (options?: OperationsListOptionalParams) => list(context, options), }; } diff --git a/sdk/impactreporting/arm-impactreporting/src/classic/workloadImpacts/index.ts b/sdk/impactreporting/arm-impactreporting/src/classic/workloadImpacts/index.ts index cf6f4b205af5..751c6398523e 100644 --- a/sdk/impactreporting/arm-impactreporting/src/classic/workloadImpacts/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/classic/workloadImpacts/index.ts @@ -2,18 +2,13 @@ // Licensed under the MIT License. import { ImpactContext } from "../../api/impactContext.js"; +import { listBySubscription, $delete, get, create } from "../../api/workloadImpacts/operations.js"; import { WorkloadImpactsListBySubscriptionOptionalParams, WorkloadImpactsDeleteOptionalParams, WorkloadImpactsGetOptionalParams, WorkloadImpactsCreateOptionalParams, -} from "../../api/options.js"; -import { - workloadImpactsListBySubscription, - workloadImpactsDelete, - workloadImpactsGet, - workloadImpactsCreate, -} from "../../api/workloadImpacts/index.js"; +} from "../../api/workloadImpacts/options.js"; import { WorkloadImpact } from "../../models/models.js"; import { PagedAsyncIterableIterator } from "../../static-helpers/pagingHelpers.js"; import { PollerLike, OperationState } from "@azure/core-lro"; @@ -25,6 +20,11 @@ export interface WorkloadImpactsOperations { options?: WorkloadImpactsListBySubscriptionOptionalParams, ) => PagedAsyncIterableIterator; /** Delete a WorkloadImpact */ + /** + * @fixme delete is a reserved word that cannot be used as an operation name. + * Please add @clientName("clientName") or @clientName("", "javascript") + * to the operation to override the generated name. + */ delete: ( workloadImpactName: string, options?: WorkloadImpactsDeleteOptionalParams, @@ -45,16 +45,16 @@ export interface WorkloadImpactsOperations { function _getWorkloadImpacts(context: ImpactContext) { return { listBySubscription: (options?: WorkloadImpactsListBySubscriptionOptionalParams) => - workloadImpactsListBySubscription(context, options), + listBySubscription(context, options), delete: (workloadImpactName: string, options?: WorkloadImpactsDeleteOptionalParams) => - workloadImpactsDelete(context, workloadImpactName, options), + $delete(context, workloadImpactName, options), get: (workloadImpactName: string, options?: WorkloadImpactsGetOptionalParams) => - workloadImpactsGet(context, workloadImpactName, options), + get(context, workloadImpactName, options), create: ( workloadImpactName: string, resource: WorkloadImpact, options?: WorkloadImpactsCreateOptionalParams, - ) => workloadImpactsCreate(context, workloadImpactName, resource, options), + ) => create(context, workloadImpactName, resource, options), }; } diff --git a/sdk/impactreporting/arm-impactreporting/src/impactClient.ts b/sdk/impactreporting/arm-impactreporting/src/impactClient.ts index e2ebbed0cc7b..3802a90b4ce5 100644 --- a/sdk/impactreporting/arm-impactreporting/src/impactClient.ts +++ b/sdk/impactreporting/arm-impactreporting/src/impactClient.ts @@ -1,20 +1,20 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { _getConnectorsOperations, ConnectorsOperations } from "./classic/connectors/index.js"; -import { _getInsightsOperations, InsightsOperations } from "./classic/insights/index.js"; +import { createImpact, ImpactContext, ImpactClientOptionalParams } from "./api/index.js"; +import { ConnectorsOperations, _getConnectorsOperations } from "./classic/connectors/index.js"; import { - _getImpactCategoriesOperations, ImpactCategoriesOperations, + _getImpactCategoriesOperations, } from "./classic/impactCategories/index.js"; +import { InsightsOperations, _getInsightsOperations } from "./classic/insights/index.js"; +import { OperationsOperations, _getOperationsOperations } from "./classic/operations/index.js"; import { - _getWorkloadImpactsOperations, WorkloadImpactsOperations, + _getWorkloadImpactsOperations, } from "./classic/workloadImpacts/index.js"; -import { _getOperationsOperations, OperationsOperations } from "./classic/operations/index.js"; -import { createImpact, ImpactContext, ImpactClientOptionalParams } from "./api/index.js"; -import { Pipeline } from "@azure/core-rest-pipeline"; import { TokenCredential } from "@azure/core-auth"; +import { Pipeline } from "@azure/core-rest-pipeline"; export { ImpactClientOptionalParams } from "./api/impactContext.js"; diff --git a/sdk/impactreporting/arm-impactreporting/src/index.ts b/sdk/impactreporting/arm-impactreporting/src/index.ts index e8779624e675..642b826700b7 100644 --- a/sdk/impactreporting/arm-impactreporting/src/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/index.ts @@ -1,6 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +import { AzureClouds, AzureSupportedClouds } from "./static-helpers/cloudSettingHelpers.js"; import { PageSettings, ContinuablePage, @@ -10,31 +11,19 @@ import { export { ImpactClient } from "./impactClient.js"; export { restorePoller, RestorePollerOptions } from "./restorePollerHelpers.js"; export { - Connector, - ConnectorProperties, - KnownProvisioningState, - ProvisioningState, - KnownPlatform, - Platform, - ProxyResource, - Resource, - SystemData, - KnownCreatedByType, - CreatedByType, + Operation, + OperationDisplay, + KnownOrigin, + Origin, + KnownActionType, + ActionType, ErrorResponse, ErrorDetail, ErrorAdditionalInfo, - ConnectorUpdate, - ConnectorUpdateProperties, - Insight, - InsightProperties, - Content, - ImpactDetails, - ImpactCategory, - ImpactCategoryProperties, - RequiredImpactProperties, WorkloadImpact, WorkloadImpactProperties, + KnownProvisioningState, + ProvisioningState, Performance, ExpectedValueRange, KnownMetricUnit, @@ -52,33 +41,51 @@ export { ClientIncidentDetails, KnownIncidentSource, IncidentSource, - Operation, - OperationDisplay, - KnownOrigin, - Origin, - KnownActionType, - ActionType, + ProxyResource, + Resource, + SystemData, + KnownCreatedByType, + CreatedByType, + ImpactCategory, + ImpactCategoryProperties, + RequiredImpactProperties, + Insight, + InsightProperties, + Content, + ImpactDetails, + Connector, + ConnectorProperties, + KnownPlatform, + Platform, + ConnectorUpdate, + ConnectorUpdateProperties, KnownVersions, } from "./models/index.js"; +export { ImpactClientOptionalParams } from "./api/index.js"; export { - ImpactClientOptionalParams, ConnectorsListBySubscriptionOptionalParams, ConnectorsDeleteOptionalParams, ConnectorsUpdateOptionalParams, ConnectorsCreateOrUpdateOptionalParams, ConnectorsGetOptionalParams, +} from "./api/connectors/index.js"; +export { + ImpactCategoriesListBySubscriptionOptionalParams, + ImpactCategoriesGetOptionalParams, +} from "./api/impactCategories/index.js"; +export { InsightsDeleteOptionalParams, InsightsCreateOptionalParams, InsightsListBySubscriptionOptionalParams, InsightsGetOptionalParams, - ImpactCategoriesListBySubscriptionOptionalParams, - ImpactCategoriesGetOptionalParams, +} from "./api/insights/index.js"; +export { OperationsListOptionalParams } from "./api/operations/index.js"; +export { WorkloadImpactsListBySubscriptionOptionalParams, WorkloadImpactsDeleteOptionalParams, WorkloadImpactsGetOptionalParams, WorkloadImpactsCreateOptionalParams, - OperationsListOptionalParams, -} from "./api/index.js"; +} from "./api/workloadImpacts/index.js"; export { ConnectorsOperations, ImpactCategoriesOperations, @@ -87,3 +94,4 @@ export { WorkloadImpactsOperations, } from "./classic/index.js"; export { PageSettings, ContinuablePage, PagedAsyncIterableIterator }; +export { AzureClouds, AzureSupportedClouds }; diff --git a/sdk/impactreporting/arm-impactreporting/src/models/index.ts b/sdk/impactreporting/arm-impactreporting/src/models/index.ts index f27031594f2a..0f993e1b7dda 100644 --- a/sdk/impactreporting/arm-impactreporting/src/models/index.ts +++ b/sdk/impactreporting/arm-impactreporting/src/models/index.ts @@ -2,31 +2,19 @@ // Licensed under the MIT License. export { - Connector, - ConnectorProperties, - KnownProvisioningState, - ProvisioningState, - KnownPlatform, - Platform, - ProxyResource, - Resource, - SystemData, - KnownCreatedByType, - CreatedByType, + Operation, + OperationDisplay, + KnownOrigin, + Origin, + KnownActionType, + ActionType, ErrorResponse, ErrorDetail, ErrorAdditionalInfo, - ConnectorUpdate, - ConnectorUpdateProperties, - Insight, - InsightProperties, - Content, - ImpactDetails, - ImpactCategory, - ImpactCategoryProperties, - RequiredImpactProperties, WorkloadImpact, WorkloadImpactProperties, + KnownProvisioningState, + ProvisioningState, Performance, ExpectedValueRange, KnownMetricUnit, @@ -44,11 +32,23 @@ export { ClientIncidentDetails, KnownIncidentSource, IncidentSource, - Operation, - OperationDisplay, - KnownOrigin, - Origin, - KnownActionType, - ActionType, + ProxyResource, + Resource, + SystemData, + KnownCreatedByType, + CreatedByType, + ImpactCategory, + ImpactCategoryProperties, + RequiredImpactProperties, + Insight, + InsightProperties, + Content, + ImpactDetails, + Connector, + ConnectorProperties, + KnownPlatform, + Platform, + ConnectorUpdate, + ConnectorUpdateProperties, KnownVersions, } from "./models.js"; diff --git a/sdk/impactreporting/arm-impactreporting/src/models/models.ts b/sdk/impactreporting/arm-impactreporting/src/models/models.ts index 629869e75989..cec7bed5e5fb 100644 --- a/sdk/impactreporting/arm-impactreporting/src/models/models.ts +++ b/sdk/impactreporting/arm-impactreporting/src/models/models.ts @@ -1,195 +1,107 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -/** A connector is a resource that can be used to proactively report impacts against workloads in Azure to Microsoft. */ -export interface Connector extends ProxyResource { - /** The resource-specific properties for this resource. */ - properties?: ConnectorProperties; -} - -export function connectorSerializer(item: Connector): any { - return { - properties: !item["properties"] - ? item["properties"] - : connectorPropertiesSerializer(item["properties"]), - }; -} - -export function connectorDeserializer(item: any): Connector { - return { - id: item["id"], - name: item["name"], - type: item["type"], - systemData: !item["systemData"] - ? item["systemData"] - : systemDataDeserializer(item["systemData"]), - properties: !item["properties"] - ? item["properties"] - : connectorPropertiesDeserializer(item["properties"]), - }; -} - -/** Details of the Connector. */ -export interface ConnectorProperties { - /** Resource provisioning state. */ - readonly provisioningState?: ProvisioningState; - /** unique id of the connector. */ - readonly connectorId: string; - /** tenant id of this connector */ - readonly tenantId: string; - /** connector type */ - connectorType: Platform; - /** last run time stamp of this connector in UTC time zone */ - readonly lastRunTimeStamp: Date; -} - -export function connectorPropertiesSerializer(item: ConnectorProperties): any { - return { connectorType: item["connectorType"] }; +/** A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results. */ +export interface _OperationListResult { + /** The Operation items on this page */ + value: Operation[]; + /** The link to the next page of items */ + nextLink?: string; } -export function connectorPropertiesDeserializer(item: any): ConnectorProperties { +export function _operationListResultDeserializer(item: any): _OperationListResult { return { - provisioningState: item["provisioningState"], - connectorId: item["connectorId"], - tenantId: item["tenantId"], - connectorType: item["connectorType"], - lastRunTimeStamp: new Date(item["lastRunTimeStamp"]), + value: operationArrayDeserializer(item["value"]), + nextLink: item["nextLink"], }; } -/** Provisioning state of the resource. */ -export enum KnownProvisioningState { - /** Provisioning Succeeded */ - Succeeded = "Succeeded", - /** Provisioning Failed */ - Failed = "Failed", - /** Provisioning Canceled */ - Canceled = "Canceled", -} - -/** - * Provisioning state of the resource. \ - * {@link KnownProvisioningState} can be used interchangeably with ProvisioningState, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **Succeeded**: Provisioning Succeeded \ - * **Failed**: Provisioning Failed \ - * **Canceled**: Provisioning Canceled - */ -export type ProvisioningState = string; - -/** Enum for connector types */ -export enum KnownPlatform { - /** Type of Azure Monitor */ - AzureMonitor = "AzureMonitor", +export function operationArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return operationDeserializer(item); + }); } -/** - * Enum for connector types \ - * {@link KnownPlatform} can be used interchangeably with Platform, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **AzureMonitor**: Type of Azure Monitor - */ -export type Platform = string; - -/** The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location */ -export interface ProxyResource extends Resource {} - -export function proxyResourceSerializer(item: ProxyResource): any { - return item; +/** Details of a REST API operation, returned from the Resource Provider Operations API */ +export interface Operation { + /** The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action" */ + readonly name?: string; + /** Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for Azure Resource Manager/control-plane operations. */ + readonly isDataAction?: boolean; + /** Localized display information for this particular operation. */ + display?: OperationDisplay; + /** The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" */ + readonly origin?: Origin; + /** Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. */ + readonly actionType?: ActionType; } -export function proxyResourceDeserializer(item: any): ProxyResource { +export function operationDeserializer(item: any): Operation { return { - id: item["id"], name: item["name"], - type: item["type"], - systemData: !item["systemData"] - ? item["systemData"] - : systemDataDeserializer(item["systemData"]), + isDataAction: item["isDataAction"], + display: !item["display"] ? item["display"] : operationDisplayDeserializer(item["display"]), + origin: item["origin"], + actionType: item["actionType"], }; } -/** Common fields that are returned in the response for all Azure Resource Manager resources */ -export interface Resource { - /** Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} */ - readonly id?: string; - /** The name of the resource */ - readonly name?: string; - /** The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" */ - readonly type?: string; - /** Azure Resource Manager metadata containing createdBy and modifiedBy information. */ - readonly systemData?: SystemData; -} - -export function resourceSerializer(item: Resource): any { - return item; +/** Localized display information for and operation. */ +export interface OperationDisplay { + /** The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute". */ + readonly provider?: string; + /** The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job Schedule Collections". */ + readonly resource?: string; + /** The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". */ + readonly operation?: string; + /** The short, localized friendly description of the operation; suitable for tool tips and detailed views. */ + readonly description?: string; } -export function resourceDeserializer(item: any): Resource { +export function operationDisplayDeserializer(item: any): OperationDisplay { return { - id: item["id"], - name: item["name"], - type: item["type"], - systemData: !item["systemData"] - ? item["systemData"] - : systemDataDeserializer(item["systemData"]), + provider: item["provider"], + resource: item["resource"], + operation: item["operation"], + description: item["description"], }; } -/** Metadata pertaining to creation and last modification of the resource. */ -export interface SystemData { - /** The identity that created the resource. */ - createdBy?: string; - /** The type of identity that created the resource. */ - createdByType?: CreatedByType; - /** The timestamp of resource creation (UTC). */ - createdAt?: Date; - /** The identity that last modified the resource. */ - lastModifiedBy?: string; - /** The type of identity that last modified the resource. */ - lastModifiedByType?: CreatedByType; - /** The timestamp of resource last modification (UTC) */ - lastModifiedAt?: Date; +/** The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" */ +export enum KnownOrigin { + /** Indicates the operation is initiated by a user. */ + User = "user", + /** Indicates the operation is initiated by a system. */ + System = "system", + /** Indicates the operation is initiated by a user or system. */ + UserSystem = "user,system", } -export function systemDataDeserializer(item: any): SystemData { - return { - createdBy: item["createdBy"], - createdByType: item["createdByType"], - createdAt: !item["createdAt"] ? item["createdAt"] : new Date(item["createdAt"]), - lastModifiedBy: item["lastModifiedBy"], - lastModifiedByType: item["lastModifiedByType"], - lastModifiedAt: !item["lastModifiedAt"] - ? item["lastModifiedAt"] - : new Date(item["lastModifiedAt"]), - }; -} +/** + * The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" \ + * {@link KnownOrigin} can be used interchangeably with Origin, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **user**: Indicates the operation is initiated by a user. \ + * **system**: Indicates the operation is initiated by a system. \ + * **user,system**: Indicates the operation is initiated by a user or system. + */ +export type Origin = string; -/** The kind of entity that created the resource. */ -export enum KnownCreatedByType { - /** The entity was created by a user. */ - User = "User", - /** The entity was created by an application. */ - Application = "Application", - /** The entity was created by a managed identity. */ - ManagedIdentity = "ManagedIdentity", - /** The entity was created by a key. */ - Key = "Key", +/** Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. */ +export enum KnownActionType { + /** Actions are for internal-only APIs. */ + Internal = "Internal", } /** - * The kind of entity that created the resource. \ - * {@link KnowncreatedByType} can be used interchangeably with createdByType, + * Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. \ + * {@link KnownActionType} can be used interchangeably with ActionType, * this enum contains the known values that the service supports. * ### Known values supported by the service - * **User**: The entity was created by a user. \ - * **Application**: The entity was created by an application. \ - * **ManagedIdentity**: The entity was created by a managed identity. \ - * **Key**: The entity was created by a key. + * **Internal**: Actions are for internal-only APIs. */ -export type CreatedByType = string; +export type ActionType = string; /** Common error response for all Azure Resource Manager APIs to return error details for failed operations. */ export interface ErrorResponse { @@ -246,359 +158,524 @@ export interface ErrorAdditionalInfo { /** The additional info type. */ readonly type?: string; /** The additional info. */ - readonly info?: Record; + readonly info?: any; } export function errorAdditionalInfoDeserializer(item: any): ErrorAdditionalInfo { return { type: item["type"], - info: !item["info"] ? item["info"] : _errorAdditionalInfoInfoDeserializer(item["info"]), + info: item["info"], }; } -/** model interface _ErrorAdditionalInfoInfo */ -export interface _ErrorAdditionalInfoInfo {} - -export function _errorAdditionalInfoInfoDeserializer(item: any): _ErrorAdditionalInfoInfo { - return item; +/** Workload Impact properties */ +export interface WorkloadImpact extends ProxyResource { + /** The resource-specific properties for this resource. */ + properties?: WorkloadImpactProperties; } -/** The type used for update operations of the Connector. */ -export interface ConnectorUpdate { - /** The resource-specific properties for this resource. */ - properties?: ConnectorUpdateProperties; +export function workloadImpactSerializer(item: WorkloadImpact): any { + return { + properties: !item["properties"] + ? item["properties"] + : workloadImpactPropertiesSerializer(item["properties"]), + }; } -export function connectorUpdateSerializer(item: ConnectorUpdate): any { +export function workloadImpactDeserializer(item: any): WorkloadImpact { return { + id: item["id"], + name: item["name"], + type: item["type"], + systemData: !item["systemData"] + ? item["systemData"] + : systemDataDeserializer(item["systemData"]), properties: !item["properties"] ? item["properties"] - : connectorUpdatePropertiesSerializer(item["properties"]), + : workloadImpactPropertiesDeserializer(item["properties"]), }; } -/** The updatable properties of the Connector. */ -export interface ConnectorUpdateProperties { - /** connector type */ - connectorType?: Platform; -} - -export function connectorUpdatePropertiesSerializer(item: ConnectorUpdateProperties): any { - return { connectorType: item["connectorType"] }; +/** Workload impact properties */ +export interface WorkloadImpactProperties { + /** Resource provisioning state. */ + readonly provisioningState?: ProvisioningState; + /** Time at which impact was observed */ + startDateTime: Date; + /** Time at which impact has ended */ + endDateTime?: Date; + /** Azure resource id of the impacted resource */ + impactedResourceId: string; + /** Unique ID of the impact (UUID) */ + readonly impactUniqueId?: string; + /** Time at which impact is reported */ + readonly reportedTimeUtc?: Date; + /** Category of the impact, details can found from /impactCategories API */ + impactCategory: string; + /** A detailed description of the impact */ + impactDescription?: string; + /** The ARM correlation ids, this is important field for control plane related impacts */ + armCorrelationIds?: string[]; + /** Details about performance issue. Applicable for performance impacts. */ + performance?: Performance[]; + /** Details about connectivity issue. Applicable when root resource causing the issue is not identified. For example, when a VM is impacted due to a network issue, the impacted resource is identified as the VM, but the root cause is the network. In such cases, the connectivity field will have the details about the network issue */ + connectivity?: Connectivity; + /** Additional fields related to impact, applicable fields per resource type are list under /impactCategories API */ + additionalProperties?: Record; + /** ARM error code and error message associated with the impact */ + errorDetails?: ErrorDetailProperties; + /** Information about the impacted workload */ + workload?: Workload; + /** Use this field to group impacts */ + impactGroupId?: string; + /** Degree of confidence on the impact being a platform issue */ + confidenceLevel?: ConfidenceLevel; + /** Client incident details ex: incidentId , incident source */ + clientIncidentDetails?: ClientIncidentDetails; } -/** The response of a Connector list operation. */ -export interface _ConnectorListResult { - /** The Connector items on this page */ - value: Connector[]; - /** The link to the next page of items */ - nextLink?: string; +export function workloadImpactPropertiesSerializer(item: WorkloadImpactProperties): any { + return { + startDateTime: item["startDateTime"].toISOString(), + endDateTime: !item["endDateTime"] ? item["endDateTime"] : item["endDateTime"].toISOString(), + impactedResourceId: item["impactedResourceId"], + impactCategory: item["impactCategory"], + impactDescription: item["impactDescription"], + armCorrelationIds: !item["armCorrelationIds"] + ? item["armCorrelationIds"] + : item["armCorrelationIds"].map((p: any) => { + return p; + }), + performance: !item["performance"] + ? item["performance"] + : performanceArraySerializer(item["performance"]), + connectivity: !item["connectivity"] + ? item["connectivity"] + : connectivitySerializer(item["connectivity"]), + additionalProperties: item["additionalProperties"], + errorDetails: !item["errorDetails"] + ? item["errorDetails"] + : errorDetailPropertiesSerializer(item["errorDetails"]), + workload: !item["workload"] ? item["workload"] : workloadSerializer(item["workload"]), + impactGroupId: item["impactGroupId"], + confidenceLevel: item["confidenceLevel"], + clientIncidentDetails: !item["clientIncidentDetails"] + ? item["clientIncidentDetails"] + : clientIncidentDetailsSerializer(item["clientIncidentDetails"]), + }; } -export function _connectorListResultDeserializer(item: any): _ConnectorListResult { +export function workloadImpactPropertiesDeserializer(item: any): WorkloadImpactProperties { return { - value: connectorArrayDeserializer(item["value"]), - nextLink: item["nextLink"], + provisioningState: item["provisioningState"], + startDateTime: new Date(item["startDateTime"]), + endDateTime: !item["endDateTime"] ? item["endDateTime"] : new Date(item["endDateTime"]), + impactedResourceId: item["impactedResourceId"], + impactUniqueId: item["impactUniqueId"], + reportedTimeUtc: !item["reportedTimeUtc"] + ? item["reportedTimeUtc"] + : new Date(item["reportedTimeUtc"]), + impactCategory: item["impactCategory"], + impactDescription: item["impactDescription"], + armCorrelationIds: !item["armCorrelationIds"] + ? item["armCorrelationIds"] + : item["armCorrelationIds"].map((p: any) => { + return p; + }), + performance: !item["performance"] + ? item["performance"] + : performanceArrayDeserializer(item["performance"]), + connectivity: !item["connectivity"] + ? item["connectivity"] + : connectivityDeserializer(item["connectivity"]), + additionalProperties: item["additionalProperties"], + errorDetails: !item["errorDetails"] + ? item["errorDetails"] + : errorDetailPropertiesDeserializer(item["errorDetails"]), + workload: !item["workload"] ? item["workload"] : workloadDeserializer(item["workload"]), + impactGroupId: item["impactGroupId"], + confidenceLevel: item["confidenceLevel"], + clientIncidentDetails: !item["clientIncidentDetails"] + ? item["clientIncidentDetails"] + : clientIncidentDetailsDeserializer(item["clientIncidentDetails"]), }; } -export function connectorArraySerializer(result: Array): any[] { +/** Provisioning state of the resource. */ +export enum KnownProvisioningState { + /** Provisioning Succeeded */ + Succeeded = "Succeeded", + /** Provisioning Failed */ + Failed = "Failed", + /** Provisioning Canceled */ + Canceled = "Canceled", +} + +/** + * Provisioning state of the resource. \ + * {@link KnownProvisioningState} can be used interchangeably with ProvisioningState, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Succeeded**: Provisioning Succeeded \ + * **Failed**: Provisioning Failed \ + * **Canceled**: Provisioning Canceled + */ +export type ProvisioningState = string; + +export function performanceArraySerializer(result: Array): any[] { return result.map((item) => { - return connectorSerializer(item); + return performanceSerializer(item); }); } -export function connectorArrayDeserializer(result: Array): any[] { +export function performanceArrayDeserializer(result: Array): any[] { return result.map((item) => { - return connectorDeserializer(item); + return performanceDeserializer(item); }); } -/** Insight resource */ -export interface Insight extends ProxyResource { - /** The resource-specific properties for this resource. */ - properties?: InsightProperties; +/** Details about impacted performance metrics. Applicable for performance related impact */ +export interface Performance { + /** Name of the Metric examples: Disk, IOPs, CPU, GPU, Memory, details can be found from /impactCategories API */ + metricName?: string; + /** Threshold value for the metric */ + expected?: number; + /** Observed value for the metric */ + actual?: number; + /** Max and Min Threshold values for the metric */ + expectedValueRange?: ExpectedValueRange; + /** Unit of the metric ex: Bytes, Percentage, Count, Seconds, Milliseconds, Bytes/Second, Count/Second, etc.., Other */ + unit?: MetricUnit; } -export function insightSerializer(item: Insight): any { +export function performanceSerializer(item: Performance): any { return { - properties: !item["properties"] - ? item["properties"] - : insightPropertiesSerializer(item["properties"]), + metricName: item["metricName"], + expected: item["expected"], + actual: item["actual"], + expectedValueRange: !item["expectedValueRange"] + ? item["expectedValueRange"] + : expectedValueRangeSerializer(item["expectedValueRange"]), + unit: item["unit"], }; } -export function insightDeserializer(item: any): Insight { +export function performanceDeserializer(item: any): Performance { return { - id: item["id"], - name: item["name"], - type: item["type"], - systemData: !item["systemData"] - ? item["systemData"] - : systemDataDeserializer(item["systemData"]), - properties: !item["properties"] - ? item["properties"] - : insightPropertiesDeserializer(item["properties"]), + metricName: item["metricName"], + expected: item["expected"], + actual: item["actual"], + expectedValueRange: !item["expectedValueRange"] + ? item["expectedValueRange"] + : expectedValueRangeDeserializer(item["expectedValueRange"]), + unit: item["unit"], }; } -/** Impact category properties. */ -export interface InsightProperties { - /** Resource provisioning state. */ - readonly provisioningState?: ProvisioningState; - /** category of the insight. */ - category: string; - /** status of the insight. example resolved, repaired, other. */ - status?: string; - /** Identifier of the event that has been correlated with this insight. This can be used to aggregate insights for the same event. */ - eventId?: string; - /** Identifier that can be used to group similar insights. */ - groupId?: string; - /** Contains title & description for the insight */ - content: Content; - /** Time of the event, which has been correlated the impact. */ - eventTime?: Date; - /** unique id of the insight. */ - insightUniqueId: string; - /** details of of the impact for which insight has been generated. */ - impact: ImpactDetails; - /** additional details of the insight. */ - additionalDetails?: Record; +/** Max and Min Threshold values for the metric */ +export interface ExpectedValueRange { + /** Min threshold value for the metric */ + min: number; + /** Max threshold value for the metric */ + max: number; } -export function insightPropertiesSerializer(item: InsightProperties): any { - return { - category: item["category"], - status: item["status"], - eventId: item["eventId"], - groupId: item["groupId"], - content: contentSerializer(item["content"]), - eventTime: !item["eventTime"] ? item["eventTime"] : item["eventTime"].toISOString(), - insightUniqueId: item["insightUniqueId"], - impact: impactDetailsSerializer(item["impact"]), - additionalDetails: !item["additionalDetails"] - ? item["additionalDetails"] - : _insightPropertiesAdditionalDetailsSerializer(item["additionalDetails"]), - }; +export function expectedValueRangeSerializer(item: ExpectedValueRange): any { + return { min: item["min"], max: item["max"] }; } -export function insightPropertiesDeserializer(item: any): InsightProperties { +export function expectedValueRangeDeserializer(item: any): ExpectedValueRange { return { - provisioningState: item["provisioningState"], - category: item["category"], - status: item["status"], - eventId: item["eventId"], - groupId: item["groupId"], - content: contentDeserializer(item["content"]), - eventTime: !item["eventTime"] ? item["eventTime"] : new Date(item["eventTime"]), - insightUniqueId: item["insightUniqueId"], - impact: impactDetailsDeserializer(item["impact"]), - additionalDetails: !item["additionalDetails"] - ? item["additionalDetails"] - : _insightPropertiesAdditionalDetailsDeserializer(item["additionalDetails"]), + min: item["min"], + max: item["max"], }; } -/** Article details of the insight like title, description etc */ -export interface Content { - /** Title of the insight */ - title: string; - /** Description of the insight */ - description: string; -} - -export function contentSerializer(item: Content): any { - return { title: item["title"], description: item["description"] }; -} - -export function contentDeserializer(item: any): Content { - return { - title: item["title"], - description: item["description"], - }; +/** List of unit of the metric. */ +export enum KnownMetricUnit { + /** When measurement is in ByteSeconds */ + ByteSeconds = "ByteSeconds", + /** When measurement is in Bytes */ + Bytes = "Bytes", + /** When measurement is in BytesPerSecond */ + BytesPerSecond = "BytesPerSecond", + /** When measurement is in Cores */ + Cores = "Cores", + /** When measurement is in Count */ + Count = "Count", + /** When measurement is in CountPerSecond */ + CountPerSecond = "CountPerSecond", + /** When measurement is in MilliCores */ + MilliCores = "MilliCores", + /** When measurement is in MilliSeconds */ + MilliSeconds = "MilliSeconds", + /** When measurement is in NanoCores */ + NanoCores = "NanoCores", + /** When measurement is in Percent */ + Percent = "Percent", + /** When measurement is in Seconds */ + Seconds = "Seconds", + /** When measurement is in Other than listed */ + Other = "Other", } -/** details of of the impact for which insight has been generated. */ -export interface ImpactDetails { - /** List of impacted Azure resources. */ - impactedResourceId: string; - /** Time at which impact was started according to reported impact. */ - startTime: Date; - /** Time at which impact was ended according to reported impact. */ - endTime?: Date; - /** Azure Id of the impact. */ - impactId: string; +/** + * List of unit of the metric. \ + * {@link KnownMetricUnit} can be used interchangeably with MetricUnit, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **ByteSeconds**: When measurement is in ByteSeconds \ + * **Bytes**: When measurement is in Bytes \ + * **BytesPerSecond**: When measurement is in BytesPerSecond \ + * **Cores**: When measurement is in Cores \ + * **Count**: When measurement is in Count \ + * **CountPerSecond**: When measurement is in CountPerSecond \ + * **MilliCores**: When measurement is in MilliCores \ + * **MilliSeconds**: When measurement is in MilliSeconds \ + * **NanoCores**: When measurement is in NanoCores \ + * **Percent**: When measurement is in Percent \ + * **Seconds**: When measurement is in Seconds \ + * **Other**: When measurement is in Other than listed + */ +export type MetricUnit = string; + +/** Details about connectivity issue. Applicable when root resource causing the issue is not identified. For example, when a VM is impacted due to a network issue, the impacted resource could be VM or the network. In such cases, the connectivity field will have the details about both VM and network. */ +export interface Connectivity { + /** Protocol used for the connection */ + protocol?: Protocol; + /** Port number for the connection */ + port?: number; + /** Source from which the connection was attempted */ + source?: SourceOrTarget; + /** target which connection was attempted */ + target?: SourceOrTarget; } -export function impactDetailsSerializer(item: ImpactDetails): any { +export function connectivitySerializer(item: Connectivity): any { return { - impactedResourceId: item["impactedResourceId"], - startTime: item["startTime"].toISOString(), - endTime: !item["endTime"] ? item["endTime"] : item["endTime"].toISOString(), - impactId: item["impactId"], + protocol: item["protocol"], + port: item["port"], + source: !item["source"] ? item["source"] : sourceOrTargetSerializer(item["source"]), + target: !item["target"] ? item["target"] : sourceOrTargetSerializer(item["target"]), }; } -export function impactDetailsDeserializer(item: any): ImpactDetails { +export function connectivityDeserializer(item: any): Connectivity { return { - impactedResourceId: item["impactedResourceId"], - startTime: new Date(item["startTime"]), - endTime: !item["endTime"] ? item["endTime"] : new Date(item["endTime"]), - impactId: item["impactId"], + protocol: item["protocol"], + port: item["port"], + source: !item["source"] ? item["source"] : sourceOrTargetDeserializer(item["source"]), + target: !item["target"] ? item["target"] : sourceOrTargetDeserializer(item["target"]), }; } -/** model interface _InsightPropertiesAdditionalDetails */ -export interface _InsightPropertiesAdditionalDetails {} - -export function _insightPropertiesAdditionalDetailsSerializer( - item: _InsightPropertiesAdditionalDetails, -): any { - return item; +/** List of protocols */ +export enum KnownProtocol { + /** When communication protocol is TCP */ + TCP = "TCP", + /** When communication protocol is UDP */ + UDP = "UDP", + /** When communication protocol is HTTP */ + Http = "HTTP", + /** When communication protocol is HTTPS */ + Https = "HTTPS", + /** When communication protocol is RDP */ + RDP = "RDP", + /** When communication protocol is FTP */ + FTP = "FTP", + /** When communication protocol is SSH */ + SSH = "SSH", + /** When communication protocol is Other */ + Other = "Other", } -export function _insightPropertiesAdditionalDetailsDeserializer( - item: any, -): _InsightPropertiesAdditionalDetails { - return item; +/** + * List of protocols \ + * {@link KnownProtocol} can be used interchangeably with Protocol, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **TCP**: When communication protocol is TCP \ + * **UDP**: When communication protocol is UDP \ + * **HTTP**: When communication protocol is HTTP \ + * **HTTPS**: When communication protocol is HTTPS \ + * **RDP**: When communication protocol is RDP \ + * **FTP**: When communication protocol is FTP \ + * **SSH**: When communication protocol is SSH \ + * **Other**: When communication protocol is Other + */ +export type Protocol = string; + +/** Resource details */ +export interface SourceOrTarget { + /** Azure resource id, example /subscription/{subscription}/resourceGroup/{rg}/Microsoft.compute/virtualMachine/{vmName} */ + azureResourceId?: string; } -/** The response of a Insight list operation. */ -export interface _InsightListResult { - /** The Insight items on this page */ - value: Insight[]; - /** The link to the next page of items */ - nextLink?: string; +export function sourceOrTargetSerializer(item: SourceOrTarget): any { + return { azureResourceId: item["azureResourceId"] }; } -export function _insightListResultDeserializer(item: any): _InsightListResult { +export function sourceOrTargetDeserializer(item: any): SourceOrTarget { return { - value: insightArrayDeserializer(item["value"]), - nextLink: item["nextLink"], + azureResourceId: item["azureResourceId"], }; } -export function insightArraySerializer(result: Array): any[] { - return result.map((item) => { - return insightSerializer(item); - }); -} - -export function insightArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return insightDeserializer(item); - }); -} - -/** ImpactCategory resource */ -export interface ImpactCategory extends ProxyResource { - /** The resource-specific properties for this resource. */ - properties?: ImpactCategoryProperties; -} - -export function impactCategoryDeserializer(item: any): ImpactCategory { - return { - id: item["id"], - name: item["name"], - type: item["type"], - systemData: !item["systemData"] - ? item["systemData"] - : systemDataDeserializer(item["systemData"]), - properties: !item["properties"] - ? item["properties"] - : impactCategoryPropertiesDeserializer(item["properties"]), - }; +/** ARM error code and error message associated with the impact */ +export interface ErrorDetailProperties { + /** ARM Error code associated with the impact. */ + errorCode?: string; + /** ARM Error Message associated with the impact */ + errorMessage?: string; } -/** Impact category properties. */ -export interface ImpactCategoryProperties { - /** Resource provisioning state. */ - readonly provisioningState?: ProvisioningState; - /** Unique ID of the category */ - categoryId: string; - /** Unique ID of the parent category */ - parentCategoryId?: string; - /** Description of the category */ - description?: string; - /** The workloadImpact properties which are required when reporting with the impact category */ - requiredImpactProperties?: RequiredImpactProperties[]; +export function errorDetailPropertiesSerializer(item: ErrorDetailProperties): any { + return { errorCode: item["errorCode"], errorMessage: item["errorMessage"] }; } -export function impactCategoryPropertiesDeserializer(item: any): ImpactCategoryProperties { +export function errorDetailPropertiesDeserializer(item: any): ErrorDetailProperties { return { - provisioningState: item["provisioningState"], - categoryId: item["categoryId"], - parentCategoryId: item["parentCategoryId"], - description: item["description"], - requiredImpactProperties: !item["requiredImpactProperties"] - ? item["requiredImpactProperties"] - : requiredImpactPropertiesArrayDeserializer(item["requiredImpactProperties"]), + errorCode: item["errorCode"], + errorMessage: item["errorMessage"], }; } -export function requiredImpactPropertiesArrayDeserializer( - result: Array, -): any[] { - return result.map((item) => { - return requiredImpactPropertiesDeserializer(item); - }); +/** Information about the impacted workload */ +export interface Workload { + /** the scenario for the workload */ + context?: string; + /** Tool used to interact with Azure. SDK, AzPortal, etc.., Other */ + toolset?: Toolset; } -/** Required impact properties */ -export interface RequiredImpactProperties { - /** Name of the property */ - name: string; - /** Allowed values values for the property */ - allowedValues?: string[]; +export function workloadSerializer(item: Workload): any { + return { context: item["context"], toolset: item["toolset"] }; } -export function requiredImpactPropertiesDeserializer(item: any): RequiredImpactProperties { +export function workloadDeserializer(item: any): Workload { return { - name: item["name"], - allowedValues: !item["allowedValues"] - ? item["allowedValues"] - : item["allowedValues"].map((p: any) => { - return p; - }), + context: item["context"], + toolset: item["toolset"], }; } -/** The response of a ImpactCategory list operation. */ -export interface _ImpactCategoryListResult { - /** The ImpactCategory items on this page */ - value: ImpactCategory[]; - /** The link to the next page of items */ - nextLink?: string; -} - -export function _impactCategoryListResultDeserializer(item: any): _ImpactCategoryListResult { - return { - value: impactCategoryArrayDeserializer(item["value"]), - nextLink: item["nextLink"], - }; -} +/** List of azure interfaces. */ +export enum KnownToolset { + /** If communication toolset is Terraform */ + Terraform = "Terraform", + /** If communication toolset is Puppet */ + Puppet = "Puppet", + /** If communication toolset is Chef */ + Chef = "Chef", + /** If communication toolset is SDK */ + SDK = "SDK", + /** If communication toolset is Ansible */ + Ansible = "Ansible", + /** If communication toolset is ARM */ + ARM = "ARM", + /** If communication toolset is Portal */ + Portal = "Portal", + /** If communication toolset is Shell */ + Shell = "Shell", + /** If communication toolset is Other */ + Other = "Other", +} -export function impactCategoryArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return impactCategoryDeserializer(item); - }); +/** + * List of azure interfaces. \ + * {@link KnownToolset} can be used interchangeably with Toolset, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Terraform**: If communication toolset is Terraform \ + * **Puppet**: If communication toolset is Puppet \ + * **Chef**: If communication toolset is Chef \ + * **SDK**: If communication toolset is SDK \ + * **Ansible**: If communication toolset is Ansible \ + * **ARM**: If communication toolset is ARM \ + * **Portal**: If communication toolset is Portal \ + * **Shell**: If communication toolset is Shell \ + * **Other**: If communication toolset is Other + */ +export type Toolset = string; + +/** Degree of confidence on the impact being a platform issue. */ +export enum KnownConfidenceLevel { + /** Low confidence on azure being the source of impact */ + Low = "Low", + /** Medium confidence on azure being the source of impact */ + Medium = "Medium", + /** High confidence on azure being the source of impact */ + High = "High", } -/** Workload Impact properties */ -export interface WorkloadImpact extends ProxyResource { - /** The resource-specific properties for this resource. */ - properties?: WorkloadImpactProperties; +/** + * Degree of confidence on the impact being a platform issue. \ + * {@link KnownConfidenceLevel} can be used interchangeably with ConfidenceLevel, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Low**: Low confidence on azure being the source of impact \ + * **Medium**: Medium confidence on azure being the source of impact \ + * **High**: High confidence on azure being the source of impact + */ +export type ConfidenceLevel = string; + +/** Client incident details ex: incidentId , incident source */ +export interface ClientIncidentDetails { + /** Client incident id. ex : id of the incident created to investigate and address the impact if any. */ + clientIncidentId?: string; + /** Client incident source. ex : source system name where the incident is created */ + clientIncidentSource?: IncidentSource; } -export function workloadImpactSerializer(item: WorkloadImpact): any { +export function clientIncidentDetailsSerializer(item: ClientIncidentDetails): any { return { - properties: !item["properties"] - ? item["properties"] - : workloadImpactPropertiesSerializer(item["properties"]), + clientIncidentId: item["clientIncidentId"], + clientIncidentSource: item["clientIncidentSource"], }; } -export function workloadImpactDeserializer(item: any): WorkloadImpact { +export function clientIncidentDetailsDeserializer(item: any): ClientIncidentDetails { + return { + clientIncidentId: item["clientIncidentId"], + clientIncidentSource: item["clientIncidentSource"], + }; +} + +/** List of incident interfaces. */ +export enum KnownIncidentSource { + /** When source of Incident is AzureDevops */ + AzureDevops = "AzureDevops", + /** When source of Incident is Microsoft ICM */ + ICM = "ICM", + /** When source of Incident is Jira */ + Jira = "Jira", + /** When source of Incident is ServiceNow */ + ServiceNow = "ServiceNow", + /** When source of Incident is Other */ + Other = "Other", +} + +/** + * List of incident interfaces. \ + * {@link KnownIncidentSource} can be used interchangeably with IncidentSource, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **AzureDevops**: When source of Incident is AzureDevops \ + * **ICM**: When source of Incident is Microsoft ICM \ + * **Jira**: When source of Incident is Jira \ + * **ServiceNow**: When source of Incident is ServiceNow \ + * **Other**: When source of Incident is Other + */ +export type IncidentSource = string; + +/** The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location */ +export interface ProxyResource extends Resource {} + +export function proxyResourceSerializer(item: ProxyResource): any { + return item; +} + +export function proxyResourceDeserializer(item: any): ProxyResource { return { id: item["id"], name: item["name"], @@ -606,610 +683,507 @@ export function workloadImpactDeserializer(item: any): WorkloadImpact { systemData: !item["systemData"] ? item["systemData"] : systemDataDeserializer(item["systemData"]), - properties: !item["properties"] - ? item["properties"] - : workloadImpactPropertiesDeserializer(item["properties"]), }; } -/** Workload impact properties */ -export interface WorkloadImpactProperties { - /** Resource provisioning state. */ - readonly provisioningState?: ProvisioningState; - /** Time at which impact was observed */ - startDateTime: Date; - /** Time at which impact has ended */ - endDateTime?: Date; - /** Azure resource id of the impacted resource */ - impactedResourceId: string; - /** Unique ID of the impact (UUID) */ - readonly impactUniqueId?: string; - /** Time at which impact is reported */ - readonly reportedTimeUtc?: Date; - /** Category of the impact, details can found from /impactCategories API */ - impactCategory: string; - /** A detailed description of the impact */ - impactDescription?: string; - /** The ARM correlation ids, this is important field for control plane related impacts */ - armCorrelationIds?: string[]; - /** Details about performance issue. Applicable for performance impacts. */ - performance?: Performance[]; - /** Details about connectivity issue. Applicable when root resource causing the issue is not identified. For example, when a VM is impacted due to a network issue, the impacted resource is identified as the VM, but the root cause is the network. In such cases, the connectivity field will have the details about the network issue */ - connectivity?: Connectivity; - /** Additional fields related to impact, applicable fields per resource type are list under /impactCategories API */ - additionalProperties?: Record; - /** ARM error code and error message associated with the impact */ - errorDetails?: ErrorDetailProperties; - /** Information about the impacted workload */ - workload?: Workload; - /** Use this field to group impacts */ - impactGroupId?: string; - /** Degree of confidence on the impact being a platform issue */ - confidenceLevel?: ConfidenceLevel; - /** Client incident details ex: incidentId , incident source */ - clientIncidentDetails?: ClientIncidentDetails; +/** Common fields that are returned in the response for all Azure Resource Manager resources */ +export interface Resource { + /** Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} */ + readonly id?: string; + /** The name of the resource */ + readonly name?: string; + /** The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" */ + readonly type?: string; + /** Azure Resource Manager metadata containing createdBy and modifiedBy information. */ + readonly systemData?: SystemData; } -export function workloadImpactPropertiesSerializer(item: WorkloadImpactProperties): any { - return { - startDateTime: item["startDateTime"].toISOString(), - endDateTime: !item["endDateTime"] ? item["endDateTime"] : item["endDateTime"].toISOString(), - impactedResourceId: item["impactedResourceId"], - impactCategory: item["impactCategory"], - impactDescription: item["impactDescription"], - armCorrelationIds: !item["armCorrelationIds"] - ? item["armCorrelationIds"] - : item["armCorrelationIds"].map((p: any) => { - return p; - }), - performance: !item["performance"] - ? item["performance"] - : performanceArraySerializer(item["performance"]), - connectivity: !item["connectivity"] - ? item["connectivity"] - : connectivitySerializer(item["connectivity"]), - additionalProperties: !item["additionalProperties"] - ? item["additionalProperties"] - : _workloadImpactPropertiesAdditionalPropertiesSerializer(item["additionalProperties"]), - errorDetails: !item["errorDetails"] - ? item["errorDetails"] - : errorDetailPropertiesSerializer(item["errorDetails"]), - workload: !item["workload"] ? item["workload"] : workloadSerializer(item["workload"]), - impactGroupId: item["impactGroupId"], - confidenceLevel: item["confidenceLevel"], - clientIncidentDetails: !item["clientIncidentDetails"] - ? item["clientIncidentDetails"] - : clientIncidentDetailsSerializer(item["clientIncidentDetails"]), - }; +export function resourceSerializer(item: Resource): any { + return item; } -export function workloadImpactPropertiesDeserializer(item: any): WorkloadImpactProperties { +export function resourceDeserializer(item: any): Resource { return { - provisioningState: item["provisioningState"], - startDateTime: new Date(item["startDateTime"]), - endDateTime: !item["endDateTime"] ? item["endDateTime"] : new Date(item["endDateTime"]), - impactedResourceId: item["impactedResourceId"], - impactUniqueId: item["impactUniqueId"], - reportedTimeUtc: !item["reportedTimeUtc"] - ? item["reportedTimeUtc"] - : new Date(item["reportedTimeUtc"]), - impactCategory: item["impactCategory"], - impactDescription: item["impactDescription"], - armCorrelationIds: !item["armCorrelationIds"] - ? item["armCorrelationIds"] - : item["armCorrelationIds"].map((p: any) => { - return p; - }), - performance: !item["performance"] - ? item["performance"] - : performanceArrayDeserializer(item["performance"]), - connectivity: !item["connectivity"] - ? item["connectivity"] - : connectivityDeserializer(item["connectivity"]), - additionalProperties: !item["additionalProperties"] - ? item["additionalProperties"] - : _workloadImpactPropertiesAdditionalPropertiesDeserializer(item["additionalProperties"]), - errorDetails: !item["errorDetails"] - ? item["errorDetails"] - : errorDetailPropertiesDeserializer(item["errorDetails"]), - workload: !item["workload"] ? item["workload"] : workloadDeserializer(item["workload"]), - impactGroupId: item["impactGroupId"], - confidenceLevel: item["confidenceLevel"], - clientIncidentDetails: !item["clientIncidentDetails"] - ? item["clientIncidentDetails"] - : clientIncidentDetailsDeserializer(item["clientIncidentDetails"]), + id: item["id"], + name: item["name"], + type: item["type"], + systemData: !item["systemData"] + ? item["systemData"] + : systemDataDeserializer(item["systemData"]), }; } -export function performanceArraySerializer(result: Array): any[] { - return result.map((item) => { - return performanceSerializer(item); - }); -} - -export function performanceArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return performanceDeserializer(item); - }); -} - -/** Details about impacted performance metrics. Applicable for performance related impact */ -export interface Performance { - /** Name of the Metric examples: Disk, IOPs, CPU, GPU, Memory, details can be found from /impactCategories API */ - metricName?: string; - /** Threshold value for the metric */ - expected?: number; - /** Observed value for the metric */ - actual?: number; - /** Max and Min Threshold values for the metric */ - expectedValueRange?: ExpectedValueRange; - /** Unit of the metric ex: Bytes, Percentage, Count, Seconds, Milliseconds, Bytes/Second, Count/Second, etc.., Other */ - unit?: MetricUnit; +/** Metadata pertaining to creation and last modification of the resource. */ +export interface SystemData { + /** The identity that created the resource. */ + createdBy?: string; + /** The type of identity that created the resource. */ + createdByType?: CreatedByType; + /** The timestamp of resource creation (UTC). */ + createdAt?: Date; + /** The identity that last modified the resource. */ + lastModifiedBy?: string; + /** The type of identity that last modified the resource. */ + lastModifiedByType?: CreatedByType; + /** The timestamp of resource last modification (UTC) */ + lastModifiedAt?: Date; } -export function performanceSerializer(item: Performance): any { +export function systemDataDeserializer(item: any): SystemData { return { - metricName: item["metricName"], - expected: item["expected"], - actual: item["actual"], - expectedValueRange: !item["expectedValueRange"] - ? item["expectedValueRange"] - : expectedValueRangeSerializer(item["expectedValueRange"]), - unit: item["unit"], + createdBy: item["createdBy"], + createdByType: item["createdByType"], + createdAt: !item["createdAt"] ? item["createdAt"] : new Date(item["createdAt"]), + lastModifiedBy: item["lastModifiedBy"], + lastModifiedByType: item["lastModifiedByType"], + lastModifiedAt: !item["lastModifiedAt"] + ? item["lastModifiedAt"] + : new Date(item["lastModifiedAt"]), }; } -export function performanceDeserializer(item: any): Performance { - return { - metricName: item["metricName"], - expected: item["expected"], - actual: item["actual"], - expectedValueRange: !item["expectedValueRange"] - ? item["expectedValueRange"] - : expectedValueRangeDeserializer(item["expectedValueRange"]), - unit: item["unit"], - }; +/** The kind of entity that created the resource. */ +export enum KnownCreatedByType { + /** The entity was created by a user. */ + User = "User", + /** The entity was created by an application. */ + Application = "Application", + /** The entity was created by a managed identity. */ + ManagedIdentity = "ManagedIdentity", + /** The entity was created by a key. */ + Key = "Key", } -/** Max and Min Threshold values for the metric */ -export interface ExpectedValueRange { - /** Min threshold value for the metric */ - min: number; - /** Max threshold value for the metric */ - max: number; -} +/** + * The kind of entity that created the resource. \ + * {@link KnowncreatedByType} can be used interchangeably with createdByType, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **User**: The entity was created by a user. \ + * **Application**: The entity was created by an application. \ + * **ManagedIdentity**: The entity was created by a managed identity. \ + * **Key**: The entity was created by a key. + */ +export type CreatedByType = string; -export function expectedValueRangeSerializer(item: ExpectedValueRange): any { - return { min: item["min"], max: item["max"] }; +/** The response of a WorkloadImpact list operation. */ +export interface _WorkloadImpactListResult { + /** The WorkloadImpact items on this page */ + value: WorkloadImpact[]; + /** The link to the next page of items */ + nextLink?: string; } -export function expectedValueRangeDeserializer(item: any): ExpectedValueRange { +export function _workloadImpactListResultDeserializer(item: any): _WorkloadImpactListResult { return { - min: item["min"], - max: item["max"], + value: workloadImpactArrayDeserializer(item["value"]), + nextLink: item["nextLink"], }; } -/** List of unit of the metric. */ -export enum KnownMetricUnit { - /** When measurement is in ByteSeconds */ - ByteSeconds = "ByteSeconds", - /** When measurement is in Bytes */ - Bytes = "Bytes", - /** When measurement is in BytesPerSecond */ - BytesPerSecond = "BytesPerSecond", - /** When measurement is in Cores */ - Cores = "Cores", - /** When measurement is in Count */ - Count = "Count", - /** When measurement is in CountPerSecond */ - CountPerSecond = "CountPerSecond", - /** When measurement is in MilliCores */ - MilliCores = "MilliCores", - /** When measurement is in MilliSeconds */ - MilliSeconds = "MilliSeconds", - /** When measurement is in NanoCores */ - NanoCores = "NanoCores", - /** When measurement is in Percent */ - Percent = "Percent", - /** When measurement is in Seconds */ - Seconds = "Seconds", - /** When measurement is in Other than listed */ - Other = "Other", +export function workloadImpactArraySerializer(result: Array): any[] { + return result.map((item) => { + return workloadImpactSerializer(item); + }); } -/** - * List of unit of the metric. \ - * {@link KnownMetricUnit} can be used interchangeably with MetricUnit, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **ByteSeconds**: When measurement is in ByteSeconds \ - * **Bytes**: When measurement is in Bytes \ - * **BytesPerSecond**: When measurement is in BytesPerSecond \ - * **Cores**: When measurement is in Cores \ - * **Count**: When measurement is in Count \ - * **CountPerSecond**: When measurement is in CountPerSecond \ - * **MilliCores**: When measurement is in MilliCores \ - * **MilliSeconds**: When measurement is in MilliSeconds \ - * **NanoCores**: When measurement is in NanoCores \ - * **Percent**: When measurement is in Percent \ - * **Seconds**: When measurement is in Seconds \ - * **Other**: When measurement is in Other than listed - */ -export type MetricUnit = string; +export function workloadImpactArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return workloadImpactDeserializer(item); + }); +} -/** Details about connectivity issue. Applicable when root resource causing the issue is not identified. For example, when a VM is impacted due to a network issue, the impacted resource could be VM or the network. In such cases, the connectivity field will have the details about both VM and network. */ -export interface Connectivity { - /** Protocol used for the connection */ - protocol?: Protocol; - /** Port number for the connection */ - port?: number; - /** Source from which the connection was attempted */ - source?: SourceOrTarget; - /** target which connection was attempted */ - target?: SourceOrTarget; +/** ImpactCategory resource */ +export interface ImpactCategory extends ProxyResource { + /** The resource-specific properties for this resource. */ + properties?: ImpactCategoryProperties; } -export function connectivitySerializer(item: Connectivity): any { +export function impactCategoryDeserializer(item: any): ImpactCategory { return { - protocol: item["protocol"], - port: item["port"], - source: !item["source"] ? item["source"] : sourceOrTargetSerializer(item["source"]), - target: !item["target"] ? item["target"] : sourceOrTargetSerializer(item["target"]), + id: item["id"], + name: item["name"], + type: item["type"], + systemData: !item["systemData"] + ? item["systemData"] + : systemDataDeserializer(item["systemData"]), + properties: !item["properties"] + ? item["properties"] + : impactCategoryPropertiesDeserializer(item["properties"]), }; } -export function connectivityDeserializer(item: any): Connectivity { +/** Impact category properties. */ +export interface ImpactCategoryProperties { + /** Resource provisioning state. */ + readonly provisioningState?: ProvisioningState; + /** Unique ID of the category */ + categoryId: string; + /** Unique ID of the parent category */ + parentCategoryId?: string; + /** Description of the category */ + description?: string; + /** The workloadImpact properties which are required when reporting with the impact category */ + requiredImpactProperties?: RequiredImpactProperties[]; +} + +export function impactCategoryPropertiesDeserializer(item: any): ImpactCategoryProperties { return { - protocol: item["protocol"], - port: item["port"], - source: !item["source"] ? item["source"] : sourceOrTargetDeserializer(item["source"]), - target: !item["target"] ? item["target"] : sourceOrTargetDeserializer(item["target"]), + provisioningState: item["provisioningState"], + categoryId: item["categoryId"], + parentCategoryId: item["parentCategoryId"], + description: item["description"], + requiredImpactProperties: !item["requiredImpactProperties"] + ? item["requiredImpactProperties"] + : requiredImpactPropertiesArrayDeserializer(item["requiredImpactProperties"]), }; } -/** List of protocols */ -export enum KnownProtocol { - /** When communication protocol is TCP */ - TCP = "TCP", - /** When communication protocol is UDP */ - UDP = "UDP", - /** When communication protocol is HTTP */ - Http = "HTTP", - /** When communication protocol is HTTPS */ - Https = "HTTPS", - /** When communication protocol is RDP */ - RDP = "RDP", - /** When communication protocol is FTP */ - FTP = "FTP", - /** When communication protocol is SSH */ - SSH = "SSH", - /** When communication protocol is Other */ - Other = "Other", -} - -/** - * List of protocols \ - * {@link KnownProtocol} can be used interchangeably with Protocol, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **TCP**: When communication protocol is TCP \ - * **UDP**: When communication protocol is UDP \ - * **Http**: When communication protocol is HTTP \ - * **Https**: When communication protocol is HTTPS \ - * **RDP**: When communication protocol is RDP \ - * **FTP**: When communication protocol is FTP \ - * **SSH**: When communication protocol is SSH \ - * **Other**: When communication protocol is Other - */ -export type Protocol = string; - -/** Resource details */ -export interface SourceOrTarget { - /** Azure resource id, example /subscription/{subscription}/resourceGroup/{rg}/Microsoft.compute/virtualMachine/{vmName} */ - azureResourceId?: string; +export function requiredImpactPropertiesArrayDeserializer( + result: Array, +): any[] { + return result.map((item) => { + return requiredImpactPropertiesDeserializer(item); + }); } -export function sourceOrTargetSerializer(item: SourceOrTarget): any { - return { azureResourceId: item["azureResourceId"] }; +/** Required impact properties */ +export interface RequiredImpactProperties { + /** Name of the property */ + name: string; + /** Allowed values values for the property */ + allowedValues?: string[]; } -export function sourceOrTargetDeserializer(item: any): SourceOrTarget { +export function requiredImpactPropertiesDeserializer(item: any): RequiredImpactProperties { return { - azureResourceId: item["azureResourceId"], + name: item["name"], + allowedValues: !item["allowedValues"] + ? item["allowedValues"] + : item["allowedValues"].map((p: any) => { + return p; + }), }; } -/** model interface _WorkloadImpactPropertiesAdditionalProperties */ -export interface _WorkloadImpactPropertiesAdditionalProperties {} - -export function _workloadImpactPropertiesAdditionalPropertiesSerializer( - item: _WorkloadImpactPropertiesAdditionalProperties, -): any { - return item; +/** The response of a ImpactCategory list operation. */ +export interface _ImpactCategoryListResult { + /** The ImpactCategory items on this page */ + value: ImpactCategory[]; + /** The link to the next page of items */ + nextLink?: string; } -export function _workloadImpactPropertiesAdditionalPropertiesDeserializer( - item: any, -): _WorkloadImpactPropertiesAdditionalProperties { - return item; +export function _impactCategoryListResultDeserializer(item: any): _ImpactCategoryListResult { + return { + value: impactCategoryArrayDeserializer(item["value"]), + nextLink: item["nextLink"], + }; } -/** ARM error code and error message associated with the impact */ -export interface ErrorDetailProperties { - /** ARM Error code associated with the impact. */ - errorCode?: string; - /** ARM Error Message associated with the impact */ - errorMessage?: string; +export function impactCategoryArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return impactCategoryDeserializer(item); + }); } -export function errorDetailPropertiesSerializer(item: ErrorDetailProperties): any { - return { errorCode: item["errorCode"], errorMessage: item["errorMessage"] }; +/** Insight resource */ +export interface Insight extends ProxyResource { + /** The resource-specific properties for this resource. */ + properties?: InsightProperties; } -export function errorDetailPropertiesDeserializer(item: any): ErrorDetailProperties { +export function insightSerializer(item: Insight): any { return { - errorCode: item["errorCode"], - errorMessage: item["errorMessage"], + properties: !item["properties"] + ? item["properties"] + : insightPropertiesSerializer(item["properties"]), }; } -/** Information about the impacted workload */ -export interface Workload { - /** the scenario for the workload */ - context?: string; - /** Tool used to interact with Azure. SDK, AzPortal, etc.., Other */ - toolset?: Toolset; +export function insightDeserializer(item: any): Insight { + return { + id: item["id"], + name: item["name"], + type: item["type"], + systemData: !item["systemData"] + ? item["systemData"] + : systemDataDeserializer(item["systemData"]), + properties: !item["properties"] + ? item["properties"] + : insightPropertiesDeserializer(item["properties"]), + }; } -export function workloadSerializer(item: Workload): any { - return { context: item["context"], toolset: item["toolset"] }; +/** Impact category properties. */ +export interface InsightProperties { + /** Resource provisioning state. */ + readonly provisioningState?: ProvisioningState; + /** category of the insight. */ + category: string; + /** status of the insight. example resolved, repaired, other. */ + status?: string; + /** Identifier of the event that has been correlated with this insight. This can be used to aggregate insights for the same event. */ + eventId?: string; + /** Identifier that can be used to group similar insights. */ + groupId?: string; + /** Contains title & description for the insight */ + content: Content; + /** Time of the event, which has been correlated the impact. */ + eventTime?: Date; + /** unique id of the insight. */ + insightUniqueId: string; + /** details of of the impact for which insight has been generated. */ + impact: ImpactDetails; + /** additional details of the insight. */ + additionalDetails?: Record; } -export function workloadDeserializer(item: any): Workload { +export function insightPropertiesSerializer(item: InsightProperties): any { return { - context: item["context"], - toolset: item["toolset"], + category: item["category"], + status: item["status"], + eventId: item["eventId"], + groupId: item["groupId"], + content: contentSerializer(item["content"]), + eventTime: !item["eventTime"] ? item["eventTime"] : item["eventTime"].toISOString(), + insightUniqueId: item["insightUniqueId"], + impact: impactDetailsSerializer(item["impact"]), + additionalDetails: !item["additionalDetails"] + ? item["additionalDetails"] + : _insightPropertiesAdditionalDetailsSerializer(item["additionalDetails"]), }; } -/** List of azure interfaces. */ -export enum KnownToolset { - /** If communication toolset is Terraform */ - Terraform = "Terraform", - /** If communication toolset is Puppet */ - Puppet = "Puppet", - /** If communication toolset is Chef */ - Chef = "Chef", - /** If communication toolset is SDK */ - SDK = "SDK", - /** If communication toolset is Ansible */ - Ansible = "Ansible", - /** If communication toolset is ARM */ - ARM = "ARM", - /** If communication toolset is Portal */ - Portal = "Portal", - /** If communication toolset is Shell */ - Shell = "Shell", - /** If communication toolset is Other */ - Other = "Other", +export function insightPropertiesDeserializer(item: any): InsightProperties { + return { + provisioningState: item["provisioningState"], + category: item["category"], + status: item["status"], + eventId: item["eventId"], + groupId: item["groupId"], + content: contentDeserializer(item["content"]), + eventTime: !item["eventTime"] ? item["eventTime"] : new Date(item["eventTime"]), + insightUniqueId: item["insightUniqueId"], + impact: impactDetailsDeserializer(item["impact"]), + additionalDetails: !item["additionalDetails"] + ? item["additionalDetails"] + : _insightPropertiesAdditionalDetailsDeserializer(item["additionalDetails"]), + }; } -/** - * List of azure interfaces. \ - * {@link KnownToolset} can be used interchangeably with Toolset, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **Terraform**: If communication toolset is Terraform \ - * **Puppet**: If communication toolset is Puppet \ - * **Chef**: If communication toolset is Chef \ - * **SDK**: If communication toolset is SDK \ - * **Ansible**: If communication toolset is Ansible \ - * **ARM**: If communication toolset is ARM \ - * **Portal**: If communication toolset is Portal \ - * **Shell**: If communication toolset is Shell \ - * **Other**: If communication toolset is Other - */ -export type Toolset = string; +/** Article details of the insight like title, description etc */ +export interface Content { + /** Title of the insight */ + title: string; + /** Description of the insight */ + description: string; +} -/** Degree of confidence on the impact being a platform issue. */ -export enum KnownConfidenceLevel { - /** Low confidence on azure being the source of impact */ - Low = "Low", - /** Medium confidence on azure being the source of impact */ - Medium = "Medium", - /** High confidence on azure being the source of impact */ - High = "High", +export function contentSerializer(item: Content): any { + return { title: item["title"], description: item["description"] }; } -/** - * Degree of confidence on the impact being a platform issue. \ - * {@link KnownConfidenceLevel} can be used interchangeably with ConfidenceLevel, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **Low**: Low confidence on azure being the source of impact \ - * **Medium**: Medium confidence on azure being the source of impact \ - * **High**: High confidence on azure being the source of impact - */ -export type ConfidenceLevel = string; +export function contentDeserializer(item: any): Content { + return { + title: item["title"], + description: item["description"], + }; +} -/** Client incident details ex: incidentId , incident source */ -export interface ClientIncidentDetails { - /** Client incident id. ex : id of the incident created to investigate and address the impact if any. */ - clientIncidentId?: string; - /** Client incident source. ex : source system name where the incident is created */ - clientIncidentSource?: IncidentSource; +/** details of of the impact for which insight has been generated. */ +export interface ImpactDetails { + /** List of impacted Azure resources. */ + impactedResourceId: string; + /** Time at which impact was started according to reported impact. */ + startTime: Date; + /** Time at which impact was ended according to reported impact. */ + endTime?: Date; + /** Azure Id of the impact. */ + impactId: string; } -export function clientIncidentDetailsSerializer(item: ClientIncidentDetails): any { +export function impactDetailsSerializer(item: ImpactDetails): any { return { - clientIncidentId: item["clientIncidentId"], - clientIncidentSource: item["clientIncidentSource"], + impactedResourceId: item["impactedResourceId"], + startTime: item["startTime"].toISOString(), + endTime: !item["endTime"] ? item["endTime"] : item["endTime"].toISOString(), + impactId: item["impactId"], }; } -export function clientIncidentDetailsDeserializer(item: any): ClientIncidentDetails { +export function impactDetailsDeserializer(item: any): ImpactDetails { return { - clientIncidentId: item["clientIncidentId"], - clientIncidentSource: item["clientIncidentSource"], + impactedResourceId: item["impactedResourceId"], + startTime: new Date(item["startTime"]), + endTime: !item["endTime"] ? item["endTime"] : new Date(item["endTime"]), + impactId: item["impactId"], }; } -/** List of incident interfaces. */ -export enum KnownIncidentSource { - /** When source of Incident is AzureDevops */ - AzureDevops = "AzureDevops", - /** When source of Incident is Microsoft ICM */ - ICM = "ICM", - /** When source of Incident is Jira */ - Jira = "Jira", - /** When source of Incident is ServiceNow */ - ServiceNow = "ServiceNow", - /** When source of Incident is Other */ - Other = "Other", +/** model interface _InsightPropertiesAdditionalDetails */ +export interface _InsightPropertiesAdditionalDetails {} + +export function _insightPropertiesAdditionalDetailsSerializer( + item: _InsightPropertiesAdditionalDetails, +): any { + return item; } -/** - * List of incident interfaces. \ - * {@link KnownIncidentSource} can be used interchangeably with IncidentSource, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **AzureDevops**: When source of Incident is AzureDevops \ - * **ICM**: When source of Incident is Microsoft ICM \ - * **Jira**: When source of Incident is Jira \ - * **ServiceNow**: When source of Incident is ServiceNow \ - * **Other**: When source of Incident is Other - */ -export type IncidentSource = string; +export function _insightPropertiesAdditionalDetailsDeserializer( + item: any, +): _InsightPropertiesAdditionalDetails { + return item; +} -/** The response of a WorkloadImpact list operation. */ -export interface _WorkloadImpactListResult { - /** The WorkloadImpact items on this page */ - value: WorkloadImpact[]; +/** The response of a Insight list operation. */ +export interface _InsightListResult { + /** The Insight items on this page */ + value: Insight[]; /** The link to the next page of items */ nextLink?: string; } -export function _workloadImpactListResultDeserializer(item: any): _WorkloadImpactListResult { +export function _insightListResultDeserializer(item: any): _InsightListResult { return { - value: workloadImpactArrayDeserializer(item["value"]), + value: insightArrayDeserializer(item["value"]), nextLink: item["nextLink"], }; } -export function workloadImpactArraySerializer(result: Array): any[] { +export function insightArraySerializer(result: Array): any[] { return result.map((item) => { - return workloadImpactSerializer(item); + return insightSerializer(item); }); } -export function workloadImpactArrayDeserializer(result: Array): any[] { +export function insightArrayDeserializer(result: Array): any[] { return result.map((item) => { - return workloadImpactDeserializer(item); + return insightDeserializer(item); }); } -/** A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results. */ -export interface _OperationListResult { - /** The Operation items on this page */ - value: Operation[]; - /** The link to the next page of items */ - nextLink?: string; +/** A connector is a resource that can be used to proactively report impacts against workloads in Azure to Microsoft. */ +export interface Connector extends ProxyResource { + /** The resource-specific properties for this resource. */ + properties?: ConnectorProperties; } -export function _operationListResultDeserializer(item: any): _OperationListResult { +export function connectorSerializer(item: Connector): any { return { - value: operationArrayDeserializer(item["value"]), - nextLink: item["nextLink"], + properties: !item["properties"] + ? item["properties"] + : connectorPropertiesSerializer(item["properties"]), }; } -export function operationArrayDeserializer(result: Array): any[] { - return result.map((item) => { - return operationDeserializer(item); - }); -} - -/** Details of a REST API operation, returned from the Resource Provider Operations API */ -export interface Operation { - /** The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action" */ - readonly name?: string; - /** Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for Azure Resource Manager/control-plane operations. */ - readonly isDataAction?: boolean; - /** Localized display information for this particular operation. */ - display?: OperationDisplay; - /** The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" */ - readonly origin?: Origin; - /** Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. */ - readonly actionType?: ActionType; -} - -export function operationDeserializer(item: any): Operation { +export function connectorDeserializer(item: any): Connector { return { + id: item["id"], name: item["name"], - isDataAction: item["isDataAction"], - display: !item["display"] ? item["display"] : operationDisplayDeserializer(item["display"]), - origin: item["origin"], - actionType: item["actionType"], + type: item["type"], + systemData: !item["systemData"] + ? item["systemData"] + : systemDataDeserializer(item["systemData"]), + properties: !item["properties"] + ? item["properties"] + : connectorPropertiesDeserializer(item["properties"]), }; } -/** Localized display information for and operation. */ -export interface OperationDisplay { - /** The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute". */ - readonly provider?: string; - /** The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job Schedule Collections". */ - readonly resource?: string; - /** The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". */ - readonly operation?: string; - /** The short, localized friendly description of the operation; suitable for tool tips and detailed views. */ - readonly description?: string; +/** Details of the Connector. */ +export interface ConnectorProperties { + /** Resource provisioning state. */ + readonly provisioningState?: ProvisioningState; + /** unique id of the connector. */ + readonly connectorId: string; + /** tenant id of this connector */ + readonly tenantId: string; + /** connector type */ + connectorType: Platform; + /** last run time stamp of this connector in UTC time zone */ + readonly lastRunTimeStamp: Date; } -export function operationDisplayDeserializer(item: any): OperationDisplay { +export function connectorPropertiesSerializer(item: ConnectorProperties): any { + return { connectorType: item["connectorType"] }; +} + +export function connectorPropertiesDeserializer(item: any): ConnectorProperties { return { - provider: item["provider"], - resource: item["resource"], - operation: item["operation"], - description: item["description"], + provisioningState: item["provisioningState"], + connectorId: item["connectorId"], + tenantId: item["tenantId"], + connectorType: item["connectorType"], + lastRunTimeStamp: new Date(item["lastRunTimeStamp"]), }; } -/** The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" */ -export enum KnownOrigin { - /** Indicates the operation is initiated by a user. */ - User = "user", - /** Indicates the operation is initiated by a system. */ - System = "system", - /** Indicates the operation is initiated by a user or system. */ - UserSystem = "user,system", +/** Enum for connector types */ +export enum KnownPlatform { + /** Type of Azure Monitor */ + AzureMonitor = "AzureMonitor", } /** - * The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" \ - * {@link KnownOrigin} can be used interchangeably with Origin, + * Enum for connector types \ + * {@link KnownPlatform} can be used interchangeably with Platform, * this enum contains the known values that the service supports. * ### Known values supported by the service - * **User**: Indicates the operation is initiated by a user. \ - * **System**: Indicates the operation is initiated by a system. \ - * **UserSystem**: Indicates the operation is initiated by a user or system. + * **AzureMonitor**: Type of Azure Monitor */ -export type Origin = string; +export type Platform = string; -/** Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. */ -export enum KnownActionType { - /** Actions are for internal-only APIs. */ - Internal = "Internal", +/** The type used for update operations of the Connector. */ +export interface ConnectorUpdate { + /** The resource-specific properties for this resource. */ + properties?: ConnectorUpdateProperties; } -/** - * Extensible enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. \ - * {@link KnownActionType} can be used interchangeably with ActionType, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **Internal**: Actions are for internal-only APIs. - */ -export type ActionType = string; +export function connectorUpdateSerializer(item: ConnectorUpdate): any { + return { + properties: !item["properties"] + ? item["properties"] + : connectorUpdatePropertiesSerializer(item["properties"]), + }; +} + +/** The updatable properties of the Connector. */ +export interface ConnectorUpdateProperties { + /** connector type */ + connectorType?: Platform; +} + +export function connectorUpdatePropertiesSerializer(item: ConnectorUpdateProperties): any { + return { connectorType: item["connectorType"] }; +} + +/** The response of a Connector list operation. */ +export interface _ConnectorListResult { + /** The Connector items on this page */ + value: Connector[]; + /** The link to the next page of items */ + nextLink?: string; +} + +export function _connectorListResultDeserializer(item: any): _ConnectorListResult { + return { + value: connectorArrayDeserializer(item["value"]), + nextLink: item["nextLink"], + }; +} + +export function connectorArraySerializer(result: Array): any[] { + return result.map((item) => { + return connectorSerializer(item); + }); +} + +export function connectorArrayDeserializer(result: Array): any[] { + return result.map((item) => { + return connectorDeserializer(item); + }); +} /** API Versions */ export enum KnownVersions { diff --git a/sdk/impactreporting/arm-impactreporting/src/restorePollerHelpers.ts b/sdk/impactreporting/arm-impactreporting/src/restorePollerHelpers.ts index a438aeafc8da..865bff8a1687 100644 --- a/sdk/impactreporting/arm-impactreporting/src/restorePollerHelpers.ts +++ b/sdk/impactreporting/arm-impactreporting/src/restorePollerHelpers.ts @@ -2,8 +2,8 @@ // Licensed under the MIT License. import { ImpactClient } from "./impactClient.js"; -import { _connectorsCreateOrUpdateDeserialize } from "./api/connectors/index.js"; -import { _workloadImpactsCreateDeserialize } from "./api/workloadImpacts/index.js"; +import { _createOrUpdateDeserialize } from "./api/connectors/operations.js"; +import { _createDeserialize } from "./api/workloadImpacts/operations.js"; import { getLongRunningPoller } from "./static-helpers/pollingHelpers.js"; import { OperationOptions, PathUncheckedResponse } from "@azure-rest/core-client"; import { AbortSignalLike } from "@azure/abort-controller"; @@ -78,13 +78,13 @@ interface DeserializationHelper { const deserializeMap: Record = { "PUT /subscriptions/{subscriptionId}/providers/Microsoft.Impact/connectors/{connectorName}": { - deserializer: _connectorsCreateOrUpdateDeserialize, - expectedStatuses: ["200", "201"], + deserializer: _createOrUpdateDeserialize, + expectedStatuses: ["200", "201", "202"], }, "PUT /subscriptions/{subscriptionId}/providers/Microsoft.Impact/workloadImpacts/{workloadImpactName}": { - deserializer: _workloadImpactsCreateDeserialize, - expectedStatuses: ["200", "201"], + deserializer: _createDeserialize, + expectedStatuses: ["200", "201", "202"], }, }; diff --git a/sdk/impactreporting/arm-impactreporting/src/static-helpers/cloudSettingHelpers.ts b/sdk/impactreporting/arm-impactreporting/src/static-helpers/cloudSettingHelpers.ts new file mode 100644 index 000000000000..e4034348f1fa --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/src/static-helpers/cloudSettingHelpers.ts @@ -0,0 +1,33 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +/** An enum to describe Azure Cloud. */ +export enum AzureClouds { + /** Azure public cloud, which is the default cloud for Azure SDKs. */ + AZURE_PUBLIC_CLOUD = "AZURE_PUBLIC_CLOUD", + /** Azure China cloud */ + AZURE_CHINA_CLOUD = "AZURE_CHINA_CLOUD", + /** Azure US government cloud */ + AZURE_US_GOVERNMENT = "AZURE_US_GOVERNMENT", +} + +/** The supported values for cloud setting as a string literal type */ +export type AzureSupportedClouds = `${AzureClouds}`; + +export function getArmEndpoint(cloudSetting?: AzureSupportedClouds): string | undefined { + if (cloudSetting === undefined) { + return undefined; + } + const cloudEndpoints: Record = { + AZURE_CHINA_CLOUD: "https://management.chinacloudapi.cn/", + AZURE_US_GOVERNMENT: "https://management.usgovcloudapi.net/", + AZURE_PUBLIC_CLOUD: "https://management.azure.com/", + }; + if (cloudSetting in cloudEndpoints) { + return cloudEndpoints[cloudSetting]; + } else { + throw new Error( + `Unknown cloud setting: ${cloudSetting}. Please refer to the enum AzureClouds for possible values.`, + ); + } +} diff --git a/sdk/impactreporting/arm-impactreporting/src/static-helpers/urlTemplate.ts b/sdk/impactreporting/arm-impactreporting/src/static-helpers/urlTemplate.ts new file mode 100644 index 000000000000..5a7b94d2adc0 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/src/static-helpers/urlTemplate.ts @@ -0,0 +1,198 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +//--------------------- +// interfaces +//--------------------- +interface ValueOptions { + isFirst: boolean; // is first value in the expression + op?: string; // operator + varValue?: any; // variable value + varName?: string; // variable name + modifier?: string; // modifier e.g * + reserved?: boolean; // if true we'll keep reserved words with not encoding +} + +export interface UrlTemplateOptions { + // if set to true, reserved characters will not be encoded + allowReserved?: boolean; +} + +// --------------------- +// helpers +// --------------------- +function encodeComponent(val: string, reserved?: boolean, op?: string) { + return (reserved ?? op === "+") || op === "#" + ? encodeReservedComponent(val) + : encodeRFC3986URIComponent(val); +} + +function encodeReservedComponent(str: string) { + return str + .split(/(%[0-9A-Fa-f]{2})/g) + .map((part) => (!/%[0-9A-Fa-f]/.test(part) ? encodeURI(part) : part)) + .join(""); +} + +function encodeRFC3986URIComponent(str: string) { + return encodeURIComponent(str).replace( + /[!'()*]/g, + (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`, + ); +} + +function isDefined(val: any) { + return val !== undefined && val !== null; +} + +function getNamedAndIfEmpty(op?: string): [boolean, string] { + return [!!op && [";", "?", "&"].includes(op), !!op && ["?", "&"].includes(op) ? "=" : ""]; +} + +function getFirstOrSep(op?: string, isFirst = false) { + if (isFirst) { + return !op || op === "+" ? "" : op; + } else if (!op || op === "+" || op === "#") { + return ","; + } else if (op === "?") { + return "&"; + } else { + return op; + } +} + +function getExpandedValue(option: ValueOptions) { + let isFirst = option.isFirst; + const { op, varName, varValue: value, reserved } = option; + const vals: string[] = []; + const [named, ifEmpty] = getNamedAndIfEmpty(op); + + if (Array.isArray(value)) { + for (const val of value.filter(isDefined)) { + // prepare the following parts: separator, varName, value + vals.push(`${getFirstOrSep(op, isFirst)}`); + if (named && varName) { + vals.push(`${encodeURIComponent(varName)}`); + val === "" ? vals.push(ifEmpty) : vals.push("="); + } + vals.push(encodeComponent(val, reserved, op)); + isFirst = false; + } + } else if (typeof value === "object") { + for (const key of Object.keys(value)) { + const val = value[key]; + if (!isDefined(val)) { + continue; + } + // prepare the following parts: separator, key, value + vals.push(`${getFirstOrSep(op, isFirst)}`); + if (key) { + vals.push(`${encodeURIComponent(key)}`); + named && val === "" ? vals.push(ifEmpty) : vals.push("="); + } + vals.push(encodeComponent(val, reserved, op)); + isFirst = false; + } + } + return vals.join(""); +} + +function getNonExpandedValue(option: ValueOptions) { + const { op, varName, varValue: value, isFirst, reserved } = option; + const vals: string[] = []; + const first = getFirstOrSep(op, isFirst); + const [named, ifEmpty] = getNamedAndIfEmpty(op); + if (named && varName) { + vals.push(encodeComponent(varName, reserved, op)); + if (value === "") { + if (!ifEmpty) { + vals.push(ifEmpty); + } + return !vals.join("") ? undefined : `${first}${vals.join("")}`; + } + vals.push("="); + } + + const items = []; + if (Array.isArray(value)) { + for (const val of value.filter(isDefined)) { + items.push(encodeComponent(val, reserved, op)); + } + } else if (typeof value === "object") { + for (const key of Object.keys(value)) { + if (!isDefined(value[key])) { + continue; + } + items.push(encodeRFC3986URIComponent(key)); + items.push(encodeComponent(value[key], reserved, op)); + } + } + vals.push(items.join(",")); + return !vals.join(",") ? undefined : `${first}${vals.join("")}`; +} + +function getVarValue(option: ValueOptions): string | undefined { + const { op, varName, modifier, isFirst, reserved, varValue: value } = option; + + if (!isDefined(value)) { + return undefined; + } else if (["string", "number", "boolean"].includes(typeof value)) { + let val = value.toString(); + const [named, ifEmpty] = getNamedAndIfEmpty(op); + const vals: string[] = [getFirstOrSep(op, isFirst)]; + if (named && varName) { + // No need to encode varName considering it is already encoded + vals.push(varName); + val === "" ? vals.push(ifEmpty) : vals.push("="); + } + if (modifier && modifier !== "*") { + val = val.substring(0, parseInt(modifier, 10)); + } + vals.push(encodeComponent(val, reserved, op)); + return vals.join(""); + } else if (modifier === "*") { + return getExpandedValue(option); + } else { + return getNonExpandedValue(option); + } +} + +// --------------------------------------------------------------------------------------------------- +// This is an implementation of RFC 6570 URI Template: https://datatracker.ietf.org/doc/html/rfc6570. +// --------------------------------------------------------------------------------------------------- +export function expandUrlTemplate( + template: string, + context: Record, + option?: UrlTemplateOptions, +): string { + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, (_, expr, text) => { + if (!expr) { + return encodeReservedComponent(text); + } + let op; + if (["+", "#", ".", "/", ";", "?", "&"].includes(expr[0])) { + op = expr[0]; + expr = expr.slice(1); + } + const varList = expr.split(/,/g); + const result = []; + for (const varSpec of varList) { + const varMatch = /([^:\*]*)(?::(\d+)|(\*))?/.exec(varSpec); + if (!varMatch || !varMatch[1]) { + continue; + } + const varValue = getVarValue({ + isFirst: result.length === 0, + op, + varValue: context[varMatch[1]], + varName: varMatch[1], + modifier: varMatch[2] || varMatch[3], + reserved: option?.allowReserved, + }); + if (varValue) { + result.push(varValue); + } + } + return result.join(""); + }); +} diff --git a/sdk/impactreporting/arm-impactreporting/tsconfig.json b/sdk/impactreporting/arm-impactreporting/tsconfig.json index d466f1460665..a1e7aa414069 100644 --- a/sdk/impactreporting/arm-impactreporting/tsconfig.json +++ b/sdk/impactreporting/arm-impactreporting/tsconfig.json @@ -14,4 +14,4 @@ } ], "files": [] -} +} \ No newline at end of file diff --git a/sdk/impactreporting/arm-impactreporting/tsp-location.yaml b/sdk/impactreporting/arm-impactreporting/tsp-location.yaml index b92ea15f1eec..d1fe61168f9b 100644 --- a/sdk/impactreporting/arm-impactreporting/tsp-location.yaml +++ b/sdk/impactreporting/arm-impactreporting/tsp-location.yaml @@ -1,4 +1,4 @@ directory: specification/impact/Impact.Management -commit: 13f7c56aecf4cc42dfc14f72b6eb4ba2b8d470c5 +commit: f9b00d9100abf7a317573f66dcf1fac5ea467b3d repo: Azure/azure-rest-api-specs -additionalDirectories: +additionalDirectories: diff --git a/sdk/impactreporting/ci.mgmt.yml b/sdk/impactreporting/ci.mgmt.yml index 664efe924263..6e6357e4af13 100644 --- a/sdk/impactreporting/ci.mgmt.yml +++ b/sdk/impactreporting/ci.mgmt.yml @@ -1,5 +1,5 @@ # NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file. - + trigger: branches: include: @@ -13,6 +13,7 @@ trigger: include: - sdk/impactreporting/arm-impactreporting - sdk/impactreporting/ci.mgmt.yml + - /mnt/vss/_work/1/s/azure-sdk-for-js/sdk/impactreporting/arm-impactreporting pr: branches: include: @@ -26,6 +27,7 @@ pr: include: - sdk/impactreporting/arm-impactreporting - sdk/impactreporting/ci.mgmt.yml + - /mnt/vss/_work/1/s/azure-sdk-for-js/sdk/impactreporting/arm-impactreporting extends: template: /eng/pipelines/templates/stages/archetype-sdk-client.yml parameters: From 18f57d8db2ce312b1098139501206d6014106bb3 Mon Sep 17 00:00:00 2001 From: "Jiao Di (MSFT)" <80496810+v-jiaodi@users.noreply.github.com> Date: Fri, 29 Aug 2025 10:42:22 +0800 Subject: [PATCH 2/5] update version --- .../arm-impactreporting/src/api/impactContext.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/impactreporting/arm-impactreporting/src/api/impactContext.ts b/sdk/impactreporting/arm-impactreporting/src/api/impactContext.ts index 672ae938dfee..522bc1789f7f 100644 --- a/sdk/impactreporting/arm-impactreporting/src/api/impactContext.ts +++ b/sdk/impactreporting/arm-impactreporting/src/api/impactContext.ts @@ -32,7 +32,7 @@ export function createImpact( const endpointUrl = options.endpoint ?? getArmEndpoint(options.cloudSetting) ?? "https://management.azure.com"; const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix; - const userAgentInfo = `azsdk-js-arm-impactreporting/1.0.0-beta.1`; + const userAgentInfo = `azsdk-js-arm-impactreporting/1.0.0-beta.2`; const userAgentPrefix = prefixFromOptions ? `${prefixFromOptions} azsdk-js-api ${userAgentInfo}` : `azsdk-js-api ${userAgentInfo}`; From f154b10ef71a26854480182b230e6fc374846975 Mon Sep 17 00:00:00 2001 From: "Jiao Di (MSFT)" <80496810+v-jiaodi@users.noreply.github.com> Date: Fri, 29 Aug 2025 11:07:08 +0800 Subject: [PATCH 3/5] format --- sdk/impactreporting/arm-impactreporting/api-extractor.json | 2 +- sdk/impactreporting/arm-impactreporting/package.json | 2 +- sdk/impactreporting/arm-impactreporting/tsconfig.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/impactreporting/arm-impactreporting/api-extractor.json b/sdk/impactreporting/arm-impactreporting/api-extractor.json index 1e1b312909b1..16d81e2eb512 100644 --- a/sdk/impactreporting/arm-impactreporting/api-extractor.json +++ b/sdk/impactreporting/arm-impactreporting/api-extractor.json @@ -1,3 +1,3 @@ { "extends": "../../../api-extractor-base.json" -} \ No newline at end of file +} diff --git a/sdk/impactreporting/arm-impactreporting/package.json b/sdk/impactreporting/arm-impactreporting/package.json index 53f974c4beb3..0e994814eda3 100644 --- a/sdk/impactreporting/arm-impactreporting/package.json +++ b/sdk/impactreporting/arm-impactreporting/package.json @@ -152,4 +152,4 @@ "main": "./dist/commonjs/index.js", "types": "./dist/commonjs/index.d.ts", "module": "./dist/esm/index.js" -} \ No newline at end of file +} diff --git a/sdk/impactreporting/arm-impactreporting/tsconfig.json b/sdk/impactreporting/arm-impactreporting/tsconfig.json index a1e7aa414069..d466f1460665 100644 --- a/sdk/impactreporting/arm-impactreporting/tsconfig.json +++ b/sdk/impactreporting/arm-impactreporting/tsconfig.json @@ -14,4 +14,4 @@ } ], "files": [] -} \ No newline at end of file +} From 82325c6d65a4729dc8d035f1204cf9764fd3d6b9 Mon Sep 17 00:00:00 2001 From: "Jiao Di (MSFT)" <80496810+v-jiaodi@users.noreply.github.com> Date: Wed, 3 Sep 2025 17:30:44 +0800 Subject: [PATCH 4/5] update sample --- .../samples-dev/connectorsCreateOrUpdateSample.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsCreateOrUpdateSample.ts b/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsCreateOrUpdateSample.ts index fcd0e9e589bd..1735671e23f4 100644 --- a/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsCreateOrUpdateSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples-dev/connectorsCreateOrUpdateSample.ts @@ -15,7 +15,12 @@ async function connectorsCreateOrUpdate(): Promise { const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; const client = new ImpactClient(credential, subscriptionId); const result = await client.connectors.createOrUpdate("testconnector1", { - properties: { connectorType: "AzureMonitor" }, + properties: { + connectorType: "AzureMonitor", + connectorId: "", + tenantId: "", + lastRunTimeStamp: new Date(), + }, }); console.log(result); } From 5bae0e1cd73ec923437ff6770be2309dd2ad1616 Mon Sep 17 00:00:00 2001 From: kazrael2119 <98569699+kazrael2119@users.noreply.github.com> Date: Thu, 23 Oct 2025 14:56:53 +0800 Subject: [PATCH 5/5] update --- .../arm-impactreporting/CHANGELOG.md | 4 +- .../samples/v1-beta/javascript/README.md | 32 +++++ ...onnectorsConnectorsCreateOrUpdateSample.js | 7 +- .../connectorsConnectorsDeleteSample.js | 7 +- .../connectorsConnectorsGetSample.js | 7 +- ...ctorsConnectorsListBySubscriptionSample.js | 7 +- .../connectorsConnectorsUpdateSample.js | 7 +- .../connectorsCreateOrUpdateSample.js | 32 +++++ .../javascript/connectorsDeleteSample.js | 24 ++++ .../v1-beta/javascript/connectorsGetSample.js | 25 ++++ .../connectorsListBySubscriptionSample.js | 29 ++++ .../javascript/connectorsUpdateSample.js | 27 ++++ .../javascript/impactCategoriesGetSample.js | 25 ++++ ...pactCategoriesImpactCategoriesGetSample.js | 7 +- ...mpactCategoriesListBySubscriptionSample.js | 7 +- ...mpactCategoriesListBySubscriptionSample.js | 31 ++++ .../javascript/insightsCreateSample.js | 44 ++++++ .../javascript/insightsDeleteSample.js | 24 ++++ .../v1-beta/javascript/insightsGetSample.js | 55 +++++++ .../insightsInsightsCreateSample.js | 7 +- .../insightsInsightsDeleteSample.js | 7 +- .../javascript/insightsInsightsGetSample.js | 7 +- ...nsightsInsightsListBySubscriptionSample.js | 7 +- .../insightsListBySubscriptionSample.js | 29 ++++ .../javascript/operationsListSample.js | 29 ++++ .../operationsOperationsListSample.js | 7 +- .../samples/v1-beta/javascript/package.json | 2 +- .../javascript/workloadImpactsCreateSample.js | 136 ++++++++++++++++++ .../javascript/workloadImpactsDeleteSample.js | 24 ++++ .../javascript/workloadImpactsGetSample.js | 25 ++++ ...workloadImpactsListBySubscriptionSample.js | 29 ++++ ...kloadImpactsWorkloadImpactsCreateSample.js | 7 +- ...kloadImpactsWorkloadImpactsDeleteSample.js | 7 +- ...workloadImpactsWorkloadImpactsGetSample.js | 7 +- ...WorkloadImpactsListBySubscriptionSample.js | 7 +- .../samples/v1-beta/typescript/README.md | 32 +++++ .../samples/v1-beta/typescript/package.json | 2 +- ...onnectorsConnectorsCreateOrUpdateSample.ts | 7 +- .../src/connectorsConnectorsDeleteSample.ts | 7 +- .../src/connectorsConnectorsGetSample.ts | 7 +- ...ctorsConnectorsListBySubscriptionSample.ts | 7 +- .../src/connectorsConnectorsUpdateSample.ts | 7 +- .../src/connectorsCreateOrUpdateSample.ts | 32 +++++ .../typescript/src/connectorsDeleteSample.ts | 24 ++++ .../typescript/src/connectorsGetSample.ts | 25 ++++ .../src/connectorsListBySubscriptionSample.ts | 29 ++++ .../typescript/src/connectorsUpdateSample.ts | 27 ++++ .../src/impactCategoriesGetSample.ts | 25 ++++ ...pactCategoriesImpactCategoriesGetSample.ts | 7 +- ...mpactCategoriesListBySubscriptionSample.ts | 7 +- ...mpactCategoriesListBySubscriptionSample.ts | 31 ++++ .../typescript/src/insightsCreateSample.ts | 44 ++++++ .../typescript/src/insightsDeleteSample.ts | 24 ++++ .../typescript/src/insightsGetSample.ts | 55 +++++++ .../src/insightsInsightsCreateSample.ts | 7 +- .../src/insightsInsightsDeleteSample.ts | 7 +- .../src/insightsInsightsGetSample.ts | 7 +- ...nsightsInsightsListBySubscriptionSample.ts | 7 +- .../src/insightsListBySubscriptionSample.ts | 29 ++++ .../typescript/src/operationsListSample.ts | 29 ++++ .../src/operationsOperationsListSample.ts | 7 +- .../src/workloadImpactsCreateSample.ts | 136 ++++++++++++++++++ .../src/workloadImpactsDeleteSample.ts | 24 ++++ .../src/workloadImpactsGetSample.ts | 25 ++++ ...workloadImpactsListBySubscriptionSample.ts | 29 ++++ ...kloadImpactsWorkloadImpactsCreateSample.ts | 7 +- ...kloadImpactsWorkloadImpactsDeleteSample.ts | 7 +- ...workloadImpactsWorkloadImpactsGetSample.ts | 7 +- ...WorkloadImpactsListBySubscriptionSample.ts | 7 +- 69 files changed, 1371 insertions(+), 101 deletions(-) create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsCreateOrUpdateSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsDeleteSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsGetSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsListBySubscriptionSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsUpdateSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesGetSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesListBySubscriptionSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsCreateSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsDeleteSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsGetSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsListBySubscriptionSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/operationsListSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsCreateSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsDeleteSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsGetSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsListBySubscriptionSample.js create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsCreateOrUpdateSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsDeleteSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsGetSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsListBySubscriptionSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsUpdateSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesGetSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesListBySubscriptionSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsCreateSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsDeleteSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsGetSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsListBySubscriptionSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/operationsListSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsCreateSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsDeleteSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsGetSample.ts create mode 100644 sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsListBySubscriptionSample.ts diff --git a/sdk/impactreporting/arm-impactreporting/CHANGELOG.md b/sdk/impactreporting/arm-impactreporting/CHANGELOG.md index c97afc6e4f65..b9cf359b0842 100644 --- a/sdk/impactreporting/arm-impactreporting/CHANGELOG.md +++ b/sdk/impactreporting/arm-impactreporting/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 1.0.0-beta.2 (2025-08-28) +## 1.0.0-beta.2 (2025-10-23) Compared with version 1.0.0-beta.1 ### Features Added @@ -8,8 +8,6 @@ Compared with version 1.0.0-beta.1 - Interface ImpactClientOptionalParams has a new optional parameter cloudSetting - Added Type Alias AzureSupportedClouds - Added Enum AzureClouds - -### Breaking Changes - Removed Interface Performance_2 diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/README.md b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/README.md index 6dd615a2fdc6..61359cf68816 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/README.md +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/README.md @@ -9,13 +9,29 @@ These sample programs show how to use the JavaScript client libraries for @azure | [connectorsConnectorsGetSample.js][connectorsconnectorsgetsample] | get a Connector x-ms-original-file: 2024-05-01-preview/Connectors_Get.json | | [connectorsConnectorsListBySubscriptionSample.js][connectorsconnectorslistbysubscriptionsample] | list Connector resources by subscription ID x-ms-original-file: 2024-05-01-preview/Connectors_ListBySubscription.json | | [connectorsConnectorsUpdateSample.js][connectorsconnectorsupdatesample] | update a Connector x-ms-original-file: 2024-05-01-preview/Connectors_Update.json | +| [connectorsCreateOrUpdateSample.js][connectorscreateorupdatesample] | create a Connector x-ms-original-file: 2024-05-01-preview/Connectors_CreateOrUpdate.json | +| [connectorsDeleteSample.js][connectorsdeletesample] | delete a Connector x-ms-original-file: 2024-05-01-preview/Connectors_Delete.json | +| [connectorsGetSample.js][connectorsgetsample] | get a Connector x-ms-original-file: 2024-05-01-preview/Connectors_Get.json | +| [connectorsListBySubscriptionSample.js][connectorslistbysubscriptionsample] | list Connector resources by subscription ID x-ms-original-file: 2024-05-01-preview/Connectors_ListBySubscription.json | +| [connectorsUpdateSample.js][connectorsupdatesample] | update a Connector x-ms-original-file: 2024-05-01-preview/Connectors_Update.json | +| [impactCategoriesGetSample.js][impactcategoriesgetsample] | get a ImpactCategory x-ms-original-file: 2024-05-01-preview/ImpactCategories_Get.json | | [impactCategoriesImpactCategoriesGetSample.js][impactcategoriesimpactcategoriesgetsample] | get a ImpactCategory x-ms-original-file: 2024-05-01-preview/ImpactCategories_Get.json | | [impactCategoriesImpactCategoriesListBySubscriptionSample.js][impactcategoriesimpactcategorieslistbysubscriptionsample] | list ImpactCategory resources by subscription x-ms-original-file: 2024-05-01-preview/ImpactCategories_ListBySubscription.json | +| [impactCategoriesListBySubscriptionSample.js][impactcategorieslistbysubscriptionsample] | list ImpactCategory resources by subscription x-ms-original-file: 2024-05-01-preview/ImpactCategories_ListBySubscription.json | +| [insightsCreateSample.js][insightscreatesample] | create Insight resource, This is Admin only operation x-ms-original-file: 2024-05-01-preview/Insights_Create.json | +| [insightsDeleteSample.js][insightsdeletesample] | delete Insight resource, This is Admin only operation x-ms-original-file: 2024-05-01-preview/Insights_Delete.json | +| [insightsGetSample.js][insightsgetsample] | get Insight resources by workloadImpactName and insightName x-ms-original-file: 2024-05-01-preview/Insights_Get_diagnostics.json | | [insightsInsightsCreateSample.js][insightsinsightscreatesample] | create Insight resource, This is Admin only operation x-ms-original-file: 2024-05-01-preview/Insights_Create.json | | [insightsInsightsDeleteSample.js][insightsinsightsdeletesample] | delete Insight resource, This is Admin only operation x-ms-original-file: 2024-05-01-preview/Insights_Delete.json | | [insightsInsightsGetSample.js][insightsinsightsgetsample] | get Insight resources by workloadImpactName and insightName x-ms-original-file: 2024-05-01-preview/Insights_Get_diagnostics.json | | [insightsInsightsListBySubscriptionSample.js][insightsinsightslistbysubscriptionsample] | list Insight resources by workloadImpactName x-ms-original-file: 2024-05-01-preview/Insights_ListBySubscription.json | +| [insightsListBySubscriptionSample.js][insightslistbysubscriptionsample] | list Insight resources by workloadImpactName x-ms-original-file: 2024-05-01-preview/Insights_ListBySubscription.json | +| [operationsListSample.js][operationslistsample] | list the operations for the provider x-ms-original-file: 2024-05-01-preview/Operations_List.json | | [operationsOperationsListSample.js][operationsoperationslistsample] | list the operations for the provider x-ms-original-file: 2024-05-01-preview/Operations_List.json | +| [workloadImpactsCreateSample.js][workloadimpactscreatesample] | create a WorkloadImpact x-ms-original-file: 2024-05-01-preview/WorkloadArmOperation_create.json | +| [workloadImpactsDeleteSample.js][workloadimpactsdeletesample] | delete a WorkloadImpact x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Delete.json | +| [workloadImpactsGetSample.js][workloadimpactsgetsample] | get a WorkloadImpact x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Get.json | +| [workloadImpactsListBySubscriptionSample.js][workloadimpactslistbysubscriptionsample] | list WorkloadImpact resources by subscription ID x-ms-original-file: 2024-05-01-preview/WorkloadImpacts_ListBySubscription.json | | [workloadImpactsWorkloadImpactsCreateSample.js][workloadimpactsworkloadimpactscreatesample] | create a WorkloadImpact x-ms-original-file: 2024-05-01-preview/WorkloadArmOperation_create.json | | [workloadImpactsWorkloadImpactsDeleteSample.js][workloadimpactsworkloadimpactsdeletesample] | delete a WorkloadImpact x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Delete.json | | [workloadImpactsWorkloadImpactsGetSample.js][workloadimpactsworkloadimpactsgetsample] | get a WorkloadImpact x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Get.json | @@ -64,13 +80,29 @@ Take a look at our [API Documentation][apiref] for more information about the AP [connectorsconnectorsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsGetSample.js [connectorsconnectorslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsListBySubscriptionSample.js [connectorsconnectorsupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsUpdateSample.js +[connectorscreateorupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsCreateOrUpdateSample.js +[connectorsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsDeleteSample.js +[connectorsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsGetSample.js +[connectorslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsListBySubscriptionSample.js +[connectorsupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsUpdateSample.js +[impactcategoriesgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesGetSample.js [impactcategoriesimpactcategoriesgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesImpactCategoriesGetSample.js [impactcategoriesimpactcategorieslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesImpactCategoriesListBySubscriptionSample.js +[impactcategorieslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesListBySubscriptionSample.js +[insightscreatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsCreateSample.js +[insightsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsDeleteSample.js +[insightsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsGetSample.js [insightsinsightscreatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsCreateSample.js [insightsinsightsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsDeleteSample.js [insightsinsightsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsGetSample.js [insightsinsightslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsListBySubscriptionSample.js +[insightslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsListBySubscriptionSample.js +[operationslistsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/operationsListSample.js [operationsoperationslistsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/operationsOperationsListSample.js +[workloadimpactscreatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsCreateSample.js +[workloadimpactsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsDeleteSample.js +[workloadimpactsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsGetSample.js +[workloadimpactslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsListBySubscriptionSample.js [workloadimpactsworkloadimpactscreatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsCreateSample.js [workloadimpactsworkloadimpactsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsDeleteSample.js [workloadimpactsworkloadimpactsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsGetSample.js diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsCreateOrUpdateSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsCreateOrUpdateSample.js index 10ce858d79ab..28a8c3ae53fe 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsCreateOrUpdateSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsCreateOrUpdateSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to create a Connector * * @summary create a Connector * x-ms-original-file: 2024-05-01-preview/Connectors_CreateOrUpdate.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function connectorsCreateOrUpdate() { const credential = new DefaultAzureCredential(); const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsDeleteSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsDeleteSample.js index 0f973d2fb431..0456d95116f0 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsDeleteSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsDeleteSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to delete a Connector * * @summary delete a Connector * x-ms-original-file: 2024-05-01-preview/Connectors_Delete.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function connectorsDelete() { const credential = new DefaultAzureCredential(); const subscriptionId = "8F74B371-8573-4773-9BDA-D546505BDB3A"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsGetSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsGetSample.js index 2ac0d5dca186..0d31bf6df173 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsGetSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsGetSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to get a Connector * * @summary get a Connector * x-ms-original-file: 2024-05-01-preview/Connectors_Get.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function connectorsGet() { const credential = new DefaultAzureCredential(); const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsListBySubscriptionSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsListBySubscriptionSample.js index 5d8a382d07d5..6457d40644eb 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsListBySubscriptionSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsListBySubscriptionSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to list Connector resources by subscription ID * * @summary list Connector resources by subscription ID * x-ms-original-file: 2024-05-01-preview/Connectors_ListBySubscription.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function connectorsListBySubscription() { const credential = new DefaultAzureCredential(); const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsUpdateSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsUpdateSample.js index d6eb68a1d3d7..4ec59f80f7b2 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsUpdateSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsConnectorsUpdateSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to update a Connector * * @summary update a Connector * x-ms-original-file: 2024-05-01-preview/Connectors_Update.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function connectorsUpdate() { const credential = new DefaultAzureCredential(); const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsCreateOrUpdateSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsCreateOrUpdateSample.js new file mode 100644 index 000000000000..10ce858d79ab --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsCreateOrUpdateSample.js @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to create a Connector + * + * @summary create a Connector + * x-ms-original-file: 2024-05-01-preview/Connectors_CreateOrUpdate.json + */ +async function connectorsCreateOrUpdate() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.connectors.createOrUpdate("testconnector1", { + properties: { + connectorType: "AzureMonitor", + connectorId: "", + tenantId: "", + lastRunTimeStamp: new Date(), + }, + }); + console.log(result); +} + +async function main() { + await connectorsCreateOrUpdate(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsDeleteSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsDeleteSample.js new file mode 100644 index 000000000000..0f973d2fb431 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsDeleteSample.js @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to delete a Connector + * + * @summary delete a Connector + * x-ms-original-file: 2024-05-01-preview/Connectors_Delete.json + */ +async function connectorsDelete() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "8F74B371-8573-4773-9BDA-D546505BDB3A"; + const client = new ImpactClient(credential, subscriptionId); + await client.connectors.delete("testconnector1"); +} + +async function main() { + await connectorsDelete(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsGetSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsGetSample.js new file mode 100644 index 000000000000..2ac0d5dca186 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsGetSample.js @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to get a Connector + * + * @summary get a Connector + * x-ms-original-file: 2024-05-01-preview/Connectors_Get.json + */ +async function connectorsGet() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.connectors.get("testconnector1"); + console.log(result); +} + +async function main() { + await connectorsGet(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsListBySubscriptionSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsListBySubscriptionSample.js new file mode 100644 index 000000000000..65e26e3c3862 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsListBySubscriptionSample.js @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to list Connector resources by subscription ID + * + * @summary list Connector resources by subscription ID + * x-ms-original-file: 2024-05-01-preview/Connectors_ListBySubscription.json + */ +async function connectorsListBySubscription() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.connectors.listBySubscription()) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main() { + await connectorsListBySubscription(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsUpdateSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsUpdateSample.js new file mode 100644 index 000000000000..d6eb68a1d3d7 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/connectorsUpdateSample.js @@ -0,0 +1,27 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to update a Connector + * + * @summary update a Connector + * x-ms-original-file: 2024-05-01-preview/Connectors_Update.json + */ +async function connectorsUpdate() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.connectors.update("testconnector1", { + properties: { connectorType: "AzureMonitor" }, + }); + console.log(result); +} + +async function main() { + await connectorsUpdate(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesGetSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesGetSample.js new file mode 100644 index 000000000000..c740933c1a9a --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesGetSample.js @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to get a ImpactCategory + * + * @summary get a ImpactCategory + * x-ms-original-file: 2024-05-01-preview/ImpactCategories_Get.json + */ +async function getWorkloadImpactResourceByName() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.impactCategories.get("ARMOperation.Create"); + console.log(result); +} + +async function main() { + await getWorkloadImpactResourceByName(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesImpactCategoriesGetSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesImpactCategoriesGetSample.js index c740933c1a9a..0e2a2f61660e 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesImpactCategoriesGetSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesImpactCategoriesGetSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to get a ImpactCategory * * @summary get a ImpactCategory * x-ms-original-file: 2024-05-01-preview/ImpactCategories_Get.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function getWorkloadImpactResourceByName() { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesImpactCategoriesListBySubscriptionSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesImpactCategoriesListBySubscriptionSample.js index 7791c84d7103..115a05c1d138 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesImpactCategoriesListBySubscriptionSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesImpactCategoriesListBySubscriptionSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to list ImpactCategory resources by subscription * * @summary list ImpactCategory resources by subscription * x-ms-original-file: 2024-05-01-preview/ImpactCategories_ListBySubscription.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function getImpactCategoriesListBySubscription() { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesListBySubscriptionSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesListBySubscriptionSample.js new file mode 100644 index 000000000000..a65c927bbec5 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/impactCategoriesListBySubscriptionSample.js @@ -0,0 +1,31 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to list ImpactCategory resources by subscription + * + * @summary list ImpactCategory resources by subscription + * x-ms-original-file: 2024-05-01-preview/ImpactCategories_ListBySubscription.json + */ +async function getImpactCategoriesListBySubscription() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.impactCategories.listBySubscription( + "microsoft.compute/virtualmachines", + )) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main() { + await getImpactCategoriesListBySubscription(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsCreateSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsCreateSample.js new file mode 100644 index 000000000000..5a2d7d590346 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsCreateSample.js @@ -0,0 +1,44 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to create Insight resource, This is Admin only operation + * + * @summary create Insight resource, This is Admin only operation + * x-ms-original-file: 2024-05-01-preview/Insights_Create.json + */ +async function creatingAnInsight() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.insights.create("impactid22", "insightId12", { + properties: { + content: { + title: "Impact Has been correlated to an outage", + description: + 'At 2018-11-08T00:00:00Z UTC, your services dependent on these resources VM1 may have experienced an issue.
We have identified an outage that affected these resources(s). You can look at outage information on NL2W-VCZ link.
', + }, + category: "repair", + status: "resolved", + eventTime: new Date("2023-06-15T04:00:00.009223Z"), + insightUniqueId: "00000000-0000-0000-0000-000000000000", + impact: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservername", + startTime: new Date("2023-06-15T01:00:00.009223Z"), + impactId: + "/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.Impact/workloadImpacts/impactid22", + }, + }, + }); + console.log(result); +} + +async function main() { + await creatingAnInsight(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsDeleteSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsDeleteSample.js new file mode 100644 index 000000000000..98a30a7a9e5f --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsDeleteSample.js @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to delete Insight resource, This is Admin only operation + * + * @summary delete Insight resource, This is Admin only operation + * x-ms-original-file: 2024-05-01-preview/Insights_Delete.json + */ +async function deleteAnInsight() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + await client.insights.delete("impactid22", "insightId12"); +} + +async function main() { + await deleteAnInsight(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsGetSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsGetSample.js new file mode 100644 index 000000000000..cfda91738fb4 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsGetSample.js @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to get Insight resources by workloadImpactName and insightName + * + * @summary get Insight resources by workloadImpactName and insightName + * x-ms-original-file: 2024-05-01-preview/Insights_Get_diagnostics.json + */ +async function getInsightSampleForDiagnosticsCategory() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.insights.get("impactid", "insight1"); + console.log(result); +} + +/** + * This sample demonstrates how to get Insight resources by workloadImpactName and insightName + * + * @summary get Insight resources by workloadImpactName and insightName + * x-ms-original-file: 2024-05-01-preview/Insights_Get_mitigationAction.json + */ +async function getInsightSampleForMitigationActionCategory() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.insights.get("impactId", "HPCUASucceeded"); + console.log(result); +} + +/** + * This sample demonstrates how to get Insight resources by workloadImpactName and insightName + * + * @summary get Insight resources by workloadImpactName and insightName + * x-ms-original-file: 2024-05-01-preview/Insights_Get_servicehealth.json + */ +async function getInsightSampleForServiceHealthCategory() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.insights.get("impactid", "insightname"); + console.log(result); +} + +async function main() { + await getInsightSampleForDiagnosticsCategory(); + await getInsightSampleForMitigationActionCategory(); + await getInsightSampleForServiceHealthCategory(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsCreateSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsCreateSample.js index 5a2d7d590346..d363bbcde122 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsCreateSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsCreateSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to create Insight resource, This is Admin only operation * * @summary create Insight resource, This is Admin only operation * x-ms-original-file: 2024-05-01-preview/Insights_Create.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function creatingAnInsight() { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsDeleteSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsDeleteSample.js index 98a30a7a9e5f..5f9477aeacb7 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsDeleteSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsDeleteSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to delete Insight resource, This is Admin only operation * * @summary delete Insight resource, This is Admin only operation * x-ms-original-file: 2024-05-01-preview/Insights_Delete.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function deleteAnInsight() { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsGetSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsGetSample.js index cfda91738fb4..6f77a918791e 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsGetSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsGetSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to get Insight resources by workloadImpactName and insightName * * @summary get Insight resources by workloadImpactName and insightName * x-ms-original-file: 2024-05-01-preview/Insights_Get_diagnostics.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function getInsightSampleForDiagnosticsCategory() { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsListBySubscriptionSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsListBySubscriptionSample.js index fa4aaa1fca61..41e90d631918 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsListBySubscriptionSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsInsightsListBySubscriptionSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to list Insight resources by workloadImpactName * * @summary list Insight resources by workloadImpactName * x-ms-original-file: 2024-05-01-preview/Insights_ListBySubscription.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function listInsightResourcesByWorkloadImpactName() { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsListBySubscriptionSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsListBySubscriptionSample.js new file mode 100644 index 000000000000..0a82e3028287 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/insightsListBySubscriptionSample.js @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to list Insight resources by workloadImpactName + * + * @summary list Insight resources by workloadImpactName + * x-ms-original-file: 2024-05-01-preview/Insights_ListBySubscription.json + */ +async function listInsightResourcesByWorkloadImpactName() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.insights.listBySubscription("impactid22")) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main() { + await listInsightResourcesByWorkloadImpactName(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/operationsListSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/operationsListSample.js new file mode 100644 index 000000000000..3e7091ea6161 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/operationsListSample.js @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to list the operations for the provider + * + * @summary list the operations for the provider + * x-ms-original-file: 2024-05-01-preview/Operations_List.json + */ +async function operationsList() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-00000000000"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.operations.list()) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main() { + await operationsList(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/operationsOperationsListSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/operationsOperationsListSample.js index 0f2dcf5b0a78..6e9314c229d7 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/operationsOperationsListSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/operationsOperationsListSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to list the operations for the provider * * @summary list the operations for the provider * x-ms-original-file: 2024-05-01-preview/Operations_List.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function operationsList() { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-00000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/package.json b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/package.json index 58a20907ce54..01cb6c6d3f0d 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/package.json +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/package.json @@ -28,6 +28,6 @@ "dependencies": { "@azure/arm-impactreporting": "next", "dotenv": "latest", - "@azure/identity": "^4.7.0" + "@azure/identity": "4.11.1" } } diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsCreateSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsCreateSample.js new file mode 100644 index 000000000000..8f3cfed42af8 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsCreateSample.js @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to create a WorkloadImpact + * + * @summary create a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadArmOperation_create.json + */ +async function reportingArmOperationFailure() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.create("impact-002", { + properties: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", + startDateTime: new Date("2022-06-15T05:59:46.6517821Z"), + impactDescription: "deletion of resource failed", + impactCategory: "ArmOperation", + armCorrelationIds: ["00000000-0000-0000-0000-000000000000"], + workload: { context: "webapp/scenario1", toolset: "Other" }, + clientIncidentDetails: { + clientIncidentId: "AA123", + clientIncidentSource: "Jira", + }, + }, + }); + console.log(result); +} + +/** + * This sample demonstrates how to create a WorkloadImpact + * + * @summary create a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadAvailability_Create.json + */ +async function reportingAvailabilityRelatedImpact() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.create("impact-002", { + properties: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", + startDateTime: new Date("2022-06-15T05:59:46.6517821Z"), + impactDescription: "read calls failed", + impactCategory: "Availability", + workload: { context: "webapp/scenario1", toolset: "Other" }, + clientIncidentDetails: { + clientIncidentId: "AA123", + clientIncidentSource: "Jira", + }, + }, + }); + console.log(result); +} + +/** + * This sample demonstrates how to create a WorkloadImpact + * + * @summary create a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadConnectivityImpact_Create.json + */ +async function reportingAConnectivityImpact() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.create("impact-001", { + properties: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", + startDateTime: new Date("2022-06-15T05:59:46.6517821Z"), + impactDescription: "conection failure", + impactCategory: "Resource.Connectivity", + connectivity: { + protocol: "TCP", + port: 1443, + source: { + azureResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm1", + }, + target: { + azureResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm2", + }, + }, + workload: { context: "webapp/scenario1", toolset: "Other" }, + clientIncidentDetails: { + clientIncidentId: "AA123", + clientIncidentSource: "Jira", + }, + }, + }); + console.log(result); +} + +/** + * This sample demonstrates how to create a WorkloadImpact + * + * @summary create a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadPerformance_Create.json + */ +async function reportingPerformanceRelatedImpact() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.create("impact-002", { + properties: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", + startDateTime: new Date("2022-06-15T05:59:46.6517821Z"), + impactDescription: "high cpu utilization", + impactCategory: "Resource.Performance", + workload: { context: "webapp/scenario1", toolset: "Other" }, + performance: [{ metricName: "CPU", actual: 90, expected: 60, unit: "garbage" }], + clientIncidentDetails: { + clientIncidentId: "AA123", + clientIncidentSource: "Jira", + }, + }, + }); + console.log(result); +} + +async function main() { + await reportingArmOperationFailure(); + await reportingAvailabilityRelatedImpact(); + await reportingAConnectivityImpact(); + await reportingPerformanceRelatedImpact(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsDeleteSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsDeleteSample.js new file mode 100644 index 000000000000..700e0849b296 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsDeleteSample.js @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to delete a WorkloadImpact + * + * @summary delete a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Delete.json + */ +async function deleteWorkloadImpactResourceByNameExample() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + await client.workloadImpacts.delete("impact-001"); +} + +async function main() { + await deleteWorkloadImpactResourceByNameExample(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsGetSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsGetSample.js new file mode 100644 index 000000000000..53b6f9b6f87a --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsGetSample.js @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to get a WorkloadImpact + * + * @summary get a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Get.json + */ +async function getWorkloadImpactResourceByNameExample() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.get("impact-001"); + console.log(result); +} + +async function main() { + await getWorkloadImpactResourceByNameExample(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsListBySubscriptionSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsListBySubscriptionSample.js new file mode 100644 index 000000000000..7df2a1aac43f --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsListBySubscriptionSample.js @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + +/** + * This sample demonstrates how to list WorkloadImpact resources by subscription ID + * + * @summary list WorkloadImpact resources by subscription ID + * x-ms-original-file: 2024-05-01-preview/WorkloadImpacts_ListBySubscription.json + */ +async function listWorkloadImpactResourcesBySubscription() { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.workloadImpacts.listBySubscription()) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main() { + await listWorkloadImpactResourcesBySubscription(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsCreateSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsCreateSample.js index 8ccb8590e158..50b4e32beb0d 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsCreateSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsCreateSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to create a WorkloadImpact * * @summary create a WorkloadImpact * x-ms-original-file: 2024-05-01-preview/WorkloadArmOperation_create.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function reportingArmOperationFailure() { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsDeleteSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsDeleteSample.js index 700e0849b296..e1232ef4b523 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsDeleteSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsDeleteSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to delete a WorkloadImpact * * @summary delete a WorkloadImpact * x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Delete.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function deleteWorkloadImpactResourceByNameExample() { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsGetSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsGetSample.js index 53b6f9b6f87a..50cead0349e8 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsGetSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsGetSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to get a WorkloadImpact * * @summary get a WorkloadImpact * x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Get.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function getWorkloadImpactResourceByNameExample() { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsListBySubscriptionSample.js b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsListBySubscriptionSample.js index 22b8114656bc..91e0217fb375 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsListBySubscriptionSample.js +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/javascript/workloadImpactsWorkloadImpactsListBySubscriptionSample.js @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -const { ImpactClient } = require("@azure/arm-impactreporting"); -const { DefaultAzureCredential } = require("@azure/identity"); - /** * This sample demonstrates how to list WorkloadImpact resources by subscription ID * * @summary list WorkloadImpact resources by subscription ID * x-ms-original-file: 2024-05-01-preview/WorkloadImpacts_ListBySubscription.json */ + +const { ImpactClient } = require("@azure/arm-impactreporting"); +const { DefaultAzureCredential } = require("@azure/identity"); + async function listWorkloadImpactResourcesBySubscription() { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/README.md b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/README.md index 316d6c4c2b6e..10d12a27c183 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/README.md +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/README.md @@ -9,13 +9,29 @@ These sample programs show how to use the TypeScript client libraries for @azure | [connectorsConnectorsGetSample.ts][connectorsconnectorsgetsample] | get a Connector x-ms-original-file: 2024-05-01-preview/Connectors_Get.json | | [connectorsConnectorsListBySubscriptionSample.ts][connectorsconnectorslistbysubscriptionsample] | list Connector resources by subscription ID x-ms-original-file: 2024-05-01-preview/Connectors_ListBySubscription.json | | [connectorsConnectorsUpdateSample.ts][connectorsconnectorsupdatesample] | update a Connector x-ms-original-file: 2024-05-01-preview/Connectors_Update.json | +| [connectorsCreateOrUpdateSample.ts][connectorscreateorupdatesample] | create a Connector x-ms-original-file: 2024-05-01-preview/Connectors_CreateOrUpdate.json | +| [connectorsDeleteSample.ts][connectorsdeletesample] | delete a Connector x-ms-original-file: 2024-05-01-preview/Connectors_Delete.json | +| [connectorsGetSample.ts][connectorsgetsample] | get a Connector x-ms-original-file: 2024-05-01-preview/Connectors_Get.json | +| [connectorsListBySubscriptionSample.ts][connectorslistbysubscriptionsample] | list Connector resources by subscription ID x-ms-original-file: 2024-05-01-preview/Connectors_ListBySubscription.json | +| [connectorsUpdateSample.ts][connectorsupdatesample] | update a Connector x-ms-original-file: 2024-05-01-preview/Connectors_Update.json | +| [impactCategoriesGetSample.ts][impactcategoriesgetsample] | get a ImpactCategory x-ms-original-file: 2024-05-01-preview/ImpactCategories_Get.json | | [impactCategoriesImpactCategoriesGetSample.ts][impactcategoriesimpactcategoriesgetsample] | get a ImpactCategory x-ms-original-file: 2024-05-01-preview/ImpactCategories_Get.json | | [impactCategoriesImpactCategoriesListBySubscriptionSample.ts][impactcategoriesimpactcategorieslistbysubscriptionsample] | list ImpactCategory resources by subscription x-ms-original-file: 2024-05-01-preview/ImpactCategories_ListBySubscription.json | +| [impactCategoriesListBySubscriptionSample.ts][impactcategorieslistbysubscriptionsample] | list ImpactCategory resources by subscription x-ms-original-file: 2024-05-01-preview/ImpactCategories_ListBySubscription.json | +| [insightsCreateSample.ts][insightscreatesample] | create Insight resource, This is Admin only operation x-ms-original-file: 2024-05-01-preview/Insights_Create.json | +| [insightsDeleteSample.ts][insightsdeletesample] | delete Insight resource, This is Admin only operation x-ms-original-file: 2024-05-01-preview/Insights_Delete.json | +| [insightsGetSample.ts][insightsgetsample] | get Insight resources by workloadImpactName and insightName x-ms-original-file: 2024-05-01-preview/Insights_Get_diagnostics.json | | [insightsInsightsCreateSample.ts][insightsinsightscreatesample] | create Insight resource, This is Admin only operation x-ms-original-file: 2024-05-01-preview/Insights_Create.json | | [insightsInsightsDeleteSample.ts][insightsinsightsdeletesample] | delete Insight resource, This is Admin only operation x-ms-original-file: 2024-05-01-preview/Insights_Delete.json | | [insightsInsightsGetSample.ts][insightsinsightsgetsample] | get Insight resources by workloadImpactName and insightName x-ms-original-file: 2024-05-01-preview/Insights_Get_diagnostics.json | | [insightsInsightsListBySubscriptionSample.ts][insightsinsightslistbysubscriptionsample] | list Insight resources by workloadImpactName x-ms-original-file: 2024-05-01-preview/Insights_ListBySubscription.json | +| [insightsListBySubscriptionSample.ts][insightslistbysubscriptionsample] | list Insight resources by workloadImpactName x-ms-original-file: 2024-05-01-preview/Insights_ListBySubscription.json | +| [operationsListSample.ts][operationslistsample] | list the operations for the provider x-ms-original-file: 2024-05-01-preview/Operations_List.json | | [operationsOperationsListSample.ts][operationsoperationslistsample] | list the operations for the provider x-ms-original-file: 2024-05-01-preview/Operations_List.json | +| [workloadImpactsCreateSample.ts][workloadimpactscreatesample] | create a WorkloadImpact x-ms-original-file: 2024-05-01-preview/WorkloadArmOperation_create.json | +| [workloadImpactsDeleteSample.ts][workloadimpactsdeletesample] | delete a WorkloadImpact x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Delete.json | +| [workloadImpactsGetSample.ts][workloadimpactsgetsample] | get a WorkloadImpact x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Get.json | +| [workloadImpactsListBySubscriptionSample.ts][workloadimpactslistbysubscriptionsample] | list WorkloadImpact resources by subscription ID x-ms-original-file: 2024-05-01-preview/WorkloadImpacts_ListBySubscription.json | | [workloadImpactsWorkloadImpactsCreateSample.ts][workloadimpactsworkloadimpactscreatesample] | create a WorkloadImpact x-ms-original-file: 2024-05-01-preview/WorkloadArmOperation_create.json | | [workloadImpactsWorkloadImpactsDeleteSample.ts][workloadimpactsworkloadimpactsdeletesample] | delete a WorkloadImpact x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Delete.json | | [workloadImpactsWorkloadImpactsGetSample.ts][workloadimpactsworkloadimpactsgetsample] | get a WorkloadImpact x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Get.json | @@ -76,13 +92,29 @@ Take a look at our [API Documentation][apiref] for more information about the AP [connectorsconnectorsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsGetSample.ts [connectorsconnectorslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsListBySubscriptionSample.ts [connectorsconnectorsupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsUpdateSample.ts +[connectorscreateorupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsCreateOrUpdateSample.ts +[connectorsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsDeleteSample.ts +[connectorsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsGetSample.ts +[connectorslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsListBySubscriptionSample.ts +[connectorsupdatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsUpdateSample.ts +[impactcategoriesgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesGetSample.ts [impactcategoriesimpactcategoriesgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesImpactCategoriesGetSample.ts [impactcategoriesimpactcategorieslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesImpactCategoriesListBySubscriptionSample.ts +[impactcategorieslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesListBySubscriptionSample.ts +[insightscreatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsCreateSample.ts +[insightsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsDeleteSample.ts +[insightsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsGetSample.ts [insightsinsightscreatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsCreateSample.ts [insightsinsightsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsDeleteSample.ts [insightsinsightsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsGetSample.ts [insightsinsightslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsListBySubscriptionSample.ts +[insightslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsListBySubscriptionSample.ts +[operationslistsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/operationsListSample.ts [operationsoperationslistsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/operationsOperationsListSample.ts +[workloadimpactscreatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsCreateSample.ts +[workloadimpactsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsDeleteSample.ts +[workloadimpactsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsGetSample.ts +[workloadimpactslistbysubscriptionsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsListBySubscriptionSample.ts [workloadimpactsworkloadimpactscreatesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsCreateSample.ts [workloadimpactsworkloadimpactsdeletesample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsDeleteSample.ts [workloadimpactsworkloadimpactsgetsample]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsGetSample.ts diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/package.json b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/package.json index 264ccb947941..63c293f3596a 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/package.json +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/package.json @@ -32,7 +32,7 @@ "dependencies": { "@azure/arm-impactreporting": "next", "dotenv": "latest", - "@azure/identity": "^4.7.0" + "@azure/identity": "4.11.1" }, "devDependencies": { "@types/node": "^20.0.0", diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsCreateOrUpdateSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsCreateOrUpdateSample.ts index 1735671e23f4..36e33e530b8f 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsCreateOrUpdateSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsCreateOrUpdateSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to create a Connector * * @summary create a Connector * x-ms-original-file: 2024-05-01-preview/Connectors_CreateOrUpdate.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function connectorsCreateOrUpdate(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsDeleteSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsDeleteSample.ts index a2daca64d8ef..45a42b31d5c1 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsDeleteSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsDeleteSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to delete a Connector * * @summary delete a Connector * x-ms-original-file: 2024-05-01-preview/Connectors_Delete.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function connectorsDelete(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "8F74B371-8573-4773-9BDA-D546505BDB3A"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsGetSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsGetSample.ts index 42f3e7f1973a..71ea90509cdd 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsGetSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsGetSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to get a Connector * * @summary get a Connector * x-ms-original-file: 2024-05-01-preview/Connectors_Get.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function connectorsGet(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsListBySubscriptionSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsListBySubscriptionSample.ts index 7fc65bf1f6ac..36a3c6dfe496 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsListBySubscriptionSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsListBySubscriptionSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to list Connector resources by subscription ID * * @summary list Connector resources by subscription ID * x-ms-original-file: 2024-05-01-preview/Connectors_ListBySubscription.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function connectorsListBySubscription(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsUpdateSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsUpdateSample.ts index 3d7422c68e43..fbf4ec07c32c 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsUpdateSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsConnectorsUpdateSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to update a Connector * * @summary update a Connector * x-ms-original-file: 2024-05-01-preview/Connectors_Update.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function connectorsUpdate(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsCreateOrUpdateSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsCreateOrUpdateSample.ts new file mode 100644 index 000000000000..1735671e23f4 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsCreateOrUpdateSample.ts @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to create a Connector + * + * @summary create a Connector + * x-ms-original-file: 2024-05-01-preview/Connectors_CreateOrUpdate.json + */ +async function connectorsCreateOrUpdate(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.connectors.createOrUpdate("testconnector1", { + properties: { + connectorType: "AzureMonitor", + connectorId: "", + tenantId: "", + lastRunTimeStamp: new Date(), + }, + }); + console.log(result); +} + +async function main(): Promise { + await connectorsCreateOrUpdate(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsDeleteSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsDeleteSample.ts new file mode 100644 index 000000000000..a2daca64d8ef --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsDeleteSample.ts @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to delete a Connector + * + * @summary delete a Connector + * x-ms-original-file: 2024-05-01-preview/Connectors_Delete.json + */ +async function connectorsDelete(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "8F74B371-8573-4773-9BDA-D546505BDB3A"; + const client = new ImpactClient(credential, subscriptionId); + await client.connectors.delete("testconnector1"); +} + +async function main(): Promise { + await connectorsDelete(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsGetSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsGetSample.ts new file mode 100644 index 000000000000..42f3e7f1973a --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsGetSample.ts @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to get a Connector + * + * @summary get a Connector + * x-ms-original-file: 2024-05-01-preview/Connectors_Get.json + */ +async function connectorsGet(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.connectors.get("testconnector1"); + console.log(result); +} + +async function main(): Promise { + await connectorsGet(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsListBySubscriptionSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsListBySubscriptionSample.ts new file mode 100644 index 000000000000..96518f5d03b9 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsListBySubscriptionSample.ts @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to list Connector resources by subscription ID + * + * @summary list Connector resources by subscription ID + * x-ms-original-file: 2024-05-01-preview/Connectors_ListBySubscription.json + */ +async function connectorsListBySubscription(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.connectors.listBySubscription()) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main(): Promise { + await connectorsListBySubscription(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsUpdateSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsUpdateSample.ts new file mode 100644 index 000000000000..3d7422c68e43 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/connectorsUpdateSample.ts @@ -0,0 +1,27 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to update a Connector + * + * @summary update a Connector + * x-ms-original-file: 2024-05-01-preview/Connectors_Update.json + */ +async function connectorsUpdate(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "74f5e23f-d4d9-410a-bb4d-8f0608adb10d"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.connectors.update("testconnector1", { + properties: { connectorType: "AzureMonitor" }, + }); + console.log(result); +} + +async function main(): Promise { + await connectorsUpdate(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesGetSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesGetSample.ts new file mode 100644 index 000000000000..e2b845fdb997 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesGetSample.ts @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to get a ImpactCategory + * + * @summary get a ImpactCategory + * x-ms-original-file: 2024-05-01-preview/ImpactCategories_Get.json + */ +async function getWorkloadImpactResourceByName(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.impactCategories.get("ARMOperation.Create"); + console.log(result); +} + +async function main(): Promise { + await getWorkloadImpactResourceByName(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesImpactCategoriesGetSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesImpactCategoriesGetSample.ts index e2b845fdb997..b3b438b41850 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesImpactCategoriesGetSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesImpactCategoriesGetSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to get a ImpactCategory * * @summary get a ImpactCategory * x-ms-original-file: 2024-05-01-preview/ImpactCategories_Get.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function getWorkloadImpactResourceByName(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesImpactCategoriesListBySubscriptionSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesImpactCategoriesListBySubscriptionSample.ts index e48341a90423..b7eb57422870 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesImpactCategoriesListBySubscriptionSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesImpactCategoriesListBySubscriptionSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to list ImpactCategory resources by subscription * * @summary list ImpactCategory resources by subscription * x-ms-original-file: 2024-05-01-preview/ImpactCategories_ListBySubscription.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function getImpactCategoriesListBySubscription(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesListBySubscriptionSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesListBySubscriptionSample.ts new file mode 100644 index 000000000000..97beae44ad0b --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/impactCategoriesListBySubscriptionSample.ts @@ -0,0 +1,31 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to list ImpactCategory resources by subscription + * + * @summary list ImpactCategory resources by subscription + * x-ms-original-file: 2024-05-01-preview/ImpactCategories_ListBySubscription.json + */ +async function getImpactCategoriesListBySubscription(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.impactCategories.listBySubscription( + "microsoft.compute/virtualmachines", + )) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main(): Promise { + await getImpactCategoriesListBySubscription(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsCreateSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsCreateSample.ts new file mode 100644 index 000000000000..d8a91f35a5e8 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsCreateSample.ts @@ -0,0 +1,44 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to create Insight resource, This is Admin only operation + * + * @summary create Insight resource, This is Admin only operation + * x-ms-original-file: 2024-05-01-preview/Insights_Create.json + */ +async function creatingAnInsight(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.insights.create("impactid22", "insightId12", { + properties: { + content: { + title: "Impact Has been correlated to an outage", + description: + 'At 2018-11-08T00:00:00Z UTC, your services dependent on these resources VM1 may have experienced an issue.
We have identified an outage that affected these resources(s). You can look at outage information on NL2W-VCZ link.
', + }, + category: "repair", + status: "resolved", + eventTime: new Date("2023-06-15T04:00:00.009223Z"), + insightUniqueId: "00000000-0000-0000-0000-000000000000", + impact: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservername", + startTime: new Date("2023-06-15T01:00:00.009223Z"), + impactId: + "/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.Impact/workloadImpacts/impactid22", + }, + }, + }); + console.log(result); +} + +async function main(): Promise { + await creatingAnInsight(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsDeleteSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsDeleteSample.ts new file mode 100644 index 000000000000..d02a998caa29 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsDeleteSample.ts @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to delete Insight resource, This is Admin only operation + * + * @summary delete Insight resource, This is Admin only operation + * x-ms-original-file: 2024-05-01-preview/Insights_Delete.json + */ +async function deleteAnInsight(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + await client.insights.delete("impactid22", "insightId12"); +} + +async function main(): Promise { + await deleteAnInsight(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsGetSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsGetSample.ts new file mode 100644 index 000000000000..88f2ab2cf7d4 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsGetSample.ts @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to get Insight resources by workloadImpactName and insightName + * + * @summary get Insight resources by workloadImpactName and insightName + * x-ms-original-file: 2024-05-01-preview/Insights_Get_diagnostics.json + */ +async function getInsightSampleForDiagnosticsCategory(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.insights.get("impactid", "insight1"); + console.log(result); +} + +/** + * This sample demonstrates how to get Insight resources by workloadImpactName and insightName + * + * @summary get Insight resources by workloadImpactName and insightName + * x-ms-original-file: 2024-05-01-preview/Insights_Get_mitigationAction.json + */ +async function getInsightSampleForMitigationActionCategory(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.insights.get("impactId", "HPCUASucceeded"); + console.log(result); +} + +/** + * This sample demonstrates how to get Insight resources by workloadImpactName and insightName + * + * @summary get Insight resources by workloadImpactName and insightName + * x-ms-original-file: 2024-05-01-preview/Insights_Get_servicehealth.json + */ +async function getInsightSampleForServiceHealthCategory(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.insights.get("impactid", "insightname"); + console.log(result); +} + +async function main(): Promise { + await getInsightSampleForDiagnosticsCategory(); + await getInsightSampleForMitigationActionCategory(); + await getInsightSampleForServiceHealthCategory(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsCreateSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsCreateSample.ts index d8a91f35a5e8..ff9d41ba9dd1 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsCreateSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsCreateSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to create Insight resource, This is Admin only operation * * @summary create Insight resource, This is Admin only operation * x-ms-original-file: 2024-05-01-preview/Insights_Create.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function creatingAnInsight(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsDeleteSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsDeleteSample.ts index d02a998caa29..0f5dc485b348 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsDeleteSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsDeleteSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to delete Insight resource, This is Admin only operation * * @summary delete Insight resource, This is Admin only operation * x-ms-original-file: 2024-05-01-preview/Insights_Delete.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function deleteAnInsight(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsGetSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsGetSample.ts index 88f2ab2cf7d4..235185eee1e9 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsGetSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsGetSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to get Insight resources by workloadImpactName and insightName * * @summary get Insight resources by workloadImpactName and insightName * x-ms-original-file: 2024-05-01-preview/Insights_Get_diagnostics.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function getInsightSampleForDiagnosticsCategory(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsListBySubscriptionSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsListBySubscriptionSample.ts index 3e9b5709f3c8..2b1832febd30 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsListBySubscriptionSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsInsightsListBySubscriptionSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to list Insight resources by workloadImpactName * * @summary list Insight resources by workloadImpactName * x-ms-original-file: 2024-05-01-preview/Insights_ListBySubscription.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function listInsightResourcesByWorkloadImpactName(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsListBySubscriptionSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsListBySubscriptionSample.ts new file mode 100644 index 000000000000..45c411060505 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/insightsListBySubscriptionSample.ts @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to list Insight resources by workloadImpactName + * + * @summary list Insight resources by workloadImpactName + * x-ms-original-file: 2024-05-01-preview/Insights_ListBySubscription.json + */ +async function listInsightResourcesByWorkloadImpactName(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.insights.listBySubscription("impactid22")) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main(): Promise { + await listInsightResourcesByWorkloadImpactName(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/operationsListSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/operationsListSample.ts new file mode 100644 index 000000000000..9affe9d0b813 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/operationsListSample.ts @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to list the operations for the provider + * + * @summary list the operations for the provider + * x-ms-original-file: 2024-05-01-preview/Operations_List.json + */ +async function operationsList(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-00000000000"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.operations.list()) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main(): Promise { + await operationsList(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/operationsOperationsListSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/operationsOperationsListSample.ts index e2cf471680e2..fa711ca7c359 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/operationsOperationsListSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/operationsOperationsListSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to list the operations for the provider * * @summary list the operations for the provider * x-ms-original-file: 2024-05-01-preview/Operations_List.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function operationsList(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-00000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsCreateSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsCreateSample.ts new file mode 100644 index 000000000000..65cc642ff507 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsCreateSample.ts @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to create a WorkloadImpact + * + * @summary create a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadArmOperation_create.json + */ +async function reportingArmOperationFailure(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.create("impact-002", { + properties: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", + startDateTime: new Date("2022-06-15T05:59:46.6517821Z"), + impactDescription: "deletion of resource failed", + impactCategory: "ArmOperation", + armCorrelationIds: ["00000000-0000-0000-0000-000000000000"], + workload: { context: "webapp/scenario1", toolset: "Other" }, + clientIncidentDetails: { + clientIncidentId: "AA123", + clientIncidentSource: "Jira", + }, + }, + }); + console.log(result); +} + +/** + * This sample demonstrates how to create a WorkloadImpact + * + * @summary create a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadAvailability_Create.json + */ +async function reportingAvailabilityRelatedImpact(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.create("impact-002", { + properties: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", + startDateTime: new Date("2022-06-15T05:59:46.6517821Z"), + impactDescription: "read calls failed", + impactCategory: "Availability", + workload: { context: "webapp/scenario1", toolset: "Other" }, + clientIncidentDetails: { + clientIncidentId: "AA123", + clientIncidentSource: "Jira", + }, + }, + }); + console.log(result); +} + +/** + * This sample demonstrates how to create a WorkloadImpact + * + * @summary create a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadConnectivityImpact_Create.json + */ +async function reportingAConnectivityImpact(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.create("impact-001", { + properties: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", + startDateTime: new Date("2022-06-15T05:59:46.6517821Z"), + impactDescription: "conection failure", + impactCategory: "Resource.Connectivity", + connectivity: { + protocol: "TCP", + port: 1443, + source: { + azureResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm1", + }, + target: { + azureResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceSub/providers/Microsoft.compute/virtualmachines/vm2", + }, + }, + workload: { context: "webapp/scenario1", toolset: "Other" }, + clientIncidentDetails: { + clientIncidentId: "AA123", + clientIncidentSource: "Jira", + }, + }, + }); + console.log(result); +} + +/** + * This sample demonstrates how to create a WorkloadImpact + * + * @summary create a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadPerformance_Create.json + */ +async function reportingPerformanceRelatedImpact(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.create("impact-002", { + properties: { + impactedResourceId: + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-rg/providers/Microsoft.Sql/sqlserver/dbservercontext", + startDateTime: new Date("2022-06-15T05:59:46.6517821Z"), + impactDescription: "high cpu utilization", + impactCategory: "Resource.Performance", + workload: { context: "webapp/scenario1", toolset: "Other" }, + performance: [{ metricName: "CPU", actual: 90, expected: 60, unit: "garbage" }], + clientIncidentDetails: { + clientIncidentId: "AA123", + clientIncidentSource: "Jira", + }, + }, + }); + console.log(result); +} + +async function main(): Promise { + await reportingArmOperationFailure(); + await reportingAvailabilityRelatedImpact(); + await reportingAConnectivityImpact(); + await reportingPerformanceRelatedImpact(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsDeleteSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsDeleteSample.ts new file mode 100644 index 000000000000..a9f0195f563d --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsDeleteSample.ts @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to delete a WorkloadImpact + * + * @summary delete a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Delete.json + */ +async function deleteWorkloadImpactResourceByNameExample(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + await client.workloadImpacts.delete("impact-001"); +} + +async function main(): Promise { + await deleteWorkloadImpactResourceByNameExample(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsGetSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsGetSample.ts new file mode 100644 index 000000000000..1c9a19868a9e --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsGetSample.ts @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to get a WorkloadImpact + * + * @summary get a WorkloadImpact + * x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Get.json + */ +async function getWorkloadImpactResourceByNameExample(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const result = await client.workloadImpacts.get("impact-001"); + console.log(result); +} + +async function main(): Promise { + await getWorkloadImpactResourceByNameExample(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsListBySubscriptionSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsListBySubscriptionSample.ts new file mode 100644 index 000000000000..51e79e41e399 --- /dev/null +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsListBySubscriptionSample.ts @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + +/** + * This sample demonstrates how to list WorkloadImpact resources by subscription ID + * + * @summary list WorkloadImpact resources by subscription ID + * x-ms-original-file: 2024-05-01-preview/WorkloadImpacts_ListBySubscription.json + */ +async function listWorkloadImpactResourcesBySubscription(): Promise { + const credential = new DefaultAzureCredential(); + const subscriptionId = "00000000-0000-0000-0000-000000000000"; + const client = new ImpactClient(credential, subscriptionId); + const resArray = new Array(); + for await (const item of client.workloadImpacts.listBySubscription()) { + resArray.push(item); + } + + console.log(resArray); +} + +async function main(): Promise { + await listWorkloadImpactResourcesBySubscription(); +} + +main().catch(console.error); diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsCreateSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsCreateSample.ts index 6de3ec7353d6..8a28a5c9e96e 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsCreateSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsCreateSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to create a WorkloadImpact * * @summary create a WorkloadImpact * x-ms-original-file: 2024-05-01-preview/WorkloadArmOperation_create.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function reportingArmOperationFailure(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsDeleteSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsDeleteSample.ts index a9f0195f563d..b4b3ca1c7d85 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsDeleteSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsDeleteSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to delete a WorkloadImpact * * @summary delete a WorkloadImpact * x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Delete.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function deleteWorkloadImpactResourceByNameExample(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsGetSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsGetSample.ts index 1c9a19868a9e..c3760ad193a5 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsGetSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsGetSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to get a WorkloadImpact * * @summary get a WorkloadImpact * x-ms-original-file: 2024-05-01-preview/WorkloadImpact_Get.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function getWorkloadImpactResourceByNameExample(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000"; diff --git a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsListBySubscriptionSample.ts b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsListBySubscriptionSample.ts index 4e6c9425f7bb..57e1afe561b2 100644 --- a/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsListBySubscriptionSample.ts +++ b/sdk/impactreporting/arm-impactreporting/samples/v1-beta/typescript/src/workloadImpactsWorkloadImpactsListBySubscriptionSample.ts @@ -1,15 +1,16 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { ImpactClient } from "@azure/arm-impactreporting"; -import { DefaultAzureCredential } from "@azure/identity"; - /** * This sample demonstrates how to list WorkloadImpact resources by subscription ID * * @summary list WorkloadImpact resources by subscription ID * x-ms-original-file: 2024-05-01-preview/WorkloadImpacts_ListBySubscription.json */ + +import { ImpactClient } from "@azure/arm-impactreporting"; +import { DefaultAzureCredential } from "@azure/identity"; + async function listWorkloadImpactResourcesBySubscription(): Promise { const credential = new DefaultAzureCredential(); const subscriptionId = "00000000-0000-0000-0000-000000000000";